Czy mogę korzystać z licencji Qt LGPL i sprzedawać swoją aplikację bez żadnych ograniczeń? [Zamknięte]

85

Chcę rozpocząć projekt wieloplatformowy. Przeprowadziłem badania i teraz jestem prawie pewien, że Qt to dobra oferta. Jest tu jednak duża przeszkoda: licencje .

Chcę sprzedać swój projekt, ale nie chcę też podawać żadnego źródła związanego z moją pracą ani płacić za licencję. Sprawdziłem i zauważyłem, że Qt oferuje zarówno rozwiązania komercyjne, jak i open source. Słyszałem zbyt wiele sprzecznych stwierdzeń dotyczących licencji Qt, co bardzo mnie zdezorientowało. Niektórzy mówią, że nawet jeśli korzystam z wersji Qt na licencji LGPL, nadal muszę przesłać swój kod. Czy to prawda?

Czy ktoś może mi podać proste wyjaśnienie dotyczące licencji Qt i powiedzieć, czy mogę sprzedawać swoją aplikację bez żadnych ograniczeń, czy nie? Czy ktoś powiedziałby mi o innych odpowiednikach Qt do programowania międzyplatformowego bez żadnych ograniczeń?

Rika
źródło
5
To pytanie sprowadza się do kwestii prawnych. Te są niestety nie na temat w SO.
Bart,
1
Mam dylemat w tej sprawie, sama licencja nie jest sprzeczna! jak są traktowani i jak wpływają na mnie w procesie rozwoju, więc myślę, że takie pytanie jest w porządku.
Rika
1
Nie szukam żadnych porad dotyczących komercjalizacji lub licencji LGPL, potrzebuję tylko wyjaśnień dotyczących samego systemu licencjonowania, więc byłbym wdzięczny, gdybyś otworzył to pytanie w celu uzyskania dalszych wyjaśnień na ten temat.
Rika
1
Następnie przyjdź do Meta. Zapytaj, czy w przypadku twojego sformułowania pytanie dotyczy tematu i czy można je ponownie otworzyć. Aby ją ponownie otworzyć, potrzebny jest moderator lub 5 osób z wystarczającymi uprawnieniami. Po prostu zrób to przyjazne pytanie, a społeczność przyjrzy się temu. meta.stackoverflow.com
Bart,
1
Meta jest niesamowita, o ile nie zależy ci na swoim przedstawicielu Meta. Głosowanie jest tam znacznie bardziej liberalne.
rlemon

Odpowiedzi:

100

Po prostu dynamicznie połącz się z Qt. Jeśli dynamicznie łączysz się z bibliotekami LGPL, nie ma się czym martwić.

Jeśli połączysz się z nimi statycznie, możesz po prostu rozpowszechniać pliki obiektowe (nie kod źródłowy) i wszystko będzie dobrze.

Idea LGPL polega na tym, że użytkownik końcowy musi mieć możliwość zastąpienia biblioteki LGPL dowolną wersją. Umożliwia to dynamiczne łączenie się z biblioteką LGPL, podobnie jak statyczne łączenie i dystrybucję plików obiektowych. Dopóki to zrobisz, możesz sprzedawać swój program o zamkniętym kodzie źródłowym, ile chcesz.

Oczywiście LGPL to coś więcej niż tylko to, ale to jest istotna część.

Łodygi kukurydzy
źródło
6
LGPL wymaga również, abyś „nie ograniczał modyfikacji części Biblioteki zawartych w Pracach połączonych i inżynierii wstecznej w celu debugowania takich modyfikacji”, co może być sprzeczne z niektórymi komercyjnymi postanowieniami EULA zakazującymi inżynierii wstecznej.
Josh Kelley,
15
@Hossein Czy w ogóle przeczytałeś odpowiedź? To nie ma nic wspólnego z twoim kodem. Licencja LGPL Qt dotyczy tylko Qt i Qt, więc możesz spakować swój kod i licencjonować go w dowolny sposób, ale jeśli nie planujesz zakupu komercyjnej licencji Qt, musisz dynamicznie łączyć się z Qt. Licencja komercyjna Qt dotyczy sytuacji, gdy chcesz zmodyfikować kod źródłowy Qt i nie udostępniać publicznie wprowadzonych zmian.
cmannett85
1
@Hossein: I jeśli dynamicznie łączysz się z Qt. Szczerze, powinieneś po prostu zatrudnić prawnika. Zawsze powinieneś z nim porozmawiać przed zaangażowaniem się w przedsięwzięcie komercyjne. I FWIW, IANAL.
Cornstalks
2
@Hossein, użytkownicy powinni umieć odtworzyć kod i całkowicie zastąpić sam Qt. Oznacza to jednak, że NIE należy zabraniać inżynierii wstecznej. Musisz rozprowadzać Qt jako biblioteki DLL ... i dodatkowo, pliki obiektów Twojej aplikacji (nie jest to obowiązkowe). Jeśli dbasz o swoje pliki obiektowe, powinieneś także dbać o swój plik EXE! Ponieważ dla faceta, który wie, jak używać plików Object, wie też, czym DOKŁADNIE jest EXE! Ci ludzie zwykle przejmują się rzeczami niskiego poziomu i wiedzą znacznie więcej niż my. Dla nich nawet twój plik EXE może być dla ciebie tak czytelny, jak kod źródłowy: P
Петър Петров
1
@ ПетърПетров Tak, inżynieria wsteczna jest prawdziwym problemem podczas korzystania z bibliotek LGPL. Jednak pliki wykonywalne są zwykle dużo trudniejsze do odtworzenia niż zbiór plików obiektowych (mianowicie, ponieważ pliki wykonywalne są zwykle usuwane, mają optymalizację czasu łącza i stosowane są inlining itp.) Ale masz absolutną rację: jeśli nie jesteś ostrożny w tworzeniu swojego pliku wykonywalnego, może być tak samo łatwe do odtworzenia, jak wszystkie pliki obiektowe.
Cornstalks