Novidades na GPLv3 (versão estendida)

Alexandre Oliva

Esta é uma versão "descompactada" de outro artigo, publicado na [GNU/]Linux Magazine Brasil #33. Está pouco lapidada, mas entra em detalhes onde o outro precisou ser mais sucinto, por limitações de espaço.

A Licença Pública Geral GNU, mais conhecida como GNU GPL (do inglês GNU General Public License), teve sua terceira grande revisão publicada em 29 de junho de 2007, após mais de 17 meses de consulta pública. Foram 16 anos desde a publicação da revisão anterior, utilizada por programas como GCC, GNU Emacs e Linux (o núcleo, não confundir com sistemas operacionais GNU+Linux, que tem centenas de programas sob diversas licenças).

Não foi a primeira licença de software livre, mas foi a pioneira na introdução do copyleft: o uso das leis de direito autoral (copyright) não para garantir uma exclusividade do autor, mas sim para garantir que o software sob ela licenciado permaneça livre, como explica seu preâmbulo.

Software é livre quando o usuário tem quatro liberdades fundamentais respeitadas: (0) rodar o programa para qualquer propósito, (1) estudá-lo e adaptá-lo às suas necessidades, (2) redistribuí-lo, da forma como foi recebido e (3) modificá-lo e distribuir as modificações. Se falta qualquer uma dessas liberdades, o usuário deixa de ser livre com relação ao software; diz-se então que o software é proprietário. Vale lembrar que proprietário não é a mesma coisa que comercial. Software comercial pode ser tanto livre quanto proprietário, assim como software gratuito pode ser tanto livre quanto proprietário. De fato, se for proibida a comercialização, o software não é livre.

A GPL, já em sua versão 1, estabelecia que o titular de direito autoral sobre o programa confere a cada um que receba o programa uma licença que permite uso, estudo, modificação e distribuição, com ou sem modificações. Com as liberdades, porém, vêm responsabilidades: também desde a versão 1, a licença estabelece que os licenciados não devem impor restrições ao gozo das liberdades por terceiros que excedam as determinadas pela própria licença. Isto é, se você modifica e/ou distribui o programa, implicitamente aceita a licença e suas condições, em particular, compromete-se a não impedir que outros usuários do programa tenham as mesmas liberdades.

Impedimentos ao pleno gozo das quatro liberdades, há muitos. Desde a versão 1 da GPL se entendia que o acesso ao código fonte (a forma ideal para se fazer modificações ao programa) e licença de direito autoral eram condições necessárias para tanto. Por isso, a GPL sempre exigiu que quem quer que distribua o software, com ou sem modificações, ao menos ofereça o código fonte correspondente a quem receba o programa, e distribua ambos sob as mesmas condições, isto é, usando a própria GNU GPL, sem quaisquer restrições adicionais.

Sem essas exigências explícitas, talvez alguns não entendessem que a proibição a restrições se traduziria em exigência de apresentar o código fonte correspondente completo a quem recebesse o programa, ou imaginassem poder utilizar termos de licenciamento restritivos para suas próprias modificações, ou mesmo para o programa como um todo. Daí a GPLv1, publicada em 1989, já deixar esses pontos claros.

Já no ano seguinte ficou claro que patentes de software poderiam ser utilizadas como forma de impor restrições aos usuários de software. A fim de manter o linguajar jurídico da GPL em alinhamento com seu espírito, a Free Software Foundation (FSF) publicou a segunda versão da GNU GPL, com uma nova cláusula criada especificamente para esclarecer uma questão a respeito de patentes: quem tem obrigações, adquirida de forma voluntária ou mediante ordem judicial, que lhe impeçam de distribuir o software sem impor restrições aos outros fica impedido de distribuir o software. Ou seja, aceitando-se uma licença de patentes que permita distribuição, mas que, por exemplo, proíba a oferta do código fonte correspondente, ou que proíba os receptores de modificar ou distribuir o programa, abre-se mão da possibilidade de distribuir o software. Para o software livre sob a GPL, deixar de ser livre é pior do que "morrer", daí o nome pelo qual essa cláusula passou a ser conhecido: "liberdade ou morte".

Já se entendia que, na lei norte-americana, ao distribuir software mediante uma licença que concede permissões diversas a qualquer receptor direto ou indireto, não poderia o distribuidor depois abordar qualquer dos receptores e impor restrições contrárias às permissões concedidas. Ou seja, na prática, a licença do programa servia como defesa contra ataques por meio de patentes sobre o próprio programa, uma espécie de licença de patentes implícita.

Ao longo dos 16 anos de GPLv2 que precederam a GPLv3, descobriu-se que nem todas os países enxergam essa questão desse modo. Portanto, para evitar dúvidas ou contratempos, como parte dos esforços de internacionalização da GPLv3, adicionou-se uma provisão de licenciamento explícito de patentes de quem quer que modifique o programa para quem receba a versão modificada, direta ou indiretamente, e um compromisso de não atacar por meio de patentes outros usuários pelo uso do mesmo código, ou versões modificadas dele, sob pena de revogação da licença.

Para evitar dúvidas, nunca é demais a licença esclarecer que "sem quaisquer restrições adicionais" significa nenhuma mesmo, não importando quão criativa seja a explicação que incorretamente justifique a possibilidade de impor restrições adicionais.

Por exemplo, alguns acreditavam poder invocar leis draconianas de direito autoral para proibir a modificação de software licenciado e distribuído por eles mesmos sob a GPL. Por exemplo, há leis que criminalizam a desabilitação de DRM. Digital Restrictions Management, ou Gestão Digital de Restrições, são medidas técnicas de controle de acesso a informação em formato digital. É muitas vezes implementada através de software, portanto, se o software estiver sob a GPL, quem implementou ou distribuiu essas medidas técnicas não pode impor "quaisquer restrições adicionais", mesmo que isso signifique que a o usuário vá ser capaz de desabilitar as restrições. Nada mais do que justo: julgar o usuário criminoso por antecipação não é adequado e, se ele for culpado por cópia não autorizada, poderá ser punido por isso, mas não por modificar o software.

Buscando exercer esse tipo de controle sobre o usuário, mas percebendo que as restrições acima seriam infração da licença e não querendo abrir mão do uso de diversos softwares sob a GPL, um fabricante de vídeo-cassetes digitais inventou uma técnica de usar o hardware para impor restrições ao usuário no que tange ao software: usando de assinaturas digitais, o hardware se recusa a rodar versões modificadas do software. Chamamos de Tivoização essa técnica de violação de copyleft, em desonrosa homenagem à empresa que a inventou. É óbvio que se trata de uma restrição adicional, seja à modificação, seja à execução de versões modificadas do código objeto, no contexto em que o distribuidor pretende que o usuário execute o programa. É certo que há quem não concorde que a GPLv2 já proíbe essas restrições adicionais, encontrando inclusive respaldo legal em algumas jurisdições. Porém, como isso fere o preceito básico de não impor restrições adicionais, tornando não-livre o software incluído no dispositivo, a GPLv3 esclarece que não só não se podem impor restrições através do hardware, como ainda exige que, juntamente ao código fonte, o fornecedor de hardware combinado com software GPL ofereça instruções para instalação e execução de versões modificadas, desde que a modificação seja possível.

Outra forma descoberta recentemente de tentar distribuir software GPL sem respeitar as liberdades dos usuários foi através da terceirização da distribuição ou da imposição de restrições. Novell e Microsoft fecharam um acordo em que uma entra com o software e a outra com uma licença restritiva de supostas patentes, licença esta que proíbe o usuário de distribuir o software. A GPLv3 esclarece que, em acordos como esse, quem controla a distribuição do software, mesmo que a distribuição seja efetivada por um terceirizado, não pode impor restrições adicionais, portanto a licença de patentes se torna não-restritiva e válida para todos. Por outro lado, quem terceiriza a imposição de restrições fica impedido de distribuir o software nessas condições. Exceção ao impedimento de distribuição foi feita a acordos selados antes da publicação desses esclarecimentos, em 28 de março de 2007, para permitir que a Novell cumpra sua parte no acordo e distribua, em nome da Microsoft, software sob a GPLv3, estendendo assim a todos a proteção de potenciais ataques de patentes.

Ou seja, do ponto de vista das tão debatidas "novas restrições" da GPLv3, fica claro que todas as novas exigências da GPLv3 estavam implícitas nos termos de "sem quaisquer restrições adicionais". Nada de novo. "Então pra que a nova licença?", alguns poderiam se perguntar.

Antes de mais nada, para remover qualquer dúvida sobre a impossibilidade de uso de qualquer dessas desculpas para impor restrições aos usuários do software. A ambigüidade poder dar margem para que tais restrições sejam aprovadas por um tribunal, num eventual processo judicial, traindo o objetivo da licença. A FSF, ao receber contribuições de código de inúmeros desenvolvedores, assumiu o compromisso contratual com cada um deles de zelar para que esse software não seja usado de maneira em que deixe de ser livre. Isso se soma à sua própria missão enquanto fundação, de defender as liberdades de usuários e desenvolvedores de software. Ao reduzir os riscos jurídicos de desrespeito às condições da licença, migrando tão cedo quanto possível todo e qualquer software sob sua tutela para uma licença que defenda com ainda mais clareza as liberdades dos usuários, ela cumpre sua missão.

Mas nem só de esclarecimentos aparentemente restritivos se fez a GPLv3. Há inúmeros avanços, inclusive no sentido de explicitamente relaxar exigências que já não fazem mais sentido.

Por exemplo, baixar código objeto licenciado sob a GPLv2 através de algumas redes P2P, em que quem recebe o arquivo grande também ajuda a distribuir pedaços dele para outros, pode ferir a licença se essa distribuição não acompanhar o código fonte correspondente. GPLv3 esclarece que a transmissão parcial que ocorre como parte do download através dessas redes não implica aceitação da licença, nem caracteriza distribuição sem código fonte, desde que quem disponibilizou o código objeto nessa rede tenha oferecido também os fontes correspondentes ou informação sobre como obtê-los.

Distribuir binários em mídia tangível (CD, DVD, etc), mas só oferecer os fontes para download na Internet, era tido como violação da GPLv2. A GPLv3 esclarece que isso é permitido. Distribuir binários para download num servidor A, com fontes em servidor B que não tenha o compromisso com o distribuidor A de manter os fontes enquanto o binário permanecer em A, é violação da GPLv2. A GPLv3 autoriza essa prática, mas deixando claro que isso não transfere a responsabilidade de oferecer os fontes para B. Se B remover os fontes, A é quem tem a obrigação de encontrá-los em outro local ou cessar a distribuição dos binários.

Uma dúvida comum de fabricantes de dispositivos com software GPL embutido era se a instalação do software em memória não modificável (ROM) seria infração da licença. A GPLv3 esclarece que isso é permitido, pois a restrição à modificação não é imposta pelo distribuidor, mas sim pela natureza da memória, pelo menos enquanto não houver evidência de que uma escolha de ROM seja apenas um artifício para impor restrições ao usuário.

A GPLv3 possibilita combinação com código sob a Licença Apache 2.0, esta incompatível com a GPLv2, e com a GNU Affero GPLv3, que exige a oferta dos fontes mesmo para usuários remotos do software, através da Internet.

Avanços em internacionalização foram alcançados através do uso de termos definidos na licença, sem conotação ou jurisprudência prévia, de modo a fugir da dependência de conceitos jurídicos dos EUA e buscar ter o mesmo efeito jurídico em todo o mundo. Advogados provavelmente considerarão a GPLv3 mais clara e familiar, em função do maior uso de legalês e da grande preocupação com esclarecimento de pontos ambíguos das versões anteriores. Os milhares de comentários públicos, assim como a ativa participação de comunidades e empresas desenvolvedoras e usuárias, ao longo de 17 meses, muito contribuíram para isso.

Advogados e seus clientes devem ainda apreciar a permissão para adicionar seus termos favoritos de ausência de garantia, cujas características variam muito de uma jurisdição para outra.

Para ainda mais segurança jurídica, a GPLv3 estabelece dois mecanismos de "perdão" para evitar a revogação definitiva da licença após infração acidental: a primeira infração, se corrigida em até 30 dias após notificação de um titular de direito autoral, restaura a licença. Além disso, alguém que infringia a licença mas que passe a cumpri-la por 60 dias e não receba notificação de qualquer titular de direito autoral do programa até o fim desse prazo, pode voltar a dormir tranqüilo, pois não mais perderá a licença pelas infrações passadas.

É certo que cautela e canja de galinha não fazem mal a ninguém, portanto algum receio com relação à licença até que seu entendimento esteja consolidado é justificável.

Mas temor só se justifica em quem venha a modificar e/ou distribuir software sob a GPLv3, mas esteja pensando ou agindo no sentido de restringir o exercício das quatro liberdades dos usuários no que tange a esse mesmo software. Se não despertasse esse tipo de temor, a GPL não estaria cumprindo seu objetivo.

Acusações de anti-comercialismo já se faziam sobre versões anteriores da GPL, há quase duas décadas, e a cada dia se comprovam mais infundadas. O espírito é garantir que o software permaneça livre para todos os seus usuários, inclusive para exploração comercial: respeitar as liberdades do próximo da mesma forma que as suas são respeitadas. Quem não compartilhar esse espírito é livre para não utilizar software sob a GPL. Ou melhor, é livre executá-lo e inspecioná-lo, mas não para modificá-lo nem distribuí-lo.

A GPLv3 dá um grande passo no sentido de garantir que ninguém que tenha participado do desenvolvimento do software GPLv3 que você venha a rodar, modificar ou distribuir possa impedi-lo de fazer essas coisas, nem mesmo se você descumprir acidentalmente a licença, desde que você não tente impedir outros usuários do mesmo software de fazer as mesmas coisas. É um aumento significativo à sua segurança jurídica, ainda mais se o seu negócio depende das liberdades de rodar, modificar e/ou distribuir o programa.


Copyright 2007 Alexandre Oliva

Permite-se distribuição, publicação e cópia literal da íntegra deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.

http://www.fsfla.org/svnwiki/blogs/lxo/pub/gplv3-novidades-longo