Sebastian Hempel bio photo

Sebastian Hempel

Software Crafter, Clean-Code-Developer, JEE Professional, Puppet-Master, OpenSource Fanboy, Alfisti

Email Twitter Google+ XING Instagram Github

Ich bin dabei ein eigenes, kleines Projekt im Bereich der Software-Entwicklung zu starten. Das Ergebnis bzw. das Projekt selbst sollen unter einer OpenSource Lizenz veröffentlicht werden. Recht naiv bin ich an die Auswahl der zu verwendenden OpenSource Lizenz gegangen. Schaut man sich die einzelnen Lizenz genauer an, gibt es kleine aber nicht unerhebliche Unterschiede, die bei der Wahl der Lizenz zu berücksichtigen sind.

osi standard logo

Es ist ein grundlegender Unterschied, ob man sich als Anwender an die Regeln einer Lizenz halten muss, oder ob man als Entwickler selbst eine Lizenz auswählt. Im ersten Fall beschäftigt man sich mit den Einschränkungen / Freiheiten der Lizenz. Je nach Einsatzgebiet muss man mit Einschränkungen leben oder kann die Software überhaupt nicht einsetzen. Im zweiten Fall geht es eher um die Freiheiten, die man Anwendern / anderen Entwicklern an der Software geben möchte. Ein wichtiger Aspekt ist dabei für mich, ob Änderungen an der Software wieder zurückgegeben werden müssen.

Gemeinsamkeiten

Bei der Auswahl der für mich passenden OpenSource Lizenz habe ich mir nur diejenigen angesehen, die von der Open Source Initiative (OSI) anerkannt sind. Die OSI stellt eine Liste der Lizenzen zur Verfügung.

In allen Lizenzen werden vier grundsätzliche Freiheiten genannt, die dem Anwender der Software gewährt werden.

  1. Die Software darf für beliebige Zwecke verwendet werden. Es besteht keinerlei Einschränkung wer und wofür dieser die Software einsetzt.

  2. Der Anwender darf den Quellcode studieren um herauszufinden, wie sie funktioniert. Das bedingt, dass der Quellcode mitgeliefert oder zumindest ein Hinweis für den Bezug der Quellen gegeben werden muss.

  3. Die Software darf uneingeschränkt an andere weitergegeben werden.

  4. Der Nutzer darf die Software verändern und verbessern und diese Änderungen veröffentlichen.

Interessant für den Urheber sind die folgenden Punkte:

  • Der Urheber der Software wird nicht für Schäden in Anspruch genommen, die durch den Einsatz seiner Software entstehen. In allen Lizenzen ist ein entsprechender Absatz enthalten, dass es keine Garantie für den korrekten Einsatz gibt.

  • Es muss ein Hinweis auf den Urheber der Software angebracht werden. Dies schließt auch die evtl. kommerzielle Verwendung der Software ein.

Unterschiede

Interessanter wird es bei den Punkten, bei denen sich die einzelnen Lizenzen unterscheiden. Gerade hier habe ich mir die meisten Gedanken bei der Auswahl gemacht.

Verwendung in kommerzieller Software

Die Frage ist, ob die Software in kommerziellen Produkten verwendet werden darf. Da es sich bei meinem Projekt um eine Bibliothek handelt, sind Überlegungen hierzu nicht unwichtig.

Mit der Ausnahme der GNU General Public License (GPL) erlauben alle Lizenzen die Verwendung in kommerzieller Software. Mit der Lesser General Public License (LGPL) gibt es eine “entschärfte” Version, die dies unter bestimmten Bedingungen ermöglicht.

Dieses Verhalten der GPL wird als “starkes Copyleft” bezeichnet. Jegliche Nutzung der Software erzwingt, dass auch die nutzende Software / abgeleitete Software wieder unter der gleichen Lizenz steht. Dieses Verhalten wird von vielen Kritikern als „viral“ bezeichnet und ist einer der Hauptkritikpunkte.

Was passiert mit Änderungen?

Wichtig für mich war die Antwort auf diese Frage. Grundsätzlich darf die Software verändert werden. Was aber geschieht mit den gemachten Änderungen? Müssen diese zurückgegeben werden? Oder darf der Urheber die Änderungen diese für sich behalten?

Nur die GPL oder LGPL stellt die Bedingung, dass Änderungen auch wieder zurückfließen müssen. Andere Lizenzen ermuntern zwar dies zu tun, sie schreiben dies allerdings nicht vor. Die Änderungen können je nach Lizenz auch unter einer anderen Lizenz (kommerziell) weitergegeben werden.

Entscheidung für mein Projekt

Die Entscheidung für oder gegen eine Lizenz erfolgt nicht nur auf den bisher genannten Fakten. Es spielen auch Dinge wie z.B. der Umgang mit Patenten oder die Verbreitung der Lizenz eine Rolle. Nicht zu unterschätzen ist die Verwendung der Lizenz in bekannten / erfolgreichen Projekten.

Folgende Artikel haben mich bei der Entscheidung beeinflusst:

Schlussendlich habe ich mich für mein Projekt für die Lesser GNU General Public License entschieden. Mir war wichtig, dass zum einen eine kommerzielle Nutzung nicht ausgeschlossen ist. Zum anderen möchte ich aber, dass Erweiterungen, Korrekturen und Verbesserungen in das eigentliche Projekt zurückfließen.