Wann muss eigenentwickelte Software unter der GPL lizenziert werden?

Ob gemeinsam mit GPL-Software vertriebener Code – insebsondere Eigenentwicklungen – unter die GPL gestellt werden muss, hängt davon ab, in welcher Art und Weise die GPL-Software und der eigene Code zusammenwirken. Ziffer 2 GPLv2 beschreibt die dafür entscheidenden Kriterien. Die Grundregel ergibt sich aus Ziffer 2b) GPLv2:

»You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.«

Alles, was als ein von der GPL-Software »abgeleitetes Werk« (derivative work) anzusehen ist, muss beim Vertrieb ebenfalls der GPL unterstellt werden. Wann nun ein »abgeleitetes Werk« vorliegt, wird durch die GPL nur in Umrissen erläutert und kann nicht immer zweifelsfrei geklärt werden. Dies liegt auch daran, dass unzählige Möglichkeiten denkbar sind, wie Programmbestandteile miteinander zusammenwirken können; die Regelung in der GPL muss somit naturgemäß recht abstrakt bleiben. Daher ist es letztlich auch eine Wertungsfrage, in welchen Fällen man von eigenständigen Code-Bestandteilen ausgeht und wann man Code-Bestandteile als von einem Programm »abgeleitet« bezeichnet. Im Zweifel ist zur Klärung von konkreten Fragen anwaltlicher Rat einzuholen. Jedoch lassen sich einige allgemeine Aussagen zu häufig wiederkehrende Konstellationen treffen:
 
a) Ergänzung einer bestehenden Datei
 
Wird eine unter der GPL lizenzierte Software so geändert, dass bestehende Dateien mit eigenem Code erweitert werden oder bestehender Code ersetzt wird, darf dieser Code stets nur unter der GPL vertrieben werden.
 
b) Gemeinsamer Vertrieb auf einem Datenträger
 
Wird ein eigenes Programm mit einer GPL-Software auf einer CD-ROM oder einem anderen Datenträger zusammen vertrieben, kann das eigene Programm einer beliebigen Lizenz unterstellt werden, wenn die Programme eigenständig sind.
 
c) Anwendungsprogramme für Linux
 
Sofern ein für Linux geschriebenes Anwendungsprogramm nur über normale Systemaufrufe mit dem Linux-Kernel abläuft und im so genannten »Userland« verbleibt, muss es nicht der GPL unterstellt werden.
 
d) Verwendung von Softwaretools, Editoren, Kompilern
 
Sofern GPL-Softwaretools als Hilfsmittel zur Erstellung eines Programms verwendet werden und kein Code dieser Werkzeuge in die so erzeugte Software eingefügt wird, müssen diese auch nicht der GPL unterstellt werden.
 
e) Kernelmodule
 
Umstritten ist die Lage bei Kernelmodulen. In Linux wurden zwar bislang so genannte »Binary Only Modules« geduldet, dies sagt allerdings nichts über die lizenzrechtliche Zulässigkeit aus. Man wird keine einheitliche Aussage dazu treffen können, sondern darauf abstellen müssen, ob im Einzelfall ein inhaltlich und formal getrennter Vertrieb vorliegt.
 
f) Programmbibliotheken
 
Für Programmbibliotheken, die der GPL unterstellt sind, gilt Ähnliches wie für Kernelmodule: Es hängt von der Art der Bibliothek und der Form des Vertriebs ab, ob das auf die Bibliothek zugreifende Programm der GPL unterstellt werden muss. Entsprechend ist die Lage bei der umgekehrten Situation, wenn das zugreifende Programm der GPL untersteht. Es gibt Stimmen, die die Auffassung vertreten, dass durch die Verlinkung stets ein abgeleitetes Werk entsteht. Dies dürfte zumindest für dynamisch verlinkte Bibliotheken zweifelhaft sein;  allerdings existieren dazu keine Urteile von Gerichten, die als Anhaltspunkt dienen könnten.
 
g) Kommunikation über Schnittstellen
 
Über Schnittstellen können sowohl eigenständige Programme als auch »abhängige« Bestandteile angebunden werden. Daher kann nur anhand des Umstands, dass eine Schnittstelle verwendet wird, noch keine Aussage darüber getroffen werden, ob der so eingebundene Code unter der GPL lizenziert werden muss. Findet nur ein Informationsaustausch anhand von Kommunikationsmitteln statt, die üblicherweise für das Zusammenwirken eigenständiger Programme verwendet werden, verlangt die GPL nicht, dass ihr der fremde Code unterstellt werden muss. Dies ist im Regelfall bei der Verwendung von Pipes, Sockets und Kommandozeilenargumenten der Fall. Bei einer engeren Verbindung über die Kommunikation hinaus, insbesondere wenn durch die Kombination die Struktur der Softwarebestandteile betroffen ist, kann im Einzelfall ein »abgeleitetes Werk« vorliegen.
Siehe auch Kapitel über Ableitung
 

Hinweis

Diese FAQ basiert auf den FAQs des vom ifrOSS herausgegebenen Kommentars „Die GPL kommentiert und erklärt“, der im Verlag O'Reilly erschienen ist.
 
Nächstes Kapitel  Die GNU General Public License (GPL), Version 3, nächste FAQ: Wie unterscheiden sich die GPLv2 und die GPLv3?


Zurück zur Übersicht über die FAQs

Deutsch