GNU GPLv3

GNU GPLv3 – czyli update po 15 latach

GNU GPLv2 w swojej ogólności i bez komitów lub łatek spisywała się dobrze przez całe lata ‘90. Świat i technologie się zmieniały, tworząc nowe akty prawne, wprowadzając nowe standardy sprzętowe czy zmieniając technologie dowiązywania bibliotek. W związku z powyższym tylko kwestią czasu było powstanie kolejnej wersji tej licencji – GNU GPLv3. Aby sprawnie poruszać się […]

GNU GPLv2 w swojej ogólności i bez komitów lub łatek spisywała się dobrze przez całe lata ‘90. Świat i technologie się zmieniały, tworząc nowe akty prawne, wprowadzając nowe standardy sprzętowe czy zmieniając technologie dowiązywania bibliotek. W związku z powyższym tylko kwestią czasu było powstanie kolejnej wersji tej licencji – GNU GPLv3.

Aby sprawnie poruszać się w tematyce GNU GPLv3, warto na początek zdefiniować kilka obszarów i technologii, które miały związek lub wpływ na jej powstanie.

DRM – czyli Digital Right Management, po polsku Zarządzanie Prawami Cyfrowymi. Bardzo szerokie pojęcie, obejmujące wszelkie narzędzia ograniczające dostęp do produktu z powodów istotnych dla producenta lub właścicieli praw autorskich na poziomie korporacji. Przykłady:

Oba powyższe przykłady pojawiły się przed 2006 rokiem i były związane ze znaczną liczbą pozwów sądowych. FSF generalnie uznaje działania DRM za narzędzie do łamania wolności oprogramowania.

Tiwoizacja – określenie FSF na wykorzystanie DRM na sprzęcie przy jednoczesnym wykorzystaniu wolnego oprogramowania tak, aby kupujący nie mógł wprowadzać swoich zmian do oprogramowania. Temat dotyczy np. branży medycznej czy telekomunikacyjnej, gdzie poza producentem nikt nie powinien wprowadzać zmian.

„Java Trap”/Pułapka Javy – tytuł artykułu Richarda Stallmana i określenie zjawiska, w którym dochodzi do uzależnienia oprogramowania na wolnej lub otwartej licencji od oprogramowania na licencji zamkniętej. Przykładowo „wolny” program by design uruchamiany tylko wraz z zamkniętym oprogramowaniem.

SCO – firma, która w 2003 ogłosiła, że posiada prawa autorskie do części kodu jądra Linuxa. Kod ten miał być włączony do jądra przez IBM bez wiedzy SCO. Firma przegrała wszystkie sprawy o swoje domniemane patenty albo łamanie umów przez jej partnerów, w tym z Novelem. W 2004 w wyniku wycieków ujawniono pozyskanie znacznych funduszy na rzecz SCO od Microsoftu. Kolejny wyciek w 2005 zawierał stwierdzenie, że mimo starań nie dopatrzono się naruszeń patentowych w jądrze Linux. Firma ogłosiła bankructwo w 2008 roku.

Jądro Linux – kernel, który zaczął tworzyć Linus Torvalds, a który dzięki wykorzystaniu licencji GPL i zaangażowaniu społeczności oraz pośrednio dużych firm, stanowi wspólny mianownik wszystkich systemów Linux. Roszczenia do praw autorskich i patentowych Jądra Linux zgłaszała firma SCO w 2003 i Microsoft w 2004 roku.

Umowa Microsoft-Novell – umowa, która ze względu na swoje skutki i działania była bardzo źle odebrana przez rynek i społeczność. Więcej o niej napiszemy w dalszej części artykułu.

WIPO (World Intelectual Property Organization) – Organizacja ONZ zajmująca się szeroko pojętymi prawami autorskimi. W 1996 roku wydała ona umowę WIPO narzucającą na sygnatariuszy zakaz obchodzenia „skutecznych środków technologicznych” – czyli DRM.

FSF – Free Software Fundation – organizacja, która skonsolidowała pierwsze działania związane z wolnym oprogramowaniem. Odpowiada ona za stworzenie ważnych ram prawnych dla rozwoju wolnego i otwartego oprogramowania oraz rozpoczęcie tworzenia platformy technicznej wolnego oprogramowania w latach 80 i początkiem 90. (kompilator języka C, wolne środowiska programistyczne, etc.).

Powody powstania GNU GPLv3

Poniżej kilka bodźców, które miały istotny wpływ na powstanie nowej wersji licencji GPL:

  • omijanie GPLv2 poprzez stosowanie DRM uniemożliwiającego używanie zmodyfikowanego oprogramowania na wybranym sprzęcie. Jest to jedyny powód jasno określony w preambule;
  • toczące się wojny patentowe z Microsoftem, ze szczególnym uwzględnieniem umowy Microsoft-Novell. W następstwie tej umowy prezes Microsoftu zażądał od wszystkich twórców poszczególnych dystrybucji Linux opłaty za domniemane patenty Microsoft. Kiedy to nie poskutkowało, roszczenia te zostały zaadresowane do użytkowników systemów Linux w formie „oferty”. Rozwiązania opatentowane przez giganta z Redmond mogłyby być łatwo dodane do programów, którymi opiekował się wcześniej Novell. Efekty tej umowy i roszczeń były bardzo szerokie i wielowymiarowe;
  • dynamiczne linkowanie bibliotek – pojawiały się pytania dotyczące tego, jak należy rozumieć kwestie związane z dynamicznym linkowaniem bibliotek i czy nie doprowadzi to do konfliktów licencyjnych;
  • przeciwdziałanie wprowadzeniu Pułapki Javy;
  • akceptacja i rozpowszechnienie umowy WIPO (Traktat Światowej Organizacji Własności Intelektualnej o Prawie Autorskim) z 20 grudnia 1996;
  • brak kompatybilności z innymi popularnymi licencjami Open Source np. coraz popularniejszą i zalecaną przez FSF jako alternatywa licencją Apache 2.0.

Można dyskutować, które z tych powodów były najważniejsze dla FSF. Osobiście Uważamy, że GPLv3 ukształtowała jedna niepowiedziana wprost rzecz… ale o tym na zakończenie :-) Na razie zwróćmy uwagę na kwestie związane z kolejnością wydarzeń w świecie.

Ujęcie powodów w czasie

Poniżej tabela wybranych wydarzeń wraz z reakcją FSF i ujęciem czasowym wydarzeń.

Zdarzenie Reakcja FSF Czas
Powstanie GPLv2 i uwagi, że nie da się jej pogodzić z innymi licencjami.

Otwarte wskazywanie innych licencji, które mogą spełnić pokrewne zadania.

Domniemane przez nas początkowe założenie, że „tak ma być” przechodzące z czasem w „trzeba coś zmienić”.

Czerwiec 1991 r.

Trzy miesiące później Linus Torvalds tworzy zalążki Jądra Linux.

Nowa wersja GPL pojawi się za blisko 16 lat.

Ogłoszenie umowy WIPO z zapisami dotyczącymi zakazu omijania DRM. FSF widzi w WIPO organizację wprowadzającą zamęt prawny i ograniczającą wolność jednostek. Tworzone są na ten temat artykuły np. o hipokryzji WIPO. Grudzień 1996 r.

Minie jeszcze ponad 10 lat nim zostanie wydana nowa wersja GPL.

Artykuł Richarda Stallmana „Pułapka Javy” (problem z uzależnieniem wolnego oprogramowania od niewolnego). FSF zwraca uwagę na brak wolnego oprogramowania niezbędnego do uruchomienia kodu napisanego w Javie. Przytaczanie Javy jako przykładu zjawiska. Udało się doprowadzić do otwarcia kodu Javy. Kwiecień 2004 r.

Sun Microsystem, właściciel kodu Javy, od 15.11.2006 r. umożliwił utworzenie w pełni wolnej implementacji środowiska uruchomieniowego.

Działania SCO – firma prowadziła liczne wojny patentowe, głosząc, że jest właścicielem praw autorskich jądra Linux. Uznanie działań SCO za część kampanii mającej zdyskredytować Linuxa. Pierwsze pozwy pojawiły się w marcu 2003 r. W 2004 r. wyciekły maile wskazujące na finansowanie SCO przez Microsoft. SCO nie zdołało udowodnić swoich roszczeń i w 2008 r. ogłosiło bankructwo.
Umowa Novel-Microsoft zawarta 02.11.2006 r. Dodatkowe założenia w przygotowywanej od końca 2005 r. nowej wersji GPL. 2 grudnia 2005 r.

7 miesięcy przed ukazaniem się GPLv3. Od roku pracowano nad nową wersją GPL.

Ogłoszenie treści licencji GNU GPL v3. Koniec prac redakcyjnych. 27 czerwca 2007 r.

 

W tabeli celowo pominięto problem DRM i tiwoizacji. Powód jest bardzo ciekawy – kwestia tiwoizacji przed 2006 r. była mało istotna, a temat DRM dla sprzętu był rzadko poruszany. Dlatego wybranie tiwoizacji jako oficjalnego powodu powstania nowej wersji licencji GNU GPL wydaje się być nieuzasadnione. Także ze względu na antagonizmy, jakie wprowadziło to zjawisko w środowisku wolnego i otwartego oprogramowania.

Treść GNU GPLv3, czyli zmiany, zmiany, zmiany

Jak wspomnieliśmy w poprzednim artykule, objętość GPLv3 wzrosła dwukrotnie względem GPLv2 i mimo wcześniejszych założeń, nie jest to „detal”. Język uległ też znacznej komplikacji i nie jest tak przejrzysty. Stracił specyficzny wdzięk GPLv2. Zyskał za to w sensie praktycznym, adresując wszystkie wyżej wymienione kwestie. Poniżej kilka przykładów wprowadzonych zmian:

  • dla ochrony przed tiwoizacją – nakazano udostępnienie instrukcji instalacyjnej i zrzeczenia się wykorzystania DRM w myśli umowy WIPO;
  • przy okazji powyższego, zaadresowano problemy z umową WIPO;
  • całość zmian zwiększyła kompatybilność GPLv3 z innymi licencjami, jak wspomniana wyżej licencja Apache czy niektóre licencje BSD;
  • doprecyzowano kwestie bibliotek, określono kilka definicji związanych z wykorzystaniem bibliotek. W efekcie nie da się legalnie połączyć z programem biblioteki niezgodnej z GPLv3, jeśli nie jest ona systemowa lub związana ze storagem;
  • wyeliminowano pułapkę Javy. W skrócie cały stos bibliotek, który użytkownik uruchamia na systemie wraz z programem, musi być wolny lub posiadać licencję, która nie narzuca dodatkowych warunków;
  • dodano możliwość wprowadzania kilku jasno określonych zapisów czy zastrzeżeń dotyczących autorstwa w samej licencji;
  • utrudniono na kilka sposobów możliwość ewentualnego działania i egzekwowania umów podobnych do tych, jakie zawarł Microsoft i Novell. Wyżej opisane zmiany znacznie ograniczały możliwości jej negatywnego egzekwowania od strony technicznej. Dodano również serię obostrzeń dotyczącą relacji biznesowych. Najciekawsze dotyczy zakazu dystrybucji oprogramowania objętego GPLv3, jeśli jest się w relacji biznesowej zmierzającej do połączenia go z oprogramowaniem o dyskryminującej licencji lub jeżeli tworzy się program, który ma współdziałać wyłącznie z produktem o dyskryminującej licencji;
  • zmiana w podejściu do sądownictwa lokalnego – teraz licencja stara się brać pod uwagę sposób działania prawa lokalnego i odnosi się do niego.

Skutki Pozytywne

1. GPLv3 jest kolejnym elementem działań FSF na rzecz wolnego oprogramowania. Nowa wersja zaadresowała problemy związane z wykorzystaniem bibliotek czy umowami, które umożliwiłyby zniewolenie (ograniczenie w możliwościach wykorzystania) oprogramowania.

2. Nowa wersja pojawiła się w dobrym momencie, żeby stanowić kolejne zabezpieczenie przed umową Novell-Microsoft i tym podobnym. Biorąc pod uwagę ówczesne spory i obawy, było to bardzo przydatne.

3. Zawarte w licencji zrzeczenie się wykorzystywania DRM na gruncie prawnym na swój sposób zwiększa bezpieczeństwo. Po pierwsze oprogramowanie tym bardziej podlega Prawu Linusa, bo zniesiono kolejne potencjalne ograniczenie dostępu do kodu. Po drugie zrzeczenie to dotyczy samego oprogramowania i nie chroni nikogo przed odpowiedzialnością karną np. za kradzież danych. Osoba działająca w złej wierze nie może liczyć na wykorzystanie podatności DRM, takich jak podane w przykładzie z Sony. Ma także znacznie mniejsze pole manewru, gdy społeczność odpowiada za kod.

4. GPLv3 jeszcze bardziej wymusza konkurencję. Teraz nie tylko dystrybuujący jest zobowiązany do udostępnienia kodu. On nie ma prawa zabronić jego testowania pod kątem bezpieczeństwa mimo międzynarodowych umów narzucanych przez WIPO.

5. Przynajmniej w pewnych aspektach twórca jest zobowiązany do dostarczenia dokumentacji ;) Rzecz niby oczywista, ale w wielu projektach jest to znaczący problem.

6. Uzyskano kompatybilność z kilkoma wiodącymi licencjami – potwierdzoną przez FSF.

Inne efekty zmian, czyli plusy ujemne

1. Wymaganie rezygnacji z DRM na sprzęcie ma swoje negatywne skutki uboczne. Z tego powodu GPLv3 może być bardzo kłopotliwa do zastosowania na sprzęcie medycznym czy kluczowym sprzęcie telekomunikacyjnym. Generalnie nowa wersja jest nie do zaakceptowania w sytuacjach, gdy sprzęt jest teoretycznie ogólnodostępny, a nie chcemy, żeby ktoś przeinstalował jego system. Zawarte w licencji wyjątki nie są tu wystarczające i nie obejmują wprost żadnej branży.

2. Ogrom zmian doprowadził do pewnego kryzysu zaufania względem FSF. Mówiono wprost, że ta licencja powinna zostać oddzielona od GPL. Linus Torvalds stwierdził, że nie jest to nowa wersja GNU GPL, ale oddzielny twór.

3. Wprowadzono niejednoznaczność GPLv3. Wersja GPLv2 była de facto jedna, a licencja zawsze zawierała dokładnie ten sam zestaw warunków użytkowania. GPLv3 umożliwia dopisanie do samej licencji obostrzeń, przez co niekoniecznie musi być to dokładnie ta sama licencja.

Trafne przewidywania Erica Raymonda

Poza kręgami FSF licencja GPLv3 wywołała wiele kontrowersji i nie ma zbyt pochlebnych opinii. W 2009 roku, niecałe 2 lata po jej pojawieniu się GPLv3, Eric Raymond wygłosił ciekawy wykład. Stwierdził on, że licencje GPL z czasem staną się mniej popularne i zbędne. Rynek zrozumiał bowiem wartość otwartego oprogramowania, ale jednocześnie wymagania otwartego oprogramowania są odbierane jako zagrożenie dla ich tajemnic biznesowych. W tamtym czasie wydawało się to dziwne i raczej nie do zaakceptowania dla niektórych. Eric, przynajmniej w kwestii tego, że rynek będzie wybierał inne licencje, miał racje. Po dziesięciu latach od tej wypowiedzi pisaliśmy na naszym blogu o licencji MIT jako o najpopularniejszej licencji w systemach Linux od kilku lat.

W tym świetle warto rozważać GPLv3 nie tylko jako samą licencję, ale jako istotną część historii GPL. Także jako część działań, które stworzyły otwarte oprogramowanie będące przeciwwagą dla produktów o zamkniętym kodzie tworzonych przez korporacje. Działania te niwelowały też problem szantażowania związany z prawem patentowym. Pierwsze dwie wersje GPL powstawały w czasie, gdy nie było w pełni działającego wolnego systemu i gdy „biznes” nie rozumiał idei otwartego oprogramowania. Obie licencje były nowatorskie i pełniły funkcje lidera. GPLv3 powstała już po uznaniu wyższości idei otwartego oprogramowania, ale niekoniecznie wolnego. Jednocześnie korzystając z licencji GPLv2, powstał Linux będący udanym, otwartym systemem.

GPLv3 został wydany w czasie, kiedy prawdopodobnie cały świat stanął okoniem gigantowi z Redmond chcącemu narzucić każdemu swoje opłaty. Uważamy, że nie przypadkiem Sun Microsystems, zamiast dalej opierać się FSF w kwestii Javy, w dwa tygodnie po ogłoszeniu umowy Microsoft-Novel doszedł z nimi do zgody i był stawiany za wzór. Konflikt wywołany przez Microsoft oraz jego walka z wolnymi i otwartym oprogramowaniem był wielowymiarowy. Można by pisać o tym książki, ale tym razem FSF nie było liderem, tylko jednym z wielu.

Na zakończenie historii

Po latach można stwierdzić, że ruch wolnego i otwartego oprogramowania oraz filozofia otwartych licencji wygrała wojnę z korporacjami. Najlepszym tego przykładem jest ogłoszona przez Microsoft decyzja, że od czerwca 2019 roku jądro Linuxa na stałe zagości w systemie Windows 10. Będzie ono otwarte, co oczywiste ;) oraz będzie w ramach wsparcia aktualizowane przez giganta z Redmond.

Chcesz być na bieżąco? Obserwuj nasz profil w serwisie LinkedIn.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.