W jaki sposób licencje zgodne z GPL, takie jak MIT, są użyteczne w programach GPL bez podlegania przepisom dotyczącym copyleft?

19

Obecnie badam możliwości i implikacje połączenia z biblioteką GPL dla aplikacji w kontekście komercyjnym.

Z tego, co rozumiem na licencji GPL, o ile aplikacja jest używana wewnętrznie, nie ma obowiązku zwolnienia jej kodu (nawet jeśli kopia zostanie przeniesiona do kontrolowanej spółki zależnej).

To, czego nie rozumiem, to następujący punkt z FAQ:

Czy biblioteka wydana na licencji GPL (nie LGPL) oznacza, że ​​każde oprogramowanie, które z niej korzysta, musi być objęte licencją GPL lub zgodną z GPL ? Tak, ponieważ oprogramowanie w trakcie jego działania zawiera bibliotekę.

Jeśli przyjrzę się licencjom zgodnym z GPL , niektóre z nich (np. Wersja podwyższająca) nie wydają się narzucać wydania kodu. Użycie go stworzyłoby sytuację, w której można by być zgodnym z licencją GPL bez konieczności przestrzegania obowiązku upublicznienia kodu (co nie wydaje się zbyt wiarygodne).

(Uwaga: w programie Adobe Photoshop są składniki licencjonowane w ramach programu boost i nie sądzę, aby kod był dostępny na żądanie)

Najbardziej rozsądnym wyjaśnieniem byłoby to, że coś mi umknęło ... Czy mógłbyś mi powiedzieć, gdzie popełniłem błąd?

Louis Morazzani
źródło
1
+1 za wyjaśnienie tylko dlatego, dlaczego w ogóle używałbyś tego słowa w zdaniu
Jimmy Hoffa
@JimmyHoffa +1 za Twoją miłość do języka.
Racheet
1
Gdzie byłeś czerwony, że Boost to GPL? Ma własną licencję. Standardową zasadą jest to, że GPLv2 nie łączy się z zastrzeżonym oprogramowaniem. Tydzień na tej stronie pojawia się pytanie, jak to obejść. Powinniśmy zbanować wszystkie pytania GPL.
Andrew T Finnell,
Widzę, że powiedział, że Boost jest kompatybilny z GPL. Reszta mojego komentarza jest ważna.
Andrew T Finnell,

Odpowiedzi:

26

W jaki sposób licencje zgodne z GPL, takie jak MIT, są użyteczne w programach GPL bez podlegania przepisom dotyczącym copyleft?

Krótka odpowiedź: nie są. Staną się przedmiotem copyleft.

Długa odpowiedź:

Artykuł w Wikipedii na temat zgodności licencji zawiera dobry rozdział na temat zgodności z GPL :

Wiele najpopularniejszych licencji wolnego oprogramowania, takich jak oryginalna licencja MIT / X, ... jest „zgodnych 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 ).

[podkreślenie dodane]

A dokładniej z FSF FAQ na temat zgodności z GPL :

Oznacza to, że druga licencja i GNU GPL są kompatybilne; możesz połączyć kod wydany na innej licencji z kodem wydanym na licencji GNU GPL w jednym większym programie.

I tylko dla celów edycyjnych, oto komentarze FSF na temat różnych licencji

Komentarz FSF na temat licencji na doładowanie

Jest to luźna, liberalna licencja wolnego oprogramowania innego niż copyleft, zgodna z GNU GPL.

Co oznacza, że ​​wszystko, co jest licencjonowane w ramach Boost, jest łatwo objęte przez GPL.

Gdzie robi się podstępnie

Powiedzmy, że mamy projekt Foolicencjonowany na podstawie Boost, a projekt na Barlicencji GPL i który chce korzystać Foo.

Bar+Foojest dozwolone, ponieważ licencje są zgodne, a wydanie Bar+Foomusi być zgodne z GPL, tak jak BarGPL. Foo, sam w sobie i bez Bar lub Bar+Foo , jest nadal dostępny na licencji Boost. Mówiąc inaczej, Bar+Foonie ma wpływu na licencję Foo.

Uzyskana licencja na połączenie projektu stanowi zdarzenie działające w przód tylko dla połączenia. To nie jest retroaktywne wydarzenie.

Więc jeśli ktoś inny chce wziąć Fooi zrobić z tym coś innego, nadal może to zrobić bez postanowienia GPL dotyczącego copyleft. Jeśli jednak wezmą Bar+Foo, usuną Bari użyją tylko +Foowtedy nadal będą obowiązywać warunki GPL, odkąd Bar+Foozostała GPL.

Twoje drugie pytanie:

Z tego, co rozumiem na licencji GPL, o ile aplikacja jest używana wewnętrznie, nie ma obowiązku zwolnienia jej kodu (nawet jeśli kopia zostanie przeniesiona do kontrolowanej spółki zależnej).

Odpowiedzi na te pytania udziela FSF GPL FAQ na temat dystrybucji źródła

GPL nie wymaga wydawania zmodyfikowanej wersji ani żadnej jej części. Możesz wprowadzać modyfikacje i korzystać z nich prywatnie, bez ich zwalniania. Dotyczy to również organizacji (w tym firm); organizacja może utworzyć zmodyfikowaną wersję i używać jej wewnętrznie, nie wydając jej nigdy poza organizację.

Spółki zależne w całości są uważane za część organizacji macierzystej, więc zgodnie z prawem nie ma wątpliwości. FSF przypomina, że ​​naruszasz ducha Wolnego Oprogramowania.


źródło
3
Zastanawiam się: jeśli pracownik korzysta z niepublikowanej zmodyfikowanej wersji w firmie, czy miałby prawo uzyskać kod źródłowy od firmy?
Unor
@ GlenH7: dziękuję za bardzo pomocne wyjaśnienie (zwłaszcza część „Gdzie jest trudne”)
Louis Morazzani
2
@unor - Nie, stanowiłoby to prywatne wykorzystanie przez Firmę (pracownik jest częścią firmy, a nie odrębnym podmiotem).
iheanyi
„Jednak jeśli wezmą Bar + Foo, usuń Bar i użyją tylko + Foo, nadal będą obowiązywać warunki GPL, odkąd Bar + Foo był licencją GPL.” Jesteś pewny? Foo nadal było licencjonowane na licencji Boost. Jak rozumiem, licencji Boost nie należy usuwać, nawet w połączeniu z kodem GPL. („Powyższe [...] udzielenie licencji, to ograniczenie i poniższe zrzeczenie się muszą być zawarte we wszystkich kopiach Oprogramowania, w całości lub w części, oraz we wszystkich pracach pochodnych Oprogramowania [...]”)
lesderid
2
@ GlenH7 Jasne, ale czy mogliby oni nawet udzielać licencji na Foopodstawie GPL? Podlicencjonowanie byłoby w porządku, ale wtedy musieliby również zachować licencję Boost Bar+Foo, prawda?
lesderid
8

Przez „zgodny z GPL” mają na myśli licencję, która nie jest sprzeczna z GPL. Mniej restrykcyjna licencja, podobnie jak licencja Boost, jest „zgodna” z GPL, ponieważ nie ogranicza użytkowników kodu do robienia czegokolwiek, na co GPL pozwoli. Oznacza to, że licencja Boost pozwala ludziom na swobodne kopiowanie, co jest wymagane przez GPL.

Przykładem licencji, która nie jest „kompatybilna”, byłaby licencja wymagająca opłaty od oryginalnych autorów za rozpowszechnianie kopii przez użytkowników. Ponieważ GPL wyraźnie zezwala zarówno na bezpłatną, jak i płatną dystrybucję, ta bardziej restrykcyjna licencja nie byłaby zgodna.

Innymi słowy, GPL mówi „Musisz dopuścić $ A, $ B i $ C”. Każda licencja, która pozwala na $ A, $ B, $ C, a także $ D i $ E jest kompatybilna. Licencja, która pozwoliła na $ A i $ B, ale nie $ C, nie byłaby.

Gort the Robot
źródło
4
Czyli nowa, połączona praca jest w całości licencjonowana na licencji GPL, prawda? Ale oryginalny kod licencjonowany na MIT nadal może być dystrybuowany osobno na MIT bez uruchamiania GPL, prawda?
Robert Harvey
1
IANAL, ale tak, tak to działa.
Fabio Fracassi
4
ponieważ nie ogranicza to użytkowników kodu do robienia czegokolwiek, na co GPL pozwoliłaby użytkownikowi ”, a także dlatego, że nie uniemożliwia użytkownikowi robienia czegokolwiek, czego wymagałaby GPL.
Ross Patterson
2
Drobny naciągacz, ale GPL tak naprawdę nie zabrania pobierania opłat za nic; patrz gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus Minimus
1
Jestem prawie pewien, że GPL zezwala każdemu na pobieranie opłat za dystrybucję, ale nie pozwala ludziom wymagać od innych opłat, jeśli sami się dystrybuują. Innymi słowy, mogę obciążyć cię opłatą za kopię, ale nie mogę wymagać od ciebie wysłania płatności, jeśli przekażesz kopię osobie trzeciej.
Gort the Robot
1

Nie popełniłeś błędu: odpowiedź FAQ była niepełna. Należy powiedzieć, że połączony program musi być licencjonowany na licencji GPL, a nie na licencję zgodną z GPL. Od tego czasu został poprawiony (patrz poniżej: Podkreśliłem ważny fragment):

Tak, ponieważ program faktycznie prowadzi do biblioteki. W związku z tym warunki GPL mają zastosowanie do całej kombinacji. Moduły oprogramowania, które łączą się z biblioteką, mogą być objęte różnymi licencjami zgodnymi z GPL, ale cała praca musi być licencjonowana na licencji GPL . Zobacz także: Co to znaczy, że licencja jest „zgodna z GPL”?

Powiedziałem wcześniej, że „jeśli biblioteka jest wydana na licencji GPL, wówczas każde oprogramowanie, które z niej korzysta, musi być objęte samą GPL ze względu na tak zwaną„ wirusową ”naturę. Nie można użyć zezwolenia zgodnego z GPL, takiego jak boost . ” Przez „oprogramowanie, które go używa” miałem na myśli połączone moduły i bibliotekę.

Bennett McElwee
źródło
Uważam, że jest to powszechne nieporozumienie. Nie jest konieczne, aby uwolnić swoją część kodu na licencji GPL, tak długo, jak to ma licencję zgodną. Licencja na twoją część może być również bardziej liberalna, ale nie mniejsza niż GPL. Tylko połączona praca pozostaje pod GPL, więc dodatkowe ograniczenia GPL mają zastosowanie tylko wtedy, gdy jeden używa kodu wraz z połączoną biblioteką GPL. Zobacz gnu.org/licenses/gpl-faq.html#GPLModuleLicense
ERT
1
Tak to prawda. Moja pierwotna odpowiedź mogła zostać źle zinterpretowana. Na szczęście teraz wszystko jest dyskusyjne, ponieważ Gnu zaktualizowało swoje FAQ, aby powiedzieć właściwą rzecz.
Bennett McElwee