Pułapki oprogramowania open source

30 września 2022 |

W kontekście praw autorskich, program komputerowy podlega ochronie jak utwory literackie. Twórcy oprogramowania przysługują majątkowe oraz osobiste prawa autorskie[1], w jego gestii leży zatem to, czy oraz na jakich zasadach zostanie ono udostępnione szerszemu gronu. Niektórzy twórcy decydują się na upublicznienie kodów źródłowych stworzonych przez siebie programów komputerowych i udostępnienie w duchu idei wolnego i otwartego oprogramowania (Free and Open-Source Software,  FOSS). Idea wolnego oprogramowania sięga jeszcze lat 80-tych, a jej propagatorem był Richard M. Stallman, założyciel organizacji Free Software Foundation i projektu GNU, który stanął w opozycji wobec coraz powszechniejszej w tamtym czasie praktyki zastrzegania praw do oprogramowania (free software movement). Zgodnie z filozofią projektu GNU wolne oprogramowanie zapewnia użytkownikom cztery podstawowe wolności:

(0) [wolność] do uruchamiania programu,

(1) do badania i zmieniania programu w formie kodu źródłowego,

(2) do rozprowadzania wiernych kopii oraz

(3) do rozprowadzania modyfikowanych wersji[2].

W późniejszym czasie wyodrębnił się ruch open source movement z Eric’iem Raymondem na czele, w ramach którego założono Open Source Initiative. Jest on także związany z ideą nieodpłatnego udostępniania kodów źródłowych i wykorzystywania na własne potrzeby programów stworzonych przez innych twórców, lecz z mniejszym naciskiem na aspekt ideologiczny i filozoficzny reprezentowany przez ruch wolnego oprogramowania.

Licencja licencji nierówna

Mimo, że oprogramowanie FOSS udostępniane jest bezpłatnie, nie oznacza to, że osoby korzystające z otwartego kodu źródłowego na własne potrzeby mają zupełną dowolność w tym, w jaki sposób go używają. Programy open source rozpowszechniane są w ramach różnych licencji, z każdej jednak wynikają warunki, których należy przestrzegać. Wśród licencji open source wyróżnić można GNU General Public License (GNU GPL), BSD (dwu- lub trzyklazulowa), Apache 2.0, X11 (nazywana licencją MIT). Choć z założenia treść licencji jest podobna, to różnią się one między sobą zakresem obowiązków, do których muszą się stosować ich użytkownicy. Licencje open source mogą być mniej lub bardziej liberalne, a głównym czynnikiem wskazującym na stopień tego liberalizmu jest to, na jakich zasadach osoba korzystająca z oprogramowania FOSS może je dalej udostępniać i dystrybuować.

Korzystanie z licencji FOSS w projektach komercyjnych

Dla przykładu weźmy sytuację, w której programista chce stworzyć komercyjny program komputerowy. Ma zamiar wykorzystać lub bazować na kodzie źródłowym udostępnionym w ramach licencji open source, ale jednocześnie chce, aby kod źródłowy stworzonego przez niego programu pozostał zamknięty i użytkownicy nie mieli do niego dostępu. Czy może tak zrobić? Na jakich zasadach? Warto, żeby programista jeszcze przed przystąpieniem do pracy zwrócił uwagę na te kwestie. Z czasem, bowiem, może okazać się, że konsekwencje jego nieprzemyślanych wyborów mogą być zgubne.

W tym kontekście należy być szczególnie wyczulonym na tzw. licencje wirusowe, zawierające klauzule copyleft. Występowanie takiej klauzuli w licencji oznacza, że produkt, który jest wynikiem dalszego rozwoju i modyfikacji programu typu open source powinien zostać udostępniony na tych samych warunkach, co program oryginalny lub licencji z nią kompatybilnej. Warunek ten przedstawia np. licencja GNU GPL. Klauzula copyleft najczęściej „zaraża” całość oprogramowania[3], a więc powoduje konieczność udostępnienia również pozostałej – autorskiej części oprogramowania na tych samych warunkach co program pierwotny. W przypadku, w którym dokonywane zmiany w programie na wspomnianej licencji GNU GPL są niewielkie czy też dokonuje się jego opracowania (tworzy się utwór zależny), nie ma większych niejasności i produkt bazujący na programie na licencji GNU GPL powinien zostać udostępniony na tożsamej licencji. Wątpliwości budzą się jednak w sytuacji, w której tworzony program komputerowy poprzez dynamiczne linkowanie korzysta z bibliotek programistycznych udostępnionych na omawianej licencji GNU GPL – to, czy program zostanie zainfekowany klauzulą copyleft czy nie, nie jest już tak jednoznaczne.

Podsumowanie

Na to, jak istotne jest zapewnienie zgodności z warunkami licencji oprogramowania FOSS wskazuje to, że nabywcy oprogramowania coraz powszechniej zaczynają wymagać, aby dostawcy wypełniali zobowiązania wynikające z licencji open source’owych. Weryfikacja zgodności oprogramowania z wymogami FOSS powinna być zatem istotnym elementem branym pod uwagę w procesie tworzenia oprogramowania, w szczególności z uwagi na występujący w niektórych licencjach wymóg udostępnienia odbiorcy kodu źródłowego oprogramowania.


[1] Z zastrzeżeniem wyłączeń i przepisów szczególnych określonych w ustawie z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U.2021.1062 ze zm.).

[2] https://www.gnu.org/philosophy/philosophy.html.

[3] Są również licencje (jak LGPL 3.0), które przewidują, że pod pewnymi warunkami skutek zainfekowania klauzulą copyleft nie rozciąga się na całość oprogramowania, ale ogranicza do poszczególnych plików źródłowych.



Ta strona wykorzystuje pliki cookies. Poprzez kliknięcie przycisku „Akceptuj", bądź „X", wyrażasz zgodę na wykorzystywanie przez nas plików cookies. Więcej o możliwościach zmiany ich ustawień, w tym ich wyłączenia, przeczytasz w naszej Polityce prywatności.
AKCEPTUJ