Entendendo a GPL (GNU General Public License)

Após escrever sobre a Creative Commons e MIT License chegou a vez da GPL - ou GNU General Public License - a precursora das licenças livres para distribuição de software. De quebra você vai entender o que é Copyleft e quais as diferenças entre as 3 licenças que expliquei até agora.

Uma forma fácil de entender a necessidade da criação da GPL é conhecer sua história, ou melhor: o que aconteceu com Richard Stallman que o levou a dedicar boa parte do seu tempo a criar e espalhar a idéia do software livre.

Lisp MachineNos anos 80 Stallman trabalhava no laboratório do MIT e um de seus projetos era um interpretador para linguagem de programação Lisp. Dentro do mesmo laboratório surgiu uma empresa chamada Symbolics com o intuito de produzir computadores de alto desempenho para pesquisas e projetos de IA (Inteligência Artificial) - chamadas de Maquinas Lisp.

Na época ocorreu a seguinte mudança nas indústria de computadores: os softwares que antes eram feitos para rodar somente em certos computadores passaram a ter características mais genéricas que possibilitariam o seu uso em maquinas de modelos e fabricantes diferentes. Antes só existia a indústria de maquinas completas, então uma vez que o foco da indústria não era especificamente linhas de código, e sim circuitos eletrônicos os programadores compartilhavam seus códigos livremente. Com essa mudança de perspectiva tornou-se importante para a concorrência existirem programas melhores, em vez de somente maquinas melhores. Foi quando as empresas passaram a exigir de seus funcionários que não divulgassem informações (códigos) para outras pessoas, usando como artifício as leis de direitos autorais (copyright).

A Symbolics que tinha acesso aos códigos que estavam nos laboratórios do MIT - por ser uma empresa de programadores do mesmo laboratório - usou boa parte do trabalho de Richard Stallman no interpretador Lisp aperfeiçoando e estendendo o programa. Porém quando Richard quis ter acesso às modificações feitas pela empresa, ela negou.

Desde então - especificamente 1984 - Stallman vem lutando para evitar casos como esse, de uma empresa que se aproveita do conhecimento criado por uma comunidade para então criar algo que não beneficie tal comunidade.

GNUAchando muito difícil conseguir uma inversão de paradigmas somente mudando o pensamento dos programadores, Stallman decidiu se apoiar também nas leis de direitos autorais. Ele criou a Emacs General Public License que foi a primeira licença copyleft usada. E um pouco depois criou a GPL para ser usada no projeto GNU. Um licença de copyleft é a denominação para um tipo de direito autoral (sim, assim como as licenças de software proprietário se baseiam em leis de direitos autorais a GPL e outras licenças para software livre também!) que obriga a distribuição do código fonte de um programa derivado de outro que se encontrar sobre tal licença.

Espera! Essa é a alma do negocio, então eu preciso repetir.

Uma licença copyleft (assim como e principalmente a GPL) é a utilização das leis de direitos autorais para impedir que uma pessoa ou empresa se utilize de código aberto de software para criar/desenvolver um outro software derivado que seja proprietário, ou seja, que não disponibilize o seu código fonte na distribuição. Copyleft, Free Software ou Software Livre quer dizer uma mesma abordagem para evitar a necessidade de se pedir alguma autorização e enfrentar burocracias caso exista a necessidade ou vontade de melhorar, estudar, ampliar, adaptar um programa de computador.

Communist programmerMuitas pessoas podem confundir isso com software gratuito. Essas mesmas pessoas acham que programadores de projetos com código aberto (open source) são falsos comunistas, que dizem que é o software é livre querem mesmo é ganhar dinheiro. Que isso só aumenta as chances de sabotagem, e que não pode existir pessoas que trabalhem de graça.

Olha que viagem! Comunistas? Sabotador? Dá pra entender até onde vai as piras de quem não entende nadinha de uma boa sociedade baseada na livre circulação de conhecimento?

Chamar um software de livre não é necessariamente chama-lo de gratuito. Software livre como o nome diz está muito mais ligado em assegurar liberdades do que valores. Mais especificamente as liberdades podem ser resumidas para 4:

  • A liberdade para executar o programa, para qualquer propósito.
  • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade.
  • A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
  • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade.

Mas preste atenção: essa liberdades são asseguradas a quem adquirir uma copia do software.
Mas para adquirir uma copia do software você pode ter ou não que pagar por isso.

Ainda assim, se você pagar por isso poderá vender e até mesmo distribuir gratuitamente esse software. Por essa característica de dar a liberdade de “emprestar para seu vizinho” o programa pago, a maioria dos softwares livres já não são pagas desde sua primeira distribuição. E os desenvolvedores se utilizam de outras formas para criar uma cadeia econômica com o software livre. Como prestação de suporte e cobrança para aperfeiçoamentos e adaptações às características do comprador.

Caramba, você deve estar se perguntando quando eu vou começar a escrever sobre a GPL especificamente e parar com esse papo furado de software livre… Amigo, essa é a GPL (GNU General Public License)!

Claro que existem algumas diferenças entre outras licenças de código livre. Mas se você quer saber mesmo, ao se deparar com outra licença e tiver alguma duvida na diferença dela para a GPL, preste atenção no termo Copyleft. É esse termo que define a obrigatoriedade de se manter as 4 liberdades em trabalhos derivados.

Software é uma ferramenta para distribuição de conhecimento. impedir a livre distribuição de software é impedir o desenvolvimento das diversas áreas do conhecimento. viu como softwrare proprietário prejudica a economia?

Aproveitando o artigo, que uniu a explicação da GPL e do termo Copyleft gostaria de complementar as explicações que dei sobre Creative Commons e a Licença MIT (ou X11),

Creative Commons

Eu fiz uma certa confusão de palavras quando me referi ao uso da Creative Commons em projetos de código aberto e software livre.
O certo é entender que diferentemente do falado no artigo anterior código aberto não significa copyleft: obrigatoriedade em assegurar as 4 liberdades. Assim sendo, a Creative Commons pode ser utilizada sim em projetos de código aberto, porém não em softwares livres. Mais uma vez para reforçar: se o software é livre, ele deverá manter-se livre e a Creative Commons não obriga isso. Então ele é código aberto, mas pode deixar de ser…

Ainda relacionado a isso, existe um tipo de Creative Commons chamada Share-Alike. Ou compartilhamento sobre mesma licença. Ela chega mais próxima de ser livre, ao em vez de somente aberta. Porém como ela assegura somente que o projeto deverá ser redistribuído sobre a mesma licença e não necessariamente ter a mesmas liberdades, não podemos chamar nem mesmo a Creative Commons Share-Alike de copyleft.

Licença MIT

Diferentemente do que o artigo dá a entender, não é necessário somente incluir o aviso de copyright nas copias do software ou de seu código. Deve-se logicamente também seguir tais termos de copyright! (Veja a licença).

Complementando, a Licença MIT não obriga a distribuição do código fonte e também não sobrepõem seus termos sobre outras licenças. Isso quer dizer que como o software pode ser re-licenciado, pode ser que essa outra licença faça com que os termos da Licença MIT percam a validade.

Ou seja: Ela dá a liberdade de quem obtiver o software por ela licenciado, porém não obriga nem a disponibilizarão do código fonte, nem a manutenção dessa liberdade na próxima distribuição (como a GPL obriga). Por esse motivo, ela também não é uma licença copyleft.

Saiba Mais sobre outras licenças de conteúdo e software:

Esse artigo faz parte de uma série de outros dois artigos explicando as características de algumas licenças de livre circulação de material cultural, de código aberto e de software livre.
Veja mais:
Entendendo a Creative Commons
Entendendo a Licença MIT

Entendendo a Licença MIT

Continuando uma série de artigos sobre licenças para conteúdos/trabalhos livres, vou fazer uma rápida passada pela “MIT License” que servirá somente para deixar claro os termos aos quais produções sobre essa licença estão sujeitos.

A licença MIT foi criada somente para licenciamento de softwares - ao contrário da Creative Commons que pode ser utilizada para outros tipos de produções culturais (veja também: Entendendo a Creative Commons).

“MIT License” é um sinônimo de “X11 License” - por ter sido desenvolvida para ser usada no X Window System (engine gráfica para sistemas operacionais) - e não se refere a um único tipo de licença do Massachusetts Institute of Technology.

Por se tratar de uma licença permissiva, não existe proibição sobre o que pode ser feito com o software e seu código, desde que o portador do software (e da licença) siga o único termo dela:

“O aviso de copyright acima e esta permissão deverá ser incluído em todas as cópias ou partes substanciais do Software.”

Sendo então permitido por exemplo o uso de códigos por ela licenciados em (e com) software proprietário - programas pagos e de código fechado - e por esse motivo ela não é considera do tipo “Copyleft”, termo referente a um tipo de Copyright que obriga quem utilizar o código não utilizar junto com porções de software proprietário.

Saiba Mais sobre outras licenças de conteúdo e software:

Esse artigo faz parte de uma série de outros dois artigos explicando as características de algumas licenças de livre circulação de material cultural, de código aberto e de software livre.
Veja mais:
Entendendo a Creative Commons
Entendendo a GPL (GNU General Public License)

Entendendo a Creative Commons

Até hoje eu nunca havia entendido muito bem as diferentes “licenças livres” que são usadas em softwares ou em conteúdos diversos (filmes, livros, música…). Sempre soube que elas eram feitas para assegurar certos direitos e liberdades ao autor e a quem obter uma copia do trabalho, mas nunca havia tomado nota da importância de estudar uma licença dessas antes de utiliza-la.

Pessoalmente eu adoro a iniciativa Creative Commons e antes de estuda-la e pesquisar também sobre outras licenças, pensava em usa-la para todos projetos abertos que eu desenvolvesse. Tanto que a utilizei no projeto do leitor de tela para deficientes que utiliza o mouse :). Porém após conhece-la melhor, vi que para certos tipos de trabalhos - como softwares - ela não é eficiente.

Creative Commons

Creative Commons 1Assim como qualquer outro documento para licenciamento (livre ou não), o Creative Commons é um conjunto de termos para proteger o seu trabalho de ser “roubado”. Ou seja sua natureza legal é aplicar certas condições - restrições - na utilização/distribuição/modificação de qualquer trabalho para que alguns direitos do autor sejam mantidos.

A Creative Commons não serve como licença de programas de código aberto (opensource) - pois não existem termos que obriguem a distribuição do código fonte - porem pode ser utilizada como uma forma de publicar software livre sim.

Como assim, software livre, opensource, código aberto, qual a diferença?

Pense em algo totalmente diferente de programas de computador, ahm, tortas!
Em uma torta, se você publica-la utilizando a Creative Commons sob Atribuição significaria para você:
Fazer a torta e passa-la pra frente com a licença CC.

E para quem pega-la:
Creative Commons 2Come-la, estuda-la, colocar chantilly e se for dar para outra pessoa falar quem foi que fez ela. Não sendo necessário publicar, distribuir ou redistribuir a receita da torta.

Essa seria uma torta livre, mas não de código aberto. Sacou?

(Além disso alguns países obrigam o distribuidor de software manter certos termos de garantia no produto, o que não é abrangido pela CC.)

Dentro do conjunto de regras da Creative Commons existem 4 termos que combinados formam as 6 licenças CC.
Esses termos são: Atribuição, Uso Não Comercial, Não à Obras Derivadas, Compartilhamento pela mesma Licença.

Creative Commons 3

Suas combinações formam as diferentes licenças CC:

  • Atribuição: é a forma simples da CC - ela obriga quem utilizar (exibir, modificar, estudar…) a obra a manter os créditos originais do autor.
  • Atribuição + Compartilhamento pela mesma Licença: ela incorpora o primeiro termo e adiciona a obrigatoriedade de compartilhar obras derivadas utilizando a mesma licença que a obra original utilizava.
  • Atribuição + Não à Obras Derivadas: você obriga que não será permitido utilizar (exibir, modificar, estudar…) nenhuma obra derivada de seu trabalho.
  • Atribuição + Uso Não Comercial: você proíbe a possibilidade de uso comercial tanto da obra original quanto obras derivadas.
  • Atribuição + Uso Não Comercial + Compartilhamento pela mesma Licença: somente poderá ser feito algo com a obra desde que não seja feito uso comercial e também seja utilizada a mesma licença para obras derivadas.
  • Atribuição + Uso Não Comercial + Não à Obras Derivadas: o trabalho não poderá ser utilizado de forma comercial e também não poderão ser feitos trabalhos derivados.

Creative Commons 4Ao invés de dar destaques em termos como “permitir, dão liberdade” e afins, negritei palavras como “obrigam, limitam” justamente para deixar claro que licenciando um trabalho na CC você de forma alguma está abdicando de todos direitos sobre o trabalho. Assim como (e mais importante) você não está dando TOTAL liberdade a quem adquirir uma copia da obra. Na verdade você está de qualquer forma e em qualquer licença tirando a liberdade de livre utilização - impondo algumas regrinhas.

Creative Commons 5Mas você tem que entender que essas regrinhas são na verdade feitas para o bem. Diferente das publicações com “todos direitos reservados”, você vai na verdade manter com a Creative Commons alguns poucos direitos que devem servir como forma de retribuição ao trabalho exercido.

Se o intuito é dar todas liberdades para quem adquirir uma copia do trabalho você pode deixar claro que quer utilizar as regras aplicadas ao Domínio Público ou ainda distribuir a obra nos termos da WTFPL (sigla para Do What The Fuck You Want To Public License ou em português de filme liberado para menores de 14 anos: Faça o que quiser).

Creative Commons 6Entenda a Creative Commons como uma substituta das licenças reservadas, no sentido de que as mesmas foram feitas com o intuito de fazerem o bem para a sociedade e acabaram se tornando um impedimento ao livre estudo e livre circulação de material cultural, e a CC vem para resgatar a intenção de socialização de conhecimento.

Creative Commons 7

Esse material é uma tradução e coletânea de informações com a adição do pensamento do autor. De nenhuma forma isso substitui as licenças originais em Inglês ou tenta fazer um entendimento diferente delas.

As tiras foram feitas originamente por Neeru Paharia. As ilustrações originais são de Ryan Junell, e as fotos de Matt Haughey. Legendas foram traduzidas por mim - Dirceu Júnior. Originais em: http://wiki.creativecommons.org/Howitworks_Comic1

Saiba Mais sobre outras licenças de conteúdo e software:

Esse artigo faz parte de uma série de outros dois artigos explicando as características de algumas licenças de livre circulação de material cultural, de código aberto e de software livre.
Veja mais:
Entendendo a Licença MIT
Entendendo a GPL (GNU General Public License)