LGPL setzt voraus , dass Benutzer in der Lage sein müssen, das Programm mit einer anderen Version der Bibliothek zu verknüpfen, wenn ein Programm die LGPL-ed-Bibliothek verwendet:
...
d) Führen Sie einen der folgenden Schritte aus:
0) Übermitteln Sie die entsprechende Minimalquelle unter den Bedingungen dieser Lizenz und den entsprechenden Anwendungscode in einer Form, die für den Benutzer geeignet ist, und unter Bedingungen, die es ihm ermöglichen, die Anwendung mit einer modifizierten Version der verknüpften Version zu rekombinieren oder erneut zu verknüpfen, um eine zu erstellen modifiziertes kombiniertes Werk, wie in Abschnitt 6 der GNU GPL für die Übermittlung der entsprechenden Quelle angegeben.
1) Verwenden Sie einen geeigneten Mechanismus für gemeinsam genutzte Bibliotheken, um eine Verbindung mit der Bibliothek herzustellen. Ein geeigneter Mechanismus ist einer, der (a) zur Laufzeit eine Kopie der Bibliothek verwendet, die bereits auf dem Computersystem des Benutzers vorhanden ist, und (b) ordnungsgemäß mit einer modifizierten Version der Bibliothek funktioniert, die mit der verknüpften Version kompatibel ist.
...
In einigen Fällen kann dies jedoch erhebliche Schwierigkeiten bereiten. Insbesondere werden Haskell-Programme fast immer statisch kompiliert. Darüber hinaus führt der Compiler modulübergreifende Optimierungen durch, sodass es nicht möglich ist, einen Teil des Codes herauszunehmen und durch einen anderen zu ersetzen. Es ist also sehr schwer, diese Bedingung zu erfüllen. (Siehe diesen Link im Haskell Wiki.)
Dynamische Verlinkung wäre eine Lösung, aber in vielen Fällen ist dies nicht möglich. Beispielsweise:
- Einige Plattformen verfügen möglicherweise überhaupt nicht über dynamische Verknüpfungen.
- Einige Sprachen verfügen nicht über die Möglichkeit der dynamischen Verknüpfung. Oder es ist nicht möglich, Module plattformübergreifend zu gestalten.
- In einigen Fällen würde eine dynamische Verknüpfung wichtige Optimierungen verhindern. Während ich sagen würde, dass dies selten ein ernstes Problem ist, kann der Leistungsverlust in Sprachen wie Haskell beträchtlich sein.
Aus diesem Grund suche ich nach einer Standard-LGPL-ähnlichen Lizenz, für die kein erneutes Verknüpfen erforderlich ist (und ich verstehe, dass dies den Benutzern ein wenig Freiheit einräumt). Einige Projekte verwenden eine eigene Modifikation der LGPL, zum Beispiel wxWidgets . Aber ich würde lieber eine Standardlizenz verwenden, die etwas offizieller ist, vielleicht von einigen Rechtsexperten geprüft und mit der (L) GPL kompatibel. Gibt es solche?
(Es würde mich auch interessieren, ob es einige unvorhergesehene Folgen einer solchen Änderung der LGPL gibt.)