GNU Lesser General Public License, LGPL (mniejsza ogólna powszechna licencja GNU), poprzednio GNU Library General Public License (powszechna licencja GNU dla bibliotek) - licencja
wolnego oprogramowania
zaaprobowana przez
FSF
, zaprojektowana jako kompromis między
GNU GPL
a liberalnymi licencjami jak
licencja BSD
lub
licencja X11
(
MIT
). Napisana w roku
1991
(a następnie poprawiona w roku
1999
) przez
Richarda Stallmana
z pomocą
Ebena Moglena
.
Założenia
Licencja LGPL nakłada ograniczenia określane jako
copyleft
na poszczególne pliki
źródłowe
, ale nie na cały program, pod warunkiem używania odpowiedniego mechanizmu
bibliotek
współdzielonych (ang. shared library) oraz przestrzegania pewnych dodatkowych ograniczeń. Licencja jest głównie przeznaczona do bibliotek, chociaż używają jej też aplikacje składające się z wielu połączonych ze sobą bibliotek, np. pochodzące z pakietu
OpenOffice.org
lub
KOffice
.
LGPL różni się od GPL głównie tym, że pozwala na łączenie z programami nieobjętymi licencjami GPL czy LGPL, niezależnie czy będą one wolnym czy własnościowym oprogramowaniem.
Jedną z cech LGPL jest możliwość przekształcenia każdego kawałka kodu z LGPL na GPL (sekcja 3 licencji). Dzięki temu można stworzyć wersję kodu, której nikt nie będzie mógł rozprowadzać jako oprogramowanie własnościowe.
Nazwa licencji została zmieniona, ponieważ pierwotna nazwa (GNU Library General Public License) sugerowała, że
FSF
zaleca jej stosowanie dla wszystkich
wolnych
bibliotek. W
1999
roku, jeszcze przed zmianą nazwy,
Richard Stallman
napisał esej, w którym odradzał domyślne stosowanie GNU LGPL dla wszystkich tworzonych bibliotek i wyjaśnił, że z punktu widzenia
FSF
wybór licencji dla konkretnej biblioteki jest kwestią strategii.
Publikacja owego eseju („Dlaczego nie powinniście zastosować Library GPL dla swej kolejnej biblioteki”) bywała błędnie odczytywana jako sugestia, że LGPL jest przestarzała, i zalecenie, by nie stosować jej dla żadnych nowych bibliotek. Tymczasem w tekście tym czytamy:
- Stosowanie zwykłej GPL nie dla każdej biblioteki jest szczególnie korzystne. Istnieją przyczyny, dla których w pewnych przypadkach lepiej jest użyć Library GPL.
Dwuznaczność zapisu
Licencja LGPL zawiera pewne kontrowersyjne sformułowania, tzn. frazę „derived works” w odniesieniu do dzieł pochodnych. Zanim popularne stało się programowanie obiektowe, owa fraza nie sprawiała nikomu problemu. Obecnie, fraza ta jest rozumiana przez niektórych inaczej. Zakładając, że aplikacja napisana obiektowo zawiera klasy dziedziczące (ang. derived) po klasach z biblioteki na licencji LGPL, niektórzy traktują ową aplikację jako dzieło pochodne (derived work) i mogą zażądać udostępnienia kodu aplikacji na licencji LGPL. Właśnie owa możliwość innej interpretacji słów „derived work” sprawiła, że m.in. biblioteki klas projektu
Mono
są udostępniane na licencji X11/MIT, która nie jest
licencją wirusową
(ang. viral license)[1]. Na oficjalnej stronie
GNU
widnieje sprostowanie:
- The LGPL contains no special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.[2]
jednakże dopóki nie zostało ono włączone do prawnego tekstu licencji, nie miało ono mocy prawnej i nie mogło zapobiec drugiej z możliwych interpretacji zapisu „derived works”. 29 czerwca 2007 została opublikowana trzecia wersja licencji LGPL, która wyjaśnia w swej treści jak należy rozumieć obiektowe dziedziczenie w kontekście licencji[3].
Zobacz też
Przypisy
Linki zewnętrzne