Jak zarządzać powiadomieniami o prawach autorskich od autorów projektu licencjonowanego BSD

9

W LICENSEpliku mamy następującą licencję BSD :

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.

Repozytorium źródłowe zarządzamy przez git ( https://github.com/sympy/sympy ), a zatem każdy autor jest właścicielem poprawek, które sam stworzył. Następnie mamy AUTHORSplik, w którym podajemy listę wszystkich osób, które przesłały łatki (obecnie około ~ 450). Zazwyczaj autorzy rozwidlają repozytorium na github i dodają łaty, gdy git zatwierdza.

Jeden autor rozwidlił repozytorium, ale dodał swoją nazwę do samego LICENSEpliku jako informację o prawach autorskich w następujący sposób (zmieniłem nazwę):

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.

Autor opracował łatkę, która naprawia błąd. Poprawka polega na dotknięciu tylko jednego pliku i usunięciu 19 znaków z jednego wiersza oraz dodaniu 18 znaków w innym wierszu w tym samym pliku. Dodaje również 5-liniowy test dla tego błędu do pliku testowego. Otóż ​​to.

Na jakich warunkach jesteśmy uprawnieni do zastosowania jego łatki (przez wybranie jego zatwierdzeń, np. Zachowanie daty i nazwiska autora + e-maila w metadanych git)?

a) Czy musimy zmodyfikować nasz LICENSEplik, aby dodać jego informację o prawach autorskich?

b) Czy nadal przestrzegamy licencji BSD, jeśli przechowujemy aktualny AUTHORSplik i przechowujemy repozytorium git, które konkretnie śledzi, które zatwierdzenia zostały wniesione przez autorów.

W opcji a) nie podoba mi się to, że jeśli wymagałoby tego około 450 autorów, to musielibyśmy zachować zawartość AUTHORSpliku w LICENSEpliku, wraz ze Copyrightsłowem i latami. Git jest znacznie lepszy w zachowaniu lat (a nawet dni i minut), a także linii, które zostały zmodyfikowane przez każdego autora i jak. Następnie mamy prosty LICENSEplik, który się nie zmienia i przechowujemy listę autorów AUTHORS(i mamy skrypt, który synchronizuje go z listą autorów z git).

Ondřej Čertík
źródło
4
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ pytanie to wymaga porady prawnej, która wykracza poza to, czego można oczekiwać od programisty. Powinieneś zapytać o warstwę.
Bart van Ingen Schenau
1
lub prawnik ...;)
Erik Eidt
7
Programiści nie powinni tego wiedzieć, ale mogą. Lepszym rozwiązaniem byłoby usunięcie komentarzy, które w zasadzie mówią „powinieneś porozmawiać z prawnikiem”, co jest odpowiedzią zbyt często wykorzystywaną. Programiści rozumieją licencjonowanie oprogramowania, prawdopodobnie bardziej niż większość prawników na świecie. Głosuję za zatrzymaniem tego tutaj.
moorepants
2
Rozumiem, że gdy ktoś wysyła żądanie ściągnięcia do SymPy, domyślnie udziela mu licencji na licencję SymPy.
asmeurer
2
@asmeurer prawo. Moje pytanie brzmi, czy autor nie tworzy żądania ściągnięcia. To znaczy, na jakich warunkach możesz wybierać łatki umieszczone w widelcu swojego repozytorium, licencjonowane na tej samej licencji, ale ze zmodyfikowaną informacją o prawach autorskich.
Ondřej Čertík

Odpowiedzi:

3

Możesz dołączyć dowolny kod, który ma zgodną licencję.

To powiedziawszy, o ile nowy kod nie jest specjalnie licencjonowany na podstawie zgodnej licencji, jeśli chcesz wprowadzić zmiany do swojej bazy kodów, otwierasz się na możliwość wystąpienia pewnych trudności.

W szczególności, chyba że kod wyraźnie stanowi, że nowe składki są objęte zgodną licencją, ma do niej zastosowanie domyślna licencja „wszelkie prawa zastrzeżone”. Wyciągnięcie kodu stanowiłoby naruszenie praw autorskich.

Istnieje również możliwość, że nowy kod jest licencjonowany na podstawie licencji, która jest z tobą zgodna (i musisz zachować tę licencję na kod), ale niekompatybilna z wieloma użytkownikami. Na przykład, jeśli używasz klauzuli BSD 2 i ktoś udziela licencji na rozwidlenie zgodnie z klauzulą ​​BSD 3, prawdopodobnie mógłbyś pobrać to do swojego kodu bez większych trudności. Ponieważ jednak klauzula BSD 3 nie jest zgodna z GPL, spowodowałoby to niezgodność projektu GPL.

Jeśli później zdecydujesz się na zmianę z BSD na GPL (na przykład), a żądania ściągania przypisują niezbędne prawa do zmiany licencji w ramach umowy licencyjnej dla współtwórcy, ściągasz kod z innych projektów, które nie zgodziły się na CLA może powodować bóle głowy.

To jest ogólny przypadek ...

W konkretnym przypadku, gdy plik licencji zmienił się ... Nie wiem. Z prostego odczytu pliku licencji:

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:

za. Redystrybucje kodu źródłowego muszą zawierać powyższą informację o prawach autorskich ,
   niniejsza lista warunków i poniższe wyłączenie odpowiedzialności.

Ten bit wydaje się wskazywać, że jeśli chcesz wprowadzić te zmiany, musisz również zmienić plik licencji.

Niestety w tej chwili nie masz dobrze zdefiniowanego CLA. Na szczęście w tej chwili masz tylko 450 osób.


źródło
A więc z punktu „a”. wygląda na to, że „powyższa informacja o prawach autorskich” oryginalnego kodu SymPy jest przechowywana przez Johna Doe i że John Doe udziela licencji na nowe wkładki do widelca na tej samej licencji, ale nowe dodatki są chronione prawami autorskimi do John Doe.
moorepants
2
@moorepants w tym przypadku wydaje się, że tak właśnie jest. A zatem, jeśli SymPy chce licencjonować te z powrotem do swojego kodu, musiałby również przestrzegać tego oświadczenia w licencji i zachować informację o prawach autorskich autorstwa Johna Doe.
Dzięki @MichaelT za odpowiedź. O co muszę zapytać 450 osób? Wydaje się, że wszystko, co muszę zrobić, to skopiować licencję z widelca (w tym oświadczenie o prawach autorskich Johna Doe) i po prostu dołączyć ją do NOTICESpliku, w którym będziemy przechowywać wszystkie licencje stron trzecich.
Ondřej Čertík
1
@ OndřejČertík, jeśli kiedykolwiek chcesz zmienić licencję na SymPy (działa to przy założeniu, że każdy, kto przesłał żądanie ściągnięcia, jest w porządku z licencjonowaniem go na podstawie BSD), aby powiedzieć ... GPL, potrzebujesz zgody wszystkich, którzy przyczynił się, ponieważ tylko oni mogą zdecydować się na licencjonowanie go na innej licencji. Apache ma raczej zaangażowany CLA . Wiele dużych projektów posiada CLA, aby upewnić się, że projekt ma prawa do rozpowszechniania przesłanego kodu
1
Proponuję spojrzeć na pierwszy punkt dyskursu CLA :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

Jeśli istnieje licencjonowany kod źródłowy BSD i ktoś prosi go o dodanie dodatkowych łat, to ten nowy kod źródłowy w nowym repozytorium powinien zawierać dokładny plik licencji BSD z oryginalnego repozytorium, a nowe łatki powinny być licencjonowane na nowej licencji (lub nawet ta sama licencja). Widelec powinien zatem mieć jedną lub dwie licencje w repozytorium. Edycja oryginalnej licencji jest niedopuszczalna, ponieważ narusza warunki licencji BSD.

Teraz, jeśli oryginalne repozytorium chce pobrać łatki z widelca, wówczas do oryginalnej repozytorium należy dodać kopię nowej licencji widelca. Ostatecznie oba repozytoria będą miały każdą licencję, jedna obejmująca każdy zestaw poprawek.

SymPy powinien również wymagać od autorów, aby rezygnowali z praw autorskich do projektu SymPy. Potencjalnie bardzo problematyczne jest, aby współtwórcy zachowali swoje prawa autorskie do poszczególnych poprawek po przesłaniu. Potrzebna jest umowa współtwórcy określająca to, co się dzieje.

Moorepants
źródło
Oczywiście, jeśli nie ma dodatkowej licencji na widelec, wówczas składki nie są licencjonowane na podstawie innej niż domyślna licencja na wszystkie prawa zastrzeżone.
1
Nie wierzę, że to koniecznie prawda. Jeśli nie określono licencji na nowe łaty w rozwidleniu, istnieje potencjalna dwuznaczność. Domyślnie w prawie amerykańskim twórca treści jest właścicielem praw autorskich, jeśli nie podano inaczej. Jeśli więc nie wymieniono żadnej dodatkowej licencji, możliwe jest, że twórca poprawek w rozwidleniu jest właścicielem praw autorskich do nowych poprawek. Jest to jednak dwuznaczne, ponieważ twórca musiał pozostawić oryginalną licencję w rozwidleniu, aby mogło to dotyczyć wszystkich ich poprawek. Deklaracje licencji na plik pomagają częściowo wyjaśnić tę dwuznaczność, ale rzadko pojawia się instrukcja „na łatkę”.
moorepants