Autorem wpisu jest Tomasz Ejtminowicz – radca prawny z Kancelarii Radców Prawnych Ejtminowicz, Skibicki, Trojanowski i Partnerzy

Inną formą korzystania z programów komputerowych w sposób „wolny” tj. z pominięciem odrębnych indywidualnych zezwoleń twórcy (a w konsekwencji także np. obowiązku zapłaty za oprogramowanie), jest instytucja programów otwartych, tzw. open source.

W przestrzeni internetowej dostępnych jest szereg programów wolnych [nazwijmy je dalej programami wyjściowymi”], których twórcy ujawniają kod źródłowy zezwalając na jego wykorzystywanie, swobodne modyfikowanie i dalsze rozpowszechnianie.

Udostępniając publicznie oprogramowanie twórcy udzielają osobom chcącym z niego skorzystać tzw. otwartej, wolnej licencji. Licencje oprogramowania open source pozwalają na legalne i nieodpłatne kopiowanie m.in. kodu źródłowego oraz dowolne jego modyfikacje, nakładając na licencjobiorcę obowiązek udostępnienia kodów źródłowych programów powstałych jako modyfikacje programu wyjściowego (dalej jako „programy pochodne”)

Należy jednak pamiętać, iż w różnych licencjach różnić się może zakres uprawnień licencjobiorcy. To licencjodawca decyduje, czy korzystanie z oprogramowania ma mieć wyłącznie charakter prywatny, czy też można na nim budować projekty komercyjne, określa jak dalece możliwa jest ingerencja w kod w celu jego modyfikacji itp. Itd. Każdorazowo korzystanie z licencji open source wymaga zatem szczegółowego zapoznania się z warunkami na jakich jest ona udzielana.

Najpopularniejszymi licencjami wyrosłymi w ramach ruchu open source, są licencje oparte na modelu GNU General Public License (GPL).

W zakresie tej licencji mieści się w szczególności:

  1. Wolny dostęp do kodu źródłowego
  2. Możliwość kopiowania programu
  3. Możliwość dowolnych modyfikacji programu oraz zwielokrotniania tak zmodyfikowanego programu
  4. Dalsze przekazywanie programu osobom trzecim – zarówno w postaci oryginalnej jak i zmodyfikowanej

Licencje open source co do zasady operują pojęciem „na tych samych warunkach”. Oznacza to w szczególności, że firma programistyczna (nasz „wykonawca”) może je wykorzystywać we własnym zakresie, ale także może je dalej przekazać zamawiającemu, z tym zastrzeżeniem, że:

  • kod źródłowy po przekazaniu nadal powinien pozostawać „otwarty”
  • z samej wersji pierwotnej otwartego oprogramowania nie może czerpać korzyści materialnych, skoro nie uczynił tego autor programu, zaś w wypadku jego modyfikacji kod źródłowy zmodyfikowanego oprogramowania powinien zostać ujawniony publicznie.

W relacjach pomiędzy zamawiającym a wykonawcą często dochodzić może do sytuacji, gdy projektowana aplikacja z założenia opierana  jest na licencji open source. Źródłem zarobku dla wykonawcy jest wówczas nie sam fakt przekazania otwartego oprogramowania zamawiającemu (patrz: uwagi wyżej), lecz dokonanie odpowiedniego opracowania/modyfikacji programu, skompilowania go z innymi programami itp., a także wykonywanie tzw. „wtyczek” (plug-in) będących odrębnymi zrealizowanymi przez wykonawcę na potrzeby zamawiającego modułami, usprawniającymi „wolne” oprogramowanie bądź łączącymi szereg różnych programów.

Przy tej okazji pojawia się problem, czy wykonawca, który owe „wtyczki” realizuje ma obowiązek ujawnić ich kod źródłowy. Punktem wyjścia tych rozważań jest kwestia, czy wtyczka sama w sobie stanowi modyfikację programu wyjściowego i jako taka staje się częścią programu pochodnego (z konsekwencją w postaci konieczności ujawnienia kodu), czy też jest autonomicznym, samodzielnym modułem, niezależnym od oprogramowania „otwartego”.

Problem ten ma niebagatelne znaczenie, gdyż jeśli uznać wtyczkę za część oprogramowania open source, wówczas ujawnienie kodu oznaczałoby także ujawnienie tajemnic technologicznych i wiedzy wykonawcy. Każdy kolejny podmiot mógłby przejmować nieodpłatnie owoce pracy wykonawcy nad ww. „wtyczką”.

Problem można zobrazować przykładem licencji funkcjonującej pod nazwą własną Open Source Licence (OSL). Na podstawie ust 1 licencji OSL, licencjobiorca uzyskuje prawo do m.in. nieodpłatnego:

  • kopiowania i reprodukcji programu wyjściowego, samodzielnie bądź jako elementu innego dzieła;
  • tłumaczenia, adaptacji, zmian, modyfikacji, aranżacji programu wyjściowego, w rezultacie czego powstają programy pochodne oparte na programie wyjściowym;
  • dystrybucji i rozpowszechniania kopii programu wyjściowego lub programów pochodnych, z zastrzeżeniem że kopie programu wyjściowego lub programów pochodnych, które będą dystrybuowane bądź rozpowszechniane także podlegać będą licencji OSL;

Podstawowe założenie licencji OSL można zatem sprowadzić do stwierdzenia, że licencjobiorca może produkować i dystrybuować kopie programu wyjściowego i programów pochodnych – przy zachowaniu warunku wzajemności, polegającego na objęciu dalszej dystrybucji programów licencją OSL, a co za tym idzie obowiązkiem ujawnienia kodów źródłowych, zarówno programu wyjściowego, jak i programów pochodnych, powstałych w wyniku modyfikacji kodu programu wyjściowego.

W ust. 3 licencji OSL, licencjodawca zobowiązał się udostępnić kod źródłowy programu wyjściowego wraz z każdą jego dystrybuowaną kopią.

W ust. 5 licencji OSL uregulowana została kwestia tzw. „zewnętrznego zastosowania” programu wyjściowego, które to pojęcie oznacza używanie, dystrybucję lub rozpowszechnianie programu wyjściowego bądź programów pochodnych, w taki sposób, że mogą one być wykorzystywane przez osoby trzecie. Zewnętrzne zastosowanie traktowane jest jako dystrybucja, a zatem również podlega obowiązkowi ujawnienia kodu źródłowego programu wyjściowego bądź programów pochodnych.

Clou sprawy tkwi w definicji „programów pochodnych” [ang. „derivative works”], wskazanej w ust. 1 lit. b) licencji OSL, który mówi o „tłumaczeniu, adaptacji, zmianach, modyfikacjach, aranżacji programu wyjściowego, w rezultacie czego powstają programy pochodne oparte na programie wyjściowym”.

Kierunek interpretacji wskazuje już sam sposób sformułowania ww. definicji, która posługuje się czasownikami, wyrażającymi aktywność niejako „na programie wyjściowym”, lub ściślej, na jego kodzie źródłowym. Tym samym czynności polegające na odesłaniach bądź innych technicznych sposobach sprowadzających się do „łączenia/kojarzenia/współpracy” kilku różnych programów, nie mieszczą się w zakresie pojęcia oprogramowania pochodnego, przede wszystkim z uwagi na brak modyfikacji kodu źródłowego.

W rezultacie, połączenie programu wyjściowego z innym, niezależnie stworzonym oprogramowaniem (plug-in), nie prowadzi do powstania programu pochodnego, a czynność tę kwalifikować należy jako inkorporację programu wyjściowego do innego – niezależnego dzieła.

Powyższa interpretacja znajduje także uzasadnienie w zapisie licencji OSL, który mówi o obowiązku licencjodawcy ujawnienia kodu źródłowego programu wyjściowego, co ma na celu umożliwienie jego modyfikacji i dalszej dystrybucji, przy obowiązku ujawniania kodów dokonywanych zmian. Tym samym, korzystanie z programu wyjściowego w połączeniu z innym oprogramowaniem, nie może wiązać się z ujawnianiem kodu owego niezależnego programu. Nie znajduje uzasadnienia rozszerzanie zakresu licencji OSL na oprogramowanie, podlegające niezależnej ochronie prawno-autorskiej, funkcjonujące jedynie w połączeniu z programem wyjściowym, bez żadnych zmian w zakresie jego kodu źródłowego.

Reasumując: stworzone przez wykonawcę „wtyczki” do OSL nie jest modyfikacją programu w znaczeniu zmian w zakresie kodu źródłowego programu wyjściowego i podlega ochronie prawno-autorskiej na rzecz wykonawcy. Jest to całkowicie odrębne autorskie oprogramowanie wykonawcy, niezależne od programu wyjściowego, a nadto nie stanowi ono jego modyfikacji prowadzącej do powstania programu pochodnego. „Wtyczka” stanowi całkowicie niezależny od OSL, autonomiczny i należący do wykonawcy moduł i nie jest modyfikacją oprogramowania OSL. Dlatego wykonawca nie ma obowiązku ujawniania kodu źródłowego „wtyczki”.