Desmistificando a utilização de ferramentas GPL no desenvolvimento de softwares proprietários

AGRADEÇA AO AUTOR COMPARTILHE!

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. Recentemente, a Microsoft foi obrigada a liberar uma ferramenta que gerava pendrives de instalação do Windows 7 sob a GPL porque 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, como Code::Blocks, 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.

AGRADEÇA AO AUTOR COMPARTILHE!

1 Comentários

AnonReport
1

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?

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">