Seit Jahren bin ich ein großer Fan von Lizenzen für Dinge, die online geteilt werden, damit andere leichter feststellen können, ob und wie sie diese wiederverwenden können. Bevor GitHub anfing, seine Benutzer sanft dazu zu bringen, LICENSE-Dateien in ihre Repos aufzunehmen, wusste ich nicht, wie man dies am besten mit Code macht - insbesondere mit Code, der öffentlich auf GitHub geteilt wird! - aber ich habe seitdem versucht, LIZENZ-Dateien gut zu nutzen.
Ich bin jetzt in der Situation, in der ich mit einigen anderen Leuten an einem kleinen Projekt gearbeitet habe, bei dem mehrere Lizenzen erwähnt werden müssen (aufgrund von Code und Bibliotheken von Drittanbietern sowie Nicht-Code-Dateien). Während meine Partner das Problem eher "schlampig" angehen - es wurde mir vorgeschlagen, "den Code einfach so online zu stellen, wie er ist, es wird niemanden interessieren" -, mache ich das lieber richtig. Das Problem ist: Ich weiß nicht, wie man mehrere (verschiedene) Lizenzen auf GitHub erwähnen soll.
Ich habe auf GitHub verschiedene Lösungen gesehen , weshalb es für mich schwer zu beurteilen ist, ob diese Antwort auf eine etwas andere Frage maßgeblich ist. Ich würde gerne wissen, welche der folgenden - wenn überhaupt - am häufigsten vorkommt oder ob es andere, zusätzliche Möglichkeiten gibt, dies zu tun.
- Erstellen Sie eine einzige LIZENZ-Datei und tragen Sie dort die Beschreibungen aller verschiedenen Lizenzen ein. ( Fragen : Sollten sie in eine bestimmte Reihenfolge gebracht werden? Würde ich die Datei mit den Namen aller darin enthaltenen Lizenzen beginnen, um eine bessere Übersicht zu erhalten)?
- Erstellen einer Lizenzdatei pro Lizenz verwendet und nennen sie
LICENSE.md
,LICENSE.LibNameA.md
,LICENSE.AssetsB.md
usw. , wie in der verknüpften Antwort vorgeschlagen. ( Frage : Die Benennung würde auf Projektnamen basieren. Keine Lizenznamen. Wenn ich mehr als eine Lizenz für selbst beigesteuertes Material verwenden würde, würde ich sie alle in der Hauptnachricht erwähnenLICENSE.md
. Wenn nicht, was würde ich stattdessen tun?) - Erstellen Sie zwei LIZENZ-Dateien : eine, in der die Lizenz (en) für den Hauptinhalt aufgeführt sind, dh der gesamte Code / das gesamte Vermögen, das Sie selbst erstellt haben; eine für alle Materialien von Drittanbietern. ( Fragen wie oben : Gibt es ein bestimmtes Benennungsschema und eine Reihenfolge, in der die Materialien von Drittanbietern aufgelistet werden?)
Wenn ich die verschiedenen GitHub-Erklärungen und -Projekte in Bezug auf die Lizenz-API richtig verstanden habe, wird bei der Bestimmung der Lizenz eines Repos nur die 'Haupt'-LIZENZ-Datei berücksichtigt (obwohl ich nicht in der Lage war, herauszufinden, welche Lizenz ausgewählt werden würde) wenn mehrere erwähnt wurden).
Antworten:
Sie können einen beliebigen Mechanismus verwenden, um die Lizenzen einzuschließen, die Sie möchten, sofern einem Besucher Ihres Projekts klar wird, welche Lizenz für welchen Teil des Projekts gilt.
Meine Präferenz wäre:
quelle
In einer Präsentation der SPDX- Ersteller ( Folie 12 ) wird sehr deutlich:
Inhalt von
LICENSE
:Sie können dann zwei zusätzliche LIZENZ-Dateien hinzufügen:
LICENSE.Apache-2.0
undLICENSE.GPL-2.0-or-later
.In allen Fällen
README.md
sollte die eine SPDX-Lizenzkennung enthalten :Du kannst es so machen:
Beachten Sie das
Apache-2.0 OR GPL-2.0-or-later
undApache-2.0 AND GPL-2.0-or-later
macht einen großen Unterschied. Ersteres bedeutet, dass der Benutzer zwischen beiden wählen kann (was der Normalfall ist!), Und das zweite bedeutet, dass der Benutzer beide Lizenzen einhalten muss . Siehe auch Mehrfachlizenzierung auf Wikipedia.Beachten Sie, dass ich hier die neue SPDX- Lizenzliste 3.0 (Stand 28.12.2017 ) verwende. Die Versionen von 2017 hatten
GPL-2.0
eine Kennung für GPL 2.0, aber es war nicht klar, ob dies "nur GPL 2.0" oder "GPL 2.0 oder eine spätere Version" bedeutete.quelle
Ich habe irgendwann den GitHub-Support direkt bezüglich meiner Frage kontaktiert und sie sagten, es sei in Ordnung, sie zu zitieren, wenn ich klarstellte, dass ihre Antworten nur als Vorschläge gedacht waren, nicht als Empfehlungen.
Ihre ursprüngliche Antwort hatte folgendes zu bieten:
quelle