W LICENSE
pliku 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 AUTHORS
plik, 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 LICENSE
pliku 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 LICENSE
plik, aby dodać jego informację o prawach autorskich?
b) Czy nadal przestrzegamy licencji BSD, jeśli przechowujemy aktualny AUTHORS
plik 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ść AUTHORS
pliku w LICENSE
pliku, wraz ze Copyright
sł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 LICENSE
plik, który się nie zmienia i przechowujemy listę autorów AUTHORS
(i mamy skrypt, który synchronizuje go z listą autorów z git).
źródło
Odpowiedzi:
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:
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
NOTICES
pliku, w którym będziemy przechowywać wszystkie licencje stron trzecich.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; ...
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.
źródło