Wie Open Source-Lizenzen funktionieren und wie Sie sie Ihren Projekten hinzufügen

Vor kurzem gab es einige aufregende Neuigkeiten für Entwickler auf der ganzen Welt. Facebook hat die Lizenz mehrerer von ihnen entwickelter Bibliotheken geändert. Sie wechselten von BSD-3 + -Patenten zu einem MIT .

Das scheint gut zu sein, aber was bedeutet das? Welche Auswirkungen haben verschiedene Open Source-Lizenzen?

Dieser Artikel gibt Ihnen einen schnellen Überblick über die gängigen Lizenzen. Außerdem erfahren Sie, wie Sie sie auf Ihre Open Source-Projekte auf GitHub anwenden können.

Die Autorität

Die beliebtesten Open Source-Lizenzen haben einen wichtigen Aspekt gemeinsam. Die Open Source Initiative (OSI) hat sie genehmigt.

OSI wurde 1998 mit dem Ziel gegründet, Open-Source-Software zu fördern. Es hat die Open Source Definition (OSD) erstellt, um zu definieren, was eine Open Source-Software bedeutet.

So beschreiben sie sich selbst:

Die Open Source Initiative (OSI) ist ein gemeinnütziges Unternehmen mit globaler Ausrichtung, das gegründet wurde, um über die Vorteile von Open Source aufzuklären und sich dafür einzusetzen und Brücken zwischen verschiedenen Wahlkreisen in der Open Source-Community zu schlagen.

Die Lizenzen

Die meisten Open Source-Lizenzen enthalten die folgenden Aussagen:

  1. Software kann modifiziert, kommerziell verwendet und vertrieben werden.
  2. Software kann geändert und privat verwendet werden.
  3. Eine Lizenz und ein Copyright-Hinweis müssen in der Software enthalten sein.
  4. Software-Autoren geben keine Garantie für die Software und haften für nichts.

Wir werden die beliebtesten Lizenzen durchgehen, in der Reihenfolge von den restriktivsten bis zu den freizügigsten (aus der Sicht eines Benutzers).

GNU General Public License, Version 3 (GPLv3)

GPLv3 ist eine der restriktivsten Lizenzen. Es bietet einen hohen Schutz für den Autor der Software.

  • Der Quellcode muss gemacht werden öffentlich , wenn eine Verteilung der Software vorgenommen wird.
  • Änderungen der Software müssen unter derselben Lizenz veröffentlicht werden .
  • Änderungen am Quellcode müssen dokumentiert werden .
  • Wenn bei der Erstellung der Software patentiertes Material verwendet wurde, wird den Benutzern das Recht eingeräumt, diese zu verwenden. Wenn der Benutzer jemanden wegen der Verwendung des patentierten Materials verklagt, verliert er das Recht, die Software zu verwenden.

GPLv2 ist auch sehr beliebt. Der Hauptunterschied zu GPLv3 ist die Klausel über Patenterteilungen.

Diese Klausel wurde in Version 3 hinzugefügt, um zu verhindern, dass Unternehmen Benutzern die Nutzung ihrer Patente in Rechnung stellen.

Beliebte Projekte mit GPLv3 sind Bash und GIMP . Linux verwendet GPLv2.

Ezequiel Foncubierta wies auf etwas Wichtiges für GPL-Lizenzen hin:

Die Lizenz Ihres Quellcodes muss mit der Lizenz des Open Source-Codes kompatibel sein, auf den Sie verlinken. Wenn Ihr Code beispielsweise proprietär ist, dürfen Sie keine Bibliothek unter der GPL-Lizenz verwenden. Hier neigen die Leute dazu, mehr Fehler zu machen.

Apache License 2.0

Apache License 2.0 bietet den Benutzern mehr Flexibilität.

  • Der Quellcode muss nicht öffentlich sein, wenn eine Verteilung der Software erfolgt.
  • Änderungen an der Software können unter jeder Lizenz veröffentlicht werden .
  • Änderungen am Quellcode müssen dokumentiert werden.
  • Es bietet den gleichen Schutz für die Patentnutzung wie GPLv3.
  • Die Verwendung von im Projekt enthaltenen Markennamen ist ausdrücklich untersagt.

Beliebte Projekte mit Apache License 2.0 sind Android , Apache und Swift .

Berkeley Software Distribution (BSD)

BSD hat zwei Hauptversionen: 2-Klausel und 3-Klausel. Beide bieten den Benutzern mehr Flexibilität als die Apache License 2.0.

  • Der Quellcode muss nicht öffentlich sein, wenn eine Verteilung der Software erfolgt.
  • Änderungen an der Software können unter jeder Lizenz veröffentlicht werden .
  • Am Quellcode vorgenommene Änderungen werden möglicherweise nicht dokumentiert.
  • Es bietet keine explizite Position zur Patentnutzung.
  • Der Lizenz- und Urheberrechtshinweis muss in der Dokumentation der kompilierten Version des Quellcodes enthalten sein (im Gegensatz zu nur im Quellcode).
  • Die BSD 3-Klausel besagt, dass die Namen des Autors und der Mitwirkenden nicht ohne Erlaubnis zur Bewerbung von Produkten verwendet werden dürfen, die von der Software abgeleitet sind.

Beliebte Projekte mit BSD-Lizenz sind Go (3-Klausel), Pure.css (3-Klausel) und Sentry (3-Klausel).

MIT-Lizenz

MIT ist eine der freizügigsten Lizenzen. Es ist auch das beliebteste. Es bietet dem Autor der Software einen sehr geringen Schutz.

  • Der Quellcode muss nicht öffentlich sein, wenn eine Verteilung der Software erfolgt.
  • Änderungen an der Software können unter jeder Lizenz veröffentlicht werden .
  • Am Quellcode vorgenommene Änderungen werden möglicherweise nicht dokumentiert.
  • Es bietet keine explizite Position zur Patentnutzung.

Beliebte Projekte mit MIT sind Angular.js , jQuery , Rails , Bootstrap und viele mehr.

Facebooks React.js hatte bis zum 25. September eine BSD-3 + -Patentlizenz . Es kombinierte die BSD-3-Lizenz mit einer zusätzlichen Klausel zur Nutzung von Patenten.

Kurz gesagt, wenn Sie Facebook oder eine seiner Tochtergesellschaften verklagen, verlieren Sie das Recht, React (oder eine andere Software unter derselben Lizenz) zu verwenden.

React ist jetzt MIT-lizenziert. Sie können jetzt Facebook verklagen und weiterhin React verwenden. Was für eine Erleichterung!

Anwenden einer Lizenz auf Ihre Open Source-Projekte

Die Lizenzierung Ihrer Projekte ist einfach. Sie müssen hinzufügen LICENSE, LICENSE.txtoder LICENSE.mdim Stammverzeichnis des Repository.

GitHub macht es noch einfacher:

  1. Öffnen Sie Ihr GitHub-Repository in einem Browser.
  2. Klicken Sie im Stammverzeichnis auf Create new file.
  3. Nennen Sie die Datei "LIZENZ".
  4. Klicken Sie auf Choose a license template.
  5. Wählen Sie eine der Lizenzen aus (alle in diesem Artikel genannten sind vorhanden).
  6. Einmal ausgewählt, klicken Sie auf Review and submit.
  7. Commit die Datei.

Zusammenfassend…

  • Eine der restriktivsten Lizenzen ist die GPL .
  • Eine der freizügigsten Lizenzen ist MIT .
  • Andere beliebte Lizenzen sind Apache License 2.0 und BSD .
  • Um eine Lizenz auf Ihr GitHub-Projekt anzuwenden, müssen Sie eine LICENSEDatei mit den Lizenzvorlagen von GitHub erstellen .

Schauen Sie sich meine Erklärung an, wie ich mit Python interessante Leute gefunden habe, denen ich auf Medium folgen kann!

Für weitere Updates folge mir auf Twitter.