In this article
A licença AGPL é a escolha certa para seus projetos de código aberto?
É comum desenvolvedores acharem que os requisitos de licenciamento de software são responsabilidade exclusiva do departamento jurídico. Com tantos componentes de código aberto disponíveis e todas as implicações dos requisitos de licenciamento, todo desenvolvedor deve ter pelo menos uma compreensão geral dessas licenças e de como cada uma pode afetar seu software.
Considerando as implicações que um projeto pode enfrentar no futuro, toda equipe precisa revisar os requisitos de licença do software. Antes de lançar qualquer software atualizado ou modificado, as organizações precisam realizar uma auditoria completa de conformidade de licenças. Fazer isso em todas as etapas do projeto pode evitar problemas no futuro. Uma licença que as equipes devem conhecer é a Licença Pública Geral Affero GNU (AGPL).
O que é AGPL?
Antes de falar sobre a licença AGPL, é importante entender sua origem. Em 1988, Richard Stallman criou sua Licença Pública Geral (GPL) para garantir o direito dos criadores de manter seu software sempre como código aberto. Atualmente, a GPL está na terceira versão (GPLv3), após problemas no texto anterior terem criado algumas brechas.
Como parte da GPLv3, a Free Software Foundation (FSF) apresentou dois tipos adicionais de licença: a Licença Pública Geral Menor (LGPLv3) e a Licença Pública Geral Affero (AGPLv3). A versão AGPL da Licença Pública Geral busca garantir plenamente os direitos de copyleft em todo software que a utiliza.
Quais são as vantagens e desvantagens da licença AGPL?
Na licença GPL padrão, a cláusula de reciprocidade entra em vigor sempre que um desenvolvedor lança um software. O princípio do copyleft busca disponibilizar todo o código-fonte para a comunidade de código aberto. Com a AGPL, as equipes de software podem garantir que todas as alterações na base de código sejam disponibilizadas ao público, inclusive em aplicações do lado do servidor.
A escolha entre AGPL 3.0, LGPL 3.0 ou GPL 3.0 padrão depende do objetivo final do software. Licenças copyleft são ideais para desenvolvedores que querem garantir que todas as alterações futuras sejam disponibilizadas à comunidade. Já licenças permissivas, como a licença MIT, dão mais liberdade para tornar as modificações proprietárias no futuro.
Algumas vantagens da AGPL:
Leva as equipes a definir sua filosofia de licenciamento no início do projeto e a manter essa decisão.
Garante que qualquer trecho de código desenvolvido pela comunidade de código aberto continue disponível e impede que outras pessoas reempacotem e vendam software de código aberto.
As desvantagens da AGPL:
Pode afastar algumas equipes de pacotes de código aberto, pois exige que todo o código relacionado também seja licenciado sob a GPL.
Algumas pessoas a consideram excessiva, pois qualquer módulo de um pacote dependente que use AGPL sujeita todo o restante do software a restrições semelhantes.
Elimina a possibilidade de as equipes tornarem o software proprietário no futuro.
Empresas podem usar software AGPL?
Embora qualquer pessoa possa usar a licença AGPL V3, ela não é popular entre as organizações. As restrições impostas às versões subsequentes do software AGPL dificultam sua adoção quando há interesses comerciais concorrentes.
A maioria das empresas prefere licenças permissivas, que permitem usar componentes de código aberto e ainda transformar sua versão do software em um produto comercial no futuro. Isso contrasta com o uso de uma licença copyleft como a AGPL.
O que é uma licença copyleft?
As licenças copyleft colocam em prática um princípio defendido inicialmente por Stallman em seu Manifesto GNU. Na década de 1960, era comum que desenvolvedores compartilhassem abertamente todo o código-fonte que pudesse ajudar outras pessoas, criando um senso de comunidade e colaboração. Na década de 1980, essa tendência perdeu força quando as organizações começaram a aplicar direitos autorais ao código-fonte. O copyleft é o oposto do copyright: garante o direito de usar, modificar e redistribuir qualquer código-fonte que tenha uma licença copyleft, como a GPL.
É possível usar AGPL em aplicações de código fechado?
A licença AGPL V3 é uma licença copyleft forte, que exige que todos os componentes derivados de qualquer trabalho anterior sejam de código aberto. Ela fecha a brecha relativa ao lado do servidor, segundo a qual o código-fonte não precisava ser disponibilizado quando o software não era lançado. A AGPL define como usuário qualquer pessoa que acessa uma aplicação pública do lado do servidor. Para aplicações que ficam dentro da rede da organização, a AGPL não exige a divulgação do código-fonte.
A licença AGPLv3 é compatível com a GPLv3?
Quem combina um trabalho sob licença GPLv3 com software AGPL pode manter os direitos da licença GPLv3 sobre o trabalho não modificado. Qualquer versão modificada do trabalho GPLv3 deverá usar a licença AGPLv3.
Por causa de sua abordagem radical de licenciamento de código aberto, a AGPL é usada atualmente em menos de 1% dos projetos de código aberto.
Gerencie a conformidade de licenças com eficiência usando a Snyk
A Snyk pode ajudar equipes que precisam manter um controle eficaz sobre a conformidade de licenças. Nossa ferramenta de gerenciamento de licenças, desenvolvida para priorizar quem programa, oferece uma visão clara dos pacotes e das dependências na base de código. Ao ajudar desenvolvedores a entender e gerenciar a conformidade de licenças, a ferramenta ajuda a evitar problemas inesperados no futuro. Com a solução de gerenciamento de conformidade de licenças da Snyk, é possível garantir que todos os componentes derivados de trabalhos de código aberto sejam compatíveis com os requisitos de licenciamento da empresa.
Descubra como a Snyk pode ajudar sua equipe a gerenciar licenças AGPL versão 3:agende uma demonstração ou comece seu teste grátis hoje mesmo.
Comece a resolver desafios de capture the flag
Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.