Wie einige ja vielleicht wissen, schreibe ich ab und an die eine oder andere Zeile PHP Code. Man kennt es vielleicht auch selber und in vielen Projekten ist es üblich: Da nimmt man mal eine Funktion aus den Kommentaren im PHP Handbuch und packt das in den “eigenen” Code.
Und wie bei Dingen die eben so üblich sind, macht man sich erst Mal kaum weiter Gedanken. Ich wollte es aber mal genauer wissen und habe mich gefragt: Geht das denn auch lizenzmäßig? Kann man das z.B. mit GNU-GPL-Code kombinieren?
Um die Frage zu beantworten entschloss ich mich in Erfahrung bringen unter welcher Lizenz den der Code im Handbuch steht.
Unter welcher Lizenz steht der Code im PHP Handbuch?
Die Kurze Antwort: Er steht unter der Lizenz des Handbuches selber.
Und unter welcher Lizenz steht das Handbuch? Aktuell unter Creative Commons Attribution 3.0 oder in Kurz CC-BY 3.0. Dabei war die Lizenz des Handbuches nicht immer die Gleiche. Ich habe die Lizenzen in der folgenden Tabelle mal aufgereiht:
Tabelle: Lizenzgeschichte des PHP Handbuchs
Seit 2003-05-04 wird im Übrigen jeder der Notizen mit Code-Beispielen auf php.net abgibt explizit darauf hingewiesen, dass der Beitrag in den Besitz der PHP Documentation Group übergeht, ähnlich einer Code Submission Policy oder Code Submission Guidelines im Projekt der Wahl. Es wird sich offensichtlich das Recht vorbehalten, den Beitrag unter eigenen Bedingungen zu lizenzieren, was aus Sicht von php.net durchaus Sinn macht.
Das Nutzen von Code aus dem PHP Handbuch
Bleibt nur noch die Frage offen, was dies für die Nutzung vom Code aus dem Handbuch bedeutet. Vorab sei angemerkt, dass wie ich bei den Recherchen gesehen habe, einige Leute in der phpdoc Mailingliste auch drüber gestolpert sind: Der Code aus dem Handbuch ist für die Weiterverwendung in GPL (und anderen) Projekten denkbar ungeeignet.
Die GNU Seite jedenfalls führt die Creative Commons Attribution 2.0 Lizenz als inkompatibel mit der GNU GPL auf. Ob das auch für die Version 3.0 der Creative Commons Attribution gilt, darüber bin ich mir noch gar nicht so richtig im Klaren. Um die Sache praktikabel zu halten ist es wohl ratsam davon auszugehen, dass diese Lizenz nicht kompatibel ist.
“Creative Commons licenses are not designed for software”
Mia Garlick, General Counsel Creative Commons
(Engl. Creative Commons Lizenzen sind nicht für Software gedacht)
Eine einfache Binsenweisheit ist es, Code nicht unter Creative Commons Attribution zu stellen weil damit meist niemanden gedient ist. Der Code ist dann nämlich unter Lizenz-rechtlichen Gesichtspunkten betrachtet kaum noch weiter brauchbar, die Lizenz ist für andere Werk-Typen wie Bilder oder Texte gedacht die bei Veränderung ihren eigenen Charakter verlieren und dessen Attribution (Engl. Attribuierung), also die Angabe von Autorin oder Autor und Bedingungen immer mit dem Werk für alle Nutzer sichtbar ist.
Code hingegen kann differenziert und selektiv weiterverarbeitet werden und in gleicher oder abgewandelter Form aktiver Bestandteil von neuer Software werden. Oft gibt es gar nicht die Möglichkeit überall dort, wo das Werk hin weiterverarbeitet wird und zum Vorschein kommt, dem Autor angemessen Zuordnung zu Teil werden zu lassen wie es die Lizenz vorschreibt.
Eine Möglichkeit wäre auch den eigenen Code unter Creative Commons Attribution zu stellen, was wohl kaum jemand ernsthaft in Betracht ziehen dürfte. Bezeichnender Weise herrscht auf der Lizenz-Kompatibilitätsübersicht bei Creative Commons (Engl.) gähnende Leere. Eine OSI Approved License sind die Creative Commons ebenfalls nicht.
Und man kann es sich ja auch nicht immer aussuchen – sprich kurz mal die eigene Codebasis komplett Relizenzieren. Also alles eher lediglich eine theoretische Nutzung die sich aus der aktuellen Lizenz ergibt wenn man die Code-Fragmente das Terrain der reinen Dokumentation verlassen lassen möchte.
Code aus dem PHP Handbuch unter der Creative Commons Attribution Lizenz scheidet also aus. Dies gilt auch für die vorhergehende, seit dem Mai 2003 geltende Open Publication License. Sie ist definitiv nicht GPL kompatibel, weil sie die kommerzielle Nutzung ausschließt.
Etwas anderes wäre hier die GPL v2 die vor Mai 2003 zur Anwendung kam. Es kann sich also lohnen, auf das Datum der Notiz zu schauen. Zumindest könnte man prinzipiell argumentieren dass der Code bereits einmal unter der GPL v2+ veröffentlicht wurde. Zumindest theoretisch, eine Zustimmung zur Übertragung des Codes an die PHP Documentation Group wurde ja ebenfalls erst seit Mai 2003 klar kommuniziert.
Fazit
Der kleine Rückblick auf die Lizenzgeschichte des PHP Handbuchs hinterlässt einen bitteren Beigeschmack, gerade wenn man den Code in eigenen Freie-Software-Projekte weiterverwenden möchte. Abgesehen von den alltäglichen Problemen beim bedenkenlosen Kopieren und Einfügen von fremden Code, kann man sich auch kaum beachtete Lizenzprobleme zulegen.
Es wäre sicherlich Vielen geholfen, wenn der Code in den Notizen vom PHP Handbuch wieder wie Ursprünglich unter GPL v2+ oder, wie in der Mailingliste im Oktober 2010 vorgeschlagen, unter der modifizieren BSD Lizenz (Engl.) zu haben wäre.