Ograniczenia dotyczące licencji open source GPL i LGPL [zamknięte]

108

Mam problem ze zrozumieniem uprawnień użytkowania oprogramowania typu open source. Czytałem gdzieś, że GPL lub LGPL narzuca, że ​​oprogramowanie korzystające z oprogramowania GPL musi być również wydawane na zasadach open source. Chcę utworzyć aplikację korzystającą z biblioteki do rozpoznawania obrazów typu open source. Czy mogę sprzedać tę aplikację, czy też musi to być oprogramowanie typu open source?

Dzięki!

rsinha
źródło

Odpowiedzi:

80

LGPL umożliwia używanie i dystrybucję oprogramowania open source wraz z aplikacją bez publikowania kodu źródłowego aplikacji.

GPL wymaga od Ciebie wydania kodu źródłowego aplikacji, jeśli zdecydujesz się używać i rozpowszechniać wraz z aplikacją licencjonowane przez GPL oprogramowanie open source. Innymi słowy, Twoja aplikacja musi być również objęta licencją GPL.

Robert Harvey
źródło
14
Uwaga LGPL stwierdza, że ​​używana biblioteka musi być wymienna. Dlatego linkowanie statyczne nie jest możliwe.
Dykam,
1
Więc „DLL” (biblioteka dołączana dynamicznie) byłaby legalna, prawda?
Robert Harvey,
Tylko wtedy, gdy dostarczysz również kod źródłowy tej biblioteki DLL, a także wymagane pliki nagłówkowe lub dokumentację, aby móc połączyć się z resztą aplikacji, ktoś powinien chcieć mocno zmodyfikować lub ponownie napisać od zera, DLL.
thomasrutter,
49
  • GPL

    Inni programiści mogą wypożyczać i modyfikować kod i ponownie rozpowszechniać go jako część własnego projektu, tylko jeśli cały ich projekt jest również objęty licencją na licencji GPL.

    Zapobiega to wykorzystaniu kodu w oprogramowaniu własnościowym.

  • LGPL

    Inni programiści mogą wypożyczać i modyfikować kod oraz ponownie rozpowszechniać go w ramach własnego projektu, pod warunkiem, że część używana na podstawie licencji LGPL jest ponownie licencjonowana w ramach licencji LGPL. Inne części projektu mogą mieć inne licencje.

    Pozwala to na użycie kodu w oprogramowaniu będącym własnością zastrzeżoną.

LGPL ma szereg dodatkowych warunków, które należy spełnić, aby móc rozpowszechniać ją w projekcie z inną licencją. Na przykład musi to być możliwe dla każdegoużytkownika gotowego oprogramowania do modyfikacji, ponownej kompilacji lub wymiany części oprogramowania objętego licencją LGPL i używania zmodyfikowanego kodu z tym samym oprogramowaniem. Jeśli publikujesz oprogramowanie, które w inny sposób jest prawnie zastrzeżone, zawierające kod LGPL, jednym ze sposobów spełnienia tego wymogu jest umieszczenie kodu LGPL w oddzielnej, dynamicznie połączonej bibliotece i rozpowszechnianie wraz z oprogramowaniem niezbędnych plików nagłówkowych i dokumentacji wymaganej do ponownej kompilacji licencji LGPL część w taki sposób, że można ją nadal łączyć i używać z dostarczonym oprogramowaniem. Niedopuszczalne jest podejmowanie działań zapobiegających modyfikacjom kodu LGPL, takich jak zaciemnianie samego kodu, interfejsu API lub plików nagłówkowych.

Zauważ, że LGPL jest zgodne z GPL: możesz zdecydować się na „uaktualnienie” kodu do GPL i włączenie go do projektu całkowicie licencjonowanego na GPL, jak opisano w moim pierwszym podpunkcie, jeśli chcesz. Nie możesz jednak pójść w drugą stronę i ponownie licencjonować kodu na licencji GPL jako LGPL.

thomasrutter
źródło
30

IANAL, ale koncepcje są dość proste.

Najpierw Ty i Twój prawnik musicie przeczytać licencje GPL i LGPL . Po drugie, powinieneś przeczytać FAQ GPL . O ile rozumiem, możesz pomyśleć o wykorzystaniu bibliotek GPL / LGPL w ten sposób:

  • Jeśli łączysz się dynamicznie lub statycznie z biblioteką GPL lub LGPL, utworzyłeś dzieło pochodne.
  • Jeśli używasz biblioteki na licencji GPL i łączysz się z tą biblioteką, twoje oprogramowanie musi być wydane z zgodną licencją .
  • Jeśli korzystasz z biblioteki, która jest LGPL i dynamicznie łączysz się z tą biblioteką, Twoje oprogramowanie nie musi być wydawane z kompatybilną licencją, ale nadal musisz być zgodny z LGPL.
  • Jeśli korzystasz z biblioteki LGPL i łączysz się statycznie z tą biblioteką, Twoje oprogramowanie musi być wydane z zgodną licencją.
  • Licencje GPL / LGPL oznaczają „darmowe” jak „wolność słowa”, a nie „darmowe piwo” . Możesz stworzyć dzieło pochodne i sprzedać je za duże pieniądze, ale musisz przestrzegać GPL / LGPL.
Jared Oberhaus
źródło
29
„Po pierwsze, ty i twój prawnik musicie przeczytać licencje GPL i LGPL”. - zabij mnie teraz
d512
10
"bezpośredni". Tak proste, że musisz zatrudnić prawnika, aby sprawdzić, czy możesz użyć fragmentu kodu. Dlatego programiści nigdy nie powinni używać licencji GPL.
Womble
9

W przypadku wycinania i wklejania kodu GPL do swojej aplikacji lub umieszczania na nim linków, aplikacja musi być objęta licencją na licencji GPL, a następnie należy zwolnić kod.

Jednak nadal możesz sprzedawać swoją aplikację i afaik, jedynym rozwiązaniem jest to, że udostępniasz kod źródłowy swoim klientom.

Jeśli biblioteka, z którą łączysz się, jest licencją Lesser Gnu Public License lub LGPL, nie musisz wydawać kodu własnej aplikacji, ale nadal musisz zwolnić wszystkie modyfikacje, jeśli zmodyfikowałeś kod lgpl.

rasjani
źródło
„udostępnić swoim klientom kod źródłowy” - naprawdę? tylko do nich? Myślałem, że src musi być publicznie dostępne?
relascope
Nie jestem native speakerem ani prawnikiem. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid stwierdza, że ​​jeden z nich zapewnia źródło każdemu, kto ma dostęp do pliku binarnego. Nie mówi, że każdy może poprosić o źródło, ale każdy, komu udostępniono plik binarny, bezpośrednio od Ciebie lub przez Twoich bezpośrednich klientów.
rasjani
stwierdza to bezpośrednio, tylko dla klientów ... „Ale jeśli w jakiś sposób udostępniasz publicznie zmodyfikowaną wersję, GPL wymaga, abyś udostępnił zmodyfikowany kod źródłowy użytkownikom programu na warunkach GPL”.
relascope
7

GPL nie zabrania sprzedaży oprogramowania. Musisz jednak udostępnić źródła oprogramowania.

Kwestia użytkowania jest nieco bardziej skomplikowana. GNU / Linux jest wydany na GPL. Nic nie zabrania ci pisania oprogramowania działającego pod Linuksem, niezależnie od licencji twojego oprogramowania. Nie możesz jednak rozpowszechniać Linuksa razem z oprogramowaniem. Jest to często problem w przypadku bibliotek, które muszą być częścią programu. Do tego służy licencja LGPL. Możesz skompilować program ac, który piszesz za pomocą gcc (stąd używając bibliotek rutynowych uruchomieniowych na licencji LGPL z gcc) i nadal wydawać oprogramowanie bez ograniczeń GPL.

Myślę, że to jest ogólna istota tego. Nie jest to jednak w żaden sposób porada prawna. Aby uzyskać poradę prawną, musisz zatrudnić certyfikowanego prawnika, który może udzielić porady prawnej dostosowanej do Twoich szczególnych okoliczności.

Mam nadzieję że to pomoże.

txwikinger
źródło
3

Rozróżnienie między GPL a LGPL określa, czy nie musisz udostępniać źródła swojej aplikacji każdemu, kto ma kopię pliku binarnego. Tak czy inaczej, nadal możesz sprzedawać aplikację.

Trubadur
źródło