Kurze Antwort
Eine Kombination aus der Eclipse Public License und der LGPL stellt genau das sicher, was Sie wünschen: Änderungen Ihres Codes müssen verfügbar gemacht werden, aber die Verwendung des Codes in einem größeren Produkt erzwingt keine erneute Lizenzierung des größeren Produkts. Die Kombination ist erforderlich, damit der Code sowohl in GPL- als auch in Nicht-GPL-Projekten verwendet werden kann.
Auf diese Weise haben Projekte wie JGraphT durchgeführt. Sie haben ihr Projekt unter EPL und LGPL erneut lizenziert. Die Motivation und Vorgehensweise ist in ihrem Wiki beschrieben .
Lange Antwort
Ich denke, die Mozilla Public License ( MPL ) oder die Eclipse Public License ( EPL ) ist die Lizenz, nach der Sie suchen, denn "wenn abgeleitete Werke aus der Bibliothek erstellt werden (z. B. eine Verbesserung der Bibliothek), ist es [IS ] allen unter derselben Lizenz zur Verfügung gestellt. "
Die MPL- und die EPL-Lizenz liegen zwischen GPL und MIT.
Mit MIT kann der Benutzer alles damit machen, einschließlich Änderung, Verkauf und Nichtrückgabe des geänderten Codes an die Community.
Die GPL zwingt den Benutzer, den gesamten Code an die Community weiterzugeben, auch wenn Ihre Bibliothek nur 1% des gesamten Produkts ausmacht.
LGPL zwingt den Benutzer, die Änderung des LGPL-Teils des Codes preiszugeben.
MPL und EPL ähneln LGPL: Sie zwingen den Benutzer auch, die geänderte Quelle zur Verfügung zu stellen. "Geänderte Quelle" enthält nur den Teil des MPL- / EPL-abgedeckten Codes. Das heißt, der Benutzer kann ein neues Produkt aus Ihrer Bibliothek erstellen. Wenn er den MPL- / EPL-Teil modifiziert, muss er ihn veröffentlichen. Die neuen Dinge von ihm müssen nicht veröffentlicht werden.
Ich finde die MPL / EPL passender, da LGPL explizit von "Bibliotheken" spricht und MPL nur von "Covered Software" (was einen breiteren Anwendungsbereich darstellt).
Die Auswahl von EPL führt jedoch zu Problemen beim Kämmen der Software mit der GPL-Software: Die EPL ist nicht mit der GPL kompatibel . Dies ist nicht der Fall, wenn Sie nur die MPL verwenden .
Wenn Sie sicherstellen möchten, dass Ihr Code sowohl in GPL- als auch in Nicht-GPL-Projekten verwendet werden kann, lizenzieren Sie den Code unter LGPL und EPL doppelt, wie in der kurzen Antwort beschrieben.
Beispiele
- JGraphT
- Wieder anmelden
Qooxdoo . Sie planen, "die Lizenzbedingungen für qooxdoo zu vereinfachen und zu modernisieren" und wechseln daher von der doppelten Lizenzierung zum MIT.