W jaki sposób używanie klejnotu LGPL wpływa na moją licencjonowaną aplikację MIT?

21

Tworzę aplikację ruby ​​open source na licencji MIT. Korzystam z tej licencji, ponieważ nie chcę nakładać żadnych ograniczeń na użytkowników aplikacji. Mogę też przeczytać i zrozumieć tę licencję.

Niedawno zacząłem używać innego rubinowego klejnotu w moim projekcie (wymaga „somegem”). Ten rubinowy klejnot jest objęty licencją LGPL.

Czy muszę coś zmienić w swoim projekcie, ponieważ używam tego innego klejnotu rubinowego, który jest licencjonowany na licencji LGPL? Mój projekt nie zawiera kodu źródłowego drugiego klejnotu i nie jest dostarczany z moim projektem. Jest po prostu wymieniony jako zależność, dzięki czemu ruby ​​zostaną zainstalowane, a mój projekt wywoła go z mojego kodu.

Ponadto dobrze byłoby wiedzieć, czy są jakieś licencje, na które muszę „uważać”, ponieważ ich użycie wpłynęłoby na licencję mojego projektu.

Istnieje kilka innych postów na ten temat, ale sformułowanych na różne sposoby. Ponieważ uważam tę licencję za trudną, mam nadzieję, że otrzymam odpowiedź dotyczącą mojej sytuacji.

Dziękuję,
Corsen

Corsen
źródło
1
To wydaje się być pytaniem dla prawników, a nie programistów. (To znaczy: to dobre pytanie, zadane dobrze, że niektórzy programiści mogą mieć doświadczenie z… ale to nie czyni go odpowiednim dla Przepełnienia Stosu, ponieważ ma bardzo, bardzo mało wspólnego z programowaniem.)
Phrogz
7
Phrogz: przesadzasz. To proste pytanie licencyjne, na które wyraźnie odpowiada tekst licencji i liczne FAQ. Naprawdę nie potrzebujesz prawnika do czytania.
vartec

Odpowiedzi:

26

Nie wpływa

LGPL - skrót od Lesser GPL (w znaczeniu Library GPL). Istotną różnicą w stosunku do GPL jest to, że nie narzuca licencji na oprogramowanie korzystające z biblioteki. Tylko jeśli zmodyfikujesz bibliotekę lub bezpośrednio dodasz części kodu do swojego oprogramowania, wówczas kod będzie musiał być LGPL. Z drugiej strony, jeśli używasz klejnotu w swojej aplikacji, możesz zachować swoją aplikację z dowolną licencją.

Wspomniana część LGPL:

Program, który nie zawiera pochodnej żadnej części Biblioteki, ale został zaprojektowany do pracy z Biblioteką poprzez kompilację lub połączenie z nią, nazywa się „pracą, która korzysta z Biblioteki”. Takie dzieło, w izolacji, nie jest dziełem pochodnym Biblioteki, a zatem nie wchodzi w zakres niniejszej Licencji.

vartec
źródło
1
Istnieją pewne dodatkowe wymagania dotyczące biblioteki LGPL, które musisz spełnić, zwłaszcza jeśli zaostrzysz import jej zawartości w zamkniętym programie. Mówienie, że nie oznacza to, że musisz umieścić swój kod na licencji LGPL, ale że musisz spełnić pewne wymagania. Nie jestem twardy z mechanizmem łączenia rubygenów, prawdopodobnie jest to porównywalne z importem Java: LGPL i Java .
hakre
0

Czy muszę coś zmienić w swoim projekcie, ponieważ używam tego innego klejnotu rubinowego, który jest licencjonowany na licencji LGPL? Mój projekt nie zawiera kodu źródłowego drugiego klejnotu i nie jest dostarczany z moim projektem. Jest po prostu wymieniony jako zależność, dzięki czemu ruby ​​zostaną zainstalowane, a mój projekt wywoła go z mojego kodu.

Oprogramowanie LGPL jest zależnością twojego oprogramowania. Więc tak naprawdę jest częścią twojego oprogramowania. LGPL pozwala na korzystanie z niewolnego oprogramowania (podczas gdy MIT jest nawet wolnym oprogramowaniem), więc bycie zależnym nie jest blokerem.

Jednak ponieważ jest to zależność, musisz podać jej kod źródłowy, jeśli rozpowszechniasz swoje oprogramowanie. Nie mam pojęcia, czy wymagany mechanizm w rubinie zawsze zapewnia również źródła. Jeśli tak, powiedziałbym, że już rozpowszechniasz ze źródłami. Jeśli nie, musisz zadbać o to, aby dla każdej wersji tego klejnotu, której potrzebujesz z oprogramowaniem, dla którego udostępniasz źródła.

Prawdopodobnie i tak powinieneś zadbać o źródła, ponieważ być może projekt innej firmy (klejnot) przejdzie w tryb offline, a twój projekt zostanie zepsuty, ponieważ wymaga już nieistniejącego klejnotu.

To nie jest porada prawna, tylko z perspektywy programisty. Weź pod uwagę, że użytkownicy twojego oprogramowania pytają o źródła, ponieważ oprogramowanie korzysta z biblioteki i może być postrzegane jako dystrybucja, ponieważ require "somegem"tam napisałeś . Prawna definicja dystrybucji może nie odpowiadać codziennym oczekiwaniom programistów dotyczącym nagrywania plików na dysku CD-ROM. Dlatego mądrze jest mieć szerszą koncepcję, aby zachować proaktywność na wypadek, gdyby sprawy nie potoczyły się zgodnie z oczekiwaniami.

hakre
źródło
1
„jeśli rozpowszechniasz swoje oprogramowanie, musisz podać jego kod źródłowy”. nie, jeśli nie jest publicznie dostępny.
vartec
1
@vartec: jeśli rozpowszechniasz, musisz zaoferować źródło. Tylko w przypadku, gdy jest to niekomercyjny i kod nie zostanie zmieniony, możesz przekazać to wymaganie projektowi upstream (patrz GPL). Jeśli biblioteka nie jest rozpowszechniana przez ciebie (jednak w tym przypadku istnieją instrukcje instalacji zaszyfrowane przez użytkownika, których użytkownik nie może zmienić, a tak naprawdę istnieją wymagania w zakresie wymiany LGPL, co może nawet zepsuć zgodność LGPL), myślę, że najbezpieczniej jest zapewnić źródła, więc łatwo jest spełnić wymagania dotyczące inżynierii odwrotnej i wymiany.
hakre
@vartec: Bycie publicznie dostępnym oznacza, że ​​nie rozpowszechniasz. Jeśli dystrybutor klejnotów nie jest w stanie zaoferować źródeł, kopia klejnotu może być nieuzasadniona.
hakre
LGPL, sekcja 4.e „Podaj informacje o instalacji, ale tylko wtedy, gdy w innym przypadku będziesz zobowiązany do dostarczenia takich informacji zgodnie z sekcją 6 GNU GPL i tylko w takim zakresie, w jakim takie informacje są niezbędne do zainstalowania i wykonania zmodyfikowanej wersji Praca łączona utworzona przez ponowne połączenie lub ponowne połączenie aplikacji ze zmodyfikowaną wersją wersji połączonej. ”
vartec
1
@vartec: Dokładnie. 4.e kontynuuje: "(Jeśli użyjesz opcji 4d0, informacje instalacyjne muszą towarzyszyć minimalnemu odpowiadającemu źródłu i odpowiadającemu kodowi aplikacji. Jeśli używasz opcji 4d1, musisz podać informacje instalacyjne w sposób określony w sekcji 6 GNU GPL za przekazanie odpowiedniego źródła.) ”
hakre