Lizenz in jede Codedatei einfügen? [geschlossen]


93

Ich finde es unnötig dupliziert, es in jeder Codedatei zu haben, aber ich sehe es in den meisten Open Source-Projekten. Sollte ich dasselbe tun oder nur eine einzelne Lizenz außerhalb des Codes einfügen?



1
Sie müssen die Garantie in jeder Quelldatei ausschließen, da Sie sonst möglicherweise erwischt werden. (Beachten Sie, dass ein geeigneter Editor wie Vim einfach so konfiguriert werden kann, dass die Garantieausschluss-Kesselplatte für Sie automatisch außer Sichtweite klappt.)
Evgeni Sergeev

Antworten:


74

Eine einzige außerhalb des Codes, bitte! Ich weiß nichts über die anderen, aber ich hasse es, auf jeder Datei dasselbe zu sehen.

Ich glaube, ich habe es ein paar Mal gelesen, nur indem ich es durchgesehen habe.


10
Ich bin nicht einverstanden mit Zifre. Jede wiederholte Lizenz an der Spitze ist für mich irritierend.
Strager

49
Es ist vernünftig und sinnvoll zu identifizieren, unter welcher Lizenz jede Quelldatei veröffentlicht wurde, da die Datei möglicherweise vom Rest des Codes getrennt ist (Wiederverwendung - im Allgemeinen durch Open Source empfohlen) und wenn die Datei keine Informationen über die Lizenz enthält Es ist schwieriger, zur richtigen Lizenz zurückzukehren. Aber die ganze Lizenz in jeder Datei - nein; das wäre grotesk für GPL oder LGPL. Wie bereits vorgeschlagen, ist es für die Kurzlizenzen ein Ärgernis, den tatsächlichen Lizenztext in der Datei zu haben, aber es ist ein Urteilsspruch. Es ist jedoch sinnvoll zu ermitteln, unter welcher Lizenz es veröffentlicht wurde.
Jonathan Leffler

14
Ich habe gerade die Dateikopfzeilen in meinem Projekt so aktualisiert, dass sie nur drei Zeilen enthalten: Copyright, Name der Lizenz und eine URL zum Lizenztext. Es hat meine Header von 26 Zeilen (BSD) auf 3 Zeilen kurzgeschlossen. :)
Esko Luontola

3
@Esko: Kannst du bitte ein Beispiel posten? Ich weiß nicht, was Sie für das Urheberrecht geschrieben haben. Vielen Dank.
Joan Venge

6
Diese Antwort ist als Lösung gekennzeichnet, aber meiner Meinung nach ist die Frage noch offen, solange wir keine haben evidence for the legal situation. Perhaps a lawyer can add a link to a court decision.
Jonas Stein

25

EULA ist hier der falsche Begriff, da die Leute, die sich den Quellcode ansehen, normalerweise keine Endbenutzer sind.

Auch rechtlich macht es keinen Unterschied; Das Urheberrecht muss nicht explizit deklariert werden.

Grundsätzlich erreichen Sie nur ein geringeres Risiko, dass Personen versehentlich gegen Ihre Lizenzbedingungen verstoßen. Sie müssen entscheiden, wie wichtig das für Sie ist.

Ich würde sagen, der beste Kompromiss besteht darin, einen sehr kurzen Header mit einem Link (absolute URL sowie relativ innerhalb des Projekts) zum vollständigen Lizenztext in jede Quellcodedatei einzufügen. Auf diese Weise weiß jeder, der sich für die Lizenz interessiert, wo sie zu finden ist (im Idealfall Personen, die bereit sind, massive Lizenzgebühren zu zahlen; Sie möchten sicher, dass diese Personen Sie kontaktieren können!).


Das Urheberrecht muss möglicherweise nicht explizit sein, aber was ist mit dem Verlassen der Kopie?
Kekoa

1
@kekoav: Copyleft ist weniger restriktiv als das Urheberrecht. Standardmäßig können Sie keine abgeleiteten Werke erstellen.
Zifre

3
In einem Streit wäre das kein gültiges Argument. Wenn Sie erfahren, dass eine Lizenz vorhanden ist und wie Sie sie abrufen können, können Sie keine technischen Hindernisse aufstellen, die Sie daran gehindert haben, die Lizenz zu sehen.
Lasse V. Karlsen

1
"Copyleft" ist eine Umgangssprache für die Grundidee der GPL, Urheberrechtsbeschränkungen von innen heraus "zu untergraben", dh Ihre Rechte als Urheberrechtsinhaber zu nutzen, um jedem eine Lizenz zur freien Nutzung Ihres Codes zu erteilen, ihn jedoch zu zwingen, IHREN Code freizugeben basierend auf Ihrer unter der gleichen Lizenz.
Michael Borgwardt

2
Richtig; aber in diesem Zusammenhang spielt es keine Rolle, wie Zifre sagte. Wenn Sie die Lizenz, unter der ein bestimmter Code veröffentlicht wurde, nicht kennen, müssen Sie davon ausgehen, dass Sie ihn überhaupt nicht verwenden dürfen. Als Herausgeber müssen Sie also keine zusätzlichen Anstrengungen unternehmen, damit die Benutzer die Lizenz lesen.
Michael Borgwardt

14

Nein, Sie müssen die Lizenz nicht in jede Quellcodedatei einfügen.

Wenn Sie genauer hinschauen, tun dies die meisten FOSS-Anwendungen auch nicht. Sie setzen eine Copyright-Erklärung oben in jede Datei und einen kurzen Satz, der Ihnen sagt, unter welcher Lizenz sich die Datei befindet und wo Sie den vollständigen Text der Lizenz finden. Sie verweisen normalerweise auf die Datei COPYING oder LICENSE, die den vollständigen Text der Lizenz enthält, und / oder auf eine Website, die den vollständigen Text enthält (falls die Datei COPYING nicht mehr vorhanden ist).

Wie Michael Borgwardt in seinen Antworten sagte, müssen Sie dies legal nicht tun. Für Quellcode, den Sie verteilen möchten, ist es jedoch ratsam, da die Benutzer sofort sehen können, wer das Urheberrecht besitzt und wie die Lizenz lautet.


1
Dies. Der Copyright-Hinweis sollte einen Verweis auf den Namen der Lizenz (falls es sich um einen Standardnamen handelt) und eine Beschreibung des Auffindens der Lizenzdatei im Quellbaum enthalten.
jmucchiello

13

Dies kann von der Lizenz abhängen. Die GPL unterscheidet zwischen preambleundlicense . Es heißt eindeutig, dass die (nervige) Präambel Teil des Codes sein muss :

Kann ich die Präambel der GPL oder die Anweisungen zur Verwendung in Ihren eigenen Programmen weglassen, um Platz zu sparen?

Die Präambel und Anweisungen sind integraler Bestandteil der GNU-GPL und dürfen nicht weggelassen werden. Tatsächlich ist die GPL urheberrechtlich geschützt und ihre Lizenz erlaubt nur das wörtliche Kopieren der gesamten GPL. (Sie können die gesetzlichen Bestimmungen verwenden, um eine weitere Lizenz zu erstellen, es handelt sich jedoch nicht um die GNU-GPL.) (1)

Quelle: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

Siehe auch http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html

Ein kostenloses eBook von ifrOSS erklärt und kommentiert die GPL 2 in deutscher Sprache. Es gibt noch eine für GPL 3

Für eine fundierte Antwort sollten Sie einen Rechtsbeistand einholen, der auf sx nicht verfügbar ist. Wenn Sie keinen Anwalt für Ihr (Open Source-) Projekt finden, schauen Sie sich das Rechtsnetzwerk der FSFE an .


7
Präambel und Anweisungen sind Teil der vollständigen Lizenz, aber nichts besagt, dass Sie die vollständige Lizenz in jede Datei einfügen müssen. [...] attach the following notices to the program.- Das Befolgen von Hinweisen ist nur ein kleiner Teil der vollständigen Lizenz. safest to attach them to the start of each source file- am sichersten, aber nicht erforderlich. each file should have at least the "copyright" line and a pointer to where the full notice is found. - einzige Voraussetzung ist die Copyright-Zeile mit einem Zeiger auf den Rest. Es ist in Ordnung, die vollständige Lizenz in einer separaten Datei abzulegen.
Toxalot

3
Und ich würde argumentieren, dass sollte ! = Muss .
Toxalot

7

Ich denke, die Begründung für das Einfügen in jede Datei ist legal. Wenn die Vereinbarung in jeder Datei enthalten ist, besteht keine Möglichkeit, dass jemand über einen Code stolpert, ohne der Lizenz ausgesetzt zu sein.

Es ist vielleicht nicht gut, aber alle großen Jungs benutzen es. Wenn es nur visuelle Schmerzen sind, würde ich nach einem besseren Grund suchen, nicht dasselbe zu tun.

Wenn Sie GPL verwenden, ist dies eher ein Problem, aber wenn Sie gemeinfreie Lizenzen wie BSD oder MIT verwenden, ist es mir eigentlich egal, was die Leute mit dem Code machen. Ich nehme an, es hängt davon ab, wie streng Ihre Lizenz ist.


1
Zeigen Sie in diesem Fall in jeder Datei, dass Sie der Lizenz in der Datei licence.txt zustimmen, wenn Sie fortfahren. Kopieren Sie jedoch nicht in jeder Datei denselben Text. Ich finde manchmal Dateien mit Code kürzer als die Lizenz.
Rook

Ja, ich bin damit einverstanden, dass es genauso gut funktioniert, insbesondere bei langen Lizenzen. Auch wenn dies rechtlich nicht unbedingt erforderlich ist oder vor Gericht nicht unterstützt werden kann, ist ein Verweis auf Ihre Lizenz zumindest gut, um Personen zu informieren, ohne dass sie nach der Lizenz suchen müssen, unter der sich der Code befindet.
Kekoa

3

IANAL,

Angenommen, Sie sprechen von einer Lizenzierung, nicht von einer EULA, können Sie die Lizenz nach draußen stellen. Dies geschieht fast immer mit sehr langen Lizenzen wie der GPL. Es wäre dumm, die gesamte GPL-Lizenz in jede Datei zu schreiben. Normalerweise erhalten Sie nur eine Art Hinweis, in dem Sie die tatsächliche Lizenz finden. Das ist völlig legal. Bei wirklich kurzen Lizenzen wie BSD / Apache / MIT / was auch immer ist es jedoch einfacher, nur eine Lizenz in jede Datei aufzunehmen, da der Hinweis, wo die Lizenz zu finden ist, fast so lang ist wie die Lizenz selbst.


2

Dies hängt davon ab, was die Lizenz vorschreibt. Die GPL weist Sie beispielsweise an, in jede Quelldatei einen kurzen Hinweis aufzunehmen, die gesamte Lizenz irgendwo in Ihre Quelldistribution aufzunehmen und Ihre Quelldistribution jedem zur Verfügung zu stellen, der eine Kopie der Binärdistribution erhält.

Wenn Sie damit nicht einverstanden sind und es IHR Code ist, können Sie eine angenehmere Lizenz wählen oder Ihre eigene erstellen.


1

Wenn Ihr Code kompiliert werden soll, sodass Sie nur eine Binärdatei verteilen, spielt dies keine Rolle. Denn wenn Sie eine Binärdatei erstellen, werden die Kommentare entfernt, bevor der Kompilierungsprozess stattfindet. Es ist nur wichtig, ob Sie den eigentlichen Quellcode entweder als Open Source oder als Closed Source verteilen. Dies ist normalerweise wichtig, wenn Sie eine Anwendung in einer Skriptsprache verteilen, die nicht kompiliert werden kann.


Vielen Dank. Es wird Open Source sein.
Joan Venge

Sie können eine fest codierte Zeichenfolge erstellen, die die Lizenz enthält, damit sie in der Binärdatei angezeigt wird, aber das ist wahrscheinlich zu viel :).
Liran Orevi

1

Sie benötigen es nicht für die Lizenz. Eine einzelne externe Datei reicht aus, solange klar ist, welche Dateien sie abdeckt.

Für das Urheberrecht sollten Sie jedoch den Urheberrechtshinweis auf jedem Textstück haben.


Danke, also ist das Urheberrecht anders?
Joan Venge

INAL, aber eine Lizenz ist ein Vertrag zwischen Ihnen und dem Benutzer / Kunden. Das Urheberrecht ist eine Behauptung des Eigentums an einem schriftlichen Werk. Jemand könnte ein Fragment Ihres Codes abholen und vernünftigerweise behaupten, es sei nicht urheberrechtlich geschützt, da der Hinweis fehlte. Keine Sorge, "Copyright Joe Soap (Cleansoft Inc.)" ist alles, was Sie brauchen.
James Anderson

10
Da liegst du so falsch. Zwar ist es im Allgemeinen gut, Urheberrechtshinweise überall hinzuzufügen, nur um klar zu sein, aber das macht es nicht fair, "anzunehmen, dass es nicht urheberrechtlich geschützt ist", weil Sie wissen, dass ALLES urheberrechtlich geschützt ist. Wenn jemand Quellcode erhält, findet er möglicherweise eine Lizenzerklärung, mit der er ihn verwenden kann, oder er findet heraus, dass er aus dem einen oder anderen Grund gemeinfrei ist. Wenn er es nicht tut, ist es urheberrechtlich geschützt und kann nicht kopiert werden. Das Urheberrecht ist eine automatische Sache und es ist gut, es zu erwähnen, aber wenn Sie dies nicht tun, bedeutet dies nicht, dass Sie es verlieren ...
Jasper

1

Was ich tue, ist, einen zweizeiligen Kommentar am Anfang der Datei einzufügen, der den Namen meines Unternehmens, das Datum der letzten Überarbeitung und den Namen der Lizenz angibt, über die die Quelldatei verfügt, und dann ganz unten in der Datei eine kurze Version der Lizenz.

Natürlich ist die vollständige Lizenz (alle bei mehreren Lizenzen) immer in den Quelldateien und Release-Verzeichnissen enthalten.


3
Wie automatisieren Sie das Datum der letzten Überarbeitung?
Dustin Getz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.