Was ist die beste Vorgehensweise, um Bibliothekslizenzen von Drittanbietern in Papierform zu arrangieren?

60

Ich entwickle ein kleines Open Source Projekt. Die Anwendung verwendet viele Bibliotheken von Drittanbietern, die mit einer Reihe von Lizenzen veröffentlicht wurden: Apache, MIT, BSD, LGPL und CDDL.

Jede dieser Lizenzen hat ihre eigenen "Papierkram" -Anforderungen. In der Apache-Lizenz v2.0 heißt es beispielsweise:

Wenn das Werk eine "HINWEIS" -Textdatei als Teil seiner Verteilung enthält, müssen abgeleitete Werke, die Sie verteilen, eine lesbare Kopie der in dieser HINWEIS-Datei enthaltenen Attributionshinweise enthalten.

Die MIT-Lizenz enthält einen Urheberrechtshinweis und lautet:

Der obige Copyright-Hinweis und dieser Erlaubnishinweis sind in allen Kopien oder wesentlichen Teilen der Software enthalten.

Die BSD-Lizenz enthält auch einen Urheberrechtshinweis und lautet:

Weiterverteilung in binärer Form muss den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und / oder anderen Materialien, die mit der Verteilung bereitgestellt werden, wiedergeben.

LGPL v.3 sagt:

(Sie sollten) mit jeder Kopie des kombinierten Werks deutlich darauf hinweisen, dass die Bibliothek darin verwendet wird und dass die Bibliothek und ihre Nutzung unter diese Lizenz fallen.

Für LGPL- und CDDL-Lizenzen muss der Quellcode zusammen mit einer binären Form einer Bibliothek angegeben werden. Daher sollten die Informationen darüber, wie der Quellcode abgerufen werden kann, irgendwo angegeben werden.

Was ist die beste Vorgehensweise, um all diese Daten zu ordnen? Soll ich eine Textdatei erstellen und den Inhalt aller NOTICEDateien, MIT- und BSD-Lizenzen usw. in diese Datei kopieren ? ... oder sollte ich für jede Bibliothek ein eigenes Verzeichnis erstellen und alle Daten, die sich auf die Bibliothek beziehen, in dieses Verzeichnis stellen? … oder etwas anderes?

Es wäre auch interessant, Beispiele für diesen „Papierkram“ in veröffentlichten Projekten zu sehen.

AKTUALISIEREN:

Ich habe gelesen Müssen Sie jeder Quelldatei einen Lizenzhinweis beifügen? , aber es geht nicht auf mein Problem ein. Meine Frage bezieht sich auf Bibliotheken von Drittanbietern, die in einem Projekt verwendet werden, und auf Überschriften im eigenen Quellcode des Projekts.

Alexey
quelle

Antworten:

62

Zunächst der Standard-Haftungsausschluss: IANAL ist aber ein zufälliger Fremder.

Ich habe kürzlich eine AGPL- Anwendung (*) gepackt. Es werden Bibliotheken von Drittanbietern verwendet, die unter jQuery-, MIT-, BSD- (und einigen anderen) Lizenzen vertrieben werden. So bin ich vorgegangen.

Meine Hauptabsichten beim Entwerfen waren: Konformität und Fairness . Während der erste ausreichen sollte, stellt der zweite sicher, dass jeder, der versucht, mich zu verklagen, weil er es nicht 100% richtig macht, zugeben muss, dass ich Dinge in gutem Glauben getan habe.

1) Quelldateien: Alle meine Dateien haben den AGPL-Header. Alle Dateien von Drittanbietern bleiben (größtenteils) unverändert und enthalten daher ihren eigenen Lizenzheader.

2) LICENSE.txt im Stammverzeichnis des Pakets enthält den AGPL-Lizenztext (wie im Abschnitt "So wenden Sie diese Bedingungen auf Ihre neuen Programme an" erläutert).

3) Eine sekundäre Lizenzdatei mit dem Namen LICENSE-3RD-PARTY.txt, die sich ebenfalls im Stammverzeichnis des Pakets befindet, enthält wörtliche Kopien ALLER Lizenzen. In einer Kopfzeile wird für jede Lizenz angegeben, um welche Lizenz es sich handelt und für welchen Teil sie gilt. Ich gebe hier auch den Namen der Urheberrechtsinhaber an - ich verwende sie später an einer anderen Stelle, damit sich die Mühe lohnt.

-----------------------------------------------------------------------------
                        The MIT License (MIT)
        applies to: 
        - AJAX Upload, Copyright (c) Andrew Valums
        - jQuery hashchange event, Copyright (c) 2010 "Cowboy" Ben Alman
        - jquery.hotkeys, Copyright (c) 2010 John Resig
-----------------------------------------------------------------------------

Permission is hereby granted, free of charge [...]

4) README.txt, ebenfalls im Stammverzeichnis, erklärt, dass die Software AGPL ist (siehe LICENSE.txt) und Bibliotheken von Drittanbietern verwendet, die unter eigenen Bedingungen vertrieben werden (siehe LICENSE-3RD-PARTY.txt).

5) In der Online-Dokumentation habe ich eine Lizenzseite , die die Informationen aus der Readme-Datei wiederholt: Meine Software ist AGPL und verwendet Komponenten von Drittanbietern, die BSD / MIT / [...] sind. Ich habe mich dafür entschieden, diese Seite übersichtlicher und lesbarer zu gestalten. Daher wird nur der Name der Lizenz mit einem Link zum Volltext und der Name der Urheberrechtsinhaber mit einem Link zu ihrer eigenen Website angegeben.

jQuery
    Copyright 2013 jQuery Foundation and other contributors
    http://jquery.com
    MIT License
Data Driven Documents (D3)
    Copyright (c) 2013, Michael Bostock    <-- link to personal website, if any
    http://d3js.org                        <-- link to software website
    BSD-like license                       <-- link to license full text
[...]

6) Außerdem habe ich in der Online-Dokumentation eine Credits- Seite, auf der ich die direkten und indirekten Hauptbeitragszahler aufführe. Ich habe zum Beispiel die PostgreSQL-Gruppe zitiert, obwohl PostgreSQL nicht im Download enthalten ist, aber Sie benötigen es, um die Software auszuführen. Dies ist ein guter Ort, um alle Bestätigungen zu platzieren, die von den Autoren von Tools / Bibliotheken / etc. Von Drittanbietern benötigt oder gewünscht werden.

7) In der Software selbst wird die Liste der Bibliotheken zusammen mit den Lizenz- und Copyright-Inhabern im Dialogfeld Info wiederholt .

Um Ihre spezifischen Fragen bezüglich der Einbeziehung von Quellcode und Dateilayout zu beantworten:

  • Es wird allgemein akzeptiert, nur auf den vollständigen Quellcode von Paketen von Drittanbietern zu verlinken. Konsultieren Sie jede spezifische Lizenz, um sicherzugehen, aber IMHO sollte es ausreichen, den Link bereitzustellen. Wenn Sie beispielsweise eine verkleinerte Version einer Bibliothek verwenden, können Sie den Link zum Standard-Download bereitstellen und in Ordnung sein.

  • Sofern die Komponente eines Drittanbieters nicht ausdrücklich verlangt, dass die Verteilungen das Dateilayout beibehalten, können Sie die Dinge nach Ihren Wünschen neu anordnen. Stellen Sie sich vor, Sie verwenden Webbibliotheken, die jeweils ein CSS / - und ein JS / -Verzeichnis haben. Sie können sie dann zu einer einzigen Bibliothek / -Verzeichnis zusammenführen, die zusammengeführtes CSS / und JS / enthält.

Und als abschließende Bemerkung, ich würde mehr als willkommen commenters , der eine Hand winken sagen : „Sie tun , um dieses falsche“ und / oder „sollten Sie auch tun , dass “.

(*) Hierbei handelt es sich nicht um eine Spam-Verknüpfung, sondern nur um die Beantwortung des Teils "Bitte geben Sie Beispiele" der Frage. Fühlen Sie sich frei, liebe Mods, diesen Link zu löschen, wenn dies gegen die Regeln verstößt.


quelle
2
Vielen Dank für eine tolle Antwort! Es ist genau die Art von Informationen, die ich suche. Ich werde es noch nicht akzeptieren, um zu sehen, ob andere Leute etwas zu sagen haben.
Alexey
8
Für diejenigen, die später hierher kommen, hat FireFox ein Dokument, das LICENSE-3RD-PARTY.txtder in dieser Antwort beschriebenen Datei ähnelt . (Klicken Sie Licensing Informationin das AboutKästchen.) Es gibt auch ein ähnliches Dokument in Google Chrome.
Alexey
1
Hier ist ein ähnliches Dokument, in dem von IntelliJ IDEA verwendete Software von Drittanbietern aufgeführt ist: confluence.jetbrains.com/display/IDEADEV/…
Alexey