GPL vs AGPL

J’ai remarqué que beaucoup de monde ne saisissait pas encore la différence entre la GPL et la AGPL, donc voilà comment je vois les choses.

La licence GPL garantie certains droits/libertés à l’utilisateur et l’oblige à garantir ces droits aux personnes à qui il redistribue le programme, qu’il l’ait modifié ou non. Par contre, et c’est plutôt logique, il n’oblige pas cet utilisateur à faire remonter aux développeurs initiaux les améliorations qu’il a réalisées, s’il est le seul utilisateur et qu’il ne redistribue pas le logiciel.

Par contre, légalement, l’utilisateur est la personne qui installe le logiciel, pas celle qui l’utilise. C’est donc le propriétaire de l’ordinateur (ou le locataire), voire le webmaster. Dans le cas des sites web et des web apps, la GPL ne s’applique qu’à la personne qui offre le service, pas aux « utilisateurs » finaux, qui utilisent le service. Ainsi le site Meebo, qui offre un client web multi-protocole basé sur le code de Pidgin, n’est pas obligé de fournir au projet Pidgin les améliorations qu’il a réalisé sur le programme. S’il le faisait, ça serait sympa de sa part, ça serait «?beau geste?», mais la GPL ne l’y oblige nullement. On a le même problème avec le portail des élèves du RézoLéo.

Pour ce genre de situations, il existe la licence AGPL, qui a été créée spécifiquement pour les applications web. Il oblige la personne qui possède le service (Meebo, par exemple), à rendre disponible un exemplaire du code source pour les utilisateurs finaux qui voudraient bien savoir ce qui est fait de leurs informations. Bien évidemment, dans le cas d’un site web il est quasiment impossible de savoir si le code source est exactement celui du service, mais s’il ne l’est pas c’est que la loi n’est pas respectée.

Il y avait eu des discussions à la FSF pour savoir si cette clause devait être incluse dans la GPL directement ou si il fallait la mettre dans une nouvelle licence. L’inclure dans la GPL aurait été assez destructeur auprès des entreprises, car dans certains cas les clients de l’entreprise auraient pu demander à voir le code source du logiciel qui a créé leurs données, or assez souvent, les entreprises utilisent du libre pour pouvoir le tweaker un peu pour qu’ils soit adapté au maximum à leurs besoins, et n’ont pas forcément envie que tout le monde connaisse ces tweaks.

Ainsi, à vous de choisir votre license. Si vous créez un site ou un service explicitement dédié au web, utilisez la AGPL. Si vous créez un programme qui ne peut pas être utilisé par quelqu’un d’autre que la personne qui l’a installé, utilisez la GPL, et si le programme pourra clairement être utilisé pour un service web et que vous voulez que l’installateur respecte l’utilisateur final, envisagez d’utiliser la AGPL.

Bien évidemment, il y a toujours le cas des bornes en libre service, des web café, ou d’autres trucs du genre. Là encore, l’utilisateur final n’est pas celui qui a installé le programme, donc la AGPL pourrait être utile. C’est un peu délicat à déterminer, mais on ne peut pas faire mieux.

Dans le même registre on pourrait envisager une licence qui obligerait les utilisateurs à faire remonter aux devs initiaux les modifications qu’ils ont fait. Imaginons que je code un truc utile, et que je suis assez sympa pour un faire profiter mon voisin. S’il améliore mon travail, en faisant dix fois moins d’effort que moi, j’aimerais bien qu’il me montre ce qu’il a fait. La GPL ainsi que la AGPL autorisent l’utilisateur à être égoïste et à ne pas me montrer les améliorations…

blogroll

social