Co dokładnie muszę zrobić, jeśli korzystam z biblioteki licencjonowanej LGPL?

48

Przeczytałem te pytania i odpowiedzi , ale nadal nie rozumiem, co dokładnie muszę zrobić, jeśli dynamicznie łączę się z biblioteką korzystającą z licencji LGPL (w moim przypadku jest to biblioteka SDL).

Jeśli dobrze rozumiem tekst LGPL , muszę w jakiś sposób podać źródło dla biblioteki. Czy to wystarczy? Jeśli nie, co jeszcze należy zrobić?

BЈовић
źródło

Odpowiedzi:

47

Podstawowym wymogiem LGPL jest wystarczające oddzielenie biblioteki licencjonowanej LGPL i własnego produktu . Powinno to pozwolić użytkownikom na dostarczenie własnej wersji biblioteki zamiast tej dostarczonej z oprogramowaniem (na przykład z naprawionymi błędami). Aby to osiągnąć, masz dwie opcje:

  • użyj kodu LGPL jako biblioteki współdzielonej (aby użytkownicy po prostu skopiowali swój plik binarny biblioteki nad tą, którą dostarczasz), lub
  • dostarcz kod źródłowy całego projektu (aby użytkownicy mogli skopiować swoje źródło biblioteki i ponownie skompilować wszystko).

Należy jednak pamiętać, że samo oddzielenie nie wystarczy, choć jest wymagane. Powinieneś zapewnić swoim użytkownikom udokumentowany sposób zastąpienia biblioteki ich wersją (tzn. Jak załadować oprogramowanie układowe lub ponownie skompilować opakowanie Pythona dla biblioteki LGPL C ++).

Drugą godną uwagi klauzulą ​​jest wymóg atrybucji . To powinno pomóc promować nazwę oryginalnego twórca biblioteki, a stan, co jest cool oprogramowania mogły zostać opracowane przez kogoś innego :). W odpowiedniej sekcji okna „Informacje” lub pliku README (jeśli Twoja licencja to Apache, będzie to NOTICEplik), powinieneś podać nazwę użytej pracy LGPL.

Pamiętaj, że nie jestem prawnikiem i nie jest to porada prawna. Zauważ, że ja też nie jestem hydraulikiem, a to nie jest rada sanitarna.

P Shved
źródło
13

Jeśli łączysz statycznie bibliotekę LGPL, musisz podać źródło biblioteki oraz kod źródłowy lub obiektowy aplikacji.

Jeśli dynamicznie łączysz bibliotekę LGPL, możesz albo dystrybuować swoją aplikację samodzielnie, bez biblioteki i powiedzieć ludziom, skąd ją pobrać i jak ją uwzględnić, jak z niej korzystać. Możesz także dołączyć kopię aplikacji binarnych biblioteki i jej źródła do aplikacji.

Wyjaśnia to całkiem dobrze: http://answers.google.com/answers/threadview/id/439136.html (który wziąłem z odpowiedzi na pytanie w PO)

IANAS

Matt Ellen
źródło
2
^ To. Kluczem jest to, że konsument produktu otrzymuje aplikację z biblioteką LGPL. Czy mogą ulepszyć część LGPL i używać nowej ulepszonej wersji z oryginalnym produktem? Jeśli tak, to spełniłeś zamierzony cel LGPL. LGPLv3 wyraźnie stwierdza, że ​​nawet jeśli produkt jest wbudowanym oprogramowaniem układowym, nadal musisz umożliwić użytkownikowi końcowemu wymianę części LGPL . Oznacza to możliwość ponownej kompilacji pełnego oprogramowania układowego za pomocą nowej wersji biblioteki i załadowania go na urządzenie . (Rozumiem, IANAL, nie jest to porada prawna.)
Scott Whitlock
@Scott: Uważam, że część dotycząca oprogramowania wbudowanego / oprogramowania układowego ma zastosowanie tylko wtedy, gdy możliwa jest zmiana oprogramowania układowego w urządzeniu.
David Thornley
Co oznacza „S” w „IANAS”?
Joe Z.
1
@JoeZeng Solicitor
Matt Ellen
1

IANAL, ale rozumiem, że chodzi o to, że LGPL polega na tym, że nie „infekuje” kodu w zależności od niego, jak GPL lub AGPL. Możesz mieć kod LGPL jako zależność i nie musisz nic robić.

Biorąc to pod uwagę, jeśli zmienisz / zmodyfikujesz / rozpowszechnisz kod LGPL w swojej aplikacji, musisz go udostępnić publicznie.

Jason Lewis
źródło
Czy nie było porozumienia / zrozumienia, że ​​„publiczne udostępnienie źródła” może być spełnione poprzez podanie adresu URL, który prowadzi do oryginalnego źródła / repozytorium? (Zakładając, że użyłeś niezmodyfikowanej wersji swojego produktu, oczywiście.) Byłem trochę zaskoczony, kiedy to usłyszałem, więc może to być naprawdę błędne :).
TMN