Por que a Affero GPL

A Licença Pública Geral Affero GNU é uma versão modificada da GNU GPL versão 3. Tem um requisito adicional: se você executar um programa modificado em um servidor e permitir que outros usuários se comuniquem com ele, seu servidor também deve permitir que eles baixem o código fonte correspondente à versão modificada executada nesse local.

O objetivo da GNU Affero GPL é evitar um problema que afete os desenvolvedores de programas livres que são frequentemente usados em servidores.

Suponha que você desenvolva e lance um programa livre sob a GNU GPL comum. Se o desenvolvedor D modifica o programa e o lança, a GPL exige que ele distribua sua versão sob a GPL também. Assim, se você receber uma cópia da sua versão, você é livre para incorporar algumas ou todas as suas mudanças na sua própria versão.

Mas suponha que o programa seja principalmente útil em servidores. Quando D modifica o programa, ele provavelmente pode executá-lo em seu próprio servidor e nunca lançar cópias. Então você nunca receberá uma cópia do código fonte da sua versão, então você nunca terá a chance de incluir suas mudanças em sua versão. Você pode não gostar desse resultado.

O uso do GNU Affero GPL evita esse resultado. Se D executar sua versão em um servidor que todos possam usar, você também pode usá-lo. Supondo que ele tenha seguido o requisito da licença para permitir que os usuários do servidor baixem o código fonte da sua versão, você pode fazê-lo e, em seguida, você pode incorporar suas alterações em sua versão. (Se ele não seguiu, você tem seu advogado reclamando com ele.)

Tanto o GNU GPL comum, a versão 3, como a GNU Affero GPL têm texto que permite que você vincule os módulos sob essas duas licenças em um único programa.

A GNU Affero GPL não aborda o problema do Serviço como um Substituto de Software (SaaSS).

SaaSS significa que os usuários usam o servidor web de outra pessoa para fazer sua própria computação. Isso exige que eles enviem seus dados para o servidor, o que faz sua computação para eles e envia os resultados de volta para eles. O SaaSS é uma injustiça porque os usuários não podem controlar sua computação quando é feito assim.

Se algum programa neste servidor for lançado no GNU Affero GPL, o servidor é obrigado a oferecer aos usuários o código fonte correspondente a esse programa. Isso é bom, mas ter esse código fonte não lhes dá controle sobre a computação feita nesse servidor. Também não diz para eles quais outros softwares podem estar sendo executados nesse servidor, examinando ou alterando seus dados de outras maneiras.

Não vemos nenhuma maneira sensata de resolver o problema do SaaSS com condições de licença em programas específicos. Mesmo escrever uma condição legal para distinguir entre o uso de SaaSS e o uso não SaaSS seria um desafio, e se tivéssemos isso, não vemos nada que a licença do programa possa exigir no caso SaaSS que corrija o erro inerente de SaaSS. Assim, nossa solução para o problema do SaaSS é simples: se recusar a usar serviços que são SaaSS.

Se um programa for especificado especificamente e somente para SaaSS, você não deve gravá-lo. Mas muitos programas são úteis para uma variedade de tipos de serviços, incluindo alguns que são SaaSS e alguns que não são. É útil escrever e lançar esses programas para que as pessoas possam configurar serviços não SaaSS com eles, e é bom lançá-los no âmbito da AGPL.