So verwalten Sie Urheberrechtshinweise von Mitwirkenden an einem BSD-lizenzierten Projekt

9

Wir haben die folgende BSD-Lizenz in der LICENSEDatei:

Copyright (c) 2006-2016 SymPy Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Wir verwalten das Quell-Repository über git ( https://github.com/sympy/sympy ), und daher besitzt jeder Autor die von ihm erstellten Patches. Wir haben dann eine AUTHORSDatei, in der wir alle Personen auflisten, die Patches beigesteuert haben (derzeit ca. 450). In der Regel teilen Autoren das Repository auf Github und fügen Patches als Git-Commits hinzu.

Ein Autor gabelte das Repository, fügte jedoch seinen Namen LICENSEwie folgt als Copyright-Hinweis in die Datei selbst ein (ich habe den Namen geändert):

Copyright (c) 2006-2015 SymPy Development Team,
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Der Autor hat einen Patch entwickelt, der einen Fehler behebt. Das Update besteht darin, nur eine Datei zu berühren, 19 Zeichen aus einer Zeile zu entfernen und 18 Zeichen in einer anderen Zeile in derselben Datei hinzuzufügen. Außerdem wird einer Testdatei ein 5-Zeilen-Test für diesen Fehler hinzugefügt. Das ist es.

Unter welchen Bedingungen dürfen wir seinen Patch gesetzlich anwenden (indem wir seine Commits auswählen, z. B. das Datum und den Namen des Autors + die E-Mail-Adresse in den Git-Metadaten beibehalten)?

a) Müssen wir unsere LICENSEDatei ändern , um seinen Copyright-Hinweis hinzuzufügen?

b) Oder halten wir uns immer noch an die BSD-Lizenz, wenn wir eine aktuelle AUTHORSDatei führen und das Git-Repository behalten, das speziell verfolgt, welche Commits von welchen Autoren beigesteuert wurden.

Was mir an der Option a) nicht gefällt, ist, dass wir, wenn alle etwa 450 Mitwirkenden dies benötigen, im Wesentlichen den Inhalt AUTHORSder LICENSEDatei zusammen mit dem CopyrightWort und den Jahren in der Datei behalten müssten . Git ist viel besser darin, die Jahre (und sogar Tage und Minuten) sowie die Zeilen, die von jedem Autor wie geändert wurden, beizubehalten. Dann haben wir eine einfache LICENSEDatei, die sich nicht ändert, und wir behalten die Liste der Autoren bei AUTHORS(und wir haben ein Skript, das sie mit der Liste der Autoren von git synchronisiert).

Ondřej Čertík
quelle
4
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da die Frage um Rechtsberatung bittet, die über das hinausgeht, was von einem Programmierer erwartet werden kann. Sie sollten eine Ebene fragen.
Bart van Ingen Schenau
1
oder ein Anwalt ...;)
Erik Eidt
7
Von Programmierern wird nicht erwartet, dass sie das wissen, aber sie können es. Es wäre eine bessere Idee, Kommentare zu entfernen, die im Grunde sagen "Sie sollten mit einem Anwalt sprechen", was eine überstrapazierte Antwort ist. Programmierer haben ein Verständnis für Softwarelizenzierung, wahrscheinlich mehr als die meisten Anwälte auf der Welt. Meine Stimme ist, dies hier zu behalten.
Moorepants
2
Ich verstehe, dass jemand, der eine Pull-Anfrage an SymPy stellt, diese implizit unter der SymPy-Lizenz lizenziert.
Asmeurer
2
@asmeurer richtig. Meine Frage ist, ob der Autor keine Pull-Anfrage erstellt. Dh unter welchen Bedingungen können Sie Patches auswählen, die in einem Zweig Ihres Repositorys veröffentlicht sind und unter derselben Lizenz lizenziert sind, jedoch den Urheberrechtshinweis geändert haben.
Ondřej Čertík

Antworten:

3

Sie können jeden Code einbinden, für den eine kompatible Lizenz vorhanden ist.

Das heißt, wenn der neue Code nicht speziell unter einer kompatiblen Lizenz lizenziert ist, wenn Sie die Änderungen in Ihre Codebasis übernehmen möchten, öffnen Sie sich der Möglichkeit einiger Schwierigkeiten.

Insbesondere gilt die Standardlizenz "Alle Rechte vorbehalten" , sofern im Code nicht ausdrücklich angegeben ist, dass die neuen Beiträge unter einer kompatiblen Lizenz stehen. Das Abrufen des Codes wäre eine Urheberrechtsverletzung.

Es besteht auch die Möglichkeit, dass der neue Code unter einer Lizenz lizenziert wird, die mit Ihnen kompatibel ist (und Sie müssten diese Lizenz für den Code beibehalten), aber mit vielen Ihrer Benutzer nicht kompatibel ist. Wenn Sie beispielsweise die BSD 2-Klausel verwenden und jemand die Beiträge einer Abzweigung unter der BSD 3-Klausel lizenziert, können Sie dies wahrscheinlich ohne allzu große Schwierigkeiten in Ihren Code übernehmen. Da die BSD 3-Klausel jedoch nicht mit der GPL kompatibel ist, würde dies die GPL Ihres Projekts inkompatibel machen.

Wenn Sie zu einem späteren Zeitpunkt (z. B.) über einen Wechsel von BSD zu GPL entscheiden sollten und die Pull-Anforderungen die erforderlichen Rechte zum Ändern der Lizenz als Teil der Lizenzvereinbarung für Mitwirkende zuweisen, ziehen Sie Code aus anderen Projekten, denen Sie nicht zugestimmt haben Die CLA kann Kopfschmerzen verursachen.

Das ist der allgemeine Fall ...

Für den speziellen Fall, in dem sich die Lizenzdatei geändert hat ... Ich weiß es nicht. Aus dem einfachen Lesen der Lizenzdatei:

Copyright (c) 2006-2015 SymPy Development Team,  
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

ein. Bei der Weiterverteilung des Quellcodes muss der oben genannte Copyright-Hinweis beibehalten werden .
   diese Liste der Bedingungen und den folgenden Haftungsausschluss.

Dieses Bit scheint darauf hinzudeuten, dass Sie auch Ihre Lizenzdatei ändern müssen , wenn Sie diese Änderungen übernehmen möchten .

Leider haben Sie derzeit keine genau definierte CLA. Glücklicherweise haben Sie zu diesem Zeitpunkt nur 450 Personen zu fragen.


quelle
Also vom Lesepunkt "a". Es scheint, dass "der obige Copyright-Hinweis" für den ursprünglichen SymPy-Code von John Doe beibehalten wird und dass John Doe die neuen Beiträge zur Gabelung unter derselben Lizenz lizenziert, die neuen Ergänzungen jedoch für John Doe urheberrechtlich geschützt sind.
Moorepants
2
@moorepants für diese Instanz scheint dies der Fall zu sein. Wenn SymPy diese also wieder in seinen Code lizenzieren möchte , muss es auch dieser Aussage in der Lizenzierung folgen und den Copyright-Hinweis von John Doe beibehalten.
Danke @MichaelT für die Antwort. Was muss ich von den 450 Leuten verlangen? Alles, was ich tun muss, ist, die Lizenz von der Gabelung (einschließlich der John Doe-Copyright-Erklärung) zu kopieren und sie einfach in eine NOTICESDatei anzuhängen , in der wir alle Lizenzen von Drittanbietern speichern würden.
Ondřej Čertík
1
@ OndřejČertík Wenn Sie jemals die Lizenz auf SymPy ändern möchten (dies unter der Annahme, dass jeder, der eine Pull-Anfrage eingereicht hat, mit der Lizenzierung unter dem BSD einverstanden ist), um zu sagen ... GPL, benötigen Sie die Erlaubnis aller, die hat dazu beigetragen, da nur sie entscheiden können, es unter einer anderen Lizenz neu zu lizenzieren. Apache hat eine ziemlich involvierte CLA . Viele große Projekte haben eine CLA der einen oder anderen Art, um sicherzustellen, dass das Projekt innerhalb seiner Rechte zur Verbreitung des übermittelten Codes steht
1
Ich würde vorschlagen, den ersten Punkt des Diskurses CLA zu betrachten :You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...
2

Wenn es einen BSD-lizenzierten Quellcode gibt und jemand zusätzliche Patches hinzufügt, sollte dieser neue Quellcode im neuen Repo die genaue BSD-Lizenzdatei aus dem ursprünglichen Repo enthalten und die neuen Patches sollten unter einer neuen Lizenz (oder sogar der Lizenz) lizenziert werden die gleiche Lizenz). Daher sollte der Fork eine oder zwei Lizenzen im Repository haben. Es ist nicht akzeptabel, die ursprüngliche Lizenz zu bearbeiten, da dies gegen die BSD-Lizenzbedingungen verstößt.

Wenn das ursprüngliche Repo Patches von der Gabel abholen möchte, muss dem ursprünglichen Repo eine Kopie der neuen Lizenz der Gabel hinzugefügt werden. Letztendlich haben beide Repositorys jede Lizenz, eine für jeden Patch-Satz.

SymPy sollte auch verlangen, dass Mitwirkende ihr Urheberrecht an dem SymPy-Projekt aufgeben. Es ist möglicherweise sehr problematisch, dass Mitwirkende bei der Einreichung ihr Urheberrecht an einzelnen Patches behalten. Eine Vereinbarung über die Mitwirkenden, in der dies dargelegt wird, ist erforderlich, um klar zu machen, was passiert.

Moorhosen
quelle
Wenn sich keine zusätzliche Lizenz auf der Gabel befindet, werden die Beiträge natürlich nicht unter einer anderen Lizenz als der Standardlizenz für alle Rechte vorbehalten lizenziert.
1
Ich glaube nicht, dass das unbedingt stimmt. Wenn für die neuen Patches in der Verzweigung keine Lizenz angegeben ist, besteht möglicherweise Unklarheit. Nach US-amerikanischem Recht besitzt der Ersteller des Inhalts standardmäßig das Urheberrecht, wenn nichts angegeben ist. Wenn also keine zusätzliche Lizenz aufgeführt ist, besitzt der Ersteller der Patches in der Gabel möglicherweise das Urheberrecht an den neuen Patches. Dies ist jedoch nicht eindeutig, da der Ersteller die ursprüngliche Lizenz in der Verzweigung belassen musste, sodass dies möglicherweise für alle Patches gilt. Lizenzanweisungen pro Datei helfen dabei, diese Unklarheit zu beseitigen, aber Sie sehen selten eine Anweisung "pro Patch".
Moorepants