Pourquoi la GPL Affero ?
La licence publique générale GNU Affero (GNU AGPL) est une version modifiée de la version 3 de la GNU GPL ordinaire. Elle a une seule exigence supplémentaire : si vous exécutez un programme modifié sur un serveur et laissez d'autres utilisateurs communiquer avec lui, votre serveur doit aussi leur permettre de télécharger le code source correspondant à la version modifiée en fonctionnement.
L'objectif de l'AGPL est d'éviter un problème affectant les développeurs de programmes libres qui sont souvent utilisés sur des serveurs.
Supposez que vous développiez et publiiez un programme libre sous la GNU GPL ordinaire. Si le développeur D modifie le programme et le publie, la GPL l'oblige à distribuer sa version sous la GPL également. Ainsi, si vous obtenez une copie de cette version, vous êtes libre d'incorporer tout ou partie de ses modifications dans votre propre version.
Mais supposez que ce programme soit surtout utile sur des serveurs. Quand D modifie le programme, il est très probable qu'il va le faire tourner sur son propre serveur et ne va jamais distribuer de copies. Alors vous n'obtiendrez jamais de copie du code source de sa version, et par conséquent n'aurez jamais la possibilité d'incorporer ses changements dans votre version. Cela ne vous fera peut-être pas plaisir.
Utiliser la licence publique générale GNU Affero (AGPL) permet d'éviter ce résultat. Si D exécute sa version sur un serveur que tout le monde peut utiliser, vous pouvez l'utiliser aussi. À supposer qu'il ait, comme le veut la licence, mis le code source de sa version à disposition des utilisateurs, vous pouvez le télécharger et ensuite incorporer ses modifications dans votre version (s'il n'a pas respecté cette exigence, envoyez-lui votre avocat).
La GNU AGPL, comme la version 3 de la GPL ordinaire, contient un texte vous permettant de lier des modules régis par l'une ou l'autre de ces licences en un seul programme.
La GNU AGPL ne s'intéresse pas au problème du SaaSS (service se substituant au logiciel).
On parle de SaaSS lorsque les utilisateurs font leurs propres tâches informatiques sur l'ordinateur de quelqu'un d'autre. Ceci les oblige à envoyer leurs données au serveur ; ce dernier les traite et leur renvoie les résultats. Le SaaS est une injustice parce que les utilisateurs n'ont aucun contrôle sur leur informatique quand ils procèdent de cette façon.
Si un programme de ce serveur est publié sous l'AGPL, le serveur est dans l'obligation de fournir aux utilisateurs le code source correspondant à ce programme. C'est très bien, mais d'avoir le code source ne leur donne aucun contrôle sur les tâches informatiques effectuées par le serveur. Cela ne leur dit pas non plus quels autres programmes s'exécutent éventuellement sur ce serveur pour examiner leurs données ou les modifier d'une tout autre façon.
Nous ne voyons aucun moyen de traiter intelligemment le problème du SaaSS avec des clauses de licence sur des programmes particuliers. Ce serait même une gageure de concevoir une clause juridique qui différencierait les usages SaaSS des autres. Et en admettant que nous puissions le faire, nous ne voyons rien que la licence du programme pourrait exiger et qui, le cas échéant, corrigerait le mal inhérent au SaaSS. Ainsi, notre solution au problème des SaaSS est très simple : refusez de les utiliser.
Si un programme est destiné spécifiquement et uniquement au SaaSS, vous devez refuser de l'écrire. Mais de nombreux programmes sont utiles pour toutes sortes de services, certains qui sont du SaaSS et d'autres qui n'en sont pas. Il est utile d'écrire et de publier ces programmes pour qu'ils servent à créer des services non SaaSS, et il est bon de les publier sous l'AGPL.