Co tak naprawdę oznacza „sublicencja”?

13

Po pierwsze, jasne jest, że prawo do sublicencji nie daje ci prawa do sublicencji.

Załóżmy, że mamy bibliotekę z licencją MIT (1 plik), ktoś dodaje pewne funkcje do biblioteki, ale umieszcza je na GPL (w tym samym 1 pliku). A jeśli ktoś chce sublicencjonować, musi oddzielić kod?

Jeśli ktoś chce korzystać z biblioteki, w jaki sposób obsługiwane są licencje?
Powiedzmy, że programista korzysta tylko z funkcji objętych licencją MIT, nawet jeśli w pliku znajdują się pewne funkcje z GPL.
Czy musi złożyć wniosek GPL z powodu kodu licencjonowanego GPL?
Czy musi usunąć kod GPL, aby być wolnym od ograniczeń GPL, czy może po prostu korzystać z biblioteki w ramach uprawnień / ograniczeń MIT, o ile nie używa kodu GPL?

Lilian A. Moraru
źródło

Odpowiedzi:

5

ktoś dodaje pewne funkcje do biblioteki [MIT], ale umieszcza je na GPL (w tym samym 1 pliku). Jeśli ktoś [inny] chce „sublicencjonować” [czy] musi oddzielić kod?

Jeśli podlicencją masz na myśli użycie kodu w ramach mniej restrykcyjnej licencji MIT, to tak. Osoba GPL, która pisze swój nowy kod, mówi w zasadzie: „Nie możesz używać mojego kodu, chyba że Twój kod jest również rozpowszechniany na warunkach GPL”.

Czy [podlicencjodawca] musi usunąć [nowo licencjonowany] kod GPL, aby być wolnym od ograniczeń GPL?

Tak.

Robert Harvey
źródło
Patrzyłem na licencje open source ( tldrlegal.com/browse ). Chciałbym chronić kolejnych użytkowników biblioteki (które mogą zabrać ją komuś innemu) przed dodatkowymi ograniczeniami. Prawie każda popularna permisywna licencja open source pozwala na sublicencję. Ms-PL wydaje się do tego dobry, ale ma inne ograniczenia (istnieje również GPL, ale nie chcę zmuszać użytkowników biblioteki do GPL ich oprogramowania) ...
Lilian A. Moraru,
Nie jestem pewien, co ma z tym wspólnego „sublicencjonowanie”. Czy próbujesz wybrać licencję, która na to pozwala, a co oznacza dla Ciebie „podlicencjonowanie”?
Robert Harvey
Z programmers.stackexchange.com/questions/105912/ ... Rozumiem, że ktoś może mieszać inną licencję z aktualną licencją i do ograniczeń obecnej biblioteki dodano ograniczenia dodatkowej biblioteki. Lub można zastosować dodatkową bibliotekę do kodu, który dodał do oryginalnego źródła. I nie, wolałbym licencję, która nie pozwala na mieszanie bardziej restrykcyjnej licencji.
Lilian A. Moraru,
3
Myślę, że musisz to uprościć; spójrz na to w kategoriach „dystrybucji”, a nie „podlicencjonowania”. Wszystkie licencje typu open source pozwalają użytkownikom korzystać z kodu w dowolny sposób; tylko wtedy, gdy nastąpi dystrybucja , wszelkie ograniczenia copyleft stają się oczywiste. W twoim przypadku masz kogoś, kto chce GPL swojego kodu. Wynikowy wybór (który musisz dokonać tylko w przypadku redystrybucji) jest prosty: albo przestrzegasz nowych ograniczeń, które nałożył, albo unikasz jego kodu i pozostajesz z oryginalnym kodem licencjonowanym przez MIT.
Robert Harvey
1
Odpowiedź tutaj jest w większości błędna. Dodanie odpowiedzi poniżej w celu wyjaśnienia.
Chris Travers,
20

IANAL, ale rozmawiałem o tym i wielu podobnych sprawach z prawnikami na tyle, aby mieć dobry pogląd na to, o czym tu mówię. To nie jest porada prawna. Najlepszą lekturą w tle jest książka Larry'ego Rosena w kontekście oprogramowania typu open source.

Prawa, licencje, prawa autorskie i podlicencje

Zgodnie z prawem autorskim posiadaczowi praw autorskich przyznaje się pewne wyłączne prawa do jego dzieła. Większość lub wszystkie z nich (w zależności od jurysdykcji) mogą być licencjonowane wyłącznie lub nie wyłącznie na rzecz osoby trzeciej. Jeśli podlicencjonowanie jest dozwolone, licencjobiorca może przenieść część lub całość praw wynikających z licencji na stronę trzecią, zawierając z nią bezpośrednie umowy.

Obecnie w Stanach Zjednoczonych ustawowi zakłada się, że wyłączni licencjobiorcy mają prawo do sublicencji (choć przypuszczam, że można to wyjaśnić w licencji wyłącznej). Ma to sens, ponieważ zakłada się, że wyłączni licencjobiorcy mają kontrolę. Nie zakłada się, że niewyłączni licencjobiorcy uzyskają taki monopol od licencjodawcy.

Załóżmy na przykład, że piszę powieść. Załóżmy, że oferuję wyłączną licencję na utwór w jego obecnej formie jako książkę i oferuję komuś innemu niewyłączną licencję na kontynuację, która jest dziełem pochodnym. Wyłączny licencjobiorca może wydawać niewyłączne licencje innym autorom na korzystanie z fragmentów książki w drodze sublicencji. Niewyłączny licencjobiorca nie może autoryzować kolejnej nieautoryzowanej kontynuacji mojej powieści, ani wyłączny licencjobiorca nie może udzielać sublicencji na prawa, które nie zostały mu przyznane (na przykład prawa do filmu).

Licencje BSD a MIT i sublicencjonowanie: prawdopodobnie duża różnica

Ta sekcja opiera się głównie na książce Rosen (powyżej). Jeśli potrzebujesz porady prawnej, zatrudnij prawnika i nie zdejmuj jej ze Stack Exchange.

Licencja MIT wyraźnie zezwala na podlicencjonowanie, podczas gdy licencja BSD nie. Po powyższej dyskusji oznacza to, że licencja MIT dopuszcza coś, czego licencja BSD prawdopodobnie nie ma w większości jurysdykcji, a mianowicie sublicencjonowanie. Obie licencje dotyczą jednak tylko dostarczonego kodu i oprogramowania i żadne z nich nie ogranicza możliwości licencjonowania całego dzieła. Prowadzi to do istotnego pytania, jak interpretować GPL v3, aby była zgodna z licencjami BSD btw.

Na podstawie licencji MIT możesz robić w zasadzie dwie pozornie podobne rzeczy:

1) Możesz włączyć utwór do własnych utworów i rozpowszechniać je na bardziej restrykcyjnej licencji.

2) Możesz wziąć oryginalne dzieło licencjonowane przez MIT, dodać do niego dodatkowe ograniczenia i rozpowszechniać dzieło na podstawie bardziej restrykcyjnej licencji, ale w ogóle nie zmodyfikowałeś kodu. GPL v3 twierdzi, że wymaga, aby była ona zgodna, jeśli uważa się, że GPL reguluje wszystkie warunki licencji. [1]

Jednak w ramach rodziny licencji BSD można dodawać ograniczenia tylko do własnego kodu i tworzonych dzieł pochodnych. Nie możesz dodać ich do oryginalnego kodu, przekazując tylko niektóre prawa przyznane tobie. Więc nie mogę wziąć na licencji BSD PostgreSQL, zmień jego nazwę na PostSQL i licencjonować go na GPL, ale mogą wziąć MIT licencjonowany Kerberos i zmienić jego nazwę jako HadesHound i licencjonować go na licencji GPL (w obu przypadkach przy założeniu, że nie kod się zmienił). Oznacza to, że pojazd praw jest inny (zawsze bezpośredni w przypadku licencji BSD, bezpośredni lub pośredni w przypadku licencji MIT).

Wnioski

Podlicencja jest terminem prawnym. Jeśli chcesz przeczytać o tym, co to właściwie oznacza, zalecam, aby zacząć rozmawiać z prawnikami, Software Freedom Law Center i innymi osobami oraz przeglądać słowniki prawne. Podstawową ideą jest jednak to, że jeśli zostanie to przyznane, licencjobiorca może zostać licencjodawcą niektórych praw do otrzymanej dotacji, niezależnie od jakichkolwiek innych roszczeń dotyczących kontroli praw autorskich nad tym, co dystrybuuje.

Pytasz o konkretny dokument prawny i użyty w nim termin. Mam nadzieję, że pomoże to dokładnie wyjaśnić, co oznacza ten termin i jaki ma wpływ.

Wiele z twoich pytań prawdopodobnie będzie długich i skomplikowanych [2] i zależy od jurysdykcji, ale podstawową zasadą dotyczącą licencji MIT jest to, że jeśli Twój kanał twierdzi, że jest licencjonowany teraz na licencji GPL, jest on licencjonowany na licencji GPL. Jednak może to być bezpieczne założenie na podstawie licencji BSD. Ponadto jest to prawdą niezależnie od tego, czy oryginalna wersja została zmodyfikowana, czy nie, jeśli użyto licencji MIT. Zgodnie z licencją BSD zakres modyfikacji jest rzeczywiście determinujący, która licencja jest regulowana.

[1] Jednym z rozwiązań jest postrzeganie GPL w inny sposób i umożliwienie „uzasadnionym powiadomieniom prawnym” (dodatkowe ograniczenia zgodnie z sekcją 7) dołączać powiadomienia o dodatkowych prawach licencyjnych. W takim przypadku należałoby uzyskać dodatkowe uprawnienia, które można było usunąć, regulowane w sekcji 7 jako dodatkowe uprawnienia, ale także zezwalające, jako dodatkowe ograniczenie (zgodnie z sekcją 7 (b)), informację, że niektóre prawa nie są usuwalne. Jest to jedna z rzeczy, których nie lubię w GPL v3, a mianowicie to, że sprawia, że ​​myślisz jak prawnik, jak rozwiązać problem zgodności licencji.

[2] Na przykład otwarte jest pytanie, czy rozpowszechnianie oprogramowania, które prowadzi do biblioteki strony trzeciej, wymaga w ogóle pozwolenia na prawa autorskie. Jeśli tak jest, to PostgreSQL skompilowany na MinGW wymaga zgody Microsoftu i mogą ją odwołać w dowolnym momencie , ale jeśli nie, mogę napisać zastrzeżone programy łączące się z GNU Readline i FSF nie może twierdzić jest to naruszenie praw autorskich. To otwarte pytanie sprawia, że ​​większość twoich pytań dotyczących tego, czy programista może połączyć się z biblioteką na licencji innej niż GPL, nie da się odpowiedzieć z całą pewnością.

Chris Travers
źródło
1
tl; dr: Porozmawiaj z prawnikiem.
Robert Harvey
1
W pewnym stopniu tak. Ale ja też jestem zdania, że jako profesjonaliści Musimy być stosunkowo poinformowana o tych kwestiach. Jeśli jedynym pytaniem jest „czy mogę używać kodu licencjonowanego MIT w mojej aplikacji GPL”, na które można bezpiecznie odpowiedzieć jako „tak”. Jeśli pytanie brzmi „czy mogę połączyć moją zastrzeżoną aplikację z wersją biblioteki licencjonowanej przez MIT na licencji GPL?” to dobry moment na rozmowę z prawnikiem.
Chris Travers
1
(Nie jestem też do końca pewien, czy sublicencjonowanie jest zawsze konieczne w odniesieniu do oprogramowania typu open source, FWIW.)
Chris Travers,
0

Nie jestem prawnikiem ani nie gram w telewizji:

Podczas gdy domyślną odpowiedzią na takie pytanie jest po prostu rozmowa z prawnikiem, myślę, że lepszą odpowiedzią jest rozmowa z oryginalnym autorem. Powiedz im, co zamierzasz z tym zrobić i jaka jest twoja grupa docelowa. Pamiętaj, że autor nie zrzeka się swoich praw autorskich do swojej pracy, wydając na podstawie licencji, autor ma swobodę wyboru, co chce na to pozwolić. Autor może powiedzieć „możesz rozwidlać tę bibliotekę na podstawie tej innej licencji, która ma wymagania, których szukasz” lub po prostu powiedzieć „możesz wydać swoje oprogramowanie przy użyciu dowolnej licencji, zrzekam się wymogu dla X tak długo, jak ty robisz Y” . Ja osobiście otrzymałem specjalne pozwolenie na rozpowszechnianie autorskiego oprogramowania open source na Apache zamiast na GPL. Przyznany dla dużego, obecnie obsługiwanego projektu, takiego jak Qt,

Biorąc pod uwagę, że widzę mnóstwo aplikacji typu open source wydanych na licencji GPL, co powiedziałbym, że autorzy naprawdę nie rozumieją, co to naprawdę znaczy. Pamiętaj, że jeśli używasz kodu GPL, nawet jeśli jest to pojedynczy wiersz, cała aplikacja musi zostać wydana zgodnie z warunkami GPL (to trochę ekstremalne, oczywiście, żaden autor open source nie poszedłby za tobą dla jednego wiersza - ale to jest wymóg licencji).

Nie zgadzam się również z odpowiedzią Chrisa Traversa.

Zgodnie z tą tabelą zarówno BSD, jak i MIT pozwalają komuś wydać na innej licencji. Oto inne źródło sugerujące, że pozwala na podlicencjonowanie. Przeczytałem nową licencję BSD i nie sugeruje nic o niedozwoleniu wydania na innej licencji - jednak zawiera ona postanowienia, z których żaden nie zabrania zmiany licencji w produkcie pochodnym.

Natalie Adams
źródło
Jestem „autorem”. Chcę się upewnić, że wszystko jest dobre dla użytkowników.
Lilian A. Moraru,
Licencja BSD wymaga umieszczenia licencji na kopiach kodu źródłowego. Licencja zapewnia udzielenie licencji bezpośrednio od autora. W przypadku nielicencjonowania nie ma mechanizmu zmiany licencji istniejącego kodu licencjonowanego BSD bez bezpośredniego dochodzenia własnych praw autorskich do własnego kodu. Właśnie na to pozwala podlicencjonowanie, a mianowicie na dodanie ograniczeń nieobecnych w oryginalnej licencji. Mam nadzieję, że to wyjaśni. Znów uważam, że książka Rosen jest tu bardzo pomocna.
Chris Travers
Oczywiście, kiedy będziesz mieć własne prawa autorskie do potwierdzenia, rozróżnienie zniknie. Po dodaniu własnego kodu do pliku możesz dodać dowolne ograniczenia, ale dotyczą one tylko Twojego kodu i nie możesz ich dochodzić w stosunku do kodu uzyskanego na podstawie licencji BSD bez wyraźnego prawa do sublicencji. Różnica polega więc na nałożeniu ograniczeń na własny kod i nałożeniu ich na kod
Chris Travers