Esta tradução pode não refletir as alterações feitas desde 2022-01-02 ao original em Inglês.

Você deveria dar uma olhada nas alterações. Por favor, veja o README de traduções para informações sobre a manutenção de traduções a este artigo.

Um guia rápido para a GPLv3

[Logo da GPLv3]

por Brett Smith

[Esse artigo também está disponível nos formatos PDF e reStructuredText.]

Após um ano e meio de consulta pública, milhares de comentários e quatro rascunhos, a versão 3 da Licença Pública Geral GNU (GPLv3) foi finalmente publicada em 29 de junho de 2007. Embora tenha havido muita discussão sobre a licença desde que o primeiro rascunho apareceu, muitas pessoas não falaram sobre os benefícios que ela fornece aos desenvolvedores. Publicamos este guia para preencher essa lacuna. Começaremos com uma breve atualização sobre software livre, copyleft e os objetivos da GPL. Em seguida, analisaremos as principais mudanças na licença para ver como avançam esses objetivos e beneficiam os desenvolvedores.

Os fundamentos da GPL

Ninguém deve ser restrito pelo software que eles usam. Existem quatro liberdades que todos os usuários devem ter:

  • a liberdade de usar o software para qualquer finalidade,
  • a liberdade de mudar o software de acordo com suas necessidades,
  • a liberdade de compartilhar o software com seus amigos e vizinhos e
  • a liberdade de compartilhar as mudanças que você faz.

Quando um programa oferece aos usuários todas essas quatro liberdades, nós o chamamos de software livre (“free software”).

Os desenvolvedores que escrevem software podem lançá-lo nos termos da GNU GPL. Quando o fizerem, será software livre e permanecerá software livre, não importa quem mude ou distribua o programa. Chamamos isso de copyleft: o software é protegido por direitos autorais, mas em vez de usar esses direitos para restringir usuários como o software privativo faz, usamos eles para garantir que cada usuário tenha liberdade.

Atualizamos a GPL para proteger seu copyleft de ser prejudicado por desenvolvimentos legais ou tecnológicos. A versão mais recente protege os usuários de três ameaças recentes:

  • Tivoização (“Tivoization”): algumas empresas criaram vários tipos diferentes de dispositivos que executam o software licenciado sob GPL e, em seguida, manipularam o hardware para que eles possam mudar o software que está sendo executado, mas você não pode. Se um dispositivo pode executar software arbitrário, é um computador de uso geral, e seu dono deve controlar o que faz. Quando um dispositivo o impede de fazer isso, chamamos isso de tivoização.
  • Leis que proíbem o software livre: Legislação como o Lei dos Direitos Autorais do Milênio Digital (“Digital Millennium Copyright Act”) e a Diretiva de Direitos Autorais da União Europeia (“European Union Copyright Directive”) tornam crime criar ou compartilhar software que possa quebrar o DRM (“Gestão Digital de Restrições” ou “Digital Restrictions Management”, veja abaixo). Essas leis não devem interferir com os direitos que a GPL lhe concede.
  • Ofertas de patentes discriminatórias: a Microsoft recentemente começou a dizer às pessoas que não processariam os usuários de software livre por infração de patente – desde que você obtenha o software de um fornecedor que esteja pagando à Microsoft pelo privilégio. Em última análise, a Microsoft está tentando coletar royalties pelo uso de software livre, o que interfere com a liberdade dos usuários. Nenhuma empresa deve ser capaz de fazer isso.

A versão 3 também possui uma série de melhorias para tornar a licença mais fácil para todos usarem e entenderem. Mas mesmo com todas essas mudanças, a GPLv3 não é uma nova licença radical; em vez disso, é uma evolução da versão anterior. Embora muito do texto tenha mudado, muito disso simplesmente esclarece o que a GPLv2 disse. Com isso em mente, revisemos as principais mudanças na GPLv3 e falamos sobre como elas melhoram a licença para usuários e desenvolvedores.

Neutralizando leis que proíbem software livre – mas não proibindo DRM

Você provavelmente está familiarizado com o Gestão Digital de Restrições (DRM) em DVDs e outras mídias. Você provavelmente também está familiarizado com as leis que tornam ilegal escrever suas próprias ferramentas para ignorar essas restrições, como o Lei dos Direitos Autorais do Milênio Digital e a Diretiva de Direitos Autorais da União Europeia. Ninguém deve ser capaz de lhe impedir de escrever qualquer código que você deseja e GPLv3 protege esse direito para você.

É sempre possível usar código sob GPL para escrever software que implementa DRM. No entanto, se alguém fizer isso com o código protegido pela GPLv3, a seção 3 diz que o sistema não irá contar como uma medida de “proteção” tecnológica efetiva. Isso significa que se você quebrar o DRM, você será livre para distribuir seu próprio software que faz isso, e você não será ameaçado pela DMCA ou leis similares.

Como de costume, a GNU GPL não restringe o que as pessoas fazem no software; simplesmente os impede de restringir os outros.

Protegendo seu direito de consertar

Tivoização é uma tentativa perigosa de reduzir a liberdade dos usuários: o direito de modificar seu software ficará sem sentido se nenhum dos seus computadores o deixar fazê-lo. A GPLv3 interrompe a tivoização, exigindo que o distribuidor lhe forneça qualquer informação ou dados necessários para instalar o software modificado no dispositivo. Isso pode ser tão simples como um conjunto de instruções, ou pode incluir dados especiais, como chaves criptográficas ou informações sobre como ignorar uma verificação de integridade no hardware. Dependerá de como o hardware foi projetado – mas não importa quais informações você precisa, você deve ser capaz de obtê-lo.

Este requisito tem um escopo limitado. Os distribuidores ainda estão autorizados a usar chaves criptográficas para qualquer finalidade, e eles só serão obrigados a divulgar uma chave se você precisar dela para modificar o software sob a GPL no dispositivo que lhe deram. O próprio Projeto GNU usa o GnuPG para comprovar a integridade de todo o software em seu site FTP e medidas como essas são benéficas para os usuários. A GPLv3 não impede as pessoas de usar criptografia; não queremos isso. Isso impede as pessoas de tirar os direitos que a licença lhe fornece – seja através de leis de patentes, tecnologia ou qualquer outro meio.

Proteção mais forte contra ameaças de patentes

Nos 17 anos desde que a GPLv2 foi publicada, a paisagem de patentes dos softwares mudou consideravelmente e as licenças de software livre desenvolveram novas estratégias para abordá-las. A GPLv3 reflete essas mudanças também. Sempre que alguém transmite software coberto pela GPLv3 que eles tenham escrito ou modificado, eles devem fornecer a cada destinatário todas as licenças de patente necessárias para exercer os direitos que a GPL lhes dá. Além disso, se qualquer licenciado tentar usar um processo de patente para impedir que outro usuário exerça esses direitos, sua licença será terminada.

O que isso significa para usuários e desenvolvedores é que eles poderão trabalhar com o software coberto com GPLv3 sem se preocupar que um contribuidor desesperado tentará processá-los por infração de patente mais tarde. Com essas mudanças, a GPLv3 oferece aos seus usuários mais defesas contra a agressão de patentes do que qualquer outra licença de software livre.

Esclarecendo a compatibilidade da licença

Se você encontrou um código e queria incorporá-lo em um projeto sob GPL, a GPLv2 disse que a licença no outro código não tinha permissão para ter restrições que ainda não estavam na GPLv2. Sendo este o caso, dizíamos que a licença era compatível com GPL.

No entanto, algumas licenças possuíam requisitos que não eram realmente restritivos, porque eram tão fáceis de cumprir. Por exemplo, algumas licenças dizem que não lhe dão permissão para usar certas marcas registradas. Essa não é realmente uma restrição adicional: se essa cláusula não existisse, você ainda não teria permissão para usar a marca registrada. Nós sempre dissemos que essas licenças eram compatíveis com a GPLv2 também.

Agora, a GPLv3 fornece explicitamente a todos a permissão para usar um código que tenha requisitos como este. Esses novos termos devem ajudar a esclarecer os mal-entendidos sobre quais licenças são compatíveis com GPL, por que isso e o que você pode fazer com o código compatível com GPL.

Novas licenças compatíveis

Além de esclarecer as regras sobre licenças que já são compatíveis com GPL, a GPLv3 também é recém-compatível com algumas outras licenças. A Licença Apache 2.0 é um exemplo excelente. Muitos desses softwares livres estão disponíveis sob esta licença, com comunidades fortes que o cercam. Esperamos que esta mudança na GPLv3 promova mais cooperação e compartilhamento na comunidade de software livre. O gráfico abaixo ajuda a ilustrar algumas relações de compatibilidade comuns entre diferentes licenças de software livre:

Um gráfico que ilustra relacionamentos de compatibilidade entre diferentes
licenças de software livre. Para detalhes, veja a página da lista de
licenças da FSF.

As setas apontando de uma licença para outra indicam que a primeira licença é compatível com a segunda. Isso é verdade mesmo se você seguir várias setas para obter uma licença para outra; então, por exemplo, a licença ISC é compatível com a GPLv3. A GPLv2 é compatível com GPLv3 se o programa permite que você escolha “qualquer versão posterior” da GPL, que é o caso da maioria dos softwares lançados sob esta licença. Este diagrama não é abrangente (veja nossa página de licenças para obter uma lista mais completa de licenças compatíveis com GPLv2 e GPLv3), mas ilustra claramente que a GPLv3 é compatível com quase tudo que a GPLv2 é, e depois alguns.

A GNU Affero GPL versão 3 também incorporou a reflexão. A Affero GPL original foi projetada para garantir que todos os usuários de um aplicativo web possam receber seu fonte. A GNU Affero GPL versão 3 amplia esse objetivo: é aplicável a todo software interativo de rede, então também servirá bem para programas como servidores de jogos. A provisão adicional também é mais flexível, de modo que, se alguém usa fonte sob AGPL em um aplicativo sem uma interface de rede, eles só terão que fornecer fonte do mesma maneira que a GPL sempre exigiu. Ao tornar essas duas licenças compatíveis, os desenvolvedores de software interativo de rede poderão fortalecer seus copyleft enquanto ainda estão construindo sobre o corpo maduro de código sob GPL disponível para eles.

Mais manerias para os desenvolvedores fornecerem o fonte

Um dos requisitos fundamentais da GPL é que quando você distribui código objeto para usuários, você também deve fornecer uma maneira de obter o fonte. A GPLv2 deu-lhe algumas maneiras de fazer isso e a GPLv3 mantém intactos alguns esclarecimentos. Ela também oferece novas maneiras de fornecer fonte quando você transmite o código objeto através de uma rede. Por exemplo, quando você hospeda um código objeto em um servidor web ou FTP, você pode simplesmente fornecer instruções que dizem aos visitantes como obter o fonte de um servidor de terceiros. Graças a esta nova opção, o cumprimento deste requisito deve ser mais fácil para muitos distribuidores pequenos que apenas fazem algumas mudanças em grandes corpos de fontes.

A nova licença também facilita o transporte de código objeto via BitTorrent. Primeiro, as pessoas que estão apenas baixando ou semeando o torrent estão isentas dos requisitos da licença para transmitir o software. Então, quem inicia o torrent pode fornecer o fonte simplesmente dizendo a outros usuários torrent onde está disponível em um servidor de rede pública.

Essas novas opções ajudam a manter a GPL em linha com os padrões da comunidade para oferecer fonte, sem tornar mais difícil para os usuários obter.

Menos fonte para distribuir: exceção de novas bibliotecas de sistema

Ambas as versões da GPL exigem que você forneça todo o fonte necessário para criar o software, incluindo bibliotecas de apoio, scripts de compilação, e assim por diante. Elas também desenham a linha nas Bibliotecas de Sistema: você não precisa fornecer o fonte de determinados componentes principais do sistema operacional, como a biblioteca C.

A GPLv3 ajustou a definição de Biblioteca de Sistema para incluir o software que pode não vir diretamente com o sistema operacional, mas que todos os usuários do software podem razoavelmente esperar. Por exemplo, agora também inclui as bibliotecas padrão de linguagens de programação comuns, como Python e Ruby.

A nova definição também deixa claro que você pode combinar o software sob GPL com Bibliotecas de Sistema incompatíveis com a GPL, como a biblioteca C do OpenSolaris, e distribuí-los juntos. Essas mudanças tornarão a vida mais fácil para os distribuidores de software livre que desejam fornecer essas combinações aos seus usuários.

Uma licença global

GPLv2 fala muito sobre “distribution” (distribuição) – quando você compartilha o programa com outra pessoa, você está distribuindo-o. A licença nunca diz qual é a distribuição, porque o termo foi emprestado da lei de direitos autorais dos Estados Unidos. Esperávamos que os juízes fossem procurar lá pela definição. No entanto, mais tarde descobrimos que as leis de direitos autorais em outros países usam a mesma palavra, mas dão significados diferentes. Por isso, um juiz em tal país pode analisar a GPLv2 de forma diferente do que um juiz nos Estados Unidos.

GPLv3 usa um novo termo, “convey” (transmitir) e fornece uma definição para esse termo. “Convey” tem o mesmo significado que pretendemos para “distribute” (distribuir), mas agora que isso é explicado diretamente na licença, deve ser fácil para as pessoas em todos os lugares entenderem o que queríamos dizer. Existem outras alterações menores em toda a licença, que também ajudarão a garantir sua aplicação em todo o mundo.

Quando as regras são quebradas: um caminho suave para a conformidade

Sob a GPLv2, se você violou a licença de forma alguma, seus direitos foram perdidos automaticamente e permanentemente. A única maneira de recuperá-los era peticionar ao detentor dos direitos autorais. Embora uma forte defesa contra as violações seja valiosa, essa política poderia causar muita dor de cabeça quando alguém acidentalmente foi de encontro às regras. Pedir a todos os detentores de direitos autorais para uma restauração formal da licença pode ser trabalhoso e oneroso: uma distribuição típica GNU/Linux se baseia no trabalho de milhares.

A GPLv3 oferece um adiamento por bom comportamento: se você violar a licença, você receberá seus direitos de volta uma vez interrompida a violação, a menos que um detentor de direitos autorais entre em contato com você dentro de 60 dias. Depois de receber esse aviso, você pode ter seus direitos totalmente restaurados se você for um violador pela primeira vez e corrigir a violação dentro de 30 dias. Caso contrário, você pode resolver a questão caso a caso com os detentores de direitos autorais que entraram em contato com você e seus direitos serão restaurados depois.

A conformidade da GPL sempre foi a principal prioridade do Laboratório de Conformidade da FSF (FSF Compliance Lab) e outros grupos que aplicam a licença em todo o mundo. Essas mudanças asseguram que a conformidade continua a ser a principal prioridade para os agentes responsáveis pela aplicação e dá incentivos aos incumprimentos para cumprir.

A melhor e mais recente

Algumas dessas mudanças provavelmente parecem menos importantes para você do que outras. Tudo bem. Todo projeto é diferente e precisa de coisas diferentes de sua licença. Mas as probabilidades são de que várias dessas melhorias serão de grande ajuda para você e para o seu trabalho.

E, como um todo, todas essas atualizações representam algo mais: fizemos um copyleft melhor. Ela faz mais para proteger a liberdade dos usuários, mas também permite uma maior cooperação na comunidade de software livre. Mas atualizar a licença é apenas parte do trabalho: para que as pessoas obtenham os benefícios que a GPLv3 oferece, os desenvolvedores também precisam usá-la em seus projetos. Ao lançar seu próprio software sob a nova licença, todos os que lidam com ela – os usuários, outros desenvolvedores, distribuidores e até advogados – se beneficiarão. Esperamos que use a GPLv3 para sua próxima versão.

Se você quiser saber mais sobre como atualizar seu projeto para GPLv3, o Laboratório de Conformidade da FSF ficaria feliz em ajudá-lo. No nosso site, você pode encontrar instruções básicas para usar a licença e um FAQ abordando preocupações comuns que as pessoas têm sobre isso. Se a sua situação for mais complicada do que isso, contacte-nos e faremos o que pudermos para ajudá-lo com a sua transição. Juntos, podemos ajudar a proteger a liberdade de todos os usuários.