GPL: Wie muss der Quelltext angeboten werden?

Der Streit um mögliche Verletzungen der GPL durch Android-Geräte geht weiter, wie Golem.de demonstriert. Dabei wird zunehmend deutlich, dass offensichtlich teilweise unbekannt und teilweise umstritten ist, welche Pflichten die GPL hinsichtlich der Quelltexte auferlegt. Eine kurze Darstellung.

Pflichten bei Opensource-Software – Nicht nur was für „Big-Player“

Die GPL verlangt als eine der Kernpflichten, dass bei Weitergabe von ausführbarem oder Objektcode (im Folgenden nur noch „Objektcode“)  – also dem ausführbarem Code – auch der Quelltext zur Verfügung gestellt werden muss. Das aktuelle Beispiel Android ist natürlich ein besonders grosser Markt, darf aber nicht darüber hinweg täuschen, dass eine Vielzahl kleinerer Projekte ähnliche Probleme haben wird. Gerne wird im Rahmen kommerzieller Projekte auf frei verfügbaren Code zurückgegriffen, der z.B. modular eingebunden wird oder als reine Bibliothek nur einzelne Funktionalitäten sicherstellt. Gerade kleinere Projekte müssen, um Ressourcen zu schonen, dabei auf die mitunter schon vielfach vorhandenen Lösungen zurück greifen, die im Netz zu finden sind und frei zur Nutzung (auch in kommerziellen Projekten) zur Verfügung stehen.

Wenn entsprechende Bibliothek auch entsprechend grosszügige Lizenzen (etwa die LGPL) nutzen, ist das auch selten ein Problem. Wenn aber eher restriktive Lizenzen, wie die GPL, zum Einsatz kommen, kann das zu Problemen führen. Interessant ist dabei, dass man als Anbieter häufig mit Kunden konfrontiert ist, die am Quelltext auch gar kein Interesse haben. Das Android-System ist da ein ausgezeichnetes Beispiel: Der Durchschnitts-Nutzer möchte sein Handy kaufen, einschalten und benutzen. Den gesamten Quelltext selber zu kompilieren oder durchzusehen liegt dem durchschnittlich zu erwartenden Nutzer fern. Vor diesem Hintergrund kann es schnell geschehen, dass man die Pflichten hinsichtlich des Quelltextes (nicht einmal böswillig) vergisst. Das mag mitunter nachvollziehbar sein, ändert aber nichts daran, dass es ein Lizenzverstoss ist.

Die zwei GPL-Versionen: 3 und 2

Heute gibt es zwei relevante Versionen der GPL, die sich inhaltlich durchaus erheblich unterscheiden: Version 2 von 1991 und Version 3 von 2007. Wesentlich verbreiteter ist die Version 2, nicht zuletzt wegen des historischen Kontextes. Umstritten ist, wie sich der Bezug auf die „alte“ GPL2 als zur neuen GPL3 verhält.

Dem Grunde nach müsste in einem Projekt jeder einzelne Rechteinhaber einem Lizenzwechsel zustimmen – müsste. In der Tat ist es hoch umstritten, wie die GPLv2 sich zur GPLv3 verhält. In der GPLv2 findet sich unter Ziffer 9 ein (vermeintlich) klarer Absatz dazu:

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and „any later version“, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

Adrian Schneider vertritt auf Telemedicus die Meinung, dass damit automatisch jede spätere Version genutzt werden kann, sofern nicht ein entsprechend eingeschränkter Hinweis in der Software vorgenommen wird, etwa in der Art „Dieser Code unterliegt alleine der GPL in der Version 2.0“.

Allerdings wirft Till Kreutzer in „Die GPL kommentiert und erläutert“ (S. 127) zu Recht die Frage auf, ob eine solche Einrschänkung seitens des Lizenzgebers überhaupt möglich ist. So ist es durchaus möglich – wenn auch nicht zwingend – den GPL-Text so zu lesen, dass man als Rechteinhaber entweder auf die „GPL 2.0 and any later Versions“ verweisen muss oder auf „Any Version“ und eben nicht auf „GPL 2.0 only“. Den Streit möchte ich indes an dieser Stelle nicht vertiefen, sondern nur die Problematik erst einmal nur zur Kenntnis aufzeigen.

Dabei noch kurz zur Frage, warum die neue GPL-Version u.a. „nötig“ war: Als 1991 die Version 2 erschien, war vieles nicht absehbar. Insbesondere weder der Siegeszug der Idee der Opensource-Software (OSS), noch die allgemeine Entwicklung des Internet sowie der möglichen Speicherkapazitäten. Von Umständen wie der Tatsache, dass ein 200-Euro-Handy heute faktisch nichts anderes als ein Computer ist, auf dem gleichsam OSS laufen kann, mal ganz abgesehen. Dabei ist es heute, anders als Anfang der 90er, nichts besonderes mehr, dass proprietäre Hardware in Masse (Handy, Router – gar Fernseher!) mit Opensource-Software-Komponenten ausgeliefert werden. Vor dem Hintergrund ist die Frage der Verbreitung des Quelltextes (um die es hier geht) ganz anders zu beurteilen, was in der GPLv3 zur Ziffer 6 führte, die uns noch beschäftigen wird.

Dazu kommen aber auch besondere „Befindlichkeiten“ der Programmierer: Unter der GPLv2 war und ist z.B. hart umstritten, wie man mit ausgegebenen Autoren-Hinweisen umgehen muss. Viele Autoren wollten unter der GPLv2 einen Hinweis ausgeben, der auf Sie als Autor hinweist, und verbieten, dass man diese Ausgabe entfernt. Das lässt sich mit dem Text der GPLv2 nur schwer vereinbaren – das Ergebnis ist dann in der GPLv3 die explizite Regelung unter Ziffer 7b.

Pflicht zur Weitergabe des Quelltextes – GPLv2

Wer den Objektcode weitergibt, muss auch den Quelltext weitergeben – ein einfaches Prinzip. Die Regelung dazu findet sich in Ziffer 3 der GPLv2, wobei sich der vermeintlich einfache Text schnell als tückisch erweist. Insbesondere ist schnell erkennbar, dass dieser Abschnitt zu einer Zeit entstanden ist, in der Daten vor allem auf Datenträgern (und nicht über Internet-Angebote) verbreitet wurden. Kurz dargestellt hat man nach Ziffer 3 folgende Optionen:

a) Man liefert den Quellcode auf einem üblichen Datenträger, zusammen mit dem Objektcode, aus
b) Man liefert nur den Objektcode aus, dazu ein schriftliches Versprechen, zum Selbstkostenpreis auf Nachfrage den Quellcode auf dem gleichen Datenträger zu liefern, auf dem der Objektcode geliefert wurde.
c) Wer nicht gewerblich den Objektcode weitergibt und diesen im Rahmen einer Vereinbarung nach (b) erhalten hat, kann bzgl. des Quellcode seinerseits auf die ursprüngliche Vereinbarung nach (b) verweisen.
d) Als weitere Option wurde schon 1991 in der Version 2 der Online-Zugriff aufgenommen, zu finden im Absatz III der Ziffer 3. Verständlich ausgedrückt steht da: Wer unter einer Netzwerk-Adresse einen Objektode anbietet, kann unter der gleichen Adresse auch den Quelltext anbieten.

Wichtig dabei: Sowohl 3c als auch 3 III machen eines deutlich: Man kann in der GPLv2 nicht kombinieren, also nicht auf einem Datenträger den Objektcode liefern und dann (ggfs. erst nach Anfrage) den Quellcode online zum Download stellen. (So auch im Ergebnis Koglin, GPL kommentiert und erklärt, S.84).

Pflicht zur Weitergabe des Quelltextes – GPLv3

Gerade der letzte Absatz stellt heute gewisse Probleme dar: Wer entsprechend der GPLv2 in einem Hardwareprodukt einen Objektcode ausliefert, muss eine CD beilegen um seiner Pflicht (in diesem Fall entsprechend Ziffer 3a) nachzukommen. Das Beilegen von CDs ist aber heute eher selten der Fall, die meisten Produktverpackungen (speziell bei Handys) wären hierzu auch zu klein. Die GPLv3 kommt dem entgegen in der neuen Ziffer 6, die gleich mehrere ausdrückliche Möglichkeiten vorliegt. Die alte Methode (CD beilegen) findet sich direkt unter Ziffer 6a. In Ziffer 6b wird dann die Möglichkeit geschaffen, wahlweise entweder ein schriftliches Angebot zu machen, den Quelltext auf Nachfrage zu liefern oder den Download auf einem Netzwerk-Server zur Verfügung zu stellen.

Heilung des GPL-Verstosses durch nachgeholte Lieferung

Wie ist also nun zu verfahren, wenn bisher ein Quelltext gar nicht geliefert wurde? In meinem früheren Beitrag (hier zu finden) habe ich dargestellt, dass ich der Auffassung bin, ein GPL-Verstoss kann problemlos und ohne grossen Aufwand geheilt werden. Wenn man meiner Darstellung folgt, kann also die Quelltext-Veröffentlichung grundsätzlich nachgeholt werden.

Problematisch wird dies dann, wenn man der Meinung ist, dass es möglich ist, Code nur unter einer speziellen GPL-Version zu lizensieren. Wenn etwa ausschliesslich unter der GPLv2 lizensiert wurde, und man diese Beschränkung zulässt (siehe dazu oben), ist es nicht möglich, durch ein Online-zur-Verfügungstellen des Quellcodes den Verstoss zu heilen, wenn man vorher nur auf Datenträgern (sei es auf CDs oder in Hardware wie Routern) den Objektcode verbreitet hat. Denn, wie dargestellt: Eine Kombination aus Online-Anbieten und Datenträger-Vertrieb ist nicht möglich mit der GPLv2. Man könnte das Problem bestenfalls eingrenzen, indem man den Objektcode erneut als Download anbietet, um dann entsprechend Ziffer 3 III zusätzlich den Quelltext anzubieten. Gleichwohl wäre das keine „echte“ Heilung, jedenfalls im deutschen Recht sähe ich aber danach ggfs. ein Hindernis im Rahmen des Grundsatzes von Treu und Glauben, wegen dem ersten Verstoss noch weiter vorzugehen.

Letztes Problem: „Schriftliches Angebot“

Es verbleibt aber noch ein anderes Problem, das speziell nach deutschem Recht durchschlagen kann. Die GPL – sei es nun in Version 2 oder Version 3 – eröffnet die Möglichkeit, anstelle des Angebotes des Quelltextes ein „schriftliches Angebot“ über den Quelltext zu machen. Wenn man sich aber nun die §§126, 126a BGB ansieht, entspräche dem im digitalen Bereich nur ein, mit einer qualifizierten Signatur versehener, Text. Das ist der Unterschied zur „Textform“ nach §126b BGB, die z.B. mit einer ausdruckbaren Datei oder E-Mail eingehalten werden kann. Wer diese Möglichkeit nutzen will, wird – zumindest in Deutschland – daher gut beraten sein, einen tatsächlich gedruckten Beipackzettel seiner Software beizulegen, um kein Risiko einzugehen.

Fazit zur Weitergabe des Quelltextes nach der GPL

Das Ergebnis zeigt wieder einmal: Die Pflichten einer Nutzung im Rahmen der GPL sind keineswegs umfassend, aber im Detail können da durchaus erhebliche Probleme auftreten. Spätestens im kommerziellen Umfeld sollte man insofern nicht leichtfertig mit dem GPL-Text umgehen. Die bisher wenigen gerichtlichen Entscheidungen haben dabei m.E. noch nicht allzu viel geklärt – allenfalls, dass die GPL mit deutschem Recht vereinbar ist, wie sie grundsätzlich rechtlich zu verstehen ist und wer bei Lizenzverletzungen mindestens klagen kann, ist derzeit relativ feststehend. Damit bleibt noch sehr viel Raum für Streit.

Links zum Thema:

Rechtsanwalt Jens Ferner (Fachanwalt für IT- & Strafrecht)
Benutzerbild von Rechtsanwalt Jens Ferner (Fachanwalt für IT- & Strafrecht)

Von Rechtsanwalt Jens Ferner (Fachanwalt für IT- & Strafrecht)

Ich bin Fachanwalt für Strafrecht + Fachanwalt für IT-Recht und widme mich beruflich ganz der Tätigkeit als Strafverteidiger und dem IT-Recht. Vor meinem Leben als Anwalt war ich Softwareentwickler. Ich bin Autor sowohl in einem renommierten StPO-Kommentar als auch in Fachzeitschriften.

Unsere Kanzlei ist spezialisiert auf Starke Strafverteidigung, seriöses Wirtschaftsstrafrecht, Arbeitsrecht und IT-Recht / Technologierecht. Beachten Sie unsere Tätigkeit im Steuerstrafrecht, digitaler gewerblicher Rechtsschutz, IT-Sicherheitsrecht sowie Softwarerecht.