Permissões, condições e limitações em resumo
Condições
- Aviso de copyright e licençaAo distribuir, é preciso incluir uma cópia da licença e o aviso de direitos autorais.
- Indicar alteraçõesSe o original foi modificado, isso deve ser indicado.
- Divulgar o código-fonteAo distribuir, é preciso fornecer o código-fonte.
- Mesma licençaVersões modificadas e obras derivadas devem ser distribuídas sob a mesma licença (ou uma compatível).
Limitações
- Limitação de responsabilidadeDeclara expressamente que não há responsabilidade por danos.
- Sem garantiaDeclara expressamente que não oferece nenhuma garantia.
Classificação de permissões, condições e limitações: dados do choosealicense.com (GitHub, licença MIT).
Que licença é esta
A GPL (GNU General Public License) 3.0 foi publicada pela Free Software Foundation (FSF) em 29 de junho de 2007. Seu núcleo é o princípio do copyleft: qualquer pessoa pode usar, estudar, modificar e distribuir livremente, mas ao distribuir deve garantir a mesma liberdade a quem recebe. Se você distribuir um programa que inclua ou combine este código, deve fornecer todo o programa sob a GPL, com o código-fonte correspondente. GNU Bash, GIMP e GNU Emacs, entre outros, usam a GPL-3.0-or-later.
O que mudou em relação à GPL-2.0
- Concessão explícita de patentes (seção 11): os contribuidores concedem os direitos de patente necessários para suas contribuições.
- Informações de instalação (Installation Information): ao distribuir software GPL-3.0 dentro de um 'produto do usuário (User Product)', como um aparelho doméstico, é preciso fornecer também as informações para instalar software modificado nesse aparelho (chaves de assinatura etc.) (seção 6). Costuma-se chamar isso de 'anti-tivoização'.
- Prazo para sanar violações (seção 8): na primeira violação, os direitos são restabelecidos se ela for corrigida em até 30 dias após o aviso do titular. Na GPL-2.0, os direitos se extinguiam imediatamente com a violação.
- Compatibilidade ampliada: pode receber código Apache-2.0 e ser combinada com a AGPL-3.0 (seção 13).
O que cumprir ao distribuir
- Forneça todo o código-fonte correspondente (incluindo scripts de build) ou use um dos meios da seção 6, como uma oferta por escrito.
- Mantenha os avisos de copyright e licença e indique as alterações e a data (seção 5).
- Não imponha condições adicionais que restrinjam os direitos que a GPL dá a quem recebe (por exemplo, contratos que proíbam a redistribuição).
Equívocos comuns
- "Se usar código GPL, sempre tenho que publicar" — a obrigação surge ao distribuir (conveying). Usar só dentro da empresa ou rodar só em servidor não gera a obrigação de fornecer código-fonte da GPL-3.0. Para alcançar também o uso em rede, é preciso a AGPL-3.0.
- "Software GPL não pode ser vendido" — pode ser vendido. O que não se pode é impedir quem recebe de redistribuí-lo.
- "Meu programa que roda sobre um programa GPL também vira GPL" — programas que rodam separadamente ou se comunicam de forma padrão costumam ser vistos como um 'agregado'. Se há combinação ou não, as interpretações variam conforme a forma de vinculação e de troca de dados.
- "GPL-3.0 e GPL-2.0 são compatíveis" — se a GPL-2.0 for only, e não 'or later', não são (guia only vs or-later).
Como aplicar
Coloque o texto inalterado em LICENSE (ou, pela convenção GNU, COPYING) e o aviso oficial GNU no topo de cada arquivo-fonte. É nesse aviso que se define se vale o 'or later'. Os identificadores SPDX são GPL-3.0-only ou GPL-3.0-or-later (o simples GPL-3.0 é um identificador obsoleto no SPDX).
Quando faz sentido
Combina com aplicações, ferramentas e projetos comunitários em que você quer que as melhorias baseadas no seu código voltem para todos, em vez de escapar para produtos fechados. Para bibliotecas, considere também a LGPL-3.0, para que apps fechados possam usá-las.
Posso colocar código GPL-3.0 em outro projeto?
Avaliação geral para quando você pega código publicado sob esta licença e o distribui combinado com um projeto sob as licenças abaixo. Ver outras combinações no verificador de compatibilidade →
| Projeto de destino | Resultado | Observação |
|---|---|---|
| Software proprietário (comercial) | Não permitido | Todo o programa distribuído em conjunto precisaria ser publicado com o código-fonte sob a mesma licença GNU, então não é possível incluí-lo mantendo a licença do projeto. |
| MIT | Não permitido | Todo o programa distribuído em conjunto precisaria ser publicado com o código-fonte sob a mesma licença GNU, então não é possível incluí-lo mantendo a licença do projeto. |
| Apache-2.0 | Não permitido | Todo o programa distribuído em conjunto precisaria ser publicado com o código-fonte sob a mesma licença GNU, então não é possível incluí-lo mantendo a licença do projeto. |
| MPL-2.0 | Não permitido | Todo o programa distribuído em conjunto precisaria ser publicado com o código-fonte sob a mesma licença GNU, então não é possível incluí-lo mantendo a licença do projeto. |
| LGPL-2.1 | Permitido com condições | A obra combinada deve ser distribuída sob as condições da GPL-3.0. |
| LGPL-3.0 | Permitido com condições | A obra combinada deve ser distribuída sob as condições da GPL-3.0. |
| GPL-2.0 | Não permitido | Código na versão 3.0 não é compatível com as condições da GPL-2.0 (only) e não pode ser incluído. |
| AGPL-3.0 | Permitido | A GPL-3.0 e a AGPL-3.0 permitem a combinação pela seção 13 de cada uma. Na obra combinada, a obrigação de fornecer o código-fonte pela rede continua valendo para a parte AGPL. |
O conteúdo deste site é informação geral e não constitui aconselhamento jurídico. Para decisões reais de distribuição, contratos ou disputas, consulte um advogado ou outro profissional.