LGPL - UOS-Open-Source-Softwareentwicklung/oss1314 GitHub Wiki

GNU Lesser General Public License (LGPL)

Kurzbeschreibung einer Open-Source-Lizenz

Sebastian Brockmeyer, [email protected], Universität Osnabrück

Die LGPL ist wie die GPL eine Open-Source-Lizenz. Sie unterscheidet sich namentlich nur durch den Zusatz "lesser" von der GPL. Dieses Adjektiv weist darauf hin, dass die LGPL der GPL in weiten Teilen ähnelt, allerdings ein weniger starkes Copyleft enthält als die GPL. Konkret bedeutet das, dass sogenannte "kombinierte Werke" erlaubt sind, die LGPL-Software verwenden, aber selbst nicht Open-Source sein müssen. Auch proprietäre Software darf LGPL-Software verwenden. [4]

Anforderungen an kombinierte Werke

Kombinierte Werke, die zu Teilen aus LGPL-Software bestehen und zu Teilen unter anderen Lizenzen stehen, müssen einige Anforderungen erfüllen. Zunächst müssen die beiden Teile klar voneinander getrennt sein. Unter anderem aus diesem Grund wird die LGPL hauptsächlich (aber nicht ausschließlich) für Libraries verwendet. [4]

Der LGPL-Teil der Software muss quelloffen sein und der Endnutzer muss in der Lage sein (grundlegende Programmierkenntnisse vorausgesetzt), Modifikationen daran durchzuführen und die beiden Teile zu linken. Auf diese Weise soll es jedem Endnutzer möglich sein, den LGPL-Teil der Software zu ersetzen oder zu updaten. [4]

Der andere Teil des kombinierten Werkes muss nicht quelloffen sein. Falls dynamisch gelinkt wird, reicht es aus, wenn dieser Teil als Binary vorhanden ist. Falls statisch gelinkt wird, Funktionen aus Libraries also direkt in das Programm eingebunden werden und die Library selbst zur Laufzeit nicht mehr benötigt wird, muss dieser Teil aber trotzdem in Form von linkbaren Objekt-Dateien vorliegen, um dem Endnutzer Reverse Engineering zu ermöglichen. Das Debuggen von Änderungen am LGPL-Teil wäre sonst nicht möglich. Außerdem muss ein Hinweis darauf enthalten sein, welche Funktionen der LGPL-Software aufgerufen werden. [4][3]

Modifikationen am LGPL-Teil sind nur dann erlaubt, wenn die neue Software unter einer mit der LGPL kompatiblen Lizenz steht und der Code wiederum quelloffen ist. Insbesondere darf er nicht von proprietärer Software abhängig sein. [4]

Geschichte

Die LGPL wurde 1991 von der Free Software Foundation (FSF) veröffentlicht, zunächst unter dem Namen "GNU Library General Public License". Die Versionsnummer war initial 2.0, damit ein Bezug zur GPL 2.0 erkennbar war. [1] Wie an dem Namen abzusehen ist, war die Intention, eine weniger restriktive Variante der GPL zu erstellen, die vor allem für Libraries Verwendung finden sollte.

1999 wurde mit der Veröffentlichung von Version 2.1 eine Umbenennung in "GNU Lesser General Public License" vorgenommen. Ziel der Umbenennung war es, zu betonen, dass nicht alle Open Source Libraries diese Lizenz nutzen sollten. [2]

2007 wurde die Version 3.0 veröffentlicht, die sich an der GPLv3.0 orientiert. Sie unterscheidet sich hauptsächlich durch Umformulierungen von Version 2.1. So enthält sie gegenüber der Version 2.1 sehr viel weniger Text, indem sie auf die GPLv3.0 verweist und nur zusätzliche Klauseln aufführt. [3]

Kompatibilität mit anderen Lizenzen

Alle Versionen der LGPL enthalten eine Klausel, die es explizit gestattet, eine Kopie oder Modifikation einer LGPL-Software mit der GPL zu relizensieren. [1][2][3] Die umgekehrte Richtung ist allerdings ausgeschlossen. In diesem Sinne lassen sich die Kompatibilitäten zwischen der GPL und anderen Lizenzen auf die LGPL übertragen (vgl. GPL v2, v2 und v3#kompatibilität-mit-anderen-lizenzen). Generell kann Code der GPL und LGPL gemischt und unter der GPL veröffentlicht werden. Auch die verschiedenen LGPL-Versionen sind untereinander kompatibel. Eine genaue Tabelle ist im FAQ zur GPL auf der GNU-Homepage gegeben.

Nutzer der LGPL

Die GNU-Implementierungen der Standardbibliotheken vieler Programmiersprachen stehen unter der LGPL, sowie weitere GNU-Bibliotheken. [4] Der Grund, warum hier die LGPL der GPL vorgezogen wird, ist hier besonders deutlich: Jeder (auch Hersteller proprietärer Software) soll Standardbibliotheken in seinen Programmen benutzen können, ohne gezwungen zu sein, sein Programm unter die Lizenz dieser Bibliothek zu stellen, was bei der GPL der Fall wäre.

Viele Template- und Inline-Libraries, wie z.B. in C++ üblich, können die Bedingungen der LGPL allerdings naturgemäß nicht erfüllen: Da die Funktionen der Library beim Kompilieren direkt (inline) in den Code eingefügt und nicht gelinkt werden, kann der Nutzer nur dann eine andere Version der Library einfügen, wenn er Zugriff auf den Quellcode hat. Daher weichen GNU-C++-Bibliotheken auf eine abgewandelte Version der GPL aus. [4]

Doch nicht nur Libraries sind mit der LGPL lizensiert. Z.B. OpenOffice wurde in weiten Teilen unter der LGPLv2.1 veröffentlicht. Die aktuelle Version steht unter LGPLv3.0. [5]

Referenzen