O que diabos é AGPL?

A menos que você tenha passado os últimos dez anos preso em uma caverna em um planeta distante com os olhos e ouvidos vendados, deve pelo menos já ter ouvido falar da General Public License, a famigerada GPL. Ela (ainda) deve ser a licença mais usada no mundo para distribuir software livre e suas condições são bastante simples:

  1. Você tem acesso ao código-fonte do programa que está executando e pode fazer basicamente qualquer coisa com ele;
  2. Você pode inclusive modificar o programa, mas se quiser fazer isso precisa distribuí-lo sob os mesmos termos.

O sistema é bem elegante: você pode modificar os programas que recebe e/ou redistribuí-los sem modificação, mas deve oferecer a quem receber o programa de você os mesmos direitos que você recebeu. Isso garante que toda melhoria esteja disponível para todos os interessados e acaba criando comunidades em torno de uma peça de software. Claro que o texto completo da licença é bastante extenso, afinal de contas precisa incluir todo o advoguês para cobrir os casos limite e garantir que ninguém perca nenhum desses direitos no meio do caminho, mas a idéia é basicamente esta.

Porém há um detalhe bastante sutil neste esquema todo. Com a GPL, as pessoas precisam ter acesso ao código-fonte dos programas que estão executando. No caso de programas acessados através de uma interface de rede qualquer quem executa o código é uma máquina remota. Os usuários que acessam a aplicação de outras máquinas numa rede não podem ver o código-fonte e o dono do servidor pode modificar o programa o quanto quiser sem precisar distribuir o código-fonte. Afinal de contas, tecnicamente é só ele e mais ninguém que executa o programa. É completamente legal, por exemplo, que alguém baixe a versão 0.6.10 do Motiro, faça algumas modificações locais e sirva a aplicação para quem quiser usá-la sem ver o código-fonte correspondente.

As aplicações web, como o Motiro, são certamente o exemplo mais óbvio de onde este detalhe pode ser explorado para subverter as intenções iniciais do autor e, como parece que tudo atualmente está indo parar na web, ele ficou bastante evidente. Também é importante notar que é bem possível que o autor realmente quisesse deliberadamente permitir este uso, mas vou deixar esta discussão para outro dia. No caso do autor que quer que todos os usuários possam estudar e contribuir com seu programa, o universo de colaboradores pode ser bastante reduzido se forem considerados usuários apenas os donos dos servidores.

Colocando de uma forma bastante grosseira (e abrindo espaço para quem quiser corrigir), a GPL considera que os usuários são as pessoas que detém as máquinas que executam os programas. Neste sentido, os usuários têm todos os seus direitos, inclusive o acesso ao código-fonte, garantidos. Porém, no caso das aplicações web, as pessoas que realmente usam os sistemas (tipicamente através de seus navegadores) não têm nenhum desses direitos.

Num mundo repleto de processamento distribuído onde a maioria das pessoas não sabe exatamente que computador está efetivamente executando os programas que elas usam, a distinção entre executores e usuários deixa de fazer tanto sentido. A GNU Affero General Public License é uma licença com texto baseado na GPL original (dê uma olhada no texto completo para saber os detalhes, eu não sou advogado) que tenta consertar esta brecha. A história da licença é bem complexa, mas se eu tivesse que resumir, diria que para a AGPL não importa se as pessoas estão executando um programa em um processador local e usando os sistemas através dos seus teclados e monitores ou se acessam um servidor através da Internet; não importa se elas estão executando o programa por conta própria ou se usam do serviço de hospedagem oferecido por outra pessoa, se puderem efetivamente usar um programa, são consideradas usuários e, como tal, devem ter acesso ao código-fonte.

(Uma observação relacionada: consegui permissão dos demais autores do Motiro para mudar a licença de distribuição e hoje publiquei a versão 0.6.11 do programa, agora sob AGPL. Se estiver precisando de um sistema para acompanhamento de projetos, considere usar o Motiro.)

5 Responses to “O que diabos é AGPL?”


  1. 1 Fabio Espindula 14/maio/2008 às 00\1221

    Interessante, ainda nao havia ouvido falar.

  2. 2 Fred Maranhão 19/maio/2008 às 12\1209

    E como fica a GPLv3? a AGPL já é compatível com ela?

  3. 3 osias 08/jun/2008 às 20\0852

    Não gostei disso, não.

    Executar algo no seu servidor, como por esse comentário aqui, não pode causar virus ou roubar minhas senhas do hd nem nada parecido. Não preciso do fonte todo, só saber do resultado do serviço.

    E como eu vou provar que estou nesta hora executando aquilo mesmo que dei código e não uma versão alterada? Quem impede um sacana de me processar porque supostamente estou fazendo isso?

  4. 4 J.Marcelo Auler 18/jun/2008 às 03\0325

    Mas o problema não tem relação com vírus, e sim com propagação do conhecimento. Se você usou um software livre para começar o seu sistema, você terá de prover o mesmo benefício para outros, se você não quiser, faça o seu do zero.
    O sacana que quer te processar vai ter que ter um bom argumento pra provar que seu sistema é modificado.
    Acho que o que o post quis dizer é que, segundo a licensa GPL, se eu te mandasse um software que executasse um código livre modificado para fazer, por exemplo, cálculos, eu teria que te dar o código, mas se fosse em uma página web, o código executaria no servidor, e eu não teria de fornecer o código.

  5. 5 Bruno Sant'Anna 06/abr/2009 às 12\1241

    É uma boa interpretação da AGPL, no entanto é importante ressaltar que se o desenvolvedor do software quiser cobrar pela distribuição dos binários (e fontes) isso é perfeitamente aceitavel pela AGPL contanto que os fontes não sejam mais caros do que os binarios.

    Exemplicifando: Eu tenho um software executavel na web sob a os termos da AGPL, se eu quiser cobrar qualquer valor pelo download do binário deste software eu tenho este direito (que tal 1 milhão?), isso significa distribuir (“to convey”). Ainda de acordo com a AGPL, quando há a distribuição de um binário, deve ser distribuída também os fontes equivalentes destes binários sob as mesmas condições.


Comments are currently closed.




%d blogueiros gostam disto: