Zmień licencję na kod BSD 2/3 klauzuli na GPL

11

Załóżmy, że udostępniam kod źródłowy w ramach nowej licencji BSD. Czy ktoś inny może pobrać ten kod, wprowadzić w nim zmiany i rozpowszechniać go zgodnie z warunkami GPL? Z Wikipedii :

Wiele najpopularniejszych licencji wolnego oprogramowania, takich jak oryginalna licencja MIT / X, licencje BSD (w obecnej formie 2-klauzulowej) oraz LGPL, są „zgodne z GPL”. Oznacza to, że ich kod można łączyć z programem objętym GPL bez konfliktu (nowa kombinacja miałaby zastosowanie GPL do całości). Jednak niektóre licencje na darmowe / otwarte oprogramowanie nie są zgodne z GPL.

Zakładam, że oznacza to, że można licencjonować nowy kod licencjonowany BSD na GPL?

Brecht Machiels
źródło
Zadałem podobne pytanie na giełdzie stosów Open Source: opensource.stackexchange.com/questions/4837 /... Wydaje mi się, że nie znaleźliśmy jeszcze rozstrzygającej odpowiedzi; wszystko, co mamy, to kilkanaście domysłów. Byłoby wspaniale usłyszeć od prawdziwego prawnika, a może nawet samego FSF.
Tanner Swett

Odpowiedzi:

8

To interesujące pytanie. Zastrzeżenie: IANAL.

Cytowany fragment oznacza, że ​​kod licencjonowany BSD może być wykorzystywany w projekcie objętym licencją GPL.

Z drugiej strony nadal jesteś właścicielem praw autorskich do swojego kodu. Licencji oryginalnego kodu nie można zmienić bez Twojej zgody. Również licencja BSD wyraźnie wymaga:

  • Redystrybucja kodu źródłowego musi zawierać powyższą informację o prawach autorskich, niniejszą listę warunków i następujące wyłączenie odpowiedzialności.
  • Redystrybucje w formie binarnej muszą zawierać powyższą informację o prawach autorskich, niniejszą listę warunków i następujące wyłączenie odpowiedzialności w dokumentacji i / lub innych materiałach dostarczonych wraz z dystrybucją.

Dlatego licencji BSD nie można usunąć z kodu.

Aby faktycznie móc opublikować połączony kod na licencji GPL, inny autor musiałby wnieść „znaczący wkład” w kod. To jest niejasne, co to dokładnie znaczy, ale zwykle powinno oznaczać przynajmniej dodanie nowej znaczącej funkcji, a nie tylko drobnej łatki.

Podobna sytuacja: SFLC kończy przegląd sterownika bezprzewodowego Atheros dla systemu Linux, publikuje Przewodnik dla programistów .

Podobne pytanie dotyczące SO: /programming/821608/relicensing-a-bsd-library

vartec
źródło
Zatem warunki BSD muszą zostać zachowane. To jasne. Ale czy można dodać dodatkowe warunki do listy, powiedzmy klauzulę „uczyń swoje zmiany dostępnymi dla innych” na licencji GPL?
Brecht Machiels,
1
@Brecht: jeśli i tylko wtedy, gdy jest to coś nowego, co stanowi osobne dzieło objęte prawem autorskim. Jeśli jest to niewielka zmiana lub adaptacja, nie jest to osobna praca, więc nie można jej ponownie licencjonować.
vartec
6

Z mojego doświadczenia wynika, że ​​nie „ponownie licencjonujesz” czegoś, ponieważ nie jesteś właścicielem praw autorskich. Masz tylko licencję oryginalnych autorów.

Możesz użyć utworu chronionego prawem autorskim w utworze pochodnym, ale musisz przestrzegać warunków licencji, która w przypadku BSD / MIT mówi, że musisz zachować informację o prawach autorskich i licencję na kod, którego używasz .

W praktyce, gdyby ktoś używał twojej biblioteki BSD w aplikacji GPL, zobaczyłbyś w tej aplikacji:

  • Kopia licencji GPL w pliku tekstowym
  • Odrębny plik, który twierdzi, że cały program jest licencjonowany na licencji GPL (i kieruje go do pliku licencji GPL dla poszczególnych danych), ale następnie ma osobne sekcje pod nagłówkiem, mówiąc: „biblioteka XYZ jest licencjonowana na licencji BSD”, a następnie pokazuje licencja XYZ również tam. Oto przykład tego typu pliku z napisanej przeze mnie licencji GPL .

Jeśli ktoś wziął fragment kodu lub plik z Twojej pracy i umieścił go w swojej aplikacji GPL, a następnie zmodyfikował, prawdopodobnie zobaczysz, że zawiera on zarówno plik GPL, jak i nagłówek BSD w pliku. Plik miałby zasadniczo dwóch autorów - ciebie i ich. Oba powiadomienia o prawach autorskich musiałyby zostać pokazane.

Pamiętaj, że GPL jest wirusowa, więc dotyczy całej pracy, ale BSD / MIT dotyczy tylko dokładnego kodu, który ktoś napisał.

Scott Whitlock
źródło
1
prawdopodobnie możesz licencjonować utwór, na który zezwala na to licencja, nawet jeśli nie jesteś oryginalnym właścicielem praw autorskich. Wydaje się, że BSD na to pozwala.
Armand
2

Zastrzeżenie: IANAL.

Licencje MIT lub BSD nie zawierają zakazu ponownego licencjonowania. Biorąc pod uwagę, że ani licencje MIT, ani BSD nie nakładają ograniczeń wykraczających poza to, co jest już w GPL (bity dotyczące praw autorskich i gwarancji są już w klauzuli 1 Warunków GPLv2), nie widzę problemu z rozwidlaniem i licencjonowaniem projektu licencjonowanego MIT.

Stara licencja BSD zawierała klauzulę reklamową, która nie działała dobrze z GPL.

Frank Shearar
źródło
2
Nie jestem też prawnikiem, ale myślę, że może to być dezinformacja. Tylko posiadacze praw autorskich mogą udzielać licencji na dzieła chronione prawem autorskim. Powodem, dla którego BSD jest zgodny z GPL, jest to, że kod licencjonowany BSD może być wykorzystywany w pracy GPL, ale oryginalny kod BSD jest nadal licencjonowany na podstawie BSD. W ramach pracy pochodnej jest on również licencjonowany na licencji GPL, ale oryginalna licencja musi pozostać nienaruszona.
Scott Whitlock,
3
@Scott BSD mówi, że musisz zachować klauzule BSD. Nie ogranicza to jednak ich dodawania, więc być może jest to rozsądna interpretacja
Armand
2
opensource.org/licenses/mit-license.php wyraźnie stwierdza, że ​​każdy, kto uzyska kopię kodu, może sublicencjonować oprogramowanie.
Frank Shearar,
2

Przepraszam, ale większość z was się myli.

Licencjonowanie i własność to dwie różne rzeczy. Nie możesz ponownie licencjonować czegoś, czego nie jesteś właścicielem. To nie twoja decyzja.

Właściciel jest właścicielem praw autorskich, a nie ty. Dlatego nie można ponownie licencjonować ich pracy. Ponieważ nie posiadasz ich pracy, licencjonujesz ją tylko. Oznacza to, że właściciel pozwala ci z niego korzystać. On / Ona nie daje ci własności.

Śmieszne będzie na przykład sądzić, że oryginalny autor (lub KAŻDY, który uzyskał kod BSD) musi postępować zgodnie z GPL, aby użyć oryginalnego kodu tylko dlatego, że zdecydowałeś się użyć ICH KODU w projekcie GPL.

Możesz jednak licencjonować na GPL SWÓJ własny kod. A następnie CZĘŚĆ, a nie oryginalna, jest objęta GPL. Ponieważ pierwotny autor nie umieścił pracy na GPL, a TYLKO licencjonujesz, a NIE PRAWDZIWY oryginał.

Możesz użyć kodu licencjonowanego BSD na swoim kodzie GPL (ponieważ BSD pozwala na to, o ile przestrzegasz warunków BSD, a NIE MOŻNA USUNĄĆ licencji z kopii), ale nie możesz po prostu ponownie licencjonować całości, ponieważ nie posiadasz tego. Ponownie, to nie twoja decyzja. Jeśli jednak chcesz użyć kodu GPL innej firmy z kodem BSD. Wtedy problem będzie zgodny z częścią GPL.

Ricardo Santos
źródło
1
Uważam, że powyższe stwierdzenie „Nie możesz ponownie licencjonować czegoś, czego nie jesteś właścicielem” jest nieprawidłowe, wiele licencji udziela prawa do sublicencjonowania dzieł chronionych prawem autorskim. Czasami dotacje na sublicencję dodatkowo ograniczają prawa, które mogą być przyznane na podstawie sublicencji, ale nie zawsze. Szczegóły zależą od sytuacji i od tego, czy masz do tego uprawnienia.
Cameron
Ponadto, jeśli umieścisz licencję BSD w swoich kopiach, oznacza to, że kod nadal jest BSD i nie może być jednocześnie objęty GPL.
warvariuc