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?
Odpowiedzi:
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 :
[podkreślenie dodane]
A dokładniej z FSF FAQ na temat zgodności z GPL :
I tylko dla celów edycyjnych, oto komentarze FSF na temat różnych licencji
Komentarz FSF na temat licencji na doładowanie
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
Foo
licencjonowany na podstawie Boost, a projekt naBar
licencji GPL i który chce korzystaćFoo
.Bar+Foo
jest dozwolone, ponieważ licencje są zgodne, a wydanieBar+Foo
musi być zgodne z GPL, tak jakBar
GPL.Foo
, sam w sobie i bezBar
lubBar+Foo
, jest nadal dostępny na licencji Boost. Mówiąc inaczej,Bar+Foo
nie 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ąć
Foo
i zrobić z tym coś innego, nadal może to zrobić bez postanowienia GPL dotyczącego copyleft. Jeśli jednak wezmąBar+Foo
, usunąBar
i użyją tylko+Foo
wtedy nadal będą obowiązywać warunki GPL, odkądBar+Foo
została GPL.Twoje drugie pytanie:
Odpowiedzi na te pytania udziela FSF GPL FAQ na temat dystrybucji źródła
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
Foo
podstawie GPL? Podlicencjonowanie byłoby w porządku, ale wtedy musieliby również zachować licencję BoostBar+Foo
, prawda?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.
źródło
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):
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ę.
źródło