AGPL - was Sie können und was Sie nicht können

188

AGPL ist eine ziemlich neue Lizenz, die für GPL-over-Networks gedacht war. Da ich jedoch kein Anwalt bin und nicht die gesamte Lizenz gelesen habe, kann ich nicht verstehen, was genau Sie mit AGPL tun können und was nicht.

Meine Unsicherheit speist sich aus diesem Beitrag über MongoDB (das ist AGPL) und noch mehr aus den Kommentaren unten.

Wenn wir den Kommentaren folgen, stellt sich heraus, dass Sie AGPL-Bibliotheken mit Ihrer kommerziellen serverseitigen Closed-Source-Software verwenden können, solange Sie die Bibliothek nicht ändern. Ist das der Fall? Oder müssen Sie Ihre gesamte Anwendung verteilen, wenn Sie eine AGPL-lizenzierte Bibliothek verwenden?

Der Fall bei MongoDB ist, dass die Apache-Lizenz für den Client-Code verwendet wird, was eine andere Frage aufwirft. Was passiert, wenn Sie AGPL-Software verwenden, diese jedoch als andere Anwendung als Ihre kommerzielle Closed-Source-Anwendung bereitstellen? Nehmen Sie zum Beispiel iText - es ist eine AGPL-Bibliothek:

  • Wenn Sie es verwenden und modifizieren, müssen Sie dann Ihre gesamte Anwendung als Open-Source-Version verwenden oder nur die Änderungen in iText weitergeben?
  • Wenn Sie es verwenden und nicht ändern, müssen Sie dann Ihre gesamte Anwendung als Open-Source-Version bereitstellen?
  • Wenn Sie iText in eine andere Anwendung einbinden, die Sie als separater Prozess starten, aber von Ihrer Hauptanwendung aus verwenden, sollten Sie dann alles als Open-Source-Version oder nur die Wrapper-Anwendung verwenden? (Die Wrapper-Anwendung ist eine HTTP-basierte API, die PDF-Dateien akzeptiert und die Ergebnisse der Verwendung von iText als JSON zurückgibt.) Kann damit die AGPL-Lizenz umgangen werden?

Hinweis: Die Frage bezieht sich auf AGPLv3

Bozho
quelle
1
Siehe auch diese Antwort: opensource.stackexchange.com/questions/5003/…
Philippe Ombredanne

Antworten:

40

Die AGPL basiert auf der GPL, nicht auf der LGPL. Es enthält keine Verknüpfungsausnahmen, und Arbeiten mit AGPL-Code (verknüpft oder anderweitig geändert oder nicht geändert) müssen ebenfalls von AGPL lizenziert und verbreitet werden.

Durch die Verwendung separater Prozesse kann die (A) GPL umgangen werden, dies ist jedoch ein trüber Grund. Wenn Ihre Endanwendung vom externen Prozess abhängt , sodass sie ohne diesen nicht ordnungsgemäß funktioniert, wird sie als abgeleitete Arbeit der AGPL-Software betrachtet.

In den meisten Fällen, in denen Benutzer separate GPL-Anwendungen in Closed-Source-Programmen verwenden, stellen sie die GPL-Arbeit als optionale Erweiterung oder als alternatives Back-End für einen anderen Code usw. zur Verfügung.

Die (A) GPL-Arbeit kann nicht zusammen mit der endgültigen Anwendung als separate Anwendung verteilt werden (z. B. in dasselbe Archiv oder Repository stellen), obwohl es in Ordnung ist, Anweisungen zu geben, wo die GPL-Arbeit zu finden ist und wie man sie verwendet deine App.

Mark H
quelle
9
Während das, was Sie sagen, wahr ist, besteht der einzige Unterschied zwischen der GPL und der AGPL in der Anforderung, Code bereitzustellen, wenn er interaktiv über ein Netzwerk verwendet wird. Die Klausel, die dies abdeckt, besagt jedoch, dass sie nur für "Geänderte Versionen" des Werks gilt und "Geänderte Versionen" als jede Verwendung definiert wird, die das Urheberrecht erfordert. Das bloße Ausführen der nicht geänderten Version erstellt keine "geänderte Version", da das Urheberrecht nur die Verbreitung abdeckt.
Erik Funkenbusch
8
1. "verknüpft oder anderweitig" ist falsch. 2. "Es würde als abgeleitete Arbeit betrachtet" ist falsch. 3. Ich denke, "In den meisten Fällen" ist falsch. 4. "Die (A) GPL-Arbeit kann nicht zusammen mit der Endanwendung verteilt werden, auch nicht als separate App" ist völlig falsch, zB Debian verteilt Sachen mit allen Arten von verschiedenen Lizenzen zusammen, die nicht alle mit der GPL kompatibel sind. Das können auch proprietäre Systeme. Schauen Sie sich Abschnitt 3 dieser Seite an, beginnend mit "Fragen sind aufgetreten": ghostscript.com/doc/current/Commprod.htm Lesen Sie den Rest nicht, er versucht Sie zum Kauf zu verleiten.
Sam Watkins
Debian verfügt aufgrund der Lizenzierung tatsächlich über 3 separate Repositories. mainbesteht aus DFSG- kompatiblen Paketen, deren Betrieb nicht auf Software außerhalb dieses Bereichs angewiesen ist. Dies sind die einzigen Pakete, die als Teil der Debian-Distribution betrachtet werden . contribPakete enthalten DFSG- konforme Software, haben jedoch keine Hauptabhängigkeiten (möglicherweise nicht kostenlos für Debian). non-freeEnthält Software, die nicht der DFSG entspricht .
Kevin Brey
Betreff: "Kann nicht gleichzeitig verteilt werden" - können Sie auf die spezifische Lizenzbestimmung hinweisen, die dies unterstützt? Ich verstehe vollkommen, warum Sie AGPL-lizenzierten Code in einem Verbraucherprodukt nicht ausliefern möchten, aber das ist ein ziemlich enger Umstand.
Charles Duffy
1
Wie ... wat ... so jetzt sind alle diese Android-Handys mit ihren Linux-Kerneln illegal ...
Antti Haapala
10

AGPL ist dasselbe wie GPL; Wenn Ihre App AGPL-Code verwendet, muss sie daher über eine AGPL-Lizenz verfügen.

Was AGPL zusätzlich zu GPL tut, ist die Neudefinition des Benutzers. Bei GPL-Programmen, die auf Ihrem Server ausgeführt werden, sind Sie der Benutzer. Bei AGPL sind die tatsächlichen Benutzer der App die Benutzer Ihrer Website oder Ihres Dienstes. Aus diesem Grund verteilen Sie die App, wenn eine andere Person als Sie sie verwendet. Und das impliziert natürlich alle Standardanforderungen der GPL.

Was Mongo betrifft, gehe ich davon aus, dass Apps, die es verwenden, keinen Code verwenden, sondern nur einige APIs, für die keine AGPL-Lizenz besteht.

Lass mich sein
quelle
Im Allgemeinen verwende ich auch nicht den Code von iText - ich verwende seine API, die im Fall von Mongo eine binäre Java-API und keine JSON-API ist.
Bozho
@Bozho Und unter welcher Lizenz ist das API?
Let_Me_Be
2
@Bozho Mongo DB-Treiber sind alle unter einer Apache-Lizenz lizenziert (ich zitiere die von Ihnen verlinkte Website).
Let_Me_Be
2
Nun, das ist zweifelhaft - was ist eine API und was ein API-Client? Übrigens können Sie die drei oben genannten Fragen beantworten?
Bozho,
2
Es steht außer Frage, dass ein Werk, das AGPL-Code verwendet, unter der AGPL lizenziert ist (mit Ausnahme von GPLv3-Code, der sich ausdrücklich vermischen darf, ohne dass die AGPL-Bedingungen für den GPLv3-Code gelten). Das Problem liegt in der Definition der Netzwerknutzung, die sich nur auf "Geänderte Versionen" bezieht, und die Definition von "Geänderte Versionen" in den Definitionen bedeutet, dass sie nur auf etwas zutrifft, das urheberrechtlich geschützt ist (dh verbreitet werden muss). Es ist also immer noch ziemlich trüb.
Erik Funkenbusch