Boa tarde pessoal!
Estou algumas dúvidas sobre a licença do MySQL, imaginem esse caso:
Pretendo criar um serviço e alugá-lo para empresas. Meu plano é ir no cliente e instalar no local CentOS, Tomcat, MySQL e o meu sistema OU
publicar o sistema na internet com o Locaweb.
Fazendo isso, o código fonte do meu sistema deveria ser GPL por tabela? Mesma dúvida caso eu publique no Locaweb.
Acredito que o código deve ser GPL obrigatoriamente caso voce não possua uma licença para o Mysql e queira usar o mesmo.
Ou seja se sua aplicação possui codigo fechado voce deve adquirir uma licença.
Não sei se você usou algum framework que obrigue a usar uma licença livre, mas a licença do MySQL Community (http://www.mysql.com/products/community/) não se estende às aplicações desenvolvidas que o utilizem. Ou seja, seu produto pode ter código fechado e usar o MySQL. O que você é obrigado a fazer é publicar qualquer alteração que fizer no código do MySQL (já que os fontes estão disponíveis), mas isso é algo que eu duvido que você venha a precisar.
MySQL foi tema de um dos estudos de caso que inclui na minha dissertação de mestrado sobre software livre.
Aí a questão não é o MySQL em si, e sim a licença do conector do MySQL que você está usando, o JDBC. Há muito tempo atrás os conectores do MySQL eram distribuídos sob a LGPL, então não tinha muito problema, mas depois mudaram a licença para GPL, o que torna a situação mais obscura. Isso significa que na distribuição do seu sistema para o cliente, dependendo da forma que você o faça, pode haver uma certa controvérsia sim! Mas na prática é improvável que você de fato tenha problemas. Já no caso de você simplesmente deixar ele acessível pela rede na Locaweb não teria nenhum problema.
[quote=TerraSkilll]Não sei se você usou algum framework que obrigue a usar uma licença livre, mas a licença do MySQL Community (http://www.mysql.com/products/community/) não se estende às aplicações desenvolvidas que o utilizem. Ou seja, seu produto pode ter código fechado e usar o MySQL. O que você é obrigado a fazer é publicar qualquer alteração que fizer no código do MySQL (já que os fontes estão disponíveis), mas isso é algo que eu duvido que você venha a precisar.
Abraço.[/quote]
Como você e os artigos disseram: Só o fato de se conectar no banco não quer dizer que meu app deva ser GPL também, correto?
[quote=Bani]MySQL foi tema de um dos estudos de caso que inclui na minha dissertação de mestrado sobre software livre.
Aí a questão não é o MySQL em si, e sim a licença do conector do MySQL que você está usando, o JDBC. Há muito tempo atrás os conectores do MySQL eram distribuídos sob a LGPL, então não tinha muito problema, mas depois mudaram a licença para GPL, o que torna a situação mais obscura. Isso significa que na distribuição do seu sistema para o cliente, dependendo da forma que você o faça, pode haver uma certa controvérsia sim! Mas na prática é improvável que você de fato tenha problemas. Já no caso de você simplesmente deixar ele acessível pela rede na Locaweb não teria nenhum problema.[/quote]
O driver está sob a licença GPL? Se sim, então não posso fazer um app que se conecte ao banco já que precisaria do mysql-connector.jar e ele “contaminaria” meu código? Mas se eu fizer pela locaweb, não estarei empacotando o mysql-connector.jar junto do meu sistema?
Isso, o driver atual é GPL e esse é o maior problema. Mas a GPL te impede de distribuir um trabalho derivado/coletivo como proprietário, não de usar o driver num sistema proprietário. E você pode hospedar seu sistema na Locaweb sem cair na regrinha da distribuição. Até por isso que inventaram a AGPL depois, que trata desses casos de uso através da rede, mas o driver do MySQL não está sob essa licença.
Converisei com meu professor a respeito de licenças e e cheguei a conclusão que para contornar esse problema, o correto seria eu programar na interface jdbc e usar um arquivo properties que configuraria o driver do banco e onde se conectar.
Assim eu não estaria usando a implementação de um banco específico e sim da interface. O cliente seria responsável por instalar o banco, o driver e configurar o .properties.
Talvez por isso que o JDBC foi criado, heheheh. Não tinha me tocado muito nisso.
Isso mesmo, se você fizer de tal forma que for possível alegar que o seu programa é independente da implementação que está sob GPL e você não distribuir o jar deles junto com sua aplicação, aí não precisa se preocupar com a GPL.