Czym jest oprogramowanie open source?
Oprogramowanie closed source to system, którego kod źródłowy jest zastrzeżony. Prawo do edycji, kopiowania i dystrybucji mają tylko jego pierwotni autorzy. Jest zwykle płatne, a koszt może różnić się od jego złożoności. Open source (otwarty kod źródłowy) został wprowadzony pod koniec lat 90. ubiegłego wieku. Wywodzi się z ruchu wolnego oprogramowania, które pozwala wszystkim jego użytkownikom na swobodne jego uruchomienie, edycję i rozprzestrzenianie. W najszerszym rozumieniu jest to idea nieograniczonego dostępu do kodu źródłowego oprogramowania. W jej myśl każdy ma dostęp do kodu programu i w zależności od zakresu licencji – w różnym stopniu może go modyfikować i rozpowszechniać.
Open source’owe biblioteki wykorzystywane są już w zasadzie wszędzie i praktycznie niemożliwe jest znalezienie programu, który nie posiada open source’owych elementów. Zgodnie z badaniem The Forrester Wave Software Composition Analysis Q1 2017 – nowoczesne aplikacje zawierają od 80% do 90% kodu open source. Wątek poruszamy w tekście: Jakich kwestii prawnych należy dopilnować przed wypuszczeniem aplikacji na rynek?
Zalety i wady oprogramowania open source
Zalety:
- Elastyczność – ze względu na swobodny dostęp do kodu źródłowego programiści mogą dopasowywać oprogramowanie do unikalnych potrzeb danego biznesu;
- Opłacalność – początkowe koszty wdrożenia oprogramowania są zazwyczaj niewielkie, a nawet żadne;
- Niezależność – rozwiązanie open source nie powoduje uzależnienia od jednego dostawcy;
- Stałe aktualizacje i bezpieczeństwo – dzięki społeczności można mieć pewność, że wszystkie błędy i luki w otwartym oprogramowaniu zostaną szybciej znalezione i naprawione. Im bardziej popularne jest dane rozwiązanie, tym maleje ryzyko zatrzymania lub zaniechania jego rozwoju.
Wady:
- Długoterminowe koszty – chociaż wstępny koszt wdrożenia oprogramowania open source może być znikomy, to w trakcie użytkowania być może wystąpi konieczność np. dodania jakiej funkcjonalności lub samodzielnej naprawy błędu, za które będzie trzeba zapłacić;
- Brak gwarancji i wsparcia technicznego – oprogramowanie bez oficjalnego producenta charakteryzuje się tym, że w jego przypadku nie można liczyć na żadną gwarancję ani wsparcie techniczne w przypadku problemów.
Zobacz również: Umowa utrzymaniowa a umowa rozwojowa na wdrożone oprogramowanie
Rodzaje licencji na oprogramowanie typu open source
Programy komputerowe oraz wszelkiego rodzaju elektroniczne aplikacje podlegają ochronie na podstawie ustawy o prawie autorskim. (zobacz: „Czy programiście przysługują prawa autorskie do programu„) Oznacza to, że ich twórcy mają prawo do pełnej ochrony w przypadku nielegalnego korzystania z ich dzieł lub naruszenia ustalonych zasad i obowiązujących przepisów.
Licencja open source stanowi umowę, na mocy której udzielana jest ochrona, określając jednocześnie, w jaki sposób osoba lub grupa osób może korzystać z danego programu lub aplikacji komputerowej. Każda taka umowa powinna precyzyjnie wyznaczać zakres eksploatacji utworu, czyli sposób, w jaki osoby trzecie, nie będące twórcami, mogą go wykorzystać.
- Licencja MIT – najprostsza i najbardziej liberalna opcja, która pozwala na niczym nieograniczony użytek, modyfikację i dystrybucję. Jednym jej warunkiem jest obowiązek dołączenia kopii licencji i informacji o autorze oprogramowania.
- Licencja GNU GPL (GNU General Public License) – licencja wirusowa. Zezwala na dowolne kopiowanie, modyfikowanie i rozpowszechnianie pod warunkiem, że powstałe rozwiązania również będą objęte tę samą licencją. Ponadto plik lub paczka muszą zawierać informację o licencji i autorze kodu oraz udokumentowane wprowadzone zmiany w kodzie.
- Licencja Apache 2.0. – zezwala na używanie, modyfikowanie i redystrybucję programu w postaci źródłowej lub binarnej, bez obowiązku udostępniania kodu źródłowego. Oznacza to, że kod na tej licencji można włączyć do zamkniętych programów, pod warunkiem zgodności z warunkami tej licencji. Apache 2.0 nie udziela zezwolenia na używanie nazw i znaków handlowych licencjodawcy, z wyjątkiem użycia ich w informacji o pochodzeniu produktu. Najważniejszą różnicą, w porównaniu do typowych licencji akademickich, jest klauzula o patentach. Apache bowiem określa, że licencjobiorca otrzymuje od wszystkich autorów i współautorów licencję na użycie ich patentów mających zastosowanie w programie. Jeśli jednak licencjobiorca wytoczy komukolwiek proces o naruszenie patentów – licencja na używanie patentów autorów i współautorów zostanie mu cofnięta.
- Eclipse Public License – pozwala na dystrybucję i modyfikację kodu (zarówno na użytek prywatny, jak i komercyjny), a także na udzielanie sublicencji pod warunkiem zawarcia odnośnika do kodu źródłowego, informacji o pierwotnych warunkach licencyjnych i prawach autorskich oraz dalszego udostępniania oprogramowania.
- BSD License – pozwala na swobodne używanie, modyfikowanie i rozpowszechnianie oprogramowania. Jest permisywna, co oznacza, że nakłada minimalne ograniczenia na użytkowanie i dystrybucję oprogramowania. Jej głównym wymogiem, jest to, że wszelkie redystrybucje muszą zawierać kopię licencji oraz zrzeczenie się odpowiedzialności. Wielu twórców używa jej, aby zastrzec, że ich praca jest dostępna dla szerokiego grona użytkowników przy jednoczesnym zachowaniu praw do oprogramowania.
- Creative Commons License (CC) – Umożliwia twórcom elastycznie udostępnianie oprogramowania na zdefiniowanych warunkach. Creative Commons daje twórcy możliwość bardziej precyzyjnego określenia zasad korzystania, za pomocą elastycznego systemu oznaczeń. Mimo, że stosowana w kontekście oprogramowania – wykorzystuje się ją głównie do zabezpieczenia treści kreatywnych tj. zdjęć, blogów, czy stron internetowych.
- Mozilla Public License – została stworzona z myślą o projekcie Mozilla, w tym przeglądarki Firefox, ale jest używana również w innych projektach open source. Jej celem jest zachowanie równowagi między otwartością kodu źródłowego, a ochroną praw autorskich i patentowych. W przypadku dokonywania zmian i publicznego ich udostępniania w oprogramowaniu objętym MPL – powinny być udostępnione na takich samych warunkach jak oryginalne oprogramowanie.
Zobacz również: Licencja na oprogramowanie – co zawiera, rodzaje, jak ją wypowiedzieć?
Zobowiązania użytkowników oprogramowania open source
Większość licencji open source nakłada obowiązek użytkowników na udzielanie dalszych licencji dla swoich modyfikacji. Oznacza to, że jeśli użytkownik wprowadza zmiany do kodu źródłowego, musi udostępnić je zgodnie z pierwotną licencją. Użytkownicy powinni zachować informację o prawach autorskich w kodzie źródłowym. Wielu twórców licencji open source oczekuje także, że użytkownicy uznają pracę społeczności i w miarę możliwości będą przyczyniali się do rozwoju projektu, zgłaszając błędy czy udostępniając swoje pomysły.
W niektórych przypadkach naruszenie licencji może skutkować utratą praw do korzystania z danego projektu. W przypadku naruszenia zasad copyleft – użytkownik może zostać zobowiązany do usunięcia wszelkich modyfikacji dokonanych w kodzie źródłowym oraz ponownego udostępnienia go zgodnie z wymogami. Bywają także przypadki (jeśli uwzględniono to uprzednio w licencji), że naruszający zobowiązania zostaje obciążony karą finansową za straty oraz koszty sądowe.
Zobacz również: Prawne aspekty udostępniania oprogramowania w modelu SaaS
Odpowiedzialność twórców za kod źródłowy
Z racji złożonej specyfiki oprogramowania open source – dochodzi do wielu naruszeń ze strony twórców. Dotyczy to m.in.: użycia chronionego kodu bez zgody, braku właściwego oznaczenia praw autorskich do programu, czy komercyjnego wykorzystania bez udostępnienia kodu źródłowego.
Naruszenia praw autorskich mogą być przedmiotem postępowania sądowego, co skutkuje zazwyczaj sankcjami finansowymi, zobowiązaniami do udostępnienia kodu źródłowego lub nawet zakazem korzystania z określonych technologii. Naruszenia zapisów licencji z kolei, mogą prowadzić do wypłaty kar umownych, czy też odszkodowań dla osób lub przedsiębiorstw, które poniosły szkody. Deweloperzy mogą być również zobowiązani do naprawienia szkód wyrządzonych naruszeniem licencji.
Zobacz również: Umowa o przeniesienie autorskich praw majątkowych
Rozwój projektów open source a prawa autorskie
Program komputerowy – funkcjonujący zarówno na zasadach open source, jak i closed source w europejskim porządku prawnym podlega takiej samej ochronie praw autorskich, jak utwory literackie. Ponieważ domyślnym, ustawowym prawem autorskim są nadal wyłączne prawa autorskie, niezbędne jest skonstruowanie licencji, która wyraźnie określa te uprawnienia.
Podstawowym narzędziem, które reguluje korzystanie z oprogramowania open source, jest stosowana licencja. W Polsce popularne są licencje takie jak GPL, MIT czy Apache. Decyzja o wyborze konkretnej licencji wpływa na prawa autorskie oraz obowiązki zarówno twórców, jak i użytkowników.
Licencje open source określają zakres praw użytkowników w odniesieniu do kodu źródłowego. Użytkownicy są zazwyczaj uprawnieni do swobodnego korzystania, modyfikowania i redystrybucji, ale pod warunkiem przestrzegania określonych zasad licencji.
W założeniu, prawo ochrony własności intelektualnej dąży do zabezpieczenia twórcy i jego dzieła. Tymczasem ruch open source w swojej idei podąża alternatywną ścieżką, prowadzącą do likwidacji barier w tworzeniu innowacyjnego oprogramowania poprzez nieograniczone dzielenie się. Ponadto, jedną z najbardziej charakterystycznych cech tego modelu jest zagwarantowanie wszystkim nieodpłatnego i niewyłącznego prawa do korzystania z oprogramowania. Należy jednak podkreślić, że osobiste prawa autorskie, czyli więź twórcy z dziełem są w tej społeczności bardzo szanowane i każdy nowo powstały element kody udostępniany jest wraz z podpisem właściciela, który stanowi ciąg znaków rozpoznawalnych wśród programistów. Jeśli chodzi z kolei o majątkowe prawa autorskie – kwestią niezmiernie istotną jest brak opłat licencyjnych. Nie jest to jednak tożsame z koncepcją zrzeczenia się praw do eksploatacji utworu.
Zobacz również: Umowa na stworzenie oprogramowania w modelu Scrum
Przeniesienie własności oprogramowania open source
Jeżeli zamierzamy wykorzystywać oprogramowanie open source jako użytkownik nasza sytuacja jest klarowna – wykorzystujemy oprogramowanie zgodnie z jego przeznaczeniem i w zakresie w jakim licencje pozwalają. Przykładem szeroko użytkowanego oprogramowania open source może być przeglądarka internetowa Mozilla Firefox czy system operacyjny Linux.
Inaczej stanie się w przypadku, gdy produkt będzie służył do celów komercyjnych. Przed rozpoczęciem takiego projektu powinniśmy się zapoznać z treścią licencji rozwiązania open source, z którego zamierzamy skorzystać. Może się bowiem okazać, iż treść licencji de facto nie pozwala nam na komercjalizację naszego produktu. Nie jest to jednak zjawisko powszechne i większość rozwiązań open source opiera się na licencjach, które pozwalają na komercjalizację projektów, pod obwarowaniem jednak spełnienia konkretnych, choć zazwyczaj niezbyt skomplikowanych warunków.
Zdarzyć się również może, iż przy korzystaniu z konkretnej technologii open source będziemy mieli do czynienia nie z jedną licencją a z kilkoma różnymi. Licencje takie są zazwyczaj kompatybilne, jednak warto zapoznać się dokładnie z każdą z nich, by spełnić wszystkie wymogi wymagane do ich komercyjnego użytku.
Wskazać należy, iż licencje typu FLOSS są pełnoprawnymi licencjami na oprogramowanie i coraz częściej zdarzają się przypadki skutecznego egzekwowania ich postanowień przed sądami. Oprogramowanie typu FLOSS jest z perspektywy prawa autorskiego takim samym oprogramowaniem jak każde inne i zakres dowolności przy konstruowaniu tego rodzaju licencji jest wytyczany przez obowiązujące przepisy.
Niedopełnienie obowiązku lub komercyjne wykorzystanie oprogramowania niezgodnie z obowiązującą licencją może skutkować dotkliwymi konsekwencjami wskazywanymi w treści licencji, wśród których najpopularniejsze to konieczność wypłaty odszkodowań zarówno twórcy oprogramowania open source, jak i klientowi, który nabył oprogramowanie stworzone przy wykorzystaniu rozwiązań open source.
Czy licencja open source może zostać wypowiedziana
Przy założeniu, że prawem właściwym będzie prawo polskie musimy wziąć pod uwagę z art. 68 ust. 1 ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych („Prawo autorskie”), z którego wynika, iż o ile umowa nie stanowi inaczej, a licencji udzielono na czas nieoznaczony, twórca może ją wypowiedzieć z zachowaniem terminów umownych, a w przypadku ich braku – na rok naprzód, na koniec roku kalendarzowego. Zgodnie zaś z art. 3651 ustawy z dnia 23 kwietnia 1964 r. – Kodeks cywilny -zobowiązanie bezterminowe o charakterze ciągłym wygasa po wypowiedzeniu go przez dłużnika lub wierzyciela z zachowaniem terminów umownych, ustawowych lub zwyczajowych, a w razie braku takich terminów – niezwłocznie po wypowiedzeniu.
Pomijając kwestie prawa właściwego wskazać należy, iż licencja open source jest udzielana na czas nieoznaczony, a licencjodawca nie może jej wypowiedzieć, jednak licencja taka może wygasnąć. Przyczyną wygaśnięcia jest przede wszystkim naruszenie przez licencjobiorcę jakiegokolwiek postanowienia tej licencji.
Zobacz również: Umowa na stworzenie systemu ERP
Model zarządzania projektem i decyzje podejmowane przez społeczność
W przeciwieństwie do tradycyjnych projektów oprogramowania, w społeczności open source decyzje są podejmowane w sposób demokratyczny. W przypadku kluczowych decyzji najczęściej stosowaną opcją jest głosowanie społeczności. Model zarządzania jest rozproszony i oparty na współpracy. Procesy decyzyjne są transparentne, a uczestnicy mają możliwość wyrażania swojego zdania poprzez zgłaszanie propozycji i dyskusji online. Otwarta forma zarządzania nie jest jednak wolna od wyzwań. Często dochodzi do konfliktów związanych z różnicami w wizji projektu, priorytetami czy nawet kwestiami technicznymi.
Różnice w poglądach, stylach pracy, czy nawet osobiste animozje mogą prowadzić do napięć między twórcami open source. Konflikty powinno rozwiązywać się przede wszystkim poprzez otwartą dyskusję. Co istotne – wiele projektów open source posiada własny kodeks postępowania, który określa zasady akceptowalnego zachowania w społeczności, a ich naruszenie może prowadzić do sankcji.
Modele finansowania projektów open source
Polskie prawo nie ogranicza zakresu sposobów finansowania otwartego oprogramowania. Najpopularniejszymi modelami są:
1. Dotacje przyznawane przez fundacje i organizacje – wiążą się z licznymi zobowiązaniami wobec fundatorów, szczególnie pod względem rozliczeniowym;
2. Sponsorowanie – model rozwijany przez przedsiębiorstwa, które korzystają z projektu open source i widzą w nim potencjał;
3. Crowdfunding – społeczność zbiera fundusze pozyskując środki od osób indywidualnych zainteresowanych projektem;
4. Przychody z usług dodatkowych – twórcy oprogramowania open source często generują dochody prowadząc szkolenia, wsparcie techniczne, czy dostosowywanie oprogramowania do indywidualnych potrzeb klientów
Zobacz również: Prawa autorskie do programu komputerowego / kodu źródłowego: dlaczego z prawnego punktu widzenia jest to tak ważne?
Trendy i przyszłość projektów open source
Dynamiczny rozwój sztucznej inteligencji, blockchain, czy computingu kwantowego otwiera nowe możliwości. Blockchain wykorzystuje się do przechowywania kodu źródłowego, zarządzania licencjami, a także do transparentnego rejestrowania zmian dokonywanych przez społeczność. Oferuje duże zabezpieczenia dzięki algorytmom kryptograficznym i rozproszonej naturze sieci.
Rządy wielu krajów zaczynają zauważać korzyści oprogramowania open source, co prowadzi do powstawania nowych projektów wspierających jego rozwój na poziomie państwowym. Coraz popularniejsze są platformy do zdalnego nauczania, czy gry edukacyjne, które stanowią obszar prac społeczności open source.
Zobacz również: AI ACT – najważniejsze informacje
Pytania:
1. Jak zabezpieczyć oprogramowania open source przed atakami hakerskimi?
Przed rozpoczęciem działań zabezpieczających konieczna jest analiza ryzyka i konkretnych zagrożeń – w tym przypadku warto posłużyć się doświadczeniami twórców istniejącego już oprogramowania. Po dopuszczeniu do użytku – należy systematycznie aktualizować oprogramowanie. Warto także wdrożyć model zarządzania bezpieczeństwem np. ISO/IEC 27001, a także wykonywać regularne testy penetracyjne i audyty bezpieczeństwa.
2. Czy licencje open source są uznawane międzynarodowo?
Większość licencji open source są uznawane międzynarodowo. Różnice w ustawodawstwach krajowych dotyczące praw autorskich mogą jednak wpływać na to, jak te prawa są egzekwowane. Deweloperzy planujący wprowadzić swoje oprogramowanie docelowo na rynek międzynarodowy powinny rozważyć inicjatywy takie jak Creative Commons, które tworzą uniwersalne standardy dla licencji.
3. Czy udział w projekcie open source może być zaliczony na poczet doświadczenia zawodowego w branży informatycznej?
Tak. Dla osób dopiero zaczynających karierę w branży informatycznej, udział w projekcie open source może być kluczowy. Nie wymaga dużego nakładu czasu, czy kosztownych szkoleń, a buduje umiejętności praktyczne, a jest dowodem na gotowość do zaangażowania w rzeczywiste projekty. Społeczność open source często docenia zaangażowanie uczestników, co może przełożyć się na referencje od doświadczonych programistów – a tym samym – dobry start na rynku pracy.
Zaufali nam: