Dziś jest piątek, 12 marca 2010 roku (z kalendarza...)

Przegląd licencji open-source

Icon

28.02.2008, 12:04

Komputery

Komentarze (8)

Powrót

Znalazłem wczoraj bardzo ciekawą analizę wraz z zestawieniem wszystkich popularnych licencji open-source używanych w oprogramowaniu. Polecam zapoznanie się z nią każdemu, kto pragnie wydać własny program jako wolny, gdyż często bywa, że bierzemy jakąś licencję, nie mając pełnego rozeznania w tym, na co tak naprawdę zezwalamy.

Zestawienie znajduje się na angielskim Wikibooks pod adresem http://en.wikibooks.org/wiki/FOSS_A_General_Introduction. Jest to bardziej książka poświęcona całemu zagadnieniu sponsorowana przez International Open Source Network oraz UNDP Asia-Pacific Development Information Programme. Zawiera wstęp do problematyki prawa autorskiego oprogramowania, przegląd popularnych licencji, a także studia przypadku pokazujące, gdzie w praktyce ujawniają się zapisy tychże licencji.

Krótkie streszczenie wraz z moimi przemyśleniami po lekturze:

  • GNU GPL - licencja zezwalająca na swobodne dzielenie się kodem, lecz zawiera zabezpieczenia gwarantujące, że cały program pozostanie wolnym oprogramowaniem bez względu na skalę modyfikacji. Nie nadaje się do łączenia z zamkniętym kodem (w sensie że np. korzystamy w nim z objętej GPL-em biblioteki), gdyż w takim przypadku reszta projektu również musi być objęta tą licencją. Wbrew pozorom, oprogramowanie GNU GPL można legalnie sprzedawać, pod warunkiem że nie zmieniamy licencji i dołączamy pełen kod źródłowy, z którym końcowy użytkownik może zrobić, co chce. Jedynie przy binarnych dystrybucjach koszt nabycia nie może być większy, niż cena nośnika.
  • GNU LGPL - nieco łagodniejsza wersja powyższej licencji. Zezwala na łączenie z projektem oprogramowania zamkniętego, z tym, że sam projekt musi pozostać wolnym oprogramowaniem ze wszystkimi tego konsekwencjami (np. użytkownik może sobie wgrać legalnie własną wersję, a nawet dokonać reverse engineeringu reszty aplikacji, w razie gdyby ta nie chciała z nią współpracować).
  • Nowa licencja BSD - w zasadzie cała rodzina licencji łagodniejszych od GNU LGPL. Bardzo łatwo jest łączyć tego typu projekty z zamkniętym kodem, gdyż licencja dotyczy jedynie kodu naszego projektu i nie rozciąga się na resztę. Jest bardzo krótka i zwięzła, a przez to łatwa do zrozumienia i stosowania. Na jej zasadach rozpowszechniany jest np. Zend Framework. W dodatku mamy gwarancję, że ktoś nie zrobi nam kuku i nie zamieni nam kodu na oprogramowanie w pełni własnościowe, jako że warunkiem rozpowszechniania, oprócz zachowania informacji o autorach, (z modyfikacjami, bez nich, w formie źródłowej bądź binarnej) jest dołączenie, przez co rozumiem: zachowanie, istniejącej licencji. Tekst licencji BSD dostępny jest jako public domain, czyli można go dowolnie przerabiać i dopasowywać do potrzeb.
  • Licencja MIT - niezwykle liberalna i ekstremalnie łatwa w stosowaniu. Jedynym warunkiem jest zachowanie informacji o prawach autorskich, a poza tym mamy pełną swobodę. Dopuszczalna jest nawet zmiana licencji i tak się składa, że niektóre projekty się na tym mocno przejechały. Przykładem jest Wine, początkowo dostępny właśnie na MIT, który po powstaniu zamkniętych forków, przeszedł na GNU LGPL.
  • Public domain - w zasadzie zrzeczenie się praw autorskich, o ile system prawny danego kraju na to zezwala, lub udostępnienie innym pełnych praw do dysponowania kodem. Co ciekawe, są aplikacje rozprowadzane w ten sposób, np. baza danych SQLite.

I tak na koniec: Open Power Template 2 dostępny będzie na nowej licencji BSD, bez żadnych dodatkowych udziwnień. Skoro sprawdziło się w przypadku Zenda, sprawdzi się i tu.

Powrót

Komentarze

Napisał radious w czwartek, 28 lutego 2008 o 18:06

A mnie się zawsze wydawało, że projekty na BSD można modyfikować i wypuszczać pod inną licencją. Inaczej chyba Microsoft nie mógłby zaimplementować BSDowego TCP/IP w Windowsie, co podobno zrobił. Ale może gdzieś jest jakiś kruczek...

Napisał Zyx w czwartek, 28 lutego 2008 o 19:59

Redystrybucja i użycie w formie binarnej oraz źródłowej, z lub bez modyfikacji, są dozwolone tylko po spełnieniu następujących warunków: 1. Redystrybucja w formie źródłowej musi zachowywać (...) tę listę warunków, (...) 2. Redystrybucja w formie binarnej musi reprodukować (...) tę listę warunków (...)

Jak myślisz, po co te warunki muszą być czy zachowywane reprodukowane? Żeby sobie nabywca miał co do poduszki poczytać? Nie - ponieważ mają one moc obowiązującą. Inaczej ja sobie mogę zmienić licencję np. na public domain, legalnie wyrzucić informację o oryginalnym autorze i pokazać mu język. Rzecz w tym, że licencja BSD nie rozciąga się na cały projekt, w którym np. biblioteka czy jej fragment został użyty, tak jak to ma miejsce w (L)GPL, a ponadto nie musisz udostępniać źródeł.

http://www.groklaw.net/article.php?story=20070114093427179

Napisał coldpeer w czwartek, 28 lutego 2008 o 22:38

Jeszcze do listy przydałaby się m.in. licencja Apache ;-)

Napisał shw w sobotę, 1 marca 2008 o 22:21

co do LGPL'a - troche zakreciles, bo albo nie rozumiesz licencji albo tak niejasno zapisales. prawo do inzynierii wstecznej (w celu debugowania) o zmian odnosi sie jedynie do "pracy pochodnej" - czyli nie samego oprogramowania. tak wiec jezeli z biblioteka na LGPL'u laczymy sie w sposob dynamiczny, to nie jest to praca pochodna == licencja nie wymusza pozwolenia na jakakolwiek modyfikacje czy reverse engeneering aplikacji.

Napisał Zyx w niedzielę, 2 marca 2008 o 11:41

Pozwolę się z Tobą nie zgodzić w Tej kwestii. Po pierwsze, wymieniłem tylko prawo do reverse engineeringu (tyle że trochę za szeroko, ale teraz to doprecyzuję), o modyfikowaniu reszty aplikacji nie było mowy. Gdyby reverse engineering ograniczał się tylko do biblioteki na LGPL-u, zapis ten byłby zupełnie pozbawiony sensu, jako że już sama licencja GPL daje Ci prawo do robienia takich rzeczy z biblioteką. Gdybyś wprowadził modyfikacje do takowej, musiałbyś upublicznić ich kod źródłowy przy redystrybucji, więc taki zapis byłby tylko potwórzeniem rzeczy oczywistej.

Aby użyć biblioteki na LGPL w swojej aplikacji, musisz zezwolić na jej reverse engineering, ale jedynie w celu określenia, dalczego np. nowa wersja biblioteki nie chce z Twoim kodem współdziałać. I nie jest to wyłącznie moja interpretacja - w sieci jest trochę dyskusji na ten temat i ludzie są raczej zgodni, że właściwa jest interpretacja podana przez mnie.

Osobna kwestia jest taka, że prawodawstwo wielu krajów (niestety nie wiem, czy również w Polsce) dopuszcza reverse engineering i tam zakazy takich praktyk umieszczane w licencjach nie mają mocy.

Napisał shw w poniedziałek, 3 marca 2008 o 19:06

widzisz - ile ludzi tyle interpretacji - m.in. nie lubie GPL'i.
za wikipedia: If it is a derivative work, then the terms must allow "modification for the customer's own use and reverse engineering for debugging such modifications."
"derivative work", czyli praca pochodna, a dalej za wikipedia, aplikacja, ktora dynamicznie laczy sie z biblioteka na LGPL'u nie jest praca pochodna (co jest logicznym rozwiazaniem). a wyjasnienie takiego akurat zapisu moze byc rozne - mi od razu przychodza conajmniej dwa, ale ze nie wiem ktore i czy w ogole jest wlasciwe, to pozwole sobie je przemilczec :)

Napisał Zyx w poniedziałek, 3 marca 2008 o 19:30

W LGPLv3 zwrot ten pojawia się przy słowach "Combined work" :).

Napisał radious w sobotę, 8 marca 2008 o 02:29

Przepraszam, że tak późno odpowiadam, ale nie zwykłem śledzić dyskusji poza joggerem i wciąż o tej zapominam.
Zawsze zastanawiałem się co znaczy to "reprodukować" o ile "zachowywać" rozumiem jako "jeżeli wypuszczasz już kod to zrób to na licencji BSD" to reprodukować zawsze sobie upraszczałem do "jeżeli wypuszczasz binarkę to umieść gdzieś info, że kawałek jej kodu jest na BSD wraz z licencją i informacją o autorze". Ale pewnie się mylę.

Pamiętaj, dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Skomentuj

NickInformacja
E-mailNa wypadek potrzeby kontaktu z autorem (niepublikowany)
BlogNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2010 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia