AGPL - ce que vous pouvez faire et ce que vous ne pouvez pas


188

AGPL est une toute nouvelle licence destinée à utiliser la GPL sur les réseaux. Cependant, n'étant pas avocat et n'ayant pas lu la totalité de la licence, je ne comprends pas ce que vous pouvez faire librement et ce que vous ne pouvez pas faire avec AGPL.

Mon incertitude est alimentée par cet article sur MongoDB (qui est AGPL) et encore plus par les commentaires ci-dessous.

Si nous suivons les commentaires, il s'avérera que vous pouvez utiliser les bibliothèques AGPL avec votre logiciel côté serveur commercial à source fermée, à condition de ne pas modifier la bibliothèque. Est-ce le cas? Ou vous devez distribuer l'intégralité de votre application lorsque vous utilisez une bibliothèque sous licence AGPL?

Le cas de MongoDB est qu’il utilise la licence Apache pour le code client, ce qui pose une autre question. Que se passe-t-il si vous utilisez le logiciel AGPL, mais que vous le déployez en tant qu'application différente de votre application commerciale à source fermée? Par exemple, prenez iText - c'est une bibliothèque AGPL:

  • si vous l'utilisez et le modifiez, devez-vous ouvrir votre application au complet ou devez-vous redistribuer uniquement les modifications apportées à iText?
  • si vous l'utilisez et ne le modifiez pas, devez-vous ouvrir votre application au complet?
  • Si vous intégrez iText dans une autre application que vous démarrez en tant que processus distinct, mais que vous utilisez depuis l'application principale, devez-vous tout ouvrir en source ou simplement l'application wrapper? (L'application d'encapsulation sera une API basée sur HTTP qui prendra les fichiers PDF et renverra les résultats de l'utilisation d'iText en tant que JSON). Cela peut-il être utilisé pour contourner la licence AGPL?

Note: La question concerne AGPLv3


Réponses:


40

L'AGPL est basé sur la GPL et non sur la LGPL. Il ne contient aucune exception de lien et tout travail utilisant le code AGPL (lié ou non, modifié ou non) doit également être sous licence et distribué par AGPL.

L'utilisation de processus distincts peut contourner la (A) GPL, mais il s'agit d'un terrain trouble. Si votre application finale dépend du processus externe, de sorte qu'elle ne fonctionnerait pas correctement sans celui-ci, elle serait alors considérée comme un travail dérivé du logiciel AGPL.

Dans la plupart des cas, lorsque des utilisateurs utilisent des applications GPL distinctes dans des programmes à sources fermées, ils fournissent le travail GPL en tant qu'extension facultative, ou alternative de base de données à un autre élément de code, etc.

Le travail (A) GPL ne peut pas être distribué avec l'application finale même en tant qu'application distincte (par exemple, en les plaçant dans la même archive ou le même référentiel), bien qu'il soit correct de fournir des instructions sur l'emplacement du travail GPL et sur son utilisation avec votre application.


9
Bien que ce que vous dites soit vrai, la seule différence entre la GPL et l’AGPL est la nécessité de fournir du code s’il est utilisé de manière interactive sur un réseau. Cependant, la clause qui couvre cela indique qu'elle ne s'applique qu'aux "versions modifiées" de l'œuvre, et que "versions modifiées" est définie comme toute utilisation nécessitant un droit d'auteur. Le simple fait d'exécuter la version non modifiée ne crée pas de "version modifiée", car le droit d'auteur ne couvre que la distribution.
Erik Funkenbusch le

8
1. "lié ou non" est faux. 2. "ce serait considéré comme un travail dérivé" est faux 3. Je pense que "Dans la plupart des cas" est faux. 4. "Le travail (A) GPL ne peut pas être distribué avec l'application finale, même s'il s'agit d'une application séparée" est totalement faux. Par exemple, Debian distribue des documents avec toutes sortes de licences différentes, qui ne sont pas toutes compatibles avec la GPL. Les systèmes propriétaires peuvent également le faire. Jetez un coup d'œil à la section 3 de cette page, en commençant par "Des questions sont apparues": ghostscript.com/doc/current/Commprod.htm Ne lisez pas le reste, il essaie de vous inciter à l'acheter.
Sam Watkins

Debian dispose en réalité de trois référentiels distincts pour les licences. mainse compose de packages compatibles DFSG , qui ne dépendent pas de logiciels extérieurs à cette zone pour fonctionner. Ce sont les seuls paquets considérés comme faisant partie de la distribution Debian . contribles paquets contiennent des logiciels compatibles avec DFSG , mais ont des dépendances qui ne sont pas dans main (éventuellement emballées pour Debian dans une version non-free). non-freecontient des logiciels non conformes au DFSG .
Kevin Brey

Re: "ne peut pas être distribué en parallèle" - pouvez-vous indiquer la clause de licence spécifique qui le sous-tend? Je comprends tout à fait pourquoi vous ne voudriez pas envoyer de code sous licence AGPL dans un produit de consommation, mais c'est une situation assez étroite.
Charles Duffy

1
J'aime ... alors ... maintenant tous ces téléphones Android avec leurs noyaux Linux sont illégaux ...
Antti Haapala

10

AGPL est identique à GPL; Par conséquent, si votre application utilise le code AGPL, elle doit être sous licence AGPL.

Ce qu’AGPL fait au-dessus de la GPL est la redéfinition de l’utilisateur. Pour les programmes GPL s'exécutant sur votre serveur, vous êtes l'utilisateur, pour AGPL, les utilisateurs réels de l'application sont les utilisateurs de votre site Web ou de votre service. Par conséquent, vous distribuez l'application si quelqu'un d'autre que vous l'utilisez. Et cela implique bien sûr toutes les exigences standard de la GPL.

En ce qui concerne Mongo, je suppose que les applications qui l'utilisent n'utilisent pas son code, mais uniquement certaines API, qui ne sont pas sous licence AGPL.


De manière générale, je n'utilise pas non plus le code d'iText - j'utilise son API, qui est une API java binaire plutôt qu'une API JSON dans le cas de Mongo.
Bozho

@Bozho Et sous quelle licence est cette API?
Let_Me_Be

2
Les pilotes de @Bozho Mongo DB sont tous sous licence Apache (je cite le site Web que vous avez lié).
Let_Me_Be

2
Eh bien, c'est douteux - qu'est-ce que nous clalons une API et ce qu'un client API Btw pouvez-vous répondre aux trois questions ci-dessus?
Bozho

2
Il ne fait aucun doute qu'un travail utilisant le code AGPL est sous licence AGPL (à l'exception du code GPLv3 qui est spécifiquement autorisé à se mélanger sans que les termes AGPL s'appliquent au code GPLv3). Le problème vient de la définition de l'utilisation du réseau, qui fait uniquement référence aux "versions modifiées", et la définition de "versions modifiées" dans les définitions signifie qu'elle ne s'applique qu'à quelque chose qui nécessite un droit d'auteur (c'est-à-dire la distribution). Donc, c'est encore assez trouble.
Erik Funkenbusch le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.