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.
- Uso em rede conta como distribuiçãoUsuários que interagem pela rede também têm direito de receber 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 AGPL-3.0 foi publicada pela FSF em novembro de 2007. O texto é quase igual ao da GPL-3.0; a diferença é a seção 13, 'Remote Network Interaction'. Na GPL, a obrigação de fornecer o código-fonte só surge ao 'distribuir' o programa, então um serviço web que roda software GPL modificado apenas em servidor não precisa publicar o código. É a chamada 'brecha do SaaS'. A AGPL fecha essa brecha. Mastodon, o servidor do Nextcloud e o Grafana (que migrou da Apache-2.0 em 2021) usam a AGPL-3.0.
O que a seção 13 exige
Se você modificou o programa, deve oferecer de forma visível, a todos os usuários que interagem remotamente com essa versão pela rede de computadores, a oportunidade de receber o código-fonte correspondente. Normalmente isso é cumprido com um link de 'código-fonte' na interface do serviço.
O que cumprir ao distribuir
Todas as obrigações da GPL-3.0 (fornecer o código-fonte, manter avisos, indicar alterações, mesma licença, proibição de restrições adicionais) continuam valendo, e a seção 13 se soma a elas.
Equívocos comuns
- "Só de usar software AGPL no servidor preciso publicar todo o meu serviço" — a seção 13 exige o código-fonte do programa modificado quando ele é oferecido pela rede. A interpretação comum é que usar um banco de dados AGPL não modificado em um processo separado dificilmente gera obrigações para toda a sua aplicação, mas a avaliação pode mudar conforme a forma de combinação.
- "A AGPL proíbe o uso comercial" — não proíbe. Pode ser usada em serviços comerciais, desde que as condições sejam cumpridas.
- "A AGPL não é open source" — é uma licença open source aprovada pela OSI e uma licença de software livre reconhecida pela FSF. A confusão vem do caso do MongoDB, que trocou a AGPL pela SSPL em 2018, mas a SSPL é outra licença, que não obteve aprovação da OSI.
- "Não dá para misturar com código GPL" — a GPL-3.0 e a AGPL-3.0 permitem a combinação pela seção 13 de cada uma. Na obra combinada, a cláusula de rede da parte AGPL continua valendo.
Como aplicar
Mantenha o texto inalterado em LICENSE e coloque o aviso oficial da AGPL em cada arquivo. Em um serviço web, incluir no código um recurso que exiba ao usuário um link para o repositório do código-fonte facilita que quem opera versões modificadas também cumpra a seção 13. O identificador SPDX é AGPL-3.0-only ou AGPL-3.0-or-later.
Quando faz sentido
É usada principalmente para publicar software que roda em servidor (aplicações web, ferramentas de colaboração, plataformas de análise) quando se quer impedir que outras empresas operem versões modificadas como serviços fechados. Também é escolha frequente no modelo de licença dupla com uma licença comercial.
Posso colocar código AGPL-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. 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. |
| LGPL-3.0 | Permitido com condições | A obra combinada deve ser distribuída sob as condições da GPL-3.0. 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. |
| 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 com condições | 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.