Licencja open source. O czym powinieneś pamiętać pracując z takim oprogramowaniem?
Korzystając z oprogramowań open source być może zastanawiałeś się, na jakich zasadach możesz z nich korzystać oraz czy możesz je udostępniać i dalej redystrybuować. W moim artykule opisuję, czym są licencje open source, wskazuję jaką pełnią one rolę w świecie IT, a także wspominam czym są licencje wirusowe.
Spis treści
Ochrona prawna oprogramowania
Zanim omówię szczegóły dotyczące licencji open source wskażę podstawy ochrony prawnoautorskiej oprogramowań komputerowych. Oprogramowanie komputerowe podlega normom prawa autorskiego, w ramach którego chronione jest tak samo jak utwory literackie. Autorowi z reguły przysługują więc wszelkie prawa do stworzonego przez niego oprogramowania, w tym w szczególności do jego kodu źródłowego.
Głównymi dokumentami regulującymi ochronę prawnoautorską są zatem:
- Unijna dyrektywa 2009/24/WE,
- Konwencja Berneńska,
- Ustawa o prawie autorskim i prawach pokrewnych.
W kontekście otwartych oprogramowań, właściwym (i prawnie najbezpieczniejszym) rozwiązaniem jest działanie na podstawie licencji, które są tworzone i publikowane przez pierwotnych twórców oprogramowania.
Czym są licencje open source
Licencje open source pełnią funkcję umów zawieranych pomiędzy programistą a licencjodawcą tj. dostawcą oprogramowania. Kształtują one reguły oraz zasady, w ramach których programista będzie mógł korzystać z oprogramowania z otwartym kodem źródłowym. Pełnią rolę zabezpieczenia zarówno dla licencjodawcy, który w ten sposób zachowuje kontrolę nad oprogramowaniem, jak również dla programisty, który dzięki licencji zyskuje pewność dotyczącą reguł dalszego eksploatowania jego pracy na kodzie źródłowym open source. Warto podkreślić, że licencje kształtują zazwyczaj jednak nie tylko zasady korzystania z kodu, ale także zasady ich udostępniania oraz dalszej redystrybucji.
Warto przy okazji podkreślić rolę licencji open source w dzisiejszym świecie IT, którą łatwo zauważyć, dostrzegając jej dotychczasowy dorobek. W ramach licencji open source funkcjonują bowiem tak znane programy, jak choćby Linux czy Mozilla Firefox, których inicjatorzy, właśnie dzięki odpowiednim postanowieniom zawartym w licencji, zapewnili jasne ramy rozwoju tych programów z korzyścią zarówno dla siebie, jak i dla użytkowników.
Licencje funkcjonujące na rynku
Przy wyborze oprogramowania open source, oprócz wartości oprogramowania związanej z treścią kodu, musisz również zwrócić uwagę na reguły ustalone w licencji. Na rynku funkcjonuje ponad 200 rodzajów licencji open source, które niejednokrotnie w bardzo dużym stopniu się od siebie różnią. Różnice mogą dotyczyć przeróżnych kwestii – od różnic w obszerności licencji (niektóre zawierają tylko kilka zdań, inne nawet kilkadziesiąt stron), przez różnice w uprawnieniach (np. dot. zakresu dopuszczalnych modyfikacji czy zasad udostępniania), po kwestie związane z prawami autorskimi (wspomniane przeze mnie licencje wirusowe). Dokładne przeczytanie licencji jest zatem koniecznością. Nie muszę chyba tłumaczyć, jak wielkim problemem byłaby dla Ciebie konieczność zapłacenia kary za nieuprawnione korzystanie z kodu albo utrata praw do wykonywanych przez Ciebie prac.
Najpopularniejsze licencje
MIT – Jest jedną z najprostszych i najbardziej zliberalizowanych wersji licencji open source. Użytkownik licencji MIT posiada niemal nieskrępowane prawo do dalszej eksploatacji i udostępniania przygotowanego przez siebie kodu. Jedynymi wymogami są obowiązek zamieszczenia informacji o autorze oraz zawarcie oryginalnych warunków licencyjnych – które tak jak wspomniałem są minimalne.
GNU General Public License (GNU GPL) – Powszechnie stosowana, udostępniona po raz pierwszy w 1989 r. Nakłada na użytkownika o wiele więcej wymagań niż licencja MIT. Kod oparty na licencji GNU GPL może być udostępniany, jednak z zastrzeżeniem, że powstałe w ten sposób oprogramowanie musi być oparte również na licencji GNU GPL. W związku z tym jest ona nazywana licencją wirusową (którą opisuje poniżej). Dotychczas udostępniono trzy wersje kodu GNU General Public License.
GNU Affero General Public License (GNU AGPL) – Pochodna licencji GPL. Przeznaczona jest głównie do oprogramowania udostępnianego w internecie. Tak samo jak GNU GPL, jest uznawana za licencję wirusową. Postanowienia najnowszej wersji tej licencji tj. GNU Affero 3.0 są de facto tożsame z postanowieniami licencji GPU GPL 3.0. Najważniejsza różnica polega na obowiązku udostępnienia pełnego kodu z chwilą publikacji oprogramowania w sieci.
Apache License – Kolejna z liberalnych licencji, która jest wykorzystywana na dużą skalę. Wymagania nakładane na użytkownika tej licencji dotyczą jedynie obowiązku załączenia informacji dot. praw autorskich, wykazu zmian dokonanych w kodzie oraz kopii oryginalnej licencji.
Mozilla Public License (MPL) – Prawdopodobnie najbardziej znana licencja wśród osób spoza branży IT. Jest bazą dla jednej z najpopularniejszych przeglądarek internetowych na świecie – Mozilli Firefox. Co do zasady, jej modyfikacje powinny być udostępniane na tej samej licencji. W przypadku MPL, w przeciwieństwie do licencji GNU GPL oraz AGPL, możliwe jest jednak obejście tego wymogu m. in. poprzez skorzystanie z licencji pokrewnych.
Najpopularniejsze zapisy w licencji
Pomimo wielu podobieństw pomiędzy poszczególnymi licencjami, różnice w postanowieniach potrafią być między nimi ogromne. Nie powinno to jednak dziwić – na rynku funkcjonuje bowiem prawie 200 licencji open source. Niektóre z licencji jak np. licencja MIT, zawierają tylko kilka zdań. Inne takie jak np. AGPL, liczą nawet kilkanaście stron. Pomimo tego, możemy jednak wyróżnić kilka postanowień, które są często wspólne dla wielu licencji.
Mam na myśli postanowienia nakładające obowiązek udokumentowania modyfikacji dokonanych w kodzie przez użytkownika oraz podania swoim danych wraz z datą wprowadzenia zmian. Inne popularne postanowienia dotyczą m. in. obowiązku umożliwienia innym licencjobiorcom dostępu do zmodyfikowanej wersji kodu oraz zamieszczenia postanowień pierwotnej licencji. Warto podkreślić, że użytkownik może również zamieścić w swojej pracy również własne oświadczenia, dotyczące np. praw autorskich. Nie mogą one jednak być sprzeczne z postanowieniami pierwotnej licencji.
Licencje wirusowe
Warto jeszcze wyjaśnić czym są wspomniane już przeze mnie licencje wirusowe. Są to licencje, które pozwalają na wykorzystywanie kodu jedynie w ramach programów operujących na podstawie tej samej licencji. Konsekwencją użycia ich w programach funkcjonujących na podstawie innej licencji co do zasady skutkuje zainfekowaniem całości wytworzonego przez Ciebie kodu – (również tej części, która została utworzona na podstawie innego kodu) i przeniesieniem dotyczących go praw autorskich na licencjodawcę (strong copyleft).
Co do zasady ponieważ, niektóre licencje wirusowe zakładają infekcję jedynie części oprogramowania. Są to licencje ze słabym zabezpieczeniem (weak copyleft), w przypadku których licencjodawca uzyskuje prawo jedynie do części ściśle określonych rodzajów dzieł pochodnych. Nie są one zatem otwartą kopalnią kodu, jak w przypadku klasycznych oprogramowań open source. Zapewniają one licencjodawcy nowe pomysły oraz wsparcie merytoryczne zewnętrznych programistów przy jednoczesnym zabezpieczeniu przed dalszym udostępnianiem i wykorzystywaniem należącego do niego kodu.
Podsumowanie
Jak widzisz, licencje są niezbędnym elementem korzystania z oprogramowań otwartych. Pomimo częstych różnic w ich treści, ich postanowienia oparte są zazwyczaj na podobnych fundamentach. Dzięki nim, efekty Twojej pracy na kodach open source będą skutecznie zabezpieczone oraz oparte na z góry określonych zasadach, dzięki którym będziesz mógł w pełni cieszyć się z możliwości oferowanych przez open source!
Zdjęcie główne artykułu pochodzi z unsplash.com.