GPL v2, v2 und v3 - UOS-Open-Source-Softwareentwicklung/oss1314 GitHub Wiki
#GPL v2, v2+ und v3 Kurzvorstellung einer Lizenz
Ann-Katrin Häuser, [email protected], Universität Osnabrück
Inhalt
Bei der GNU General Public License (GPL) handelt es sich um eine Open-Source-Software Lizenz. Diese erlaubt jedem Nutzer die Software ohne Einschränkungen, also auch für kommerzielle Anwendungen oder z.B. militärische Zwecke, zu nutzen. Außerdem darf die Software beliebig verändert und sowohl der originale Quellcode als auch die veränderte Version frei weiterverbreitet werden, solange Änderungen entsprechend gekennzeichnet sind. Es wird vom Entwickler keinerlei Garantie für die Funktionstüchtigkeit oder Fehlerfreiheit der Software übernommen (Grassmuck 2004).
Die bisher genannten Bedingungen gelten für die meisten Open-Source Lizenzen. Zusätzlich zeichnet sich die GPL durch ein starkes Copyleft aus. Dadurch darf GPL-lizensierte Software bzw. der Quellcode nur unter der gleichen Lizenz weiterverbreitet werden. Dies bezieht sich auch auf jegliche eigene Änderungen oder Erweiterungen. Sobald man GPL- Code im eigenen Programm verwendet, muss der Quellcode des gesamten Programms zugänglich gemacht werden und darf von Dritten verändert und verbreitet werde. Dies soll sicher stellen, dass die Software stets "frei" bleibt (GPLv2 1991, GLPv3 2007).
Ein wichtiger Abschnitt der GPL ist die so genannte "Liberty or Death"-Klausel. Diese Klausel besagt, dass wenn jemand aus rechtlichen Gründen nicht in der Lage ist die Lizenzbedingungen der GPL zu wahren, dieser die Software nicht mehr verbreiten darf. Dies soll es für Firmen weniger attraktiv machen, Entwicklern freier Software mit der Zahlung von Patentgebühren zu drohen ("Wikipedia: GPL" 2014).
Wesentliche Unterschiede zwischen den Versionen 2 und 3 der GPL betreffen zum Beispiel die Beschränkung des Nutzungsrechts der Software auf einzelne Ländern. Dies war in der Version 2 noch möglich. So konnte Code, der in einzelnen Ländern durch Patente geschützt war, in anderen unter der GPL veröffentlicht werden. Dieser "Geographical Limitations" Paragraph wurde in der Version 3 entfernt.
Die Version 3 der GPL verbietet außerdem Tivoisierung. Diese liegt vor wenn GPL-lizensierter Code auf Hardwaregeräten zum Einsatz kommt, bei denen der Nutzer keine Möglichkeit hat, den von ihm veränderten Code auf das Gerät aufzuspielen. Er kann den Quellcode in diesem Falle zwar einsehen, jedoch nicht weiter nutzen ("Tivoisierung" 2014).
Des Weiteren wurde die Version 3 der Lizenz an internationales Recht angepasst und so umformuliert, dass sie kompatibel mit der GNU Affero General Public License (AGPL) sowie der Apache License ist. Außerdem sollte sie im Zusammenhang mit dem Microsoft-Novell-Agreement besser gegen Patente schützen (Wikipedia: GPL" 2014, "GPL v3 Quick Guide" 2014).
Interessant ist, dass durch das strenge Copyleft, die unterschiedlichen Versionen der GPL untereinander inkompatibel sind. Abhilfe schafft die "GPLv2 or later" Formulierung, welche im Lizenztext eingebaut werden kann, dann auch Version 2+ genannt. Ist dies der Fall, darf der Nutzer selbst entscheiden, ob er den Code unter den Bedingungen der GPL v2 oder v3 nutzen und verbreiten möchte.
Geschichte
Die erste Version der GPL wurde 1989 von Richard Stallmann geschrieben und im Rahmen des GNU Projektes veröffentlicht. Ziel war es die unterschiedlichen Lizenzen von GNU Emacs, GNU Debugger und dem GNU C Compiler zu vereinheitlichen. Diese enthielten zwar ähnliche Bedingungen wie die daraus entstandene GPL, waren jedoch auf die einzelnen Produkte zugeschnitten und untereinander inkompatibel ("Wikipedia: GPL" 2014). Die GPL sollte für jegliches Projekt nutzbar sein, sodass in Zukunft Code projektübergreifend ausgetauscht werden kann. Dem liegt das Ideal zu Grunde, dass Programmierer ihre Zeit nicht verschwenden sollten um bereits vorhandenen Code erneut zu schreiben, sondern neue Probleme lösen (Grassmuck 2004).
1991 wurde die zweite Version der GPL veröffentlicht. Ab 2005 arbeitete die Free Software Foundation (FSF) an der GPLv3, um Defizite der Version 2, z.B. im Zusammenhang mit Tivoisierung, zu beheben. Der erste Entwurf wurde im Januar 2006 veröffentlicht. Nach insgesamt 18 Monaten Diskussion und vier Entwürfen wurde Ende Juni 2007 die finale Version präsentiert ("Wikipedia: GPL" 2014).
Projekt-Beispiele und Verbreitung
Bekannte GPL-lizensierte Projekte, sind unter anderem der Linux Kernel sowie MySQL, beide Version 2. Die GNU Compiler Collection hingegen ist zur Version 3 migriert. Insgesamt hat die Einführung der Version 3 die Community gespalten.
Laut Black Duck Software sind 33% der Open-Source Projekte GPLv2-lizensiert, während nur 12% die Version 3 verwenden ("Black Duck Software" 2014). Von den Projekten die bei Google Code gehostet werden, sollen im Jahre 2009 wiederum bereits 50% zur GPLv3 migriert sein (Asay 2009). Insgesamt ist die GPL eine der weitverbreitetsten Open-Source Lizenzen.
Kompatibilität mit anderen Lizenzen
Durch das strenge Copyleft ist die Kompatibilität der GPL mit anderen Lizenzen eingeschränkt. So sind z.B. die GPLv2 und die GPLv3 untereinander inkompatibel, da sie ihre eigene Lizenz beibehalten müssen. Nur durch den Zusatz "GPLv2 or later" (GPLv2+) lässt sich ein unter der Version 2 lizensiertes Projekt mit einem GPLv3-lizensierten verbinden. Beide Versionen sind außerdem mit den entsprechenden Versionen der GNU Lesser General Public License (LGPL) kompatibel (siehe Abbildung 1).
Ansonsten lässt sich nur Code mit freizügigen Lizenzen ohne Copyleft in GPL-Projekte einbinden. Beispiele hierfür sind die MIT und die BSD-Lizenz, die erlauben Erweiterungen unter anderen Lizenzbedingungen zu veröffentlichen. Des Weiteren lässt sich die GPL ab der Version 3 auch mit der Apache License und der Affero GPL kombinieren.
(Quelle: Wheeler D. 2007, URL: http://www.dwheeler.com/essays/floss-license-slide.html)
Referenzen:
"Black Duck Software" (2014). The Top 20 Open Source Licenses. In_BlackDuckSoftware_. URL: http://www.blackducksoftware.com/resources/data/top-20-open-source-licenses, abgerufen am 17.3.2014
Asay M. (2009) GPLv3 hits 50 percent adoption. In_News.cnet.com_. URL: http://news.cnet.com/8301-13505_3-10294452-16.html, abgerufen am 17.3.2014
GPLv2 (1991). GNU General Public License Version 2. Free Software Foundation, Inc.
GPLv3 (2007). GNU General Public License Version 3. Free Software Foundation, Inc.
"GPLv3 Quick Guide" (2014). A Quick Guide to GPLv3. In:Gnu.org. URL: http://www.gnu.org/licenses/quick-guide-gplv3.html, abgerufen am 17.3.2014
Grassmuck, V. (2004). Freie Software: Zwischen Privat- und Gemeineigentum. Bundeszentrale für politische Bildung (bpb).
"Tivoisierung" (2014). In_Wikipedia_. URL: http://de.wikipedia.org/wiki/Tivoisierung, abgerufen am 17.3.2014
"Wikipedia: GPL" (2014). GNU General Public License. In:Wikipedia. URL: http://en.wikipedia.org/wiki/GNU_General_Public_License, abgerufen am 17.3.2014
Wheeler, D. (2007). The Free Libre / Open Source Software (FLOSS) License Slide. URL: http://www.dwheeler.com/essays/floss-license-slide.html, abgerufen am 17.3.2014