Cztery wolności wolnego oprogramowania, zasada copyleft w licencji GNU GPL, prawo do sprzedaży kodu i różnica między programem wolnym a darmowym.
Wolne oprogramowanie to nie to samo co darmowe. Chodzi o swobodę, a nie o cenę – wolny program można sprzedawać, a darmowy bywa całkowicie zamknięty.
Wolność definiuje się przez cztery uprawnienia: uruchamiania programu w dowolnym celu, badania jego działania i dostosowywania go do własnych potrzeb, rozpowszechniania kopii oraz publikowania własnych ulepszeń. Dwa z nich wymagają dostępu do kodu źródłowego – bez niego nie da się ani zbadać programu, ani go zmienić.
GNU GPL to najbardziej znana licencja wolnego oprogramowania. Jej cechą charakterystyczną jest zasada copyleft: program powstały na bazie kodu na GPL również musi być udostępniony na GPL. Wolność jest więc dziedziczona – nie da się wziąć kodu GPL, zamknąć go i sprzedawać bez źródeł.
Cztery zasady wystarczą, żeby odpowiedzieć na większość pytań o tę licencję:
Pozostałe modele licencyjne – freeware, shareware, adware, OEM, subskrypcję i domenę publiczną – porządkuje hasło o rodzajach licencji. Licencje dla treści, czyli zdjęć, tekstów i nagrań, to zupełnie inna rodzina i opisuje je hasło o Creative Commons; GNU GPL jest licencją na program, nie na utwór multimedialny.
Mechanizm GPL łatwiej zrozumieć, gdy się zauważy, że licencja nie jest naklejką ani deklaracją dobrych intencji, tylko umową dopisaną do kodu. Autor programu ma do niego prawa autorskie i normalnie mógłby zabronić kopiowania. Zamiast tego mówi: „pozwalam ci na wszystko z tej listy, ale pod jednym warunkiem". Ten warunek nazywa się copyleft.
Warunek brzmi: jeśli przekazujesz program dalej – w postaci oryginalnej albo zmienionej – odbiorca musi dostać te same cztery wolności co ty. W praktyce znaczy to trzy rzeczy naraz. Po pierwsze, razem z programem trzeba dać dostęp do kodu źródłowego. Po drugie, trzeba dołączyć tekst licencji i informację o autorach. Po trzecie, nie wolno dokładać własnych ograniczeń – nie możesz na przykład zakazać odbiorcy dalszego kopiowania, choćbyś bardzo chciał.
Dlaczego z wolności „rozpowszechniaj własne wersje" musi wynikać warunek zachowania licencji? Bo bez niego ta wolność zjadłaby samą siebie. Gdyby wolno było wziąć wolny program, dopisać kilka funkcji i wydać całość z zamkniętym kodem, to każdy popularny program wolnego oprogramowania po kilku latach istniałby wyłącznie w zamkniętych odmianach. Użytkownik takiej odmiany nie mógłby jej już zbadać ani poprawić – wolność zniknęłaby dokładnie tam, gdzie zaczyna być potrzebna. Copyleft to zabezpieczenie przed tym scenariuszem: wolność jest przekazywana razem z kodem i nie da się jej po drodze zgubić.
Stąd bierze się podział licencji otwartych na dwie rodziny:
Wybór między nimi to świadoma decyzja autora, a nie różnica w „poziomie otwartości". Oba modele dają pełny dostęp do kodu – różnią się tylko tym, co wolno zrobić następnej osobie w łańcuchu.
Warto też zapamiętać, gdzie ten mechanizm się nie włącza. Samo uruchamianie programu nie jest rozpowszechnianiem, a sprzedaż nie jest naruszeniem. Naruszeniem jest dopiero przekazanie programu bez kodu albo na zmienionych warunkach.
Błąd parsowania wizualizacji.
| Wolność lub jej skutek | Co znaczy | Czego wymaga | Przykład |
|---|---|---|---|
| Wolność 0 – uruchamianie | używasz programu do czego chcesz, także zarobkowo | tylko posiadania kopii programu | ten sam edytor pracuje w domu i w biurze projektowym |
| Wolność 1 – badanie i zmiana | sprawdzasz, jak program działa, i przerabiasz go pod siebie | dostępu do kodu źródłowego | dopisujesz obsługę własnego formatu pliku |
| Wolność 2 – rozpowszechnianie kopii | przekazujesz program dalej w niezmienionej postaci | dołączenia licencji i informacji o autorach | nagrywasz koledze pendrive z dystrybucją Linuksa |
| Wolność 3 – rozpowszechnianie własnych wersji | publikujesz program po swoich zmianach | dołączenia kodu i tej samej licencji | wypuszczasz własną odmianę programu z nowymi funkcjami |
| Kod źródłowy jako warunek | bez kodu wolności 1 i 3 są martwe | wydania źródeł każdemu, kto dostał program | producent dołącza archiwum ze źródłami do pobrania |
| Copyleft – dziedziczenie licencji | praca pochodna zostaje na GNU GPL | przekazania tych samych wolności odbiorcy | firma nie może zamknąć przerobionego przez siebie kodu |
| Prawo do sprzedaży | wolno pobrać opłatę za kopię, nośnik i wsparcie | wydania kodu każdemu nabywcy | dystrybucja sprzedawana z rocznym wsparciem technicznym |
| Brak obowiązku publikacji zmian dla siebie | przeróbki używane wewnętrznie zostają prywatne | niczego – nie ma zgłoszenia ani rejestru | szkoła przerabia program tylko na własne potrzeby |
| Zakaz dodatkowych ograniczeń | nie wolno dokładać warunków ponad te z licencji | pozostawienia odbiorcy pełnego kompletu wolności | nie możesz zabronić nabywcy dalszego kopiowania |
| Autorstwo zostaje przy twórcy | licencja nie jest zrzeczeniem się praw autorskich | zachowania not o autorach i tekstu licencji | w plikach źródłowych zostaje nagłówek z autorem |
| Cecha | GNU GPL (copyleft) | MIT i BSD (permisywne) |
|---|---|---|
| Dostęp do kodu źródłowego | zawsze, dla każdego odbiorcy programu | zawsze, kod jest publikowany otwarcie |
| Modyfikacja kodu | dozwolona bez ograniczeń | dozwolona bez ograniczeń |
| Praca pochodna | musi być wydana na tej samej licencji | może być wydana na dowolnych warunkach |
| Zamknięcie kodu w produkcie | niedozwolone przy rozpowszechnianiu | dozwolone, kod pochodny bywa zamknięty |
| Sprzedaż programu | dozwolona, razem z kodem źródłowym | dozwolona, także bez kodu wersji pochodnej |
| Główny obowiązek | dołączyć kod i tę samą licencję | zachować informację o autorstwie |
| Cel autora | wolność ma się rozprzestrzeniać | kod ma trafić do jak największej liczby programów |
| Typowy przykład | jądro systemu Linux | biblioteki dołączane do programów komercyjnych |
| Nazwa angielska | copyleft license (GNU General Public License) | permissive license |
Wolne wzięte za darmowe. Pomyłka bierze się z angielskiego słowa „free", które znaczy naraz „wolny" i „darmowy". Program na GNU GPL wolno sprzedawać, a program darmowy bywa całkowicie zamknięty – freeware to gotowy plik wykonywalny bez kodu, więc nie wolno go zbadać, przerobić ani wydać we własnej wersji. Test na jedno zdanie: pytanie o cenę rozstrzyga, ile płacisz, a pytanie o kod rozstrzyga, czy program jest wolny. To dwie niezależne osie i ustawia je obok siebie hasło o rodzajach licencji.
Przekonanie, że na GPL nie wolno zarabiać. W arkuszu próbnym z 2014 roku zdanie „licencja GNU GPL nie zezwala na użytkowanie zarobkowe" jest w kluczu oznaczone jako fałsz – i to jest odpowiedź wprost na tę wątpliwość. Wolno używać takiego programu w firmie, wolno sprzedawać kopie, wolno brać pieniądze za wdrożenie, szkolenia i wsparcie. Jedyne, czego nie wolno, to sprzedać zmienioną wersję bez kodu źródłowego. Uczeń, który zapamięta „GPL to znaczy za darmo", odpowie źle na to zadanie i na każde podobne.
GPL uznana za brak praw autorskich. Zdanie „na GPL nie ma praw autorskich, więc mogę robić, co chcę" myli dwie różne rzeczy. Autor programu na GNU GPL zachowuje pełne prawa autorskie – i właśnie dlatego może w ogóle narzucić warunki licencji. Sytuacja, w której praw majątkowych już nie ma, to domena publiczna, a nie GPL. Praktyczny skutek różnicy: z programu w domenie publicznej wolno zrobić zamkniętą wersję, a z programu na GPL – nie.
Przekonanie, że każdą zmianę trzeba natychmiast opublikować. Nie ma czegoś takiego jak obowiązek zgłaszania poprawek autorowi ani rejestru zmienionych wersji. Obowiązek wydania kodu powstaje dopiero w chwili, w której przekazujesz program komuś innemu – firma używająca własnej przeróbki wyłącznie na swoich komputerach nie musi pokazywać nikomu ani jednej linijki.
GPL pomylona z licencjami permisywnymi typu MIT. Obie rodziny dają kod źródłowy i obie pozwalają go zmieniać, więc łatwo uznać je za to samo. Różnica pojawia się dopiero przy pracy pochodnej: kod na licencji MIT wolno wbudować w zamknięty produkt komercyjny, a kod na GNU GPL – nie, bo cały wynik musi wtedy zostać wydany na GPL. Dlatego samo określenie „open source" nie wystarcza jako odpowiedź na pytanie o warunki.
Trzy programy rozpowszechniane na różnych warunkach:
| Program | Licencja | Co dostaje użytkownik |
|---|---|---|
| Jądro systemu Linux | GNU GPL | program razem z pełnym kodem źródłowym |
| Biblioteka Kanwa | MIT | kod, który wolno wbudować w zamknięty produkt |
| Odtwarzacz Sonata | freeware | sam plik wykonywalny, bez kodu źródłowego |
Uzupełnij odpowiedzi:
| Pytanie | Odpowiedź |
|---|---|
| Jak nazywa się zasada, przez którą wersja pochodna musi zostać na tej samej licencji? | |
| Co jest warunkiem koniecznym wolności badania i zmieniania programu? | |
| Jaką licencję ma program darmowy, ale z zamkniętym kodem? | |
| Czy wolno pobrać opłatę za kopię programu na GNU GPL? | |
| Czy trzeba opublikować zmiany, z których korzystasz tylko u siebie? | |
| Która z dwóch licencji pozwala zamknąć kod pracy pochodnej: GPL czy MIT? | |
| Jak nazywa się licencja GNU słabsza od GPL, dopuszczająca łączenie z zamkniętym kodem? | |
| Które jądro systemu operacyjnego wydano na licencji GNU GPL? |
Wolności wolnego oprogramowania jest , a licencja, która wymusza, żeby wersja pochodna została wydana na tych samych warunkach, nosi nazwę .
Tak. Sprzedaje się wsparcie, wdrożenia, szkolenia i wersje z gwarancją, a także same kopie programu. Sam kod pozostaje dostępny dla każdego, kto program otrzymał. Klucz z arkusza próbnego 2014 odrzuca zdanie, że GPL nie zezwala na użytkowanie zarobkowe.
Praktycznie obejmują te same programy. Różnica leży w akcencie: wolne oprogramowanie podkreśla swobodę użytkownika, open source – zalety otwartego modelu tworzenia. W zadaniach maturalnych oba określenia bywają używane wymiennie.
Nie. Obowiązek udostępnienia kodu powstaje dopiero przy rozpowszechnianiu zmodyfikowanej wersji na zewnątrz. Wewnętrzne przeróbki w firmie czy w szkole mogą pozostać prywatne bez końca.
Nie. Autor zachowuje pełne prawa autorskie i to dzięki nim może narzucić warunki licencji. GPL jest umową zbudowaną na prawie autorskim, a nie jego zniesieniem. Brak praw majątkowych to domena publiczna – zupełnie inna sytuacja.
Dopóki niczego nie rozpowszechniasz, nic. W chwili, w której przekażesz taki program komuś innemu, złamiesz warunki licencji, bo powstała praca pochodna, która powinna być wydana na GPL razem z kodem. Wyjściem jest albo otwarcie własnego kodu, albo użycie biblioteki na licencji permisywnej.
Obie dają kod źródłowy i pozwalają go zmieniać. Różnica dotyczy pracy pochodnej: kod na MIT wolno wykorzystać także w zamkniętym produkcie komercyjnym, wystarczy zachować informację o autorstwie. Kod na GPL wymusza, żeby cała wersja pochodna też była na GPL.
Tak. W użyciu są przede wszystkim GPL w wersji 2 i w wersji 3, a obok nich LGPL, czyli wariant złagodzony, przeznaczony dla bibliotek. Na maturze wystarczy znać samą zasadę copyleft – numer wersji nie był dotąd przedmiotem pytania w arkuszach zebranych na portalu.
Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: