Qt, GPL, LGPL i załączanie bibliotek

  • Autor wątku Autor wątku ysiu
  • Data rozpoczęcia Data rozpoczęcia
Y

ysiu

Nowy użytkownik
Dołączył
05.2009
Odpowiedzi
4
Chcę zamieścić stworzone przeze mnie na studiach programy na własnej stronie internetowej. W jednym z nich korzystam z bibliotek dynamicznych Qt4 (mingwm10.dll, QtCore4.dll, QtGui4.dll). Jak rozumiem mam dwie możliwości:
  1. licencja GPL - zamieszczam pliki wykonywalne, źródła i treść licencji
  2. licencja LGPL - zamieszczam program na wybranej przeze mnie licencji, czyli mogę zamieścić sam plik wykonywalny

Żeby użytkownik mógł uruchomić program, niezbędne jest posiadanie przez niego powyższych dll-ek w systemie (mało prawdopodobne) lub umieszczenie ich w katalogu z plikiem wykonywalnym. Czy mogę spakować biblioteki niezbędne do działania programu razem z plikiem wykonywalnym i umieścić je na serwerze? Czy sytuacja jest taka sama dla licencji GPL i LGPL?
 
Wszystko zależy od tego jakimi licencjami objęte są te biblioteki. Jeśli autorzy na to pozwalają (sprawdzić się da?) to może Pan spokojnie je także udostępniać razem z programem. Nie rozumiem tylko za bardzo pytań dotyczących licencji GPL?
 
Biblioteki są udostępniane na potrójnej licencji: komercyjna, GPL i LGPL, jak rozumiem do wyboru.
Qt Licensing — Qt - A cross-platform application and UI framework
Aby nie musieć udostępniać kodu źródłowego, wybrałbym licencję LGPL. Przy jej użyciu mam prawo do tworzenia programu przy użyciu bibliotek Qt4 i dynamicznym ich linkowaniu bez jakichkolwiek opłat, i udostępniania go na wybranej przeze mnie licencji. Problem w tym, że nie udało mi się wywnioskować z jej treści, czy mogę wymagane biblioteki zamieścić na serwerze razem z programem.

Wysłałem właśnie formularz z tym pytaniem do twórców. Odpowiedź zamieszczę tutaj, o ile takową dostanę.
 
Ostatnia edycja:
Generalnie jest więc tak, że jeśli jakieś uprawnienie w licencji nie zostało zawarte to nie jest to dozwolone. Najlepiej jednak poczekać na odpowiedź.
 
Oto odpowiedź.

I have consulted with our legal team and no it is not permitted to
refrain from providing the Qt source code. If you are distributing
your application dynamically linked with Qt on his website, the Qt
source code must be available via the website.

Regarding zipping both the libraries and the application together in a
single file, this is permitted provided he complies with Section 7 of
the LGPL.

Please refer to Section 7 of the LGPL which states:

"7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise permitted,
and provided that you do these two things:

a) Accompany the combined library with a copy of the same work based on
the Library, uncombined with any other library facilities. This must be
distributed under the terms of the Sections above.

b) Give prominent notice with the combined library of the fact that part
of it is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work."

Please can you confirm on your next steps.

Czyli, jeśli dobrze zrozumiałem, mogę umieścić pliki razem, ale i tak muszę udostępnić kod. To mnie akurat dziwi, ale widocznie nie rozumiem do końca LGPL...
 
"the Qt source code must be available via the website" - to się jak sądzę odnosi do kodu źródłowego Qt, a nie o aplikacji tu mowa? Wydaje mi się, z tego co przeczytałem tutaj, kodu aplikacji podawać nie trzeba. W przypadku gdy program odwołuje się do zewnętrznych bibliotek to nie ma problemu, tylko biblioteki mają mieć jawny kod. W drium opisywanym przypadku, gdy biblioteki są skompilowane z aplikacją - wszystko w jednym pliku, to wówczas jakoś trzeba zapewnić dostęp do tego kodu bibliotek. Ale nie ma tu wymogu ujwaniania kodu. Szkoda, że ktoś nie przetłumaczył tekstu tej licencji bo dla mnie jest on trudny do właściwej interpretacji.
 
Tak, stosując licencję LGPL nie ma konieczności ujawniania kodu źródłowego pańskiej aplikacji. To wynika z ogólnej zasady licencji LGPL, a wyjaśniają to też w Qt Licensing FAQ .

Jak precyzują w mailu, może Pan również skompilować bibliotekę we własnej aplikacji (wynikowej), ale wtedy trzeba:

a. dystrybuować skompilowaną aplikację + źródło biblioteki,
lub
b. dystrybuować skompilowaną aplikację z WIDOCZNĄ ;) informacją, gdzie jest dostępny źródłowy kod biblioteki.
 
Wydawało mi się dziwne, że licencja może narzucać na mnie obowiązek udostępniania kodu nie stworzonego przeze mnie, dlatego potraktowałem "the Qt source code" jako mój kod napisany przy użyciu Qt. Dogłębna :) analiza LGPL oryginalnego i tego od Qt "wykazała", że moja praca to "derivative work/work that uses the Library" i jako taką mogę udostępniać ją pod pewnymi warunkami (licencja QT sekcja 6.). Traktując pliki wykonywalne jako "object code" z punktu 6 a), które są technicznie czymś zbliżonym do siebie, mogę udostępniać program dokładnie tak jak opisał _chris_.

Czytając tekst licencji kilkukrotnie za każdym razem rozumiem ją trochę inaczej. Na ten moment przynajmniej zostaję przy bardziej optymistycznej interpretacji :) Dzięki za pomoc.
 
Powrót
Góra