Jak w praktyce zarządzać plikami licencyjnymi podczas łączenia kodu licencjonowanego GPL i BSD?

10

Piszę kod, który korzysta z jednej biblioteki z licencją GPL (nie LGPL), a drugiej z 3-klauzulową licencją BSD . Ponieważ łączę się z biblioteką licencjonowaną na GPL, mój kod również musi być GPL. Jak mam w praktyce radzić sobie z oryginalnym LICENSE.txt z biblioteki BSD?

(A) Czy mogę rozpowszechniać projekt, aby główny kod źródłowy był na licencji GPL, a następnie jakiś podkatalog ma licencję na BSD?

(B) Gdybym nie tylko łączył z bibliotekami, ale używał i łączył kod BSD i GPL w bardziej zaangażowany sposób, co zrobić z LICENSE.txt?

3-klauzulowy tekst BSD mówi: „Redystrybucje kodu źródłowego muszą zawierać powyższą informację o prawach autorskich, tę listę warunków i następujące wyłączenie odpowiedzialności”. więc najwyraźniej powinienem gdzieś zachować informację o prawach autorskich i tę listę warunków. Ale potem będę musiał gdzieś umieścić plik txt licencji GPL.

Ponadto najwyraźniej nie muszę zachowywać „Redystrybucji i używania w postaci źródłowej i binarnej, z modyfikacjami lub bez, są dozwolone, pod warunkiem że spełnione są następujące warunki:” część tekstu licencji BSD, ponieważ nakazuje mi tylko zachowaj pozostałe części.

Jak więc iw jakich plikach tekstowych powinienem w praktyce uporządkować tekst licencji GPL oraz części licencji BSD i praw autorskich, które zachowuję?

EDYCJA: Więc w przypadku B, wziąłbym 3-klauzulowy kod licencyjny BSD i redystrybuowałbym go na licencji GPL, co jest dozwolone, ponieważ 3-klauzulowa licencja BSD jest (jednokierunkowa) zgodna z GPL . Pytam tylko, jak radzić sobie z tekstami licencji i plikami tekstowymi w praktyce.

Sampo Smolander
źródło
To jest zły pomysł. Proste wyszukiwanie w sieci pokaże Ci, dlaczego. Ale cały produkt staje się GPL. Wcześniej występowały z tym problemy.
Andrew T Finnell,
2
@Andrew Finnell: Dlaczego to zły pomysł? Cały produkt jest licencją GPL, ponieważ jest to komponent, ale co jest z tym nie tak? Biblioteka licencjonowana przez BSD jest nadal licencjonowana przez BSD. Ludzie nie używają licencji BSD, chyba że chcą, aby ich rzeczy były użyteczne przez osoby, które chcą korzystać z bardziej restrykcyjnych licencji.
David Thornley,

Odpowiedzi:

1

Dla uproszczenia prawdopodobnie najlepiej wydać całość na licencji GPL. 3-klauzulowa licencja BSD nie ma formy kopiowania w lewo, więc masz pełne prawo do zmiany marki, o ile zachowujesz jej ostrzeżenie.

Otrzymasz dwa rodzaje plików:

  • Pierwotnie pliki BSD: muszą mieć oba nagłówki, kolejność nie jest ważna dla mojej wiedzy, tylko to, że tam są
  • Twoje pliki i pierwotnie pliki GPL: musisz mieć nagłówek GPL

I oczywiście w przypadku każdej wersji binarnej konieczne będzie podanie linku do źródła i obu nagłówków w innej formie. Poleciłbym standardową licencję GPL, a po niej „Części tego programu zostały pierwotnie wydane na podstawie następującej licencji” lub coś w tym rodzaju, prawdopodobnie możesz znaleźć przykłady tego, co dzieje się na wolności, jeśli go szukasz.

Pamiętaj, że nie jestem prawnikiem, ani nie specjalizuję się ani w licencjonowaniu open source, ani w ogóle w licencjonowaniu. Po prostu przekazuję, jak wyglądałaby moja interpretacja danego połączonego licencjonowania.

Guvante
źródło
1

Ok, czytając sekcję 7 GPLv3 , pozwala na „dodatkowe uprawnienia [które] dotyczą tylko części Programu” [1]. Tak więc utrzymanie niektórych plików lub katalogów na licencji BSD wydaje się w porządku, ponieważ myślę, że „rób co chcesz” na licencji BSD jest „dodatkowym pozwoleniem”.

Ponadto sekcja 7 pozwala „uzupełnić warunki niniejszej Licencji o warunki:” (poniżej znajduje się 6-punktowa lista dopuszczalnych warunków), a wszystkie 3 klauzule (+ wyłączenie odpowiedzialności) licencji BSD są objęte, więc w przypadku mieszania kodu BSD i GPL w jednym pliku, może po prostu muszę gdzieś umieścić ADDITIONAL_TERMS.txt, zawierający 3 klauzule + wyłączenie odpowiedzialności z licencji BSD.

(Mówiąc dokładniej, przez cały czas, gdy mówiłem o licencji BSD, miałem na myśli 3-klauzulową licencję AKA „Nowa licencja BSD” AKA „Zmodyfikowana licencja BSD”, do której odsyłam w swoim pytaniu.)

[1] Tak długo, jak odbiorca programu będzie mógł usunąć dodatkowe uprawnienia, jeśli będzie dalej rozpowszechniał. Pozwala na to licencja BSD.

Sampo Smolander
źródło
-1

Jest to po prostu niemożliwe zgodnie z wieloma interpretacjami warunków licencji.

gnu.org mówi o wersji 2:

Ponieważ nakłada określone wymagania, których nie ma w GPL; mianowicie wymóg dotyczący reklam programu. GPL stanowi:

Nie możesz nakładać żadnych dalszych ograniczeń na korzystanie przez odbiorcę z praw przyznanych w niniejszym dokumencie.

Klauzula reklamowa zapewnia takie dodatkowe ograniczenie, a zatem jest niezgodna z GPL.

Zmieniona licencja BSD nie zawiera klauzuli reklamowej, co eliminuje problem.

i dla GPL v3 :

Dlaczego oryginalna licencja BSD jest niezgodna z GPL? (#OrigBSD)

Ponieważ nakłada określone wymagania, których nie ma w GPL; mianowicie wymóg dotyczący reklam programu. Sekcja 6 GPLv2 stanowi:

Nie możesz nakładać żadnych dalszych ograniczeń na korzystanie przez odbiorcę z praw przyznanych w niniejszym dokumencie.

GPLv3 mówi coś podobnego w rozdziale 10. Klauzula reklamowa zapewnia takie dodatkowe ograniczenie, a zatem jest niezgodna z GPL.

Zmieniona licencja BSD nie zawiera klauzuli reklamowej, co eliminuje problem.

Oczywiście inni prawnicy / sędziowie mogą mieć różne opinie.

Johnnes
źródło
1
Czy na pewno nie mówisz o 4-klauzulowej licencji BSD? „Ani nazwa <organizacji>, ani nazwiska jej współpracowników nie mogą być używane do promowania lub promowania produktów pochodzących z tego oprogramowania bez uprzedniej pisemnej zgody”. w żadnym wypadku nie odnosi się do reklamy w dowolnym kształcie lub formie i jest w rzeczywistości powiązany ze znakiem towarowym organizacji, a nie prawem autorskim do kodu źródłowego.
Guvante
1
W rzeczy samej! Byłem zdezorientowany (ponownie) na temat różnych wersji!
johannes