Sonntag, 12. Februar 2012


Artikel

September 2010 | Artikel

Try – Catch

(Link zum Artikel: http://www.entwickler.de/jaxenter/artikel/3320)

Lizenzsuppe

Text: Markus Stäuble
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Im letzten Monat hatten wir im Kochtopf der Lizenzsuppe die GNU General Public License, die mit strengem Copyleft behaftet ist. Sobald diese Lizenz im kommerziellen Umfeld eingesetzt werden soll, kann es schnell zu einer versalzenen Suppe kommen. Dies wurde selbst beim GNU-Projekt erkannt, und deshalb wurde für das Projekt GNU Classpath eine Ausnahme geschaffen, auch unter der GNU Classpath Exception bekannt. Mit Exceptions kennen sich Entwickler aus. Versuchen wir es mal mit einem Try … Catch. Aber schön der Reihe nach.

Wie kommt es zu dieser Ausnahme?

Im Jahr 1998 wurde von fünf Entwicklern das GNU-Classpath-Projekt gestartet. Zielsetzung war es, eine Open-Source-Implementierung der Standardklassenbibliotheken von Java zu schaffen, wie z. B. Swing. Hauptintention war, ein freies Gegengewicht gegen die geschlossene Implementierung von Sun zu entwickeln. Als Lizenz wurde natürlich die hauseigene Lizenz von GNU genommen: die in der letzten Kolumne beschriebene GNU General Public License.

Um mit dem GNU-Classpath-Projekt arbeiten zu können, muss dagegen gelinkt werden. Aufgrund des strengen Copyleft der GPL wird das entstandene Modul aber auch automatisch zu einem GPL-Projekt, verbunden mit dessen Pflichten. Vor allem die Tatsache, dass bei solch einem Projekt schon das Linken zu einem Lizenzkäfig wird, würde viele von der Verwendung abschrecken. Darum haben sich die Macher zu einer GPL Linking Exception entschieden.

Das Wort "Exception" ist hier am ehesten mit "Ausnahmegenehmigung" zu ersetzen. Durch die Klausel entsteht eine modifizierte Variante der GPL. Ähnlich zu Lizenzen mit beschränktem Copyleft (z. B. LGPL) wird durch die GPL Linking Exception erlaubt, gegen die Bibliothek zu linken, ohne dass die Lizenz übernommen werden muss. Dadurch kann die Bibliothek in unveränderter Fassung in kommerziellen Projekten eingesetzt werden. Wichtig ist, dass diese Ausnahme nur für die Übersetzung gilt. Eine Änderung der Bibliothek ist nur erlaubt, wenn die Änderungen wieder unter GPL veröffentlicht werden. Im Fall des GNU-Classpath-Projekts wird diese Ausnahmegenehmigung auch als GNU Classpath Exception bezeichnet.

Wichtig ist, dass die GPL Linking Exception keine eigene Lizenz ist, sondern nur ein Zusatz für die GPL. Beim Lesen des Lizenztextes einer GPL-Lizenz lohnt es sich also zu prüfen, ob hier eine GPL Linking Exception vorliegt oder nicht. Das GNU-Classpath-Projekt ist kein Einzelfall für solch eine Ausnahme.

Ein anderes Beispiel ist das Projekt OpenSSL. In dessen FAQ wird beschrieben, dass OpenSSL nicht mit der GPL kompatibel ist. Um dieses Dilemma zu lösen, besitzen einige Projekte eine OpenSSL Exception. Damit wird explizit erlaubt, OpenSSL einzusetzen.

Ein weiteres Beispiel ist der GNU Ada Compiler. Damit die erzeugenden Projekte nicht direkt unter die GPL fallen, wurde die GNAT Modified General Public License verfasst. Dabei wurde die GPL auch lediglich um eine Ausnahmeklausel ergänzt.

If GPL? Prüfe auf Exception

Nicht überall ist GPL enthalten, wo auch GPL drauf steht. Somit wird hier wieder bestätigt, dass es mehr als wichtig ist, sich mit der Lizenz eines einzusetzenden Projekts auseinanderzusetzen.

Eigentlich ist es selbstverständlich, trotzdem sollte erwähnt werden, dass dies vor dem Einsatz gemacht werden sollte und nicht erst am Wochenende vor dem Livegang. Dies könnte sonst schnell zum kritischen Pfad für ein Projekt werden. Inzwischen habe ich gelernt, immer wieder zu hinterfragen, welche Bibliotheken im Projekt eingesetzt werden. Sollte hier eine unbekannte Bibliothek dabei sein, wird sofort die Lizenz geprüft. Einen schönen Monat und implementieren Sie stabile Exception Handler.

Markus Stäuble ist Senior IT-Consultant bei einer internationalen Werbeagentur. Er schreibt regelmäßig Artikel für diverse Fachzeitschriften und gibt sein Wissen gerne in Vorträgen wieder.

andere Artikel dieser Serie

Kommentare