Bei fast allen Open-Source-Softwarelizenzen müssen Benutzer (oder zumindest Anwälte schlagen dies im Allgemeinen vor) die vollständige Lizenz in das Stammverzeichnis des Projekts aufnehmen, das sie schützen.
Ein Anwalt, mit dem ich gesprochen habe, schlägt vor, dass dies ein Erbe des CD-Zeitalters ist, als es notwendig war, eine vollständige Lizenz in eine Schmuckschatulle aufzunehmen.
Aber heute leben wir im Wolkenzeitalter. Warum kann ich beispielsweise nicht einfach die vollständige Lizenz auf meiner Website hosten und den Titel + die URL dieser Lizenz in den Header meiner Quelldateien aufnehmen?
Bonus: Wenn allgemein vereinbart wird, dass etablierte Lizenzen im Stammverzeichnis intakt bleiben müssen, warum hat das OSI der FSF keine Lizenz genehmigt, auf die Sie per URL verweisen können , und was hindert jemanden daran, diese Lizenz zu erstellen?
quelle
Antworten:
Aus den GPL-FAQ (aber der Hinweis gilt für alle Lizenzen):
(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.
quelle
Es gibt Lizenzen, die dies zulassen. Zum Beispiel Apache 2.0. Für Apache 2.0 muss nur jede Quelldatei einen kleinen Header enthalten, der auf die kanonische URL der Apache 2.0-Lizenz verweist. Es ist nicht erforderlich, die vollständige Lizenz im Quellbaum zu reproduzieren.
Aus der Apache 2.0-Lizenz selbst:
quelle
4.(a) You must give any other recipients of the Work or Derivative Works a copy of this License;
Es ist nicht erforderlich, dass es sich im Stammverzeichnis des Projekts befindet. Es ist einfach der häufigste Ort und daher der erste Ort, an dem die Leute suchen, um die Lizenz zu finden. Auch wenn es nicht üblich war, ist es wahrscheinlich immer noch der erste Ort, an dem die Leute suchen werden. Da die Lizenz zum Informieren vorhanden ist, macht das Ausblenden der Informationen wenig Sinn.
Wenn Sie es hinter einer URL verstecken, gibt es keine absolute Garantie dafür, dass diese URL immer verfügbar ist. Wenn es sich um eine Datei im Stammverzeichnis des Projekts handelt, ist sie per Definition immer verfügbar.
Kurz gesagt, dies ist der effektivste und benutzerfreundlichste Ort, um es auszudrücken.
quelle