A licença GPL – GNU General Public License – é, sem dúvida, a licença de software livre mais popular do planeta. Ela se contrapõe às licenças dos programas proprietários, que geralmente restringem a utilização do programa a apenas um computador e proíbem sua cópia, sua distribuição e sua modificação, ao dizer que aquele software possui um copyright mas que seu autor permite que o usuário o copie, o distribua e o modifique sob determinadas condições a fim de garantir a liberdade de software.
Sem dúvidas, os códigos livres são a maior fonte de aprendizado e de estudo disponível para quem deseja aprender a utilizar uma determinada linguagem ou biblioteca, assim como reduzem esforços e gastos de desenvolvedores individuais e de pequenas empresas na hora de procurarem recursos para o desenvolvimento de suas soluções. Mesmo assim, principalmente no Brasil, ainda existem aqueles que possuem dúvidas pertinentes em relação à licença, como por exemplo:
- Se eu utilizar uma IDE livre, como Code::Blocks, para desenvolver o meu software, terei de liberá-lo sob a GPL?
- Se eu compilar o meu programa utilizando o GCC/MinGW, ele deverá ser lançado sob a GPL?
- Se eu utilizar uma biblioteca GPL em meu programa, eu terei de liberá-lo sob essa licença?
- Se eu lançar uma versão do meu programa proprietário para Linux, deverei colocá-lo sob a GPL?
- Se eu criar um site ou programa que se conecta ao MySQL, ele deverá ser GPL?
- Eu posso escrever um plugin proprietário para um software GPL (ou ao contrário)?
Tais preocupações se dão pelo fato de nossos desenvolvedores não terem sido educados corretamente a respeito do que é o software livre. Para muitas empresas, liberar um programa como GPL na internet significa perder dinheiro, visto que qualquer um poderá baixá-lo gratuitamente – e inclusive criar outro programa similar – sem restrições. No entanto, software livre não é apenas um projeto de final de semana ou de uma instituição filantrópica: várias empresas, como a Red Hat, ganham milhões de dólares por ano vendendo software livre e serviços agregados a ele.
Mesmo não sendo um advogado – e aconselhando você a procurar um, caso julgue necessário – tentarei responder às questões acima, o que não é algo trivial para qualquer um, pois o texto da GPL é longo e difícil e a lista de perguntas frequentes oficial pode deixar dúvidas em quem não está habituado ao mundo GNU.
Basicamente, a GPL diz que, se você modificar um software que esteja coberto por essa licença, suas modificações também deverão estar sob os termos da licença livre. Embora, em teoria, o princípio seja simples, na prática ele pode causar muita confusão. A Microsoft, por exemplo, foi obrigada a liberar uma ferramenta que gerava pendrives de instalação do Windows 7 sob a GPL por que o desenvolvedor contratado para escrever a ferramenta utilizou código GPL inadvertidamente naquele programa.
Abaixo, segue a explicação das dúvidas do começo desse artigo:
Se eu utilizar uma IDE livre para desenvolver o meu software, terei de liberá-lo sob a GPL?
Não. Ambientes de desenvolvimento integrado como Code::Blocks e WxDevC++ nada mais são do que ferramentas que você utiliza para escrever o seu código. Nenhuma parte dessa ferramenta é colocada no seu código final – que pode, inclusive, ser aberto em outros editores – e, portanto, a menos que você utilize trechos de código GPL em seu aplicativo, você pode licenciar seu trabalho criado nesse editor com a licença que achar mais conveniente.
Se eu compilar o meu programa utilizando o GCC/MinGW, ele deverá ser lançado sob a GPL?
Não, pois o GCC apenas gera um binário para o seu sistema operacional, não inserindo quaisquer partes dele no arquivo resultante. A maior prova disso é que o Mac OS X, sistema operacional da Apple, é compilado no GCC e distribuído sob uma licença proprietária.
Se eu utilizar uma biblioteca GPL em meu programa, eu terei de liberá-lo sob essa licença?
Quando você utiliza uma biblioteca de terceiros em seu programa, você está colocando o código dessa biblioteca na sua solução. Se a biblioteca em questão estiver licenciada sob a GPL, seu programa deverá, necessariamente, ser colocado sob a GPL.
A maioria das bibliotecas livres, no entanto, está licenciada sob uma variação da GPL, chamada LGPL, ou GPL Menor, a qual não possui a cláusula que exige que os trabalhos derivados sejam colocados sob a mesma licença. A própria FSF recomenda que os desenvolvedores coloquem as bibliotecas sob a GPL menor, a qual permite que você utilize seus fontes e coloque o produto final sob os termos que achar melhor.
Se eu lançar uma versão do meu programa proprietário para Linux, deverei colocá-lo sob a GPL?
Não, a menos que você precise utilizar uma biblioteca nativa que esteja sob a GPL.
Se eu criar um site ou programa que se conecta ao MySQL, ele deverá ser GPL?
Se o seu site se conecta ao MySQL através de uma linguagem de servidor, como PHP, você não utiliza o código do MySQL, logo pode colocá-lo sob a licença que quiser. Agora, se você vai desenvolver um software desktop, precisará utilizar uma biblioteca que conecte-se ao banco.
A biblioteca oficial do MySQL está sob a GPL, o que lhe obriga a colocar seu código sob a GPL. Se você não quiser, suas opções são procurar uma biblioteca de terceiros ou comprar a versão comercial do banco junto à Oracle.
Eu posso escrever um plugin proprietário para um software GPL (ou ao contrário)?
Depende de como esse plugin é executado. Se o programa executa o plugin como um programa, os dois são considerados programas separados e você pode licenciá-lo como desejar; Se o plugin utiliza funções do código do programa ou de uma API que esteja sob a GPL, o plugin é considerado uma extensão do programa e você deverá colocá-lo sob a GPL. Se o programa apenas chama uma função do código do plugin, esse é um caso a ser analisado.
Conclusão
As ferramentas e as bibliotecas livres não são inimigas das empresas de software proprietário, nem se traduzem como sinônimo de projetos filantrópicos.
É possível, sim, utilizar ferramentas livres para desenvolver soluções fechadas sem prejuízo de lucratividade.
Há, no entanto, uma necessidade urgente de educação das empresas e dos desenvolvedores a respeito do mundo do software livre.
4 Comentários
Essa questão sobre uso de código de terceiros sob licenciamento GPL, LGPL e similares sempre me confundiu e fico sem muita informação consistente na mesma medida.
Ainda tenho dúvidas sobre a utilização ou não do banco de dados MariaDB em projetos comerciais. Devo possuir licença? Posso manter meu código fechado e proprietário?
o mariadb usa os mesmos termos do mysql. entao para usa aplicação, vc terá que comprar a versão enterprise do mariadb!!! simples assim.
recomendo migrar para postgresql ou firebird !
Estou com uma duvida, eu desenvolvi um aplicativo para Android e deixei disponivel na google play store, e o código fonte dele está disponivel no meu GitHub sob licença GNU GPL v3.
Esse aplicativo no momento funciona totalmente offline, não tem nenhum código de comunicação com nenhum servidor, mas pretendo ampliar as funcionalidades desse app, desenvolvendo uma api para esse aplicativo adicionando várias funcionalidades extras.
A minha duvida é:
Eu sou obrigado a distribuir o código fonte da api sob a licença GNU GPL v3 também, ou tenho a opção de deixar o codigo fonte da api como software proprietário ?
Abs.
Obrigado, texto espetacular!