Licenças - AGPL, LGPL, GPL, BSD e Apache 2.0

Boa tarde!

Passei boa parte da minha tarde estudando sobre essas licenças (em diversos tópicos do GUJ, por exemplo), pois estão presentes em boa parte das ferramentas que quero usar. Como sempre disponibilizei os meus fontes nunca me preocupei muito, porém agora eu talvez precise fechar o código e dezenas de dúvidas apareceram.

Modificação - Entende-se por modificação no desenvolvimento de software, eu pegar os fontes de uma API e modificar estes mesmos fontes, ou implementar as classes dessa API para criar novas funcionalidades em meus pacotes?

Quanto as licenças, eu entendo que a única que me dá liberdade de utilizar uma API e vender meu programa sem os fontes, é a BSD. As demais (AGPL, LGPL, GPL e Apache 2.0) me obrigam a distribuir o código fonte do programa no ato da venda? Ou posso distribuir somente sob solicitação do comprador?

Abraço a todos!

O melhor material sobre licenças open-source de software q já encontrei é no próprio site do GNU, talvez possa lhe interessar ler

http://www.gnu.org/licenses/license-list.html

Mas no caso, como você vai fechar o código não vai usar nenhuma delas, incluindo a BSD. Mas vai ter q entender cada licença de cada lib que você usa, pra saber se vai mesmo poder fechar seu código e continuar usando a lib

Só pra complementar, licenças como a LGPL, BSD e Apache permitem que você use libs dessas licenças e possa continuar usando a licença que quiser para seu software. Você pode abrir a página de cada licença na wikipedia e ver a parte “Linking from code with a different license”

Já restrições sobre modificação do código estaria na parte “Copyleft”, se a licença for então você não pode modificar e não liberar o source (acredito eu)

Opa, beleza Victor?

Cara, dei uma lida no link que você me mandou do GNU, principalmente sobre as licenças que coloquei em questão (menos a apache 2.0 e a agpl que ainda não estão lá).

Pelo que percebi eu entendi errado muita coisa, imaginei que se eu utilizasse uma lib de qualquer licença, meu software automaticamente teria que adotar essa licença, mas isso na verdade acontece somente com a GPL, certo? E se caso eu utilizar uma lib MySQL JDBC Driver que é GPL, com uma lib GWT que é Apache 2.0, logo obrigatoriamente meu software teria que assumir a GPL? Ou seja, ela sempre supera as outras?

Além disso, eu posso inserir libs de licença BSD, LGPL e Apache em meu projeto, e mesmo assim poder fechar o fonte por elas serem “Linking from code with a different license: Yes”, Ou seja, adotar minha própria licença?

Quanto ao copyleft, eu não posso modificar o fonte da lib que adota o “Copyleft: Yes”, mas utilizar essa lib “apenas para import” não me impede de fechar o fonte, certo?

Desculpe pela chuva (pra não dizer tempestade) de perguntas, é que ainda sou bem leigo no assunto e quero fazer as coisas direitinho haha.

Grande abraço e ótima noite a todos.

Não sou muito conhecedor do assunto, então tudo q eu disser confirme com uma pesquisa no Google

A Apache 2.0 tá lá na lista, é inclusive a licença permissiva que eles recomendam :stuck_out_tongue:

Pelo que entendo, sim

Não. Se a licença é copyleft ela obriga você a adotar alguma licença compatível com ela caso você faça algum trabalho derivado (o que inclue linkar). Se você usa uma lib GPL tem que usar alguma licença compatível com a GPL (o primeiro link da GNU que mandei diz quais licenças são compatíveis ou não). Qualquer licença de código fechado é incompatível com a GPL

Algumas licenças copyleft como a LGPL abrem uma exceção no caso de linkagem. É isso que permite você por exemplo usar o Seam/Hibernate e distribuir a aplicação como código fechado

Não precisa assumir a GPL, você pode usar alguma licença que seja compatível com as duas

O caso do JDBC MySQL é complicado, o entendimento que eu vejo na Internet é que se você não distribui a aplicação (por exemplo, um software as service web) então não precisa abrir o fonte. Se você programa emcima da API JDBC e não distribui o jar mysql junto então também não precisa. Mas isso é o que dizem, quem vai dar a palavra final vai ser um advogado/juíz. Não ajuda em nada o fato do MySQL ser agora propriedade da Oracle (que tentou processar o Google por causa do Android). Único jeito de ser 100% seguro é comprando a licença comercial

Lembrando que existe o MariaDB (fork recente do MySQL e compatível). Eu já instalei ele + PHP e as aplicações continuavam funcionando sem nenhuma modificação. O MariaDB tem um driver JDBC sob a LGPL (que permite linkagem)

Fala Victor!

Bom, então pelo que eu entendi, eu tenho que me atentar não apenas ao fato da licença ser “Linking from code with a different license: Yes”, mas também ao fato de ser copyleft ou não, com exceção da LGPL é claro.
Acabei de pesquisar e vi que o Seam e o Hibernate realmente adotam a licença LGPL e podem ser distribuídos em softwares com código fechado, portanto, outras libs que também a adotam podem ser usadas da mesma forma.

Em resumo, se eu quero vender meu software com o código fechado, não posso utilizar nenhuma lib com licença GPL ou que seja copyleft (ainda com exceção à LGPL), que a grosso modo em sobra BSD, Apache e LGPL.

Quanto a diferença entre usar para hospedar um serviço e distribuir o software, eu tenho exatamente a mesma dúvida, até levantei a questão com o cara que trabalho comigo, vou pesquisar melhor e também posto aqui, mas se alguem já souber, por favor!

Amanhã mesmo vou baixar o MariaDB e implementar em ambiente de desenvolvimento, valeu a dica!

Abraços e boa noite a todos!

A Apache também lhe permite isso, mas vc tem que pedir licença à eles para tal.

Sabe me dizer como funciona esse processo Luiz?

Bom dia!

Pesquisando sobre a licença Apache, encontrei esse link no stackoverflow que me ajudou bastante, dizendo que é preciso apenas incluir uma cópia da licença no programa, e deixar o arquivo “notice” disponível em qualquer lugar que possua uma citação de copyright.

[OFF] usa essa licença e dane-se o mundo