Hochschule Augsburg | Fakultät für Informatik | Open-Source Software
H. Högl, 2021-05-17, <Hubert.Hoegl@hs-augsburg.de>
Dieser Text ist eine Sammlung von Erläuterungen und Fragen zum Thema "Lizenzen" im Wahlfach Open-Source Software. Kommentare und Anregungen dazu dürfen Sie gerne per E-mail schicken.
Inhalt
Ein Programm (Software) ist ähnlich zu anderen Werken in Textform, z.B. einem Roman oder einem Fachbuch.
Der Schöpfer eines Werkes ist der Urheber. Ein Werk kann auch mehrere bis zu sehr vielen Urhebern haben, was für Open-Source Software gar nicht untypisch ist.
Der Urheber bestimmt die Rechte und Pflichten des Nutzers. Die Lizenz enthält die Nutzungsrechte.
Die Lizenz wird vom Urheber vergeben. Der Urheber kann auch mehrere verschiedene Lizenzen für ein Werk vergeben (Mehrfachlizenzierung, siehe unten).
Die Lizenz wird dem Werk sichtbar hinzugefügt.
Eine Lizenz kann so gestaltet sein, dass sie von beliebigen anderen Personen für beliebige Projekte wiederverwendet werden darf, z.B. ist das so bei der GPL oder der BSD Lizenz und bei vielen anderen. Lizenzen die nicht wiederverwendet werden dürfen sind z.B. die Python Software Foundation License oder die Nokia Open Source License.
Nur der Urheber (oder alle Urheber miteinander) kann/können die Lizenz eines Werkes für zukünftige Ausgaben ändern. Die Lizenz von älteren Ausgaben kann nicht rückwirkend geändert werden.
Die Kosten für kommerzielle Software entstehen häufig durch das Nutzungsrecht, das oft zeitlich befristet ist. Beispielsweise Anwender von SAP Software (Warenwirtschaft) oder von Matlab (wissenschaftliches Rechnen) haben in der Regel jährliche Ausgaben für die Erneuerung der Lizenzen zu leisten.
Lizenzen können eine kommerzielle Nutzung erlauben oder ausschliessen. Beispiele: Software unter der GPL darf man jederzeit auch kommerziell vermarkten. Die Qt Public License (QPL) von 1999 hat es verboten, kommerzielle Produkte damit zu machen. Wer kommerzielle Software mit Qt anbieten möchte, der muss eine kommerzielle Qt Lizenz wählen.
Kategorien von Lizenzen
Wer es ganz genau wissen will: https://www.ifross.org/lizenz-center
Das IFROSS klassifiziert die Lizenzen wie folgt (schauen Sie sich dort gerne etwas um):
Lizenzen ohne Copyleft-Effekt (“Permissive Licenses”)
Apache, BSD, MIT, ...
Lizenzen mit strengem Copyleft-Effekt
GPLartige Lizenzen
GPL, AGPL, ...
Sonstige Lizenzen mit strengem Copyleft-Effekt
z.B. Eclipse CPL, ...
Lizenzen mit beschränktem Copyleft-Effekt
MPLartige Lizenzen
MPL, NASA Open Source Agreement, OPL, ...
Sonstige Lizenzen mit beschränktem Copyleft-Effekt
LGPLv2, LGPLv3, ...
Lizenzen mit Wahlmöglichkeiten
Lizenzen mit Sonderrechten
Was ist ein Contributor License Agreement (CLA)?
➔ https://en.wikipedia.org/wiki/Contributor_License_Agreement
Beispiele:
Aus https://opensource.guide/de/legal/, Abschnitt 7
Benötigt mein Projekt eine zusätzliche Kontributionsvereinbarung?
Wahrscheinlich nicht. Für die überwiegende Mehrheit der Open-Source-Projekte gilt eine Open-Source-Lizenz implizit sowohl für reinkommende Beiträge als auch ausgehend an andere Mitwirkende und Benutzer*innen. Wenn Ihr Projekt auf GitHub steht, machen GitHubs Terms of Service diese “inbound=outbound” genannte Praxis zum expliziten Standard.
Eine zusätzliche Kontributionsvereinbarung - oft auch Contributor License Agreement (CLA) genannt - kann Verwaltungsarbeit für die Projektbetreuer*in schaffen. Hierbei hängt der Umfang der zusätzlichen Arbeit vom Projekt und der Implementierung ab. Eine einfache Vereinbarung erfordert, dass die Kontributor*innen mit einem Klick bestätigen, dass sie die erforderlichen Rechte innehaben, um zum Projekts im Rahmen dessen Open-Source-Lizenz beizutragen.
Durch das Hinzufügen von “Papierkram”, den einige für unnötig, schwer verständlich oder ungerecht halten (wenn der/die Empfänger*in der Vereinbarung mehr Rechte erhält als die Mitwirkenden oder die Öffentlichkeit über die Open-Source-Lizenz des Projekts erhält), kann eine zusätzliche Kontributionsvereinbarung als unfreundlich für die Gemeinschaft des Projekts empfunden werden.
Fragen
Warum ist es schlecht, wenn Sourcecode, der zur freien Verwendung bestimmt ist, keine Lizenz trägt? Github schlägt z.B. vor, dass man den Maintainer in einem Pull-Request auf eine mögliche Lizenz hinweisen könnte.
Sehen Sie sich die Lizenz-Statistik von github an (2015):
https://github.com/blog/1964-open-source-license-usage-on-github-com
Welches sind die beliebtesten Lizenzen (zumindest 2015)?
Eine neuere Zusammenstellung (2021) findet man hier:
https://www.whitesourcesoftware.com/resources/blog/open-source-licenses-trends-and-predictions
Github möchte mehr Anwender zur Auswahl einer Lizenz bewegen. Aus diesem Grund gibt es https://choosealicense.com. Welche Lizenzen werden dort vorgestellt?
Sie haben ein Programm geschrieben und Patches von anderen Personen eingebaut. Was müssen Sie bedenken, wenn Sie als ursprünglicher Urheber die Lizenz des Programmes ändern möchten? Macht es einen Unterschied, ob das Programm unter der GPL oder der MIT Lizenz veröffentlich wurde?
Gibt es Open-Source Lizenzen, die nicht für beliebige Projekte verwendet werden dürfen?
Die Open-Source Definition umfasst 10 Punkte. Geben Sie fünf davon an. Es genügt jeweils ein Satz zur Erklärung.
Welche Aufgabe hat die Open Source Initiative (OSI)?
Finden Sie zwei Beispiele für mehrfach lizenzierte freie Software.
Muss ich GPL-lizenzierte Software, die ich für meine Zwecke modifiziert habe, in der geänderten Form unbedingt anderen zur Verfügung stellen?
GPL-lizensierter Code darf durchaus Teile von BSD-lizenzierten Code enthalten und das Ergebnis darf wieder unter die GPL gestellt werden.
Umgekehrt funktioniert das Ganze leider nicht. Wie könnten Sie es trotzdem erreichen, dass Ihr freier Code von beiden Lagern verwendet werden kann?
Die wichtigsten freien Lizenzen sind in den folgenden vier Gruppen gegliedert: (a) MPL, (b) BSD/MIT/Apache, (c) GPL, (d) CC.
Was ist ein Patent Troll?
Welchen rechtlichen Gefahren ist freie Software ausgesetzt?
Angenommen, Sie haben ein grosses Software-Framework geschrieben, mit dessen Hilfe andere Personen Anwendungen schreiben können (denken Sie an Qt, Spring oder Eclipse). Sie können sich nicht entscheiden, ob sie Ihr Framework unter eine freie Lizenz stellen wollen oder es als kommerzielles (geschlossenes) Produkt verkaufen möchten. Stellen Sie Vor- und Nachteile gegenüber.
Beschreiben Sie kurz die Entwicklung des Urheberrechts so wie es im Artikel von Spielkamp, "Die Zukunft der Ideen" zu lesen ist.
➔ https://hhoegl.informatik.hs-augsburg.de/oss/APuZ-Zukunft-der-Ideen.pdf
Was ist SPDX?
Welches Buch könnten Sie einem Laien empfehlen, wenn er sich über die Thematik "Urheberrecht im Alltag" informieren wollte?
Angelehnt an Lizenzen für freie und offene Software werden auch immer mehr Texte, Bücher, Diplomarbeiten und künstlerische Werke unter freie Lizenzen gestellt. Nennen Sie zwei dieser Lizenzen und beschreiben Sie grob, was diese jeweils leisten.
Was sind "Open Educational Resources" (OER)?
Darf man mit einem freien Compiler (z.B. gcc) oder Interpreter (z.B. Python) ein kommerzielles Programm entwickeln, das teuer verkauft und wofür der Quelltext nicht frei verfügbar sein soll.
Enthält die GPL eine Einschränkung bezüglich der kommerziellen Verwertung?
Gibt es Open-Source Lizenzen, die die kommerzielle Nutzung verbieten?
Darf man ein GPL lizensiertes Produkt modifizieren und dann unter der BSD Lizenz weiter vertreiben?
Sie haben die Idee, eine eigene Copyleft-artige Lizenz zur Veröffentlichung der eigenen Diplomarbeit zu gestalten? Wie können Sie sich die Sache einfacher machen?
Welche vier Punkte müssen erfüllt sein, damit man von freier Software (engl. free software) sprechen kann?
Beschreiben Sie die vier Freiheiten, die einem von der GNU General Public License gewährt werden.
Beschreiben Sie die wesentlichen Eigenschaften der GNU General Public License.
Was wird speziell bei der Affero GPL (AGPL) berücksichtigt?
Sie finden ein freies Projekt unter der AGPLv3, das einen Dienst als Web-Service implementiert, z.B. einen Online-Shop. Nachdem Sie einige Kleinigkeiten angepasst haben, lassen Sie das Programm auf Ihrem Webserver laufen. Müssen Sie den Quelltext veröffentlichen?
Sie bieten ihren Kunden einen Webdienst an. Unter welcher Lizenz müssen Sie den Quelltext an den Kunden weitergeben?
Erläutern Sie den Begriff Copyleft.
Eine Firma leitet ihr Produkt von GPL-lizenzierten Code ab. Entscheiden Sie, ob die folgenden sechs Punkte legal sind:
Sie haben Ihr Programm unter die GPL gestellt und möchten nun Code dazufügen, der mit der folgenden freien Lizenz versehen ist. Dürfen Sie das? Bitte mit Begründung.
Copyright (c) <YEAR>, <OWNER> All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Eine Firma leitet ihr Produkt von GPL-lizenziertem Code ab. Entscheiden Sie, ob die folgenden sechs Punkte legal sind:
Was ist die Idee hinter dem Projekt https://www.gpl-violations.org von Harald Welte?
Die GFDL ist die Lizenz für Dokumentationen im Rahmen des GNU Projektes. Welches Problem trat beim Debian Projekt im Zusammenhang mit der GFDL auf?
➔ https://en.wikipedia.org/wiki/GNU_Free_Documentation_License
Sehen Sie sich die Lizenz des eCos Betriebssystems an (https://ecos.sourceware.org). Welche Besonderheit im Unterschied zur GPL ist darin enthalten?
Wofür steht das "L" bei LGPL?
Falls man lediglich gegen LGPL Code linkt und keine "Ableitung" des Codes macht (engl. non-derivative work), dann darf man für das Programm eine beliebige Lizenz verwenden.
Nach einer Veränderung des LGPL Codes (engl. derivative work) muss man den geänderten Quelltext unter LGPL oder GPL freigeben.
In anderen Worten: LGPL wirkt wie eine der liberalen Lizenzen (MIT, BSD, MPL, Apache), ausser man verändert den Quelltext, dann wird sie eine strenge Copyleft Lizenz.
Wenn Sie eine proprietäre (= kommerzielle geschlossene) Anwendung vertreiben möchten, die gegen eine oder mehrere Bibliotheken unter LGPL gelinkt wird, dann gilt Folgendes:
Beispiel der Qt Software
Siehe https://www.qt.io/licensing und https://www.qt.io/faq/tag/qt-open-source-licensing
GPLv2, GPLv3
LGPLv3
Literatur
➔ https://www.gnu.org/licenses/lgpl-3.0.de.html
➔ https://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License
➔ https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
➔ Englischer Lizenztext: https://www.apache.org/licenses/LICENSE-2.0.html
➔ Deutscher Lizenztext: https://www.moo.com/de/about/fonts/apache-licence
➔ https://www.whitesourcesoftware.com/resources/blog/top-10-apache-license-questions-answered
Gewährung einer Urheberrechtslizenz
Vorbehaltlich den Bedingungen dieser Lizenz gewährt Ihnen hiermit jeder Beitragsleistende eine unbefristete, weltweite, nicht ausschließliche, kostenlose, gebührenfreie, unwiderrufliche Urheberrechtslizenz zur Vervielfältigung, Anfertigung von Bearbeitungen, zur öffentlichen Ausstellung, Aufführung, Unterlizenzierung und Verbreitung des Werks und derartiger Bearbeitungen in Quell- oder Objektform.
Gewährung einer Patentlizenz
Keine Genehmigung zur Nutzung der Handelsnamen, Marken, Dienstleistungsmarken oder Produktnamen des Lizenzgebers
Gewährleistungsausschluss
Haftungsbeschränkung
Anwendung der Apache-Lizenz auf Ihr Werk
Vordruck für Contributor License Agreement (CLA): https://apache.org/licenses/icla.pdf
Kompatibel mit GPLv3 (Apache 2 ist Untermenge von GPLv3)
Beispiele: Docker, TensorFlow
Fragen
Nennen Sie die Gründe, warum relativ viele Projekte die Apache Lizenz verwenden. Lesen Sie dazu den Artikel Why we chose the Apache License.
https://www.chef.io/blog/why-we-chose-the-apache-license (2009)
Ausserdem ist der Artikel "Why Google chose the Apache Software License over GPLv2 for Android" interessant:
In
https://hhoegl.informatik.hs-augsburg.de/oss/the-complete-guide-for-open-source-licenses-2021.pdf
finden Sie eine Aufstellung über die Häufigkeit von Open-Source Lizenzen im Jahr 2020. Die Apache Lizenz liegt dort an der Spitze.
Literatur
- ➔ https://en.wikipedia.org/wiki/License_compatibility (der Text klärt,
- was unter combined work gemeint ist)
- ➔ D. Wheeler, Make Your Open Source Software GPL-Compatible. Or Else.
- https://dwheeler.com/essays/gpl-compatible.html
Lizenzen die zueinander kompatibel sind erlauben die Kombination und Distribution von Quelltext.
Beispiele:
Kompatibel:
Nicht kompatibel:
Wenn man Software mit nicht kompatiblen Lizenzen kombiniert, kann man das gesamte Programm nicht legal verteilen.
Häufig in der Praxis: Software ist ein Konglomerat aus verschiedenen offenen Einzelteilen, die man irgendwo im Internet gefunden hat zuzüglich einem selbst geschriebenen Anteil. Die einzelnen Teile haben jeweils eigene Lizenzen. Die Frage ist nun, ob sich die Summe aus den einzelnen Lizenzen verträgt. Es kann auch sein, dass sich manche der Lizenzen gegenseitig ausschliessen, also nicht kompatibel sind.
Was bedeuten die englischen Begriffe
Was bedeutet es, wenn eine Lizenz kompatibel mit der GPL ist?
Achten Sie darauf, dass es unterschiedliche Versionen der Lizenzen gibt.
➔ https://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible
Ist die GFDL Lizenz kompatibel mit der GPL Lizenz?
GPL hat "ASP-Schlupfloch" (ASP = Application Service Provider). Unternehmen, die GPL Software nur im Hosting bzw. als ASP anbieten, müssen Quelltext nicht weitergeben. Unternehmen hat Monopol auf alle Erweiterungen und Verbesserungen, die es in die Software einbaut, da weder Konkurrenten noch Nutzer einen Anspruch auf sie haben. Bei der GPL besteht nur bei der Weitergabe der ausführbaren Datei ein Rechtsanspruch auf den Quelltext.
Die AGPL ist ein Versuch, dieses Schlupfloch zu schliessen. Es soll ein Download der Software garantiert werden, auch wenn über Netzwerk genutzt.
Die AGPL (Affero GPL) entspricht der GPLv3 mit zusätzlichem §13.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
Beispiele für AGPL: Anki Lernkartei, Diaspora, Friendica, Grafana, Ghostscript, Mastodon, Nextcloud, Owncloud, Proxmox, SugarCRM, Wire, Zarafa, ...
➔ https://de.wikipedia.org/wiki/GNU_Affero_General_Public_License
Leider halten sich manche Unternehmen nicht an die AGPL, folgende Anbieter von AGPL Software (und anderen Lizenzen) haben damit Probleme erfahren:
Xentral, Produkt "Wawision" (2017)
MongoDB, Wechsel von AGPLv3 nach SSPL (2018), da die AGPL missbraucht wurde. Ursprünglich war vorgesehen, dass Unternehmen, die MongoDB als öffentlichen Dienst betreiben wollen, den Dienst öffnen müssen oder eine kommerzielle Lizenz erwerben müssen.
https://www.heise.de/developer/meldung/MongoDB-wechselt-die-Lizenz-4192568.html
Redis, BSD + Commons Clause (2018)
Neo4j, AGPL + Commons Clause
Elastic / MariaDB, völlig neue Lizenzwege
Server Side Public License (SSPL)
Der wesentliche Abschnitt:
13. Offering the Program as a Service.
If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.
“Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
Literatur:
Commons Clause
“Commons Clause” License Condition v1.0 The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition. Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software. For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the License must also include this Commons Clause License Condition notice. Software: [name software] License: [i.e. Apache 2.0] Licensor: [ABC company]
Dies sorgt wiederum für Konflikte mit der Open-Source Initiative (OSI): Weder die SSPL noch die Commons Clause wurden von der OSI als offene Lizenzen anerkannt.
Beschreiben Sie wie die Creative-Commons Lizenz funktioniert.
Neulich sah ich in einem Artikel ein Bild mit der Bildunterschrift "Das Internet der Dinge: Alles ist vernetzt" Pixabay (https://pixabay.com/de/netz-vernetzung-vernetzt-digital-1695760/) CC0 (https://creativecommons.org/publicdomain/zero/1.0/deed.en). Was bedeutet das fuer mich?
➔ Reihe: CC als Urheberrecht 2.0
https://opensource.guide/de/legal/
Rechtliche Aspekte von Open-Source-Projekten (von Github)
Patricia Johnson, Open Source Licenses in 2021: Trends and Predictions, Jan 2021
What you need to know to choose an open source license
Gute Zusammenfassung der wesentlichen Eigenschaften der gebräuchlichsten Lizenzen.
https://gist.github.com/nicolasdao/a7adda51f2f185e8d2700e1573d8a633
https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/licensing-a-repository