Ich verwende Quellcode aus einem Codebeispiel, das in meinem Programm unter der Apache 2.0-Lizenz lizenziert ist. Jetzt möchte ich dieses Programm und den Quellcode mit der MIT-Lizenz auf GitHub veröffentlichen. Ich habe Folgendes in der Lizenz gelesen:
Sie müssen dafür sorgen, dass geänderte Dateien auffällige Hinweise enthalten, dass Sie die Dateien geändert haben.
Aber ich habe keine der Dateien geändert, sondern nur die relevanten Teile des Codes in meine Quelldateien kopiert.
Hier sind meine Fragen:
Ich weiß, dass ich meinem Projekt eine Kopie der Apache 2.0-Lizenz hinzufügen muss, aber muss ich etwas in meine Quelldateien einfügen, um meinen Programm- / Quellcode korrekt zu veröffentlichen?
Muss ich als Befehlszeilenprogramm einen Lizenzschalter hinzufügen und die Lizenz anzeigen oder muss ich die Ausgabe "USAGE" hinzufügen?
Muss ich die MIT-Lizenz in jede meiner Quelldateien einfügen oder reicht es aus, eine Kopie davon im Projekt zu haben?
Danke im Voraus!
Antworten:
Da Teile der Quellen unter einer Lizenz (Apache 2.0) und Teile unter einer anderen Lizenz (MIT) lizenziert sind, ist es wichtig, dass jede Datei einen Hinweis enthält, welche Lizenz für den Inhalt dieser Datei gilt.
Es wird dringend empfohlen, nur eine einzige Lizenz für jede Quelldatei zu haben. Daher sollten Sie den Code, den Sie aus der Bibliothek eines Drittanbieters kopiert haben, in einer separaten Quelldatei (oder mehreren separaten Quelldateien) haben. Diese Dateien sollten einen Copyright-Hinweis enthalten, der sich auf die Apache-Lizenz bezieht, und angeben, dass Sie den Code aus der Bibliothek eines Drittanbieters kopiert haben.
Für Ihren eigenen Code, den Sie unter der MIT-Lizenz veröffentlichen möchten, wird empfohlen, die gesamte MIT-Lizenz in einem Kommentar oben in Ihren Dateien anzugeben.
Die MIT-Lizenz ist nicht so lang und vermeidet jegliche Verwirrung darüber, unter welcher Lizenz sich der Code befindet, selbst wenn die Datei vom Rest des Projekts getrennt wird.
Wenn es nicht möglich ist, den Code unter den verschiedenen Lizenzen in separate Dateien zu trennen, können Sie folgendermaßen vorgehen (vorausgesetzt, ein kleiner Teil einer Datei befindet sich unter der Apache-Lizenz):
Um andere nicht gründlich zu verwirren, sollte dies in der Granularität einer Funktion erfolgen.
quelle