Istnieją trzy projekty oprogramowania: A, B i C.
A jest publikowane każdemu i jest licencjonowane na licencji GPL.
B rozszerza A, jest również publikowane, ale nie ma informacji o licencji lub jest błędnie licencjonowane na licencji LGPL. Zasadniczo narusza licencję A, ponieważ nie jest GPL. Kod źródłowy B jest nadal dostępny.
C rozszerza B. Czy C można opublikować na licencji GPL? Motywacja brzmiałaby: „A to GPL, każda pochodna również musi być GPL, więc B to GPL, a C może być także GPL”.
licensing
open-source
gpl
Andrej
źródło
źródło
Odpowiedzi:
Po pierwsze, B narusza GPL na A. Ale to nie jest dokładnie twoja obawa i nie ma znaczenia dla pytania tutaj (kto wie, może B otrzymał licencję LGPL od A na swój kod, aby mógł zostać wydany na licencji LGPL? ).
Pytanie brzmi: „Czy możesz zbudować oprogramowanie GPL w oparciu o kod LGPL?” Odpowiedź na to pytanie brzmi: „tak”.
LGPL jest mniej restrykcyjna niż GPL (dlatego też B narusza licencję na A, o ile nie wprowadzono innych postanowień), ale pozwala również dość łatwo przywrócić ją do projektu GPL.
Z licencji LGPL:
Jest to część licencji. Możesz łatwo zbudować oprogramowanie GPL w oparciu o kod LGPL.
Istnieją pewne różnice w wersjach , na które należy zwrócić uwagę, aby upewnić się, że kod jest licencjonowany we właściwy sposób, zgodnie z właściwą wersją GPL.
W przypadku braku informacji o licencji nie masz prawa do jej rozszerzenia. B nie powinien był być dystrybuowany, ale jego wkłady nie są licencjonowane na licencji open source. To mógł być wewnętrzny projekt, który został opublikowany lub inne wydarzenie.
Nie jest prezentowany na licencji zgodnej z rozszerzeniem na GPL. Rozważ sytuację, w której firma korzystająca wewnętrznie z oprogramowania GPL (akceptowalna - nie stanowi naruszenia), błędnie podała swoje repozytorium do publicznej wiadomości.
W tym przypadku jest całkiem możliwe, że projekt C sam narusza prawo autorskie (materiał dodany przez B, który nie jest licencjonowany na licencji GPL, ponieważ nie powinien był być dystrybuowany).
Jeden nie może zmusić licencję na źródło cudzej. Jest to zgodne z licencją lub narusza ją. Jeśli narusza to prawo, jak określono w licencji:
Naruszenie GPL nie oznacza, że materiał jest objęty GPL, ale raczej, że nie można go rozpowszechniać.
źródło
Są właściciele praw autorskich: Istnieje prawo autorskie do dzieł stworzonych przez A, prawo autorskie do dodatków B i prawo autorskie do wszelkich zmian dokonanych przez C. C musi sprawdzić, czy ma pozwolenie na korzystanie z oprogramowania, na którym A i B posiadają prawa autorskie.
A był licencjonowany na licencji GPL. Jestem całkiem pewien, że GPL daje ci pozwolenie na korzystanie z pracy A na warunkach GPL, nawet jeśli otrzymałeś je od B, który licencjonował je nieprawidłowo. Mogą występować problemy praktyczne: na przykład musisz być w stanie podać kod źródłowy. Jeśli otrzymałeś oprogramowanie bez kodu źródłowego, nie możesz opublikować go zgodnie z warunkami GPL.
B był licencjonowany na podstawie innej licencji. B powinien był mieć licencję GPL, ale nie był. Jeśli licencja B daje ci więcej praw niż GPL, tak naprawdę nie masz żadnych z tych praw do kodu A - B nie może dać ci dodatkowych praw do kodu A. Możesz użyć kodu A na warunkach GPL, ponieważ A na to zezwala, oraz dodatkowego kodu B na licencji B.
Jeśli B wyda swój kod na bardziej rygorystycznej licencji niż GPL, B najprawdopodobniej popełni naruszenie praw autorskich. Nie możesz używać kodu B na licencji GPL. Jest to często mylone: GPL nie może zmusić B do zrobienia czegokolwiek. Daje to tylko wybór B: Opublikuj w ten sposób, jest to zgodne z prawem lub opublikuj w inny sposób i jest to nielegalne. B ma prawo zrobić coś nielegalnego i ponieść konsekwencje (być pozwanym za naruszenie praw autorskich). Nie masz żadnych praw do kodu B, których B ci nie dał.
źródło
Technicznie możliwe jest rozszerzenie biblioteki GPL o kod, który sam nie jest objęty licencją GPL. Problem polega na tym, że kiedy rozpowszechniasz stworzoną przez siebie pracę pochodną, musisz przestrzegać wszystkich wymagań, jakie stawia ci GPL.
W twojej sytuacji oznacza to, że możliwe jest posiadanie biblioteki A na licencji GPL i nowego kodu w bibliotece B na licencji LGPL. Połączone dzieło (biblioteka B) jest skutecznie dystrybuowane na licencji GPL i może być dystrybuowane jako takie, ponieważ licencja LGPL jest zgodna z licencją GPL (możesz użyć kodu licencji LGPL w projekcie licencjonowanym GPL).
W tej sytuacji doskonale jest mieć nowy kod w bibliotece C na licencji GPL, a wynikowe prace również na licencji GPL.
źródło