Zum Inhalt springen

GPL linking exception

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. Juli 2008 um 01:07 Uhr durch Moon2005 (Diskussion | Beiträge) (AZ: Die Seite wurde neu angelegt.). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Eine GPL Linking Exception (deutsch etwa: Ausnahmegenehmigung fürs Linken) verändert die Bestimmungen der GNU General Public License, sodass eine neune, modifiezierte Version der Lizenz ensteht. So wird ähnlich der GNU Lesser General Public License das Linken einer Programmbibliothek, die unter solchen Bedingungen lizenziert ist, mit einem Programm ermöglicht, das unter einer abweichenden Lizenz stehen kann. Das resultierende Programm darf unter einer Lizenz freier Wahl verbreitet werden und man ist nicht an die Bestimmungen der GNU General Public License gebunden. Lediglich die Programmbibliothek selber steht weiterhin unter der GNU General Public License. Veränderte Versionen der Bibliothek müssen folglich unter der GPL verbreitet werden.

Die Free Software Foundation schreibt keinen einheitlichen Text für die Linking Exception vor. Der ursprüngliche Urheber muss also selber den entsprechenden Erlaubnisvermerk verfassen und sollte ihn vor der Veröffentlichung dem Lizenzvermerk anhängen. Man soll jedoch beachten, dass man die Erlaubnis aller Miturheber (aller beteiligter Programmierer etc.) benötigt, um diesen Vermerk nachträglich der Lizenz hinzuzufügen. Meist wird die Möglichkeit geben, die Linking Exception bei veränderten Versionen der Bibliothek zu entfernen. Damit gelten die restiktiveren Bedingungen der GPL für das resultierende Programm, nachdem dieses mit der Biblothek gelinkt wurde. Ist die Linking Exception entfernt, darf sie nicht wieder nachträglich hinzugefügt werden, ohne alle Beteiligten um Erlaubnis zu bitten.

Die Classpath Exception

Das GNU Classpath-Projekt wird mit folgender Linking Exception vertrieben:

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version.

Bei GNU Classpath handelt es um Klassenbibliotheken für Java Laufzeitumgebungen. Ohne der Linking Exception wäre ein Betrieb mit proprietären Anwendungen unmöglich.

Unterschiede zur GNU Lesser General Public License

Im Grunde verfolgen beide Lizenzmodelle das gleiche Ziel. Es soll das Linken mit proprietärer Software ermöglicht werden, ohne dass das resultierende Programm ebenfalls unter der GPL veröffentlicht werden muss, aber die Bibliothek selber weiterhin unter der jeweiligen Lizenz (GPL oder LGPL) stehen muss - es handelt sich also um ein schwaches Copyleft.

Ein Unterschied ist, dass die LGPL fordert, dass dem resultierenden Programm ein Vermerk über die Benutzung der Bibliothek beigefügt und der Quelltext der Bibliothek mitgelifert werden muss. Außerdem darf die Lizenz des resultierenden Programmes das Linken des Programmes mit einer neuen Version der Bibliothek nicht verbieten. Folglich ist der Objektcode des Programms mitzuliefern, wenn die LGPL-lizenzierte Bibliothek nicht unter einem Shared Library-Mechanismus zur Verfügung gestellt wird. Darüber hinaus ist dem Benutzer das Dekompielieren bzw. Disassemblieren (reverse engineering) zu gestatten, damit dieser die neune Version der Bibliothek debuggen kann.

Solche Bedingungen sind manchmal schwer umzusetzten, wenn zum Beispiel LGPL-Code in Programmen für Eingebettete Systeme verwendet wird und werden mit der Linking Exception nicht gefordert.

Dass bestimmte Linking Exceptions entfernt werden können, steht in KEINEM Gegensatz zur LGPL. Die LGPL sieht nämlich vor, dass Programmierer den Code auch unwiderruflich unter der GPL stellen können.

Schließlich stellt die Linking Exception keine eigene Lizenz dar, sondern nur eine Ergänzung zur GPL. Es gibt auch keinen einheitlichen Text und die geforderten Bedingungen und eingeräumten Zusatzrechte können variieren.