GPL v2: „Vorwort: … Wir schützen Ihre Rechte in zwei Schritten: (1) Wir stellen die Software unter ein Urheberrecht (Copyright), und (2) wir bieten Ihnen diese Lizenz an, die Ihnen das Recht gibt, die Software zu vervielfältigen, zu verbreiten und/oder zu verändern.“

Die GPL erteilt ein Recht zur Nutzung (Vervielfältigung), zur Verbreitung und zur Veränderung (Bearbeitung). Sie ermöglicht somit die Nutzung unter der GPL v2 lizenzierter, so genannter freier Software.

I. Vervielfältigung

Um eine fremde Software nutzen zu können, muss sie vervielfältigt werden, was die GPL v2 ausdrücklich gestattet. Solange die Nutzung sich auf das Private oder auf die eigenen Systeme beschränkt, erhebt die GPL v2 keine weiteren Anforderungen. Dies gilt sogar für Bearbeitungen der Software. Erst mit einer Veröffentlichung oder Verbreitung der Software sind weitere Voraussetzungen zu erfüllen.

Die GPL v2 stellt ferner klar, dass der Vorgang der Ausführung des Programms durch die Lizenz nicht eingeschränkt wird. Zwar räumt die Lizenz auch kein ausdrückliches Recht hierfür ein, dieses Recht besteht jedoch in den meisten Rechtsordnungen schon nach dem Gesetz. In Deutschland ergibt sich das Recht „für eine bestimmungsgemäße Benutzung des Computerprogramms einschließlich der Fehlerberichtigung“ aus § 69d Abs. 1 UrhG für „jeden zur Verwendung eines Vervielfältigungsstücks des Programms Berechtigten“.

II. Verbreiten des unveränderten Quelltextes

GPL v2 § 1: „… unveränderte Kopien des Quelltextes des Programms … anfertigen und verbreiten.“

Die GPL v2 gestattet ausdrücklich die weitere Verbreitung der Software, knüpft diese aber an die nachfolgenden Voraussetzungen.

1. Mitlieferung des Lizenztextes

GPL v2 § 1: „ … desweiteren allen anderen Empfängern des Programms zusammen mit dem Programm eine Kopie dieser Lizenz zukommen lassen.“

Der Erwerber erhält durch Mitlieferung des Lizenztextes Kenntnis vom Angebot des Autors zum Abschluss eines Lizenzvertrages und damit die Möglichkeit, Rechte nach der GPL v2 zu erwerben. Vorhandene Lizenzhinweise sind unverändert zu belassen und weiterzugeben. Dem Quellcode ist eine Kopie der Lizenz (GPL v2) selbst beizufügen (Textversion der GNU GPL). In GNU-Programmen befindet sich die Lizenz normalerweise in einer Datei namens „COPYING“.

2. Urhebervermerk

GPL v2 § 1: „ … dass Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk … veröffentlichen,“

Es ist ein „geeigneter“ Copyright-Vermerk anzubringen, d.h. es sind (alle) Urheber der Software zu nennen, bspw. © 2008 [Name des Rechtsinhabers]. Der Urhebervermerk muss deutlich auffindbar an jedem Vervielfältigungsstück des Quellcodes angebracht sein. In der Regel befindet er sich in den header-files des Quelltextes der Software. Vorhandene Urhebervermerke sind unverändert zu übernehmen.

3. Haftungsausschluss

GPL v2 § 1: „ … daß Sie mit jeder Kopie einen …. Haftungsausschluss veröffentlichen,“ „… alle Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie beziehen, unverändert lassen …“

Es ist ein Hinweis auf den in der GPL v2 vorgesehenen Haftungsausschluss an jedem Vervielfältigungsstück anzubringen. Vorhandene Hinweise sind unverändert zu übernehmen.

II. Verbreiten und Kopieren des veränderten Quelltextes

GPL v2 § 2: „Sie dürfen Ihre Kopie(n) des Programms oder eines Teils davon verändern, wodurch ein auf dem Programm basierendes Werk entsteht; …“

GPL v2 § 2: „… Sie dürfen derartige Bearbeitungen unter den Bestimmungen von Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, dass zusätzlich alle im folgenden genannten Bedingungen erfüllt werden …“

Die GPL erlaubt somit ausdrücklich Bearbeitungen der Software und deren Verbreitung, knüpft diese aber an zusätzliche Bedingungen, die nachfolgend unter Ziff. 2 ff. genannt sind.

1. Mitlieferung des Lizenztextes, Urhebervermerk, Haftungsausschluss

Zunächst sind aber die Bestimmungen der GPL v2 § 1 (siehe oben Ziff. I.) einzuhalten, d.h. dem Quellcode ist eine Kopie der Lizenz (GPL v2) selbst beizufügen (Textversion der GNU GPL). Ferner sind im Quellcode der Urhebervermerk und der Hinweis auf den Haftungsausschluss aufzunehmen. Vorhandene Hinweise auf den Haftungsausschluss und die Urhebervermerke sind zu belassen.

2. Veränderungen sind unter der GPL v2 zu lizenzieren („copyleft“)

GPL v2 § 5: „… Jedoch gibt Ihnen nichts anderes die Erlaubnis, das Programm oder von ihm abgeleitete Werke zu verändern oder zu verbreiten. Diese Handlungen sind gesetzlich verboten, wenn Sie diese Lizenz nicht anerkennen. Indem Sie das Programm (oder ein darauf basierendes Werk) verändern oder verbreiten, erklären Sie Ihr Einverständnis mit dieser Lizenz und mit allen ihren Bedingungen bezüglich der Vervielfältigung, Verbreitung und Veränderung des Programms oder eines darauf basierenden Werks.“

Jegliche Bearbeitungen der Software sind wiederum unter der GPL v2 zu lizenzieren, was auch der „copyleft“ Effekt genannt wird.

3. Änderungshinweis / Urhebervermerk

GPL v2 § 2 a.: „Sie müssen die veränderten Dateien mit einem auffälligen Vermerk versehen, der auf die von Ihnen vorgenommene Modifizierung und das Datum jeder Änderung hinweist.“

Jegliche Änderungen sind im Quellcode deutlich unter Angabe des Autors und des Datums zu vermerken. In der Praxis geschieht das durch entsprechende Hinweise in den header-files. In der Regel genügt eine Jahres- oder Monatsangabe. Es wird vertreten, dass nicht der wirkliche Name genannt werden muss, sondern dass auch ein Pseudonym, etwa ein Nickname, oder eine anonyme Änderung zulässig seien. Allerdings kann dies die Rechtsdurchsetzung erschweren.

Ein Hinweis auf die Änderung oder eine Nennung des Autors im Quellcode ist ausreichend. Im Object-Code oder in einem Executable ist ein solcher Hinweis nicht erforderlich.

4. Lizenzhinweis

GPL v2 § 2 b.: „Sie müssen dafür sorgen, dass jede von Ihnen verbreitete oder veröffentlichte Arbeit, die ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist, Dritten gegenüber als Ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgebühren zur Verfügung gestellt wird.“

In jeder verbreiteten oder veröffentlichen Bearbeitung ist ein Hinweis im Quellcode aufzunehmen, dass das Programm unter der jeweiligen Lizenz (GPL v2) weiterverbreitet und/oder modifiziert werden darf. Vorhandene Lizenzhinweise sind zu belassen.

Die Bearbeitungen, also der Quellcode, sind Dritten gegenüber als Ganzes unter den Bedingungen der GPL v2 ohne Lizenzgebühren zur Verfügung zu stellen. Als Ganzes ist dabei so zu verstehen, dass der ursprüngliche Quellcode und die Bearbeitungen zusammen, d.h. „im Ganzen“ und unabhängig vom jeweiligen Autor bereit zu stellen sind.

5. Anzeige bei interaktiven Kommandos

GPL v2 § 2 c.: „Wenn das veränderte Programm normalerweise bei der Ausführung interaktiv Kommandos einliest, müssen Sie dafür sorgen, dass es, wenn es auf dem üblichsten Wege für solche interaktive Nutzung gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten Copyright-Vermerk enthält sowie einen Hinweis, dass es keine Gewährleistung gibt (oder anderenfalls, dass Sie Garantie leisten), und dass die Benutzer das Programm unter diesen Bedingungen weiter verbreiten dürfen. Auch muss der Benutzer darauf hingewiesen werden, wie er eine Kopie dieser Lizenz ansehen kann. (Ausnahme: Wenn das Programm selbst interaktiv arbeitet, aber normalerweise keine derartige Meldung ausgibt, muss Ihr auf dem Programm basierendes Werk auch keine solche Meldung ausgeben).“

Mit der Formulierung „Programm, welches normalerweise bei der Ausführung interaktiv Kommandos einliest“ sind alle Programme gemeint, die nicht nur im Hintergrund ablaufen, wie zum Beispiel Systemprogramme, sondern solche, die mit Hilfe von Eingaben gesteuert werden, und zwar unabhängig davon, ob dies per Kommandozeile oder per GUI geschieht.

Ein Programm, welches interaktiv ist und auf die Geltung der GPL v2 sowie auf den Haftungsausschluss hinweist oder Copyright-Vermerke anzeigt, muss diese Hinweise auch weiterhin, d.h. nach der Bearbeitung, anzeigen bzw. enthalten. Wenn ein Programm eine interaktive Funktion erst eingeführt, müssen die Hinweise ebenfalls eingeführt werden.

Das interaktive Programm hat jeweils folgendes auszugeben bzw. anzuzeigen:

a.) Urhebervermerk

GPL v2 § 2 c.: „… einen geeigneten Copyright-Vermerk …“.

b.) Haftungsausschluss

Einen Hinweis auf den Haftungsausschluss. Falls eine Gewährleistung/Haftung explizit von demjenigen eingeräumt wird, der den Object-Code oder das Executable verbreitet, ist stattdessen ein Hinweis hierauf aufzunehmen.

c.) Verbreitungshinweis

Ein Hinweis darauf, dass das Programm unter den Bedingungen der GPL v2 weiterverbreitet werden darf.

d.) Ort des Textes der GPL

Es ist der Ort anzugeben, an dem sich der Text der GPL befindet, also etwa der Dateiname (zum Beispiel »COPYING«).

e.) Ausnahme

GPL v2 § 2 c.: „Wenn das Programm selbst interaktiv arbeitet, aber normalerweise keine derartige Meldung ausgibt, muss Ihr auf dem Programm basierendes Werk auch keine solche Meldung ausgeben.“

III. Kopieren und Verbreiten des Objekt-Codes

GPL v2 § 3: „… als Objectcode oder in ausführbarer Form … kopieren und weitergeben …“

Ein Programm in ausführbarer Form bedeutet regelmäßig ein Executable, auch wenn dieses Bestandteil einer Hardware ist, bspw. als Firmware.

GPL v2 § 3: „… das Programm (oder ein darauf basierendes Werk gemäß Paragraph 2) …“

Die diesbezüglichen Pflichten gelten für Programme, die auf unveränderten oder verändertem Quellcode beruhen, letzteres jeweils unter Einhaltung der entsprechenden oben genannten zusätzlichen Pflichten.

1. Zugänglichmachung des Quelltextes

a.) kommerzielle Nutzung

(i) Variante A

GPL v2 § 3 a: „Liefern Sie das Programm zusammen mit dem vollständigen zugehörigen maschinenlesbaren Quelltext auf einem für den Datenaustausch üblichen Medium aus, wobei die Verteilung unter den Bedingungen der Paragraphen 1 und 2 erfolgen muss.“

Es ist also immer der Quellcode mit bereitzustellen. In der Variante A kann dies durch gemeinsame Auslieferung des Object- und des Quellcodes geschehen, bspw. durch das Anbieten einer Möglichkeit zum Download im Internet, oder auf einem üblichen Datenträger.

(ii) Variante B

GPL v2 § 3 b: „… zusammen mit einem mindestens drei Jahre lang gültigen schriftlichen Angebot aus, jedem Dritten eine vollständige maschinenlesbare Kopie des Quelltextes zur Verfügung zu stellen – zu nicht höheren Kosten als denen, die durch das physikalische Zugänglichmachen des Quelltextes anfallen –, wobei der Quelltext unter den Bedingungen der Paragraphen 1 und 2 auf einem für den Datenaustausch üblichen Medium weitergegeben wird.“

In der Variante B wird die gleichzeitige Auslieferung des Quellcodes durch das schriftliche Angebot an jedermann ersetzt, den Quellcode in maschinenlesbarer Form nachträglich auf Anfrage zu erhalten, und zwar für mindestens drei Jahre lang.

b.) ausschließlich nicht-kommerzielle Nutzung

GPL v2 § 3 c: „… zusammen mit dem schriftlichen Angebot der Zurverfügungstellung des Quelltextes aus, das Sie selbst erhalten haben.“

Die Variante C gilt nur bei nicht-kommerzieller Nutzung und wenn das Programm als Objectcode oder in ausführbarer Form mit einem entsprechenden Angebot gemäß GPL v2 § 3 Absatz b erlangt wurde. Dann kann die Auslieferung des Quellcodes durch die Weitergabe des entsprechenden Angebots ersetzt werden. Ferner gilt Variante C nur, wenn das Programm nicht verändert worden ist.

2. Form

GPL v2 § 3: „Unter dem Quelltext eines Werkes wird diejenige Form des Werkes verstanden, die für Bearbeitungen vorzugsweise verwendet wird.“

Die Bereitstellung des Quellcodes kann durch Mitlieferung des vollständigen Quelltextes auf einem üblichen Datenträger erfolgen.

GPL v2 § 3: „Wenn die Verbreitung eines ausführbaren Programms oder von Objectcode dadurch erfolgt, dass der Kopierzugriff auf eine dafür vorgesehene Stelle gewährt wird, so gilt die Gewährung eines gleichwertigen Kopierzugriffs auf den Quelltext von derselben Stelle als Verbreitung des Quelltextes, auch wenn Dritte nicht dazu gezwungen sind, den Quelltext zusammen mit dem Objectcode zu kopieren.“

Nur wenn das ausführbare Programm bzw. der Objectcode über das Internet zum Download angeboten wird, genügt es, wenn auch der Quelltext auf derselben Website zum Download angeboten wird. Ein Angebot zum Download an anderer Stelle reicht nicht aus.

Alternativ genügt ein schriftliches, mindestens für drei Jahre gültiges Angebot an jedermann zur Lieferung des vollständigen Quelltextes auf einem üblichen Datenträger zu einem Preis, der die eigenen Kosten nicht übersteigen darf. Dieses Angebot kann in einem beigelegten Handbuch oder der sonstigen schriftlichen Dokumentation erfolgen.

3. Umfang

GPL v2 § 3: „Für ein ausführbares Programm bedeutet „der komplette Quelltext“: Der Quelltext aller im Programm enthaltenen Module einschließlich aller zugehörigen Modulschnittstellen-Definitionsdateien sowie der zur Compilation und Installation verwendeten Skripte. Als besondere Ausnahme jedoch braucht der verteilte Quelltext nichts von dem zu enthalten, was üblicherweise (entweder als Quelltext oder in binärer Form) zusammen mit den Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.) geliefert wird, unter dem das Programm läuft – es sei denn, diese Komponente selbst gehört zum ausführbaren Programm.“

Dies bedeutet alles was zu Compilation des Executable, also bspw. einer Firmware, erforderlich ist, einschl. aller zugehörigen Modulschnittstellen-Definitionsdateien sowie der zur Compilation und Installation verwendeten Skripte.

Verwendungshinweis:

Dieser Text dient als Beitrag zur Auseinandersetzung mit dem Thema GPL-Compliance. Er ersetzt nicht eine auf den jeweiligen Fall zugeschnittene Prüfung und stellt ausdrücklich keine Rechtsberatung für den Einzelfall dar.

Kommentaren und Anregungen unter law@naumann-ra.de sehen wir gern entgegen.

Kleines Einmaleins der GPL v2-Compliance