Erläuterungen und Fragen zu Open-Source Lizenzen

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.

img/OSCD_MPL2_520x292_FINAL.png

Das Bild ist von https://opensource.com/law/13/9/github-choosealicensecom-review. Was schreibt die Lizenz vor?

Inhalt

1   Häufig verwendete Lizenzen

1.1   BSD Lizenz

  • Ursprüngliche BSD Lizenz mit 4 Klauseln ("BSD-old")
  • Modifizierte 3 Klausel BSD Lizenz, 1999, GPL kompatibel ("BSD-new")
  • Vereinfachte BSD Lizenz mit 2 Klauseln bei FreeBSD, GPL kompatibel
  • Zero-clause BSD Lizenz entspricht Public Domain.
  • https://en.wikipedia.org/wiki/BSD_licenses

1.2   Apache License 2.0

  • Apache Software Foundation (ASF)
  • Copyright-Notiz und Haftungsausschluss müssen erhalten bleiben
  • Vordruck für Contributor License Agreement (CLA): https://apache.org/licenses/icla.pdf
  • Schutz vor Patentansprüchen
  • Kein Copyleft, d.h. Änderungen müssen nicht freigegeben werden
  • Freie, open-source und proprietäre Software möglich
  • kompatibel mit GPL 3 (ab Apache 2.0)
  • optionale NOTICE Textdatei
  • https://www.apache.org/licenses/LICENSE-2.0

1.3   MPL Lizenz 2.0

  • Schwaches Copyleft; zwischen GNU Lizenzen und Apache Lizenz.
  • Ähnlich Apache Lizenz
  • Kompatibel mit GPL/LGPL, man darf also MPL-lizenzierten Code und (L)GPL Code im gleichen Executable unterbringen. Allerdings muss man dann auch den MPL Code zusätzlich unter L(GPL) anbieten.
  • Wehrt Patentklage ab (Kläger verliert Rechte)
  • Quelltextdateien können individuell unter MPL oder anderer Lizenz stehen.
  • "Covered code" (= licensed code)
  • "Licensed work" unter anderer Lizenz, oder ohne Quelltext
  • https://www.mozilla.org/en-US/MPL/2.0/FAQ/

1.4   GNU General Public License (GPL)

1.5   GNU Lesser General Public License (LGPL)

2   Allgemeines

Fragen

  1. 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.

  2. 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?

  3. 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?

  4. Gibt es Open-Source Lizenzen, die nicht für beliebige Projekte verwendet werden dürfen?

  5. Die Open-Source Definition umfasst 10 Punkte. Geben Sie fünf davon an. Es genügt jeweils ein Satz zur Erklärung.

    https://en.wikipedia.org/wiki/The_Open_Source_Definition

  6. Welche Aufgabe hat die Open Source Initiative (OSI)?

    https://opensource.org

  7. Finden Sie zwei Beispiele für mehrfach lizenzierte freie Software.

  8. Muss ich GPL-lizenzierte Software, die ich für meine Zwecke modifiziert habe, in der geänderten Form unbedingt anderen zur Verfügung stellen?

  9. 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?

  10. Die wichtigsten freien Lizenzen sind in den folgenden vier Gruppen gegliedert: (a) MPL, (b) BSD/MIT/Apache, (c) GPL, (d) CC.

    • Ordnen Sie die Gruppen von sehr streng bis sehr liberal.
    • Welche wesentlichen Eigenschaften hat jede Lizenzgruppe?
    • Für welche Inhalte steht die Gruppe (d)?
  11. Was ist ein Patent Troll?

    https://de.wikipedia.org/wiki/Patent-Troll

  12. Welchen rechtlichen Gefahren ist freie Software ausgesetzt?

  13. 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.

  14. 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

  15. Was ist SPDX?

    https://spdx.org

    https://spdx.org/licenses/

  16. Welches Buch könnten Sie einem Laien empfehlen, wenn er sich über die Thematik "Urheberrecht im Alltag" informieren wollte?

    https://irights.info

  17. 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.

  18. Was sind "Open Educational Resources" (OER)?

  19. 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.

  20. Enthält die GPL eine Einschränkung bezüglich der kommerziellen Verwertung?

  21. Gibt es Open-Source Lizenzen, die die kommerzielle Nutzung verbieten?

  22. Darf man ein GPL lizensiertes Produkt modifizieren und dann unter der BSD Lizenz weiter vertreiben?

  23. 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?

3   GPL

  1. Welche vier Punkte müssen erfüllt sein, damit man von freier Software (engl. free software) sprechen kann?

  2. Beschreiben Sie die vier Freiheiten, die einem von der GNU General Public License gewährt werden.

  3. Beschreiben Sie die wesentlichen Eigenschaften der GNU General Public License.

  4. Was wird speziell bei der Affero GPL (AGPL) berücksichtigt?

  5. 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?

  6. Sie bieten ihren Kunden einen Webdienst an. Unter welcher Lizenz müssen Sie den Quelltext an den Kunden weitergeben?

    1. GPLv2
    2. GPLv3
    3. AGPL
  7. Erläutern Sie den Begriff Copyleft.

  8. Eine Firma leitet ihr Produkt von GPL-lizenzierten Code ab. Entscheiden Sie, ob die folgenden sechs Punkte legal sind:

    1. Den GPL-Code verwenden
    2. Die Produktsoftware verteilen
    3. Den Quellcode des Produktes nicht mitliefern und auch nicht zugänglich machen
    4. Den Quellcode des GPL-Codes verändern
    5. Geänderten Code nicht offenlegen bzw. nicht zugänglich machen
    6. Beim Vertrieb der Software nicht auf die Lizenz hinweisen.
  9. 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.
    
  10. Eine Firma leitet ihr Produkt von GPL-lizenziertem Code ab. Entscheiden Sie, ob die folgenden sechs Punkte legal sind:

    1. Den GPL-Code verwenden
    2. Die Produktsoftware verteilen
    3. Den Quellcode des Produktes nicht mitliefern und auch nicht zugänglich machen
    4. Den Quellcode des GPL-Codes verändern
    5. Geänderten Code nicht offenlegen bzw. nicht zugänglich machen
    6. Beim Vertrieb der Software nicht auf die Lizenz hinweisen.
  11. Was ist die Idee hinter dem Projekt https://www.gpl-violations.org von Harald Welte?

  12. 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

  13. Sehen Sie sich die Lizenz des eCos Betriebssystems an (https://ecos.sourceware.org). Welche Besonderheit im Unterschied zur GPL ist darin enthalten?

4   LGPL

  1. Wofür steht das "L" bei LGPL?

  2. 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.

  3. Nach einer Veränderung des LGPL Codes (engl. derivative work) muss man den geänderten Quelltext unter LGPL oder GPL freigeben.

  4. 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.

  5. Wenn Sie eine proprietäre (= kommerzielle geschlossene) Anwendung vertreiben möchten, die gegen eine oder mehrere Bibliotheken unter LGPL gelinkt wird, dann gilt Folgendes:

    • Der Kunde muss die Anwendung neu kompilieren können, so dass neuere Versionen der LGPL-Bibliotheken im Shared-Object Format verwendet werden können.
    • Der Kunde muss Zugang zum Quelltext des LGPL-Codes haben.
    • Der Kunde muss am LGPL-Quellcode Änderungen machen können und diese Änderungen auch wieder durch Linken in die Anwendung einfliessen lassen können.
    • Die LGPLv3 weist im Gegensatz zur LGPLv2 stärker darauf hin, dass der Endanwender/Kunde die Möglichkeit haben muss, eine veränderte Version der Bibliothek(en) zu installieren. Er darf nicht durch folgende Massnahmen gehindert werden:
    • Man darf Anwendungen mit Teilen aus LGPLv2 und LGPLv3 mischen, so lange die Teile als separate (dynamisch gelinkte) Objekte vorliegen. Die gesamte Anwendung darf dann unter einer proprietären Lizenz herausgegeben werden. Ausserdem darf die Anwendung auch unter LGPLv2 oder LGPLv3 herausgegeben werden.
  6. Beispiel der Qt Software

    Siehe https://www.qt.io/licensing und https://www.qt.io/faq/tag/qt-open-source-licensing

    GPLv2, GPLv3

    • In diesem Fall ist die komplette Anwendung dann auch "freie Software" und muss unter GPLv2 oder GPLv3 herausgegeben werden.

    LGPLv3

    • Die eigentliche Anwendung die den LGPL Code nutzt kann proprietär bleiben, für die Teile mit LGPL gelten aber strenge Vorschriften. Zum Linken gegen die LGPL Teile soll dynamisches Linken verwendet werden.
    • Manche Module in Qt sind nur unter GPLv3 verfügbar, nicht unter LGPLv3. Vorher prüfen!
    • Die komplette Qt Software muss (inkl. eventuellen Änderungen) dem Kunden zur Verfügung gestellt werden. Ein Link auf die Qt Homepage reicht nicht.
    • Der Anwender muss die Anwendung gegen eine neuere oder modifizierte Form der Qt Bibliothek linken können und die erzeugte Anwendung dann auf dem Target-Device laufen lassen können. Alle dafür notwendigen Tools müssen zur Verfügung stehen.
    • Der Anwender muss über seine Rechte bezüglich den LGPL-Teilen informiert werden, der Lizenztext muss beiliegen und die Software muss eine Nachricht ausgeben können, die darauf hinweist, dass Teile unter LGPL vorliegen.
    • Quelltexte mit Open-Source Qt und kommerzieller Qt dürfen nicht gemischt werden.

Literatur

https://www.gnu.org/licenses/lgpl-3.0.de.html

➔ Carsten Gerlach, Open Source: Kommerzielle Nutzung von LGPL-Libraries, 12/2009
https://www.it-rechts-praxis.de/meldungen/Open-Source-Kommerzielle-Nutzung-von-LGPL-Libraries-12

https://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License

https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License

5   Apache Lizenz

➔ 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


Fragen

  1. 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:

    https://arstechnica.com/uncategorized/2007/11/why-google-chose-the-apache-software-license-over-gplv2/

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.

6   BSD Lizenz

  1. Welche Unterschiede gibt es zwischen der BSD 2-clause, 3-clause und 4-clause Lizenz?
  2. Wieso wird Software die der Berkeley License unterliegt so oft in kommerziellen geschlossenen Produkten verwendet?
  3. Viele Firmen bedienen sich an BSD-lizenziertem Quelltext und bauen ihn in kommerzielle geschlossene Programme ein. Unter anderem hat Microsoft anfänglich den Netzwerkstack von BSD UNIX in Windows eingebaut.
    • Stimmt es, dass man die Quelltextdateien unverändert lassen muss, ansonsten aber alles damit tun und lassen darf?
    • Was muss man beachten, wenn man Quelltext unter der BSD Lizenz verwendet?

7   Kompatibilität von Lizenzen

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.


  1. Was bedeuten die englischen Begriffe

    • combined work
    • derived work
  2. Was bedeutet es, wenn eine Lizenz kompatibel mit der GPL ist?

    • Finden Sie heraus, ob die Apache Lizenz kompatibel zur GPL ist.
    • Finden Sie heraus, ob die MIT Lizenz kompatibel zur GPL ist.
    • Kann man GPL in BSD einschliessen, oder BSD in GPL?

    Achten Sie darauf, dass es unterschiedliche Versionen der Lizenzen gibt.

    https://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible

  3. Ist die GFDL Lizenz kompatibel mit der GPL Lizenz?

8   Probleme mit Web-Dienstleistungen und Cloud-Diensten

9   CC

  1. Beschreiben Sie wie die Creative-Commons Lizenz funktioniert.

    https://de.creativecommons.net/was-ist-cc/

  2. 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://www.bpb.de/lernen/digitale-bildung/oer-material-fuer-alle/181143/reihe-creative-commons-als-urheberrecht-2-0

10   Weiterführende Literatur