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.
- Divulgar o código-fonteAo distribuir, é preciso fornecer o código-fonte.
- Indicar alteraçõesSe o original foi modificado, isso deve ser indicado.
- Mesma licença (por biblioteca)Modificações na biblioteca devem ficar sob a mesma licença, mas isso pode não se aplicar aos programas que a utilizam.
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 LGPL (GNU Lesser General Public License) 3.0 é uma licença para bibliotecas publicada no mesmo dia que a GPL-3.0 (29 de junho de 2007). Não é um documento completo e independente, mas a GPL-3.0 com permissões adicionais, e por isso o texto começa dizendo que 'incorpora os termos da versão 3 da GPL, complementados pelas permissões adicionais a seguir'. A principal permissão adicional é poder distribuir nas condições que você quiser um programa que usa a biblioteca (Combined Work). As partes modificadas da própria biblioteca continuam tendo de ser divulgadas sob a LGPL (ou a GPL). O Qt (à escolha: LGPL-3.0, GPL ou comercial) é um exemplo típico.
Ao distribuir um programa que usa a biblioteca (seção 4)
- Informe de forma visível que o programa usa uma biblioteca LGPL e que ela está sob a LGPL.
- Forneça cópias da GPL-3.0 e da LGPL-3.0.
- Permita que o usuário substitua a biblioteca por uma versão modificada. Em geral, a vinculação dinâmica (biblioteca compartilhada) resolve; com vinculação estática, é preciso fornecer arquivos objeto que permitam revincular.
- Não é permitido impor condições que proíbam a engenharia reversa para depurar essas modificações.
- Forneça o código-fonte correspondente da parte da biblioteca e, se for um produto do usuário, também as informações de instalação da seção 6 da GPL-3.0.
Equívocos comuns
- "Se usar uma biblioteca LGPL, tenho que publicar o código do app" — não. Cumprindo as condições acima, o app pode continuar fechado. A obrigação de divulgação recai sobre as modificações da própria biblioteca.
- "Vinculação estática é proibida" — não é proibida. Mas é trabalhosa, porque é preciso fornecer arquivos objeto que permitam ao usuário substituir a biblioteca e revincular.
- "A LGPL-3.0 pode ser usada em projetos GPL-2.0" — não é compatível com a GPL-2.0-only. Para combinar, o projeto precisa poder ser distribuído sob a GPL-3.0.
Como aplicar
Por convenção, colocam-se juntos o texto da GPL-3.0 em COPYING e o da LGPL-3.0 em COPYING.LESSER (o gerador fornece os dois arquivos). Em cada arquivo-fonte, usa-se o aviso GNU trocando 'General Public License' por 'Lesser General Public License'. O identificador SPDX é LGPL-3.0-only ou LGPL-3.0-or-later.
Quando faz sentido
Combina com bibliotecas que você quer ver amplamente usadas, inclusive em apps fechados, mas cujas melhorias na própria biblioteca devem ser divulgadas. Se quiser um copyleft fraco mais simples, por arquivo, compare também com a MPL-2.0. A comparação está no guia Permissiva vs copyleft.
Posso colocar código LGPL-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) | Permitido com condições | É possível vincular (link) e usar como biblioteca, mas o usuário deve poder substituir e revincular a parte LGPL, e o código-fonte da parte LGPL deve ser fornecido. Se você copiar e misturar o código, toda a obra combinada passa a seguir as condições da (L)GPL. |
| MIT | Permitido com condições | É possível vincular (link) e usar como biblioteca, mas o usuário deve poder substituir e revincular a parte LGPL, e o código-fonte da parte LGPL deve ser fornecido. Se você copiar e misturar o código, toda a obra combinada passa a seguir as condições da (L)GPL. |
| Apache-2.0 | Permitido com condições | É possível vincular (link) e usar como biblioteca, mas o usuário deve poder substituir e revincular a parte LGPL, e o código-fonte da parte LGPL deve ser fornecido. Se você copiar e misturar o código, toda a obra combinada passa a seguir as condições da (L)GPL. |
| MPL-2.0 | Permitido com condições | É possível vincular (link) e usar como biblioteca, mas o usuário deve poder substituir e revincular a parte LGPL, e o código-fonte da parte LGPL deve ser fornecido. Se você copiar e misturar o código, toda a obra combinada passa a seguir as condições da (L)GPL. |
| LGPL-2.1 | 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. |
| GPL-3.0 | Permitido | A LGPL-3.0 é a GPL-3.0 com permissões adicionais, então em uma obra combinada GPL-3.0 basta ignorar as permissões adicionais. |
| AGPL-3.0 | Permitido | A LGPL-3.0 é a GPL-3.0 com permissões adicionais, então em uma obra combinada GPL-3.0 basta ignorar as permissões adicionais. 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.