Suche im Lexikon
Lexikon auf Ihrer Homepage Lexikon als Lesezeichen hinzufügen

GNU Lesser General Public License

Die GNU Lesser General Public License (LGPL) ist neben der GNU General Public License (GPL) eine weitere von der Free Software Foundation entwickelte Lizenz für freie Software. Ursprünglich wurde sie als Library General Public License eingeführt, jedoch später umbenannt.

Die LGPL setzt ähnlich wie die GPL die Idee des Copyleft ein, um die Freiheit der lizenzierten Software zu schützen. Damit sind die Freiheiten gemeint,

  • die Software für einen beliebigen Zweck zu nutzen,
  • die Software vervielfältigen und weitergeben zu dürfen,
  • die Software nach eigenen Bedürfnissen zu ändern und
  • die geänderten Versionen weiterzugeben.

Veränderte Versionen müssen dabei ebenfalls unter der LGPL (oder wahlweise der GPL) lizenziert werden. Grundsätzlich darf eine unter LGPL lizenzierte Software nur zusammen mit ihrem Quelltext vertrieben werden.

Im Gegensatz zur GPL darf bei der LGPL Lizenz, geschlossener Code mit dem LGPL Code kombiniert werden. Aber nur wenn folgendes eingehalten wird: Ein Programm welches LGPL Code zusammen mit eigenem (z.B. proprietärem) Code verwendet, muss so aufgebaut sein, dass jeder Endnutzer den LGPL Code (oder modifizierte Versionen dessen) in das endgültige Programm reinlinken kann.[1] Dies kann entweder durch dynamisches linken geschehen (wo der LGPL Code in einer Dynamische Bibliothek verwendet wird); dann kann der Endnutzer eine eigene Dynamische Bibliothek des LGPL Teils erstellen (beispielsweise aus einer modifizierten Version des LGPL Codes) und nutzen. Oder es kann durch statisches linken geschehen - dann bekommt ein Endnutzer typischerweise die Objektdatein (oder Quelltext) des proprietärem Codes, und die Sourcen des LGPL Codes und kann diese zusammenlinken.

Beispiele für Bibliotheken unter LGPL sind die Standardbibliotheken der einzelnen Programmiersprachen, wie beispielsweise die glibc (Implementierung der Standard C Library der Free Software Foundation).

Für eine C++ Bibliothek die stark inline Funktionen und Templates verwendet, wird meist eine (etwaigen dritten Entwicklern gegenüber) weniger restriktive Lizenz als wie LGPL gewählt, sofern eine Verwendung der Bibliothek zusammen mit verschlossenem (proprietärem) Code erlaubt sein soll. Denn der proprietäre Code muss in dem Fall die inline Funktionen der Bibliothek usw. bereits im Quelltext inkludieren, und daher können dem Endnutzer keine Objektdatein des proprietärem Codes gegeben werden, da etwaige Modifizierungen von inline Funktionen (der Bibliothek) schon im Quelltext inkludiert werden müssen. [2] Als Beispiel ist libstdc++ (GNU C++ Library) zu nennen, welche zahlreiche inline Funktionen und Templates nutzt: Hier haben sich die Entwickler von libstdc++ für eine GPL Lizenz mit speziellem Zusatz entschieden[3], welche dem Entwickler erlaubt libstdc++ mit eigenem Code zu mischen, wobei der eigene Code weder unter GPL noch LGPL stehen muss (aber es natürlich darf). Insbesondere entfällt in diesem Fall die Forderung, dass ein Endnutzer die libstdc++ Bibliothek in geänderter Form reinlinken (statisch oder dynamisch) können muss und ist somit (gegenüber Entwicklern welche die Bibliothek nutzen) weniger restriktiv als wie selbst die LGPL.

Selbstverständlich gilt aber immer noch der Grundsatz, dass etwaige Änderungen an LGPL oder GPL Code (sofern die Änderungen nicht einzig und allein für den eigenen Gebrauch gemacht wurden, sondern als Programm verkauft oder wie auch immer weitergegeben werden) immer auch offengelegt werden müssen. Dies kommt dem ursprünglichen Entwickler des LGPL oder GPL Codes und all jenen die den Code verwenden zu Gute, da so z.B. etwaige Verbesserungen die beim LGPL oder GPL Code einfließen, allen zur Verfügung stehen. Eine Offenlegung von eigenem Code der unabhängig vom GPL und LGPL Code ist, ist nur notwendig wenn irgendwo in einem Programm, ein Code verwendet wird (oder auf einen Code aufgebaut wird), welcher unter reiner GPL Lizenz (der keine Zusätze hat) steht.

Die LGPL beinhaltet eine Option, eine veränderte Version einer Software unter der GPL zu veröffentlichen. Das gibt Programmierern die Möglichkeit, ihre Erweiterungen nach Wunsch unter einer „strengeren“ Lizenz zu veröffentlichen.

  1. ↑ GNU Lesser General Public License, Version 3.0 (Deutsch)
  2. ↑ GCC FAQ
  3. ↑ libstdc++ Runtime Library Exception

Siehe auch

Weblinks

Impressum AGB Datenschutz KundenserviceMediadatenfreenet AGJobsSitemap
gekennzeichnet mit
JUSPROG e.V. - Jugendschutz
freenet ist Mitglied im JUSPROG e.V.