Aus den GPL-FAQ (aber der Hinweis gilt für alle Lizenzen):
Warum muss die GPL jeder Kopie des Programms eine Kopie der GPL beifügen?
Das Einfügen einer Kopie der Lizenz in das Werk ist von entscheidender Bedeutung, damit jeder, der eine Kopie des Programms erhält, seine Rechte kennen kann.
Es könnte verlockend sein, anstelle der Lizenz selbst eine URL anzugeben, die auf die Lizenz verweist. Sie können jedoch nicht sicher sein, ob die URL in fünf oder zehn Jahren noch gültig ist. In zwanzig Jahren existieren URLs, wie wir sie heute kennen, möglicherweise nicht mehr.
Die einzige Möglichkeit, um sicherzustellen, dass Personen, die über Kopien des Programms verfügen, die Lizenz trotz aller Änderungen im Netzwerk weiterhin sehen können, besteht darin, eine Kopie der Lizenz in das Programm aufzunehmen.
(Hervorhebung von mir)
In dem Moment, in dem die Site, auf der Sie Ihre Lizenz hosten, ausfällt oder ihre URL-Pfade ändert, können Personen, die über Kopien Ihrer Software verfügen, nicht mehr überprüfen, welche Rechte sie sicher ausüben können. Angenommen, Sie könnten irgendwie garantieren, dass diese genaue URL für immer online ist: Die Möglichkeit für Benutzer, zu überprüfen, ob ihre Verwendung Ihrer Software legal ist, hängt immer noch von der Fähigkeit ab, eine Verbindung zu dieser bestimmten URL herzustellen. Während diese Anforderung in Ihrer Stadt / Ihrem Land / Planeten möglicherweise nicht belastend ist, kann sie an anderer Stelle belastend sein. Sie sollten diese Anforderung nicht auferlegen, insbesondere wenn die Problemumgehung (einschließlich des vollständigen Lizenztextes) trivial ist.
Sie können auf diese Beschwerde antworten, indem Sie sagen: "Na und? Wenn die URL ausfällt oder nicht zugänglich ist, sollte ein eindeutiger Deskriptor wie" GNU GPL v3 "ausreichen. Volltextkopien der GPL sind reichlich vorhanden. Benutzer können nachschlagen die Lizenz selbst. " Ein paar Probleme fallen mir sofort ein:
Dies gilt nicht für weniger eindeutige Lizenzkennungen (der Ausdruck "BSD-Lizenz" fällt mir ein).
Dies lässt sich nicht gut auf Lizenzen verallgemeinern, die weniger verbreitet sind oder angepasst wurden ("GPL mit Verknüpfungsausnahmen" fällt mir ein: Welche Verknüpfungsausnahmen?). Wie häufig muss eine Lizenz sein, bevor von einem Benutzer erwartet werden kann, dass er sie zuverlässig anhand seines Namens findet?
Dies erfordert weiterhin, dass Benutzer über eine Internetverbindung verfügen, was möglicherweise nicht der Fall ist, selbst wenn sie zum Zeitpunkt des Erhalts der Software eine Verbindung hatten. (Und sie hatten möglicherweise keinen Internetzugang, als sie die Software erhielten: "Das CD-Zeitalter" ist in vielen Teilen der Welt noch nicht zu Ende. Betrachten Sie als zusätzlichen Fall nationale Bevölkerungsgruppen, die über einen weit verbreiteten Internetzugang verfügen, aber große Teile davon zensieren .) Eine Folge frei weiterverteilbarer Software ist, dass ein Empfänger möglicherweise keine Kopie Ihrer Software direkt von Ihnen oder über einen ursprünglich erwarteten Vertriebskanal erhält.
Ein letztes Argument gegen Lizenzlinks wird in MichaelTs Kommentar unten erwähnt: Es könnte Ihnen ermöglichen, die Lizenz dynamisch und rückwirkend zu ändern. Dies könnte absichtlich geschehen, aber auch aus Versehen, wenn Sie die Lizenz zwischen den Versionen der Software geändert haben, aber für beide Versionen denselben Lizenzlink verwendet haben, wodurch Ihre alte Lizenz nicht mehr existiert. Ein solcher Wechsel würde Personen Schwierigkeiten bereiten, die nachweisen müssen, dass sie ihre ältere Kopie unter einer anderen Lizenz als die aktuelle Version erhalten haben.
Warum muss ich die Lizenz im Projektstamm behalten?
Ich bin kein Jurist, aber ich habe nie ein überzeugendes Argument gesehen , dass Sie keine Lizenzen im Projektstamm halten müssen. Sogar die GPL, die angibt, dass die Lizenz jeder Kopie des Werks beiliegen muss, sagt nichts darüber aus, wie sie dem Werk beiliegen muss. (Dies kann daran liegen, dass die GPL in Nicht-Software-Kontexten angewendet werden kann, in denen der Begriff "Stammverzeichnis" nicht sinnvoll ist.)
Das Behalten der Lizenz im Stammverzeichnis ist wahrscheinlich eine gute Idee, da dadurch die Wahrscheinlichkeit maximiert wird, dass der Benutzer sie sieht, und dadurch sowohl die Frustration der Benutzer als auch die Wahrscheinlichkeit von Beschwerden gegen Sie minimiert werden, wenn Sie versuchen, die Lizenz in einem unbekannten Verzeichnis zu verbergen. Wenn Sie über viele Lizenzen verfügen, ist es möglicherweise sinnvoller, alle in einem eigenen Ordner abzulegen und eine offensichtliche Projekt-README-Datei einzuschließen, die Dateipfade enthält, um die Lizenz für jede Komponente zu finden.
Das Einfügen Ihrer Lizenz in das Verzeichnisstammverzeichnis ist auch deshalb hilfreich, weil dadurch die Lizenzen von Modulen, die anders lizenziert sind als die gesamte Arbeit, eindeutig unterschieden werden können. Angenommen, mein Projekt FooProj verwendet das eigenständige Modul BarMod. FooProj ist möglicherweise GPL-lizenziert, während das eigenständige Modul möglicherweise MIT-lizenziert ist. Wenn ich FooProj zum ersten Mal öffne, sehe ich eine Kopie der GPL im Stammverzeichnis und verstehe, dass die gesamte Arbeit GPL-lizenziert ist. Wenn ich in den Ordner für BarMod absteige, wird dort eine neue Lizenzdatei angezeigt, und ich verstehe, dass der Inhalt dieses Ordners MIT-lizenziert ist. Dies ist natürlich nur eine hilfreiche Hilfe. Sie sollten die Lizenzierung Ihrer Module immer explizit in einer README-, NOTICE- oder ähnlichen Datei angeben.
In der Summe ist die Verwendung des Dateistamms eine Frage der Bequemlichkeit und Klarheit. Ich habe keinen rechtsverbindlichen Open-Source-Lizenztext gesehen, der dies erfordert, und ich kenne auch keinen Grund, warum dies gesetzlich vorgeschrieben wäre. Ihre Lizenz sollte für den Empfänger relativ leicht zu entdecken sein. Die Aufnahme der Lizenz in das Projektstammverzeichnis ist ausreichend, aber nicht erforderlich, um dieses Kriterium zu erfüllen.