Licencje oprogramowania open source to zbiorcza kategoria licencji, które charakteryzują się przede wszystkim udostępnianiem oprogramowania wraz z jego kodem źródłowym, a także szerokim zezwoleniem na korzystanie z tego oprogramowania, w tym dokonywanie modyfikacji i dalsze rozpowszechnianie. Przed omówieniem zasad, dwa słowa o ruchu open source i jego odłamach.

Jeden z podstawowych nurtów to fundacja Free Software Foundation, której celem, jak i celem stojącego na jej czele guru R. Stallmana, jest tworzenie i rozpowszechnianie „wolnego” oprogramowania („free software”),  a także prawne zabezpieczanie jego dalszej „wolności”, przy czym angielskie słowo „free” oznacza tu właśnie „wolność”, a nie „darmowość”. Zgodnie z Free Software Definition licencje na „wolne” („wolnodostępne”) oprogramowanie powinny zapewniać każdemu wolność: wykorzystania oprogramowania w dowolnym celu (również „komercyjnym”), badania oprogramowania i dostosowywania go do własnych potrzeb, rozpowszechniania oprogramowania w dowolny sposób, w tym również rozpowszechniania w zmodyfikowanej (dostosowanej, udoskonalonej) postaci. Jednocześnie w ramach FSF silnie akcentuje się ideologiczny sprzeciw środowiska programistów przeciw nadmiernie restrykcyjnym regulacjom prawa autorskiego i dotychczasowym „własnościowym” regułom udostępniania oprogramowania, którym towarzyszy zamiar izolowania poszczególnych użytkowników, ich podporządkowania i uzależnienia od dostawcy.

Jak podkreśla preambuła najbardziej znanej licencji stworzonej przez FSF: „większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego oprogramowania. Natomiast w wypadku GNU General Public License (GNU GPL), celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, że oprogramowanie jest wolnodostępne dla wszystkich użytkowników”. Celem GNU GPL jest więc przełamanie przywilejów wynikających z praw własności intelektualnej, jakie przyznawane są twórcy w zamian za jego pracę, i zapewnienie swobody przepływu informacji dla dobra publicznego.

W najbardziej radykalnych wypowiedziach R. M. Stallmana i Free Software Foundation spotkać można opinię, że korzyści materialne nie powinny być jedynym czy głównym czynnikiem motywującym programistę do pracy twórczej. Wystarczającą motywacją powinna być sama radość tworzenia, możliwość samorealizacji czy zdobycia uznania. Ponieważ chodzi tu w pewnym sensie o odwrotność „copyright”, używa się tu terminu „copyleft”, a „wolne” oprogramowanie udostępniane na licencjach GNU GPL i zbliżonych, tj. gwarantujących jego „wolność” również w przyszłych wersjach, nazywa się „copylefted software”.

Idealizm Free Software Foundation, ironicznie określany mianem „informatycznego komunizmu”, nie jest podzielany przez wszystkich aktywistów open source. Przeciwnicy podejścia FSF podkreślają, że ruch open source ma znaczenie przede wszystkim jako alternatywa i uzupełnienie komercyjnych produktów informatycznych. Może on sprzyjać wzrostowi konkurencji na rynku, przełamaniu dominacji dużych producentów i promowaniu niezależnych standardów technicznych, w oparciu o które zarówno indywidualni programiści, jak i mali i średni producenci oprogramowania, mogą oferować własne produkty i usługi. Innymi słowy celem ruchu powinna być nie tyle „wolność”, co „otwartość” oprogramowania. Tak też cele open source postrzegane są przez Open Source Initiative (OSI) i drugą z czołowych postaci ruchu – E. S. Raymonda.

Zgodnie z opracowaną przez OSI definicją Open Source Definition program należy do kategorii open source, jeżeli licencja zapewnia: swobodną redystrybucję programu (zwielokrotnianie w celu udostępnienia osobom trzecim i rozpowszechnianie oprogramowania); dostęp do kodu źródłowego; swobodę modyfikowania i dokonywania opracowań; swobodę rozpowszechniania modyfikacji i opracowań programu; brak dyskryminacji jakichkolwiek osób lub grup osób; brak ograniczeń co do sposobu wykorzystania oprogramowania; objęcie licencją open source całości rozpowszechnianego programu, a nie tylko wydzielonej części; zakaz uzależniania udzielenia zezwolenia na korzystanie z programu od uzyskania licencji dotyczącej innego produktu; zakaz wpływania na sposób udostępniania i korzystania z innego oprogramowania (np. poprzez postanowienia umowne, że wszystkie programy rozpowszechniane na jednym nośniku muszą należeć do kategorii open source).

Bardziej pragmatyczne podejście Open Source Initiative jest źródłem rozbieżności pomiędzy FSF a OSI. Z praktycznego punktu widzenia różnice pomiędzy Free Software Definition a Open Source Definition są jednak nie aż tak wielkie. Istnieją licencje spełniające przesłanki Open Source Definition, które z punktu widzenia FSF są zbyt restrykcyjne, jak również takie, które wprawdzie spełniają przesłanki Free Software Definition, jednak nie mogą być uznane za Open Source. Przypadki takie są wprawdzie stosunkowo rzadkie, jednak ideologiczne spory pomiędzy poszczególnymi odłamami ruchu powodują, że w ostatnich latach popularność zdobywa „politycznie poprawny” termin Free, Libre, Open Source Software (FLOSS), obejmujący wszystkie odmiany „niewłasnościowego” oprogramowania. My stosujemy dalej pojęcie „open source”, mając na myśli jak najszerszą kategorię (czyli FLOSS).

Przełamanie przywilejów

Celem licencji open source jest więc przełamanie przywilejów twórcy wynikających z praw własności intelektualnej oraz zapewnienie swobodnego przepływu informacji z korzyścią dla społeczeństwa. Innymi słowy, podstawowym celem licencjonowania open source jest odmówienie komukolwiek prawa do wyłącznego korzystania z utworu. Oprogramowanie komputerowe jest przede wszystkim chronione prawem autorskim (niestety). Dodatkowo, w wielu jurysdykcjach, pewne innowacyjne elementy funkcjonalne oprogramowania mogą być chronione patentami jako tak zwane wynalazki realizowane za pomocą komputera. Przedmiotem patentu może być zarówno produkt (np. standardowy komputer z zainstalowanym innowacyjnym oprogramowaniem wykonującym pewne funkcje), jak i proces (np. pewien przebieg czynności wykonywanej za pomocą programu komputerowego). Ponadto, oprogramowanie może zawierać inne elementy chronione jako własność intelektualna. W szczególności nazwa oprogramowania lub organizacji, która zarządza jego rozwojem może być zarejestrowana jako znak towarowy.

Wszystkie licencje open source uwzględniają wykorzystanie oprogramowania objętego licencją jako przedmiotu prawa autorskiego. Ponadto, niektóre licencje open source zawierają postanowienia zapewniające, że jeśli jakiekolwiek elementy oprogramowania byłyby chronione patentami, zezwolenie zawarte w licencji obejmuje również zezwolenie na korzystanie z wynalazku chronionego tym patentem. Jest to szczególnie prawdziwe w przypadku licencji takich, jak: Academic Free License 3.0, GPL 3.0, AGPL 3.0, Apache 2.0, Eclipse Public License 2.0, Mozilla Public License 2.0.

Inaczej wygląda sytuacja w przypadku znaków towarowych. Wiele licencji zawiera wyraźne ograniczenia dotyczące korzystania z niektórych znaków towarowych. Na przykład licencja Apache 2.0 nie zawiera prawa do używania znaku towarowego licencjodawcy, z wyjątkiem uzasadnionego i zwyczajowego użycia w opisie pochodzenia oprogramowania. Podobne postanowienia można znaleźć w licencjach BSD-3-clause,PHP-3.0 i GNU GPL 3.0. Ze względu na „otwartość” oprogramowania open source, jego elementy nie mogą być także chronione jako nieujawnione know-how lub tajemnica handlowa.

Objęcie oprogramowania licencją open source nie powinno być rozumiane jako zrzeczenie się praw własności intelektualnej lub przekazanie go do domeny publicznej (to bardzo ważne, ponieważ często, a błędnie, właśnie tak podchodzi się do OS). Oprogramowanie open source nadal jest chronione prawem autorskim, a korzystanie z niego wymaga przestrzegania warunków licencji. Nawet najprostsze licencje, takie jak MIT czy BSD-2-clause, nakładają na użytkownika pewne zobowiązania, takie jak obowiązek dostarczenia informacji o używanym oprogramowaniu. Inne często spotykane postanowienia to obowiązek informowania o dokonanych zmianach, udostępniania kodu źródłowego oprogramowania open source w związku z jego rozpowszechnianiem oraz udostępniania kodu źródłowego wszelkich modyfikacji dokonanych w rozpowszechnianej kopii oprogramowania. Licencje GPL to już zestaw bardzo daleko idących wymagań.

Charakter prawny licencji OS

Charakter prawny licencji OS nie jest w pełni jasny. W większości jurysdykcji licencje te są interpretowane jako umowy (np. w Belgii, Chorwacji, Czechach, Francji, Hiszpanii, Holandii, Niemczech, Portugalii, Rumunii, Turcji, na Węgrzech). W niektórych krajach (np. w Grecji) rozważa się również ich kwalifikację jako jednostronnej zgody uprawnionego. Z drugiej strony, w kilku krajach, m.in. ze względu na brak orzecznictwa, sytuacja pozostaje niejasna. Przykładowo w Polsce, w odniesieniu do licencji GNU GPL, rozważano zakwalifikowanie jej częściowo jako umowy (w zakresie zezwolenia na rozpowszechnianie objętego nią oprogramowania), częściowo jako jednostronnej zgody na korzystanie z utworu (w zakresie eksploatacji programu open source przez użytkownika).

Co ważne, w wielu krajach Unii Europejskiej orzeczenia sądów potwierdziły skuteczność licencji open source, w tym charakterystycznych dla licencji GNU GPL klauzul copyleft (o których poniżej). Na przykład we Francji sąd zezwolił nabywcy programu na licencji GPL na wniesienie pozwu przeciwko dystrybutorowi programu na licencji GPL o ujawnienie kodu źródłowego. Podobnie w Niemczech sąd wydał wstępny nakaz przeciwko pozwanemu, który włączył oprogramowanie GPL do swojego oprogramowania własnościowego.

Podsumowując – niezależnie od sporów w literaturze prawniczej dotyczących kwalifikacji licencji open source, warunki określone w tych licencjach należy traktować jako wiążące. Wykorzystanie oprogramowania open source może więc nastąpić tylko na warunkach określonych w tych licencjach.

Open source i Creative Commons

Creative Commons to zbiór licencji opublikowanych po raz pierwszy w 2002 r. przez Creative Commons, amerykańską organizację non-profit założoną w 2001 r. Istnieje kilka rodzajów licencji Creative Commons. Różne wersje licencji narzucają różne prawa. Wszystkie licencje Creative Commons wymagają przypisania autorstwa do twórcy (opisanego elementem „BY”). Twórca może ponadto zastrzec, że licencjobiorcy mogą: (po pierwsze) rozpowszechniać utwory pochodne tylko na licencji identycznej („nie bardziej restrykcyjnej niż”) z licencją, która obowiązuje w stosunku do oryginalnego utworu (SA, Share-Alike element); (po drugie) kopiować, rozpowszechniać, wyświetlać i wykonywać utwór oraz tworzyć na jego podstawie utwory zależne wyłącznie w celach niekomercyjnych (NC, element niekomercyjny); (po trzecie) kopiować, rozpowszechniać, wyświetlać i wykonywać jedynie dosłowne kopie utworu, ale nie utworów pochodnych na nim opartych (ND, No Derivative Works element).

W związku z tym twórca, korzystając z licencji Creative Commons, zawsze zachowuje prawa autorskie, zezwalając jednocześnie innym na kopiowanie i rozpowszechnianie, a także może określić, czy korzystanie z utworu może odbywać się wyłącznie na warunkach niekomercyjnych, czy też ograniczyć tworzenie utworów zależnych. Licencje CC zawsze przyznają „prawa podstawowe”, takie jak prawo do rozpowszechniania utworu chronionego prawem autorskim na całym świecie w celach niekomercyjnych i bez modyfikacji.

Poza licencjami dotyczącymi praw autorskich, Creative Commons oferuje także CC0, czyli narzędzie pozwalające na umieszczanie materiałów w domenie publicznej. CC0 jest narzędziem prawnym, które pozwala twórcom zrzec się jak największej liczby praw. Narzędzie to powstało w związku z pojawiającymi się w wielu systemach prawnych wątpliwościami dotyczącymi zrzekania się praw autorskich przed upływem czasu ochrony.

Licencje Creative Commons oparte są na podobnej koncepcji co open source, ale nie są identyczne. Po pierwsze, są bardziej restrykcyjne w niektórych kombinacjach. Licencje zastrzegające użycie niekomercyjne (NC) i udostępnianie utworów zależnych (ND) nie są zgodne z definicjami wolnego oprogramowania i open source. Po drugie, są one generalnie przeznaczone do dzielenia się utworami innymi niż oprogramowanie i ich użycie w odniesieniu do oprogramowania nie jest zalecane. Ponieważ jednak programy komputerowe są utworami podlegającymi ochronie prawa autorskiego, objęcie ich licencją Creative Commons nie jest niemożliwe. Licencja CC BY-SA 4.0 jest kompatybilna z licencją GPL 3.0.

Standaryzacja open source

Jedną z zalet licencji open source (podobnie jak Creative Commons) jest de facto ich standaryzacja. W przypadku oprogramowania własnościowego istnieje duża różnorodność licencji, zarówno pod względem zakresu udzielanych praw, ograniczeń i warunków stosowanych przy korzystaniu z oprogramowania (tzw. metryk licencyjnych), jak i postanowień dodatkowych (np. zobowiązań dotyczących audytów licencyjnych czy odpowiedzialności). Oznacza to, że licencjobiorca przed podpisaniem umowy musi (a przynajmniej powinien) zapoznać się z bardzo obszernym i skomplikowanym dokumentem prawnym, często podlegającym nieznanemu mu prawu właściwemu (to często kilkaset stron tekstu, jeżeli uwzględnimy warunki kontraktowe publikowane w internecie). Zwiększa to koszty transakcyjne związane z udostępnianiem oprogramowania oraz niepewność prawną. W praktyce to wielkie wyzwanie dla organizacji, połączone z ryzykiem audytu i odszkodowań, ale to temat na inny tekst.

Z kolei w przypadku oprogramowania open source najczęściej stosowane są licencje opracowane przez organizacje popularyzujące ten model dystrybucji oprogramowania (takie jak wspomniana FSF) oraz fundacje zarządzające rozwojem dużych projektów open source (Apache, Mozilla, Eclipse). Dodatkowo, organizacje takie jak FSF czy Open Source Initiative regularnie dokonują przeglądu i oceny zgodności licencji z opracowanymi przez siebie definicjami wolnego i otwartego oprogramowania. W konsekwencji, licencje open source cieszą się dużym zaufaniem deweloperów i użytkowników. Przy czym w przypadku popularnych licencji (takich jak GNU czy Mozilla Public License) korzystanie z oprogramowania powinno być łatwiejsze w ocenie prawnej niż w przypadku licencji „zamkniętych”. Jak się okaże, nie zawsze.

Omawiane korzyści standaryzacji są częściowo ograniczane przez rosnącą liczbę licencji open source. The Open Source Initiative wymienia obecnie ponad 100 licencji spełniających definicję open source. Liczbę kombinacji zwiększają „wyjątki” dodawane przez niektórych deweloperów do danej licencji (np. wyjątek GCC Runtime Library, wyjątek Qt GPL). Wskazuje się, że zjawisko to, ogólnie znane jako „proliferacja” open source, ma kilka negatywnych konsekwencji. Po pierwsze niekompatybilność: przy większej liczbie licencji prawdopodobieństwo połączenia jednego produktu software’owego z innym, udostępnionym na niekompatybilnych warunkach licencyjnych, wzrasta wykładniczo. Po drugie niepewność: im więcej licencji open source jest wykorzystywanych w praktyce, tym mniej prawdopodobne jest, że będą one poddane kontroli sądowej i ocenie ekspertów prawnych. Analizie podlegają tylko popularne, szeroko stosowane licencje. Po trzecie zamieszanie i zwiększone koszty transakcyjne: im więcej licencji dotyczy danego projektu, tym trudniej jest ocenić, czy projekt spełnia warunki każdej z nich lub przewidzieć, jaki będzie prawny rezultat połączenia różnych programów.

Podsumowując, wykorzystanie komponentów na tzw. „permisywnych” licencjach open source (MIT, BSD, Apache) wiąże się najczęściej tylko z podaniem w dokumentacji odpowiedniej informacji o zastosowanym oprogramowaniu i licencji, która je obejmuje. Więcej uwagi należy poświęcić wykorzystaniu oprogramowania open source na licencjach typu copyleft. W tym przypadku istotny staje się sposób połączenia takiego oprogramowania z innymi elementami produktu, opisany poniżej. Ryzykowne może okazać się stosowanie komponentów na „egzotycznych” (rzadko spotykanych) licencjach, zwłaszcza jeśli nie zostały one poddane ocenie przez organizacje takie jak Free Software Foundation czy Open Source Initiative.

Krótkie zestawienie rodzajów LICENCJI OPEN SOURCE  

 

  • Silna copyleft – GNU GPL 2.0, GNU GPL 3.0, GNU AGPL 1.0, GNU AGPL 3.0 (licencja wymaga zachowania informacji o prawach autorskich i licencji oraz wymaga od dystrybutorów udostępnienia kodu źródłowego komponentu i wszelkich dzieł pochodnych na tych samych warunkach).
  • Słaba copyleft – LGPL 2.1, LGPL 3.0, MPL 1.1, MPL 2.0 (licencja wymaga zachowania informacji o prawach autorskich i licencji oraz wymaga od dystrybutorów udostępnienia kodu źródłowego komponentu i wszelkich jego modyfikacji na tych samych warunkach. Nie każda praca pochodna musi być wydana na warunkach licencji).
  • Non-copyleft – MIT, BSD, Apache 2.0 (licencja wymaga zachowania praw autorskich i informacji o licencji, ale pozwala na dystrybucję na innych warunkach bez ujawniania kodu źródłowego).
  

Rodzaje licencji OS – copyleft vs non-copyleft

Jednym z najpowszechniej przyjętych kryteriów klasyfikacji licencji open source jest rozróżnienie między licencjami typu copyleft i non-copyleft. Rozróżnienie to odnosi się do kwestii, czy wyniki dalszego rozwoju i modyfikacji programu muszą być udostępniane na tej samej lub „kompatybilnej” licencji, co oryginalny program. Ogólnie rzecz biorąc, licencje typu copyleft wymagają, aby wyniki dalszego rozwoju i modyfikacji programu były udostępniane na tych samych warunkach, co program oryginalny. Decydując się na wykorzystanie kodu objętego copyleft, korzystający (programista) „zaraża” swoje rozwiązanie (swój kod) tą licencją. Jego program, do którego użył komponentów copyleft, powinien być objęty warunkami pierwotnej licencji copyleft. Ten szczególny efekt (tzw. „wirus copyleft”) ma na celu zabezpieczenie „otwartości” danego programu i zapobieżenie jego „uprzywilejowaniu”, nawet jeśli jest on używany w dziełach pochodnych.

Powyższa konsekwencja ma duże znaczenie praktyczne. W wielu środowiskach open source traktowany jest jako darmowa „baza kodu” do swobodnego wykorzystania. Twórcy copyleft wprowadzili jednak przebiegły i bardzo skuteczny mechanizm – możesz z naszego rozwiązania skorzystać, ale wtedy twoje rozwiązanie będzie dalej dystrybuowane na naszych licencyjnych warunkach. O konsekwencjach opowiemy w dalszych częściach, ale to oznacza, że jak użyjemy copyleft, to nie będziemy mogli żądać opłat licencyjnych za nasze rozwiązanie czy też będziemy zobowiązani do ujawnienia kodu źródłowego całości rozwiązania (w tym naszej, autorskiej części).

Rozróżnia się dwa rodzaje klauzul typu copyleft. Pierwszą jest tzw. silny copyleft. W tym przypadku warunki licencji muszą być zachowane dla każdej pracy pochodnej. Jakbyśmy nie używali oprogramowania, „wirus” działa. Najbardziej znanymi przykładami są wszystkie wersje GNU GPL i GNU AGPL. Drugi typ to tzw. słaby copyleft. W tym przypadku warunki licencji muszą być zachowane dla określonych dzieł pochodnych. Czyli może okazać się, że mimo użycia oprogramowania copyleft, do „zarażenia” nie doszło. Licencje takie są najczęściej stosowane w przypadku bibliotek oprogramowania. Dzięki temu biblioteki te mogą być używane – pod pewnymi dodatkowymi warunkami – w produktach wydanych na innych licencjach i samo ich użycie nie prowadzi do „efektu wirusa”. Licencje, które wykorzystują „słabą” klauzulę copyleft to m. in. GNU Lesser General Public License (LGPL) oraz Mozilla Public License. W praktyce (czytaj: upraszczając) oznacza to, że korzystając z kodu z „silną” licencją prawie na pewno „zarazimy” nasz kod warunkami takiej licencji. W przypadku „słabej” licencji standardowe zastosowanie danego komponentu (np. odwołania do biblioteki na LGPL) nie stwarza takiego ryzyka.

Żeby było jeszcze trudniej – w niektórych przypadkach spotyka się także tak zwane „częściowe” klauzule copyleft. Częściowe licencje typu copyleft mają podobny skutek jak słabe klauzule copyleft. Częściowy copyleft zwalnia niektóre części utworu z copyleft, zezwala na rozpowszechnianie niektórych części utworu lub jego modyfikacji na warunkach innych niż licencja copyleft lub w inny sposób nie nakłada warunków copyleft na cały utwór. Przykładem częściowego copyleftu jest wyjątek GPL dotyczący linkowania, który zwalnia z copyleftu pliki nagłówkowe bibliotek oprogramowania i pozwala na dynamiczne linkowanie oprogramowania komercyjnego (np. wyjątek GCC Runtime Library). Skutek podobny do LGPL, ale diabeł tkwi, oczywiście, w szczegółach.

Zazwyczaj klauzula copyleft jest połączona ze zobowiązaniem do udostępnienia kodu źródłowego oprogramowania objętego licencją copyleft. Dzieje się tak dlatego, że licencja ta ma zapewnić użytkownikom możliwość czytania kodu, poprawiania go i dzielenia się swoimi zmianami. Skuteczne korzystanie z tych praw wymaga dostępu do kodu źródłowego.

Licencje „non-copyleft” (znane również jako „permisywne”) nie mają podobnych ograniczeń. Z reguły nie ma więc przeciwwskazań do łączenia rozwiązań „własnościowych” i „otwartych”, w tym udostępniania rozwoju „otwartego” programu na licencji „zamkniętej”. Najpopularniejsze przykłady to MIT, BSD (wszystkie wersje) oraz Apache. Licencje te nie nakładają obowiązku udostępniania kodu źródłowego. Oznacza to, że program objęty taką licencją może być udostępniony zarówno w postaci binarnej, jak i źródłowej, niezależnie od tego, czy został zmodyfikowany, czy nie.

Marcin Maruta, Zbigniew Okoń

Autorzy są Partnerami w kancelarii Maruta Wachta.