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-2.0 é a segunda versão da GPL, publicada pela FSF em junho de 1991. O princípio de copyleft é o mesmo da GPL-3.0: se você distribuir um programa que inclua ou combine este código, deve fornecer o conjunto sob a GPL-2.0, com o código-fonte. O kernel Linux (GPL-2.0-only, com exceção de syscall em alguns headers), o Git (GPL-2.0-only) e o WordPress (GPL-2.0-or-later) são exemplos típicos.
only e or-later
Projetos sob GPL-2.0 normalmente escolhem uma de duas opções.
- GPL-2.0-only: só pode ser distribuído sob as condições desta versão. O kernel Linux segue esta forma e por isso não pode migrar para a GPL-3.0.
- GPL-2.0-or-later: quem recebe pode escolher a 2.0 ou uma versão posterior publicada pela FSF (3.0 etc.). É a forma do aviso recomendado no texto da GPL.
A seção 9 do texto determina que, se o programa não especificar número de versão, pode-se escolher qualquer versão publicada pela FSF. Por isso é importante deixar claro qual das opções vale, no cabeçalho do arquivo ou no identificador SPDX (guia).
O que cumprir ao distribuir
- Forneça o código-fonte junto ou por meio de uma oferta por escrito válida por pelo menos 3 anos (seção 3).
- Mantenha os avisos de copyright, a isenção de garantia e a cópia da licença (seção 1).
- Indique nos arquivos modificados as alterações e a data (seção 2(a)).
- Não é permitido impor restrições adicionais aos direitos de quem recebe (seção 6). Se um acordo de patentes, por exemplo, impedir o cumprimento das condições da GPL, a própria distribuição fica vedada (seção 7).
Equívocos comuns
- "GPL-2.0 e GPL-3.0 são a mesma GPL, então posso misturar" — código GPL-2.0-only e código GPL-3.0 não podem ser combinados e distribuídos. Um dos dois precisa ser 'or later'.
- "Também posso incluir código Apache-2.0" — a FSF considera a Apache-2.0 incompatível com a GPL-2.0. Em projetos 'or later', é possível resolver distribuindo sob a GPL-3.0.
- "Como não há cláusula de patentes, posso exercer patentes" — não há concessão explícita de patentes, mas a seção 7 e o preâmbulo têm o propósito de impedir distribuições que restrinjam a liberdade por meio de patentes. As interpretações divergem; se patentes forem importantes, considere a GPL-3.0.
Como aplicar
Mantenha o texto inalterado em LICENSE ou COPYING e coloque o aviso oficial em cada arquivo. Mantendo a frase 'either version 2 of the License, or (at your option) any later version' do aviso, fica or-later; removendo-a, fica only. Os identificadores SPDX são GPL-2.0-only / GPL-2.0-or-later.
Quando faz sentido
É necessária em projetos que trocam código com o ecossistema GPL-2.0-only, como módulos do kernel Linux. Em projetos novos cujo objetivo seja o copyleft forte, a GPL-3.0, com cláusula de patentes e compatibilidade aprimoradas, ou a 'GPL-2.0-or-later' são mais flexíveis.
Posso colocar código GPL-2.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 | Como a LGPL-2.1 permite a conversão para a GPL, só é possível se a obra combinada for distribuída como GPL-2.0-only. |
| LGPL-3.0 | Não permitido | Código GPL-2.0-only não é compatível com as condições adicionais da GPL-3.0, LGPL-3.0 e AGPL-3.0. |
| GPL-3.0 | Não permitido | Código GPL-2.0-only não é compatível com as condições adicionais da GPL-3.0, LGPL-3.0 e AGPL-3.0. |
| AGPL-3.0 | Não permitido | Código GPL-2.0-only não é compatível com as condições adicionais da GPL-3.0, LGPL-3.0 e AGPL-3.0. |
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.