Główne logo strony
📅

Licencje Open Source – przegląd oraz omówienie

Projekty Open Source zyskują coraz większość popularność w dzisiejszych czasach. Decydując się na rozpoczęcie własnego otwartego projektu (bądź przekazując już istniejący komercyjny produkt w ręce społeczności programistów) jedną z decyzji którą będziemy musieli podjąć jest rodzaj licencji. Licencje w projekcie Open Source może wydawać się dość mało istotną sprawą – w końcu upubliczniamy nasz kod, jednak warto wiedzieć jakich licencji możemy używać i co możemy dzięki nim zyskać. Jest to również przydatna wiedza w przypadku gdy chcemy z takiegoż projektu skorzystać i nie chcemy narazić się jego twórcy.

OSI

Jeszcze słowem wstępu dodam, iż jednostką odpowiedzialną za definiowanie licencji dla projektów Open Source jest Open Source Initiative (OSI). OSI jest organizacją działającą od 1998 roku której celem jest popularyzowanie otwartych projektów oraz definiowanie jakie kryteria muszą być spełnione przez projekt, aby ten został uznany za projekt Open Source.

Jeżeli ktoś jest ogromnym miłośnikiem tej idei oraz czuje potrzebę popularyzowana tego typu projektów – już za jedyne 40$ rocznie możemy stać się pełnoprawnymi członkami w/w organizacji. Więcej informacji można znaleźć pod tym linkiem.

Licencje

Omówimy sobie dzisiaj pięć najbardziej popularnych licencji:

  • GNU General Public License (GPLv3)
  • GNU General Public License (GPLv2)
  • Apache 2.0
  • Berkeley Software Distribution (BSD)
  • MIT

GNU General Public License (GPLv3)

Licencja GPLv3 jest najbardziej restrykcyjną z omawianych dzisiaj licencji. Chroni ona w znacznym stopniu autora oprogramowania i narzuca sporo ograniczeń na osoby chcące z tego kodu skorzystać.

Największe ograniczenia:

  • każdy projekt korzystający z dowolnego innego projektu z licencją GPLv3 musi być otwarty i dostępny publicznie,
  • każdy nowy projekt bazujący na programie objętym licencją GPL musi również być wydany w oparciu o tą licencję,
  • wszelkie zmiany dokonane w kodzie źródłowym muszą zostać udokumentowane,
  • jeżeli użyliśmy naszego własnego opatentowanego dzieła podczas tworzenia oprogramowania wydanego pod licencją GPLv3, automatycznie dajemy prawo do korzystania z tego dzieła użytkownikom oprogramowania.

Licencja GPLv2 od GPLv3 różni się jedynie zapisem dotyczącym praw patentowych. Punkt ten został dodany w wersji trzeciej, aby uniemożliwić organizacjom pobieranie opłat za użytkowanie ich patentów (było to związane z kontrowersyjnym porozumieniem Microsoftu oraz firmy Novell).

Popularnymi projektami korzystającymi z GPLv3 jest Bash, GIMP. Przykładem produktu wydanego pod licencją GPLv2 jest Linux.

Apache License 2.0

Nieco bardziej otwartą na użytkownika jest licencja Apache 2.0. Jej główne założenia to:

  • kod źródłowy aplikacji korzystającej z projektów wydanych pod tą licencją nie musi otwarty,
  • modyfikacje projektów mogą zostać wydane pod dowolną wybraną przez nas licencją,
  • wszelkie zmiany dokonane w kodzie źródłowym projektu muszą zostać udokumentowane,
  • prawa patentowe zostają takie same jak w przypadku GPLv3,
  • wyraźnie zakazuje ona używania nazw handlowych znalezionych w projekcie.

Android, Swift oraz Apache (a jakże) – wszystkie te projekty są wydane wraz z licencją Apache 2.0

Berkeley Software Distribution (BSD)

BSD daje nam jeszcze więcej swobody niż Apache 2.0. W tym przypadku musimy pamiętać o następujących rzeczach:

  • kod źródłowy aplikacji korzystającej z projektów wydanych pod tą licencją nie musi otwarty,
  • modyfikacje projektów mogą zostać wydane pod dowolną wybraną przez nas licencją,
  • wszelkie zmiany dokonane w kodzie źródłowym projektu mogą, ale nie muszą zostać udokumentowane,
  • BSD nie zawiera wyraźnego stanowiska w sprawie wykorzystania patentów,
  • licencja oraz wzmianka copyright musi zostać umieszczona w dokumentacji skompilowanej już wersji kodu źródłowego,
  • nazwiska autorów oraz osób wspierających rozwój projektu (nie wiem jak inaczej przetłumaczyć contributors ) pod licencją BSD nie mogą zostać użyte bez ich zgody.

Przykłady projektów z licencją BSD – Go, Pure.css, Sentry, FreeBSD.

MIT

Licencja która cieszy wszystkich użytkowników otwartych projektów – jest najmniej rygorystyczną i jednocześnie obecnie najpopularniejszą licencją w świecie Open Source.

Główne założenia:

  • kod źródłowy aplikacji korzystającej z projektów wydanych pod tą licencją nie musi otwarty,
  • modyfikacje projektów mogą zostać wydane pod dowolną wybraną przez nas licencją,
  • wszelkie zmiany dokonane w kodzie źródłowym projektu mogą, ale nie muszą zostać udokumentowane,
  • brak praw patentowych.

Angular.js, jQuery, Rails, Bootstrap oraz React – to tylko nieliczne przykłady projektów wydanych pod licencją MIT.

Mam nadzieję, że z tą wiedzą już dużo łatwiej będzie każdemu przeglądać repozytoria projektów Open Source i jednak od czasu do czasu zwracać uwagę na sekcję License. Licencje Open Source mimo, iż wydają się mało istotne, mogą przynieść nam sporo problemów z prawem.

Porównanie licencji i wybór odpowiedniej dla Twojego projektu

Wybór odpowiedniej licencji dla Twojego projektu może być kluczowy, ponieważ wpływa na sposób, w jaki inni mogą korzystać z Twojego kodu. Istotne jest, aby dobrze zrozumieć różnice między licencjami oraz ich ograniczenia.

Oto porównanie najpopularniejszych licencji open source:

WymaganiaGPLv3Apache 2.0BSDMIT
Otwartość koduWymaganyNie wymaganyNie wymaganyNie wymagany
ModyfikacjeMuszą być GPLDowolna licencjaDowolna licencjaDowolna licencja
Dokumentacja zmianWymaganaWymaganaOpcjonalnaOpcjonalna
Prawa patentoweZabezpieczoneZabezpieczoneBrak wytycznychBrak wytycznych
Wzmianka copyrightWymaganaWymaganaWymaganaWymagana
Użycie nazwOgraniczoneOgraniczoneOgraniczoneBez ograniczeń

Przed podjęciem decyzji o wyborze licencji dla swojego projektu, zastanów się, jakie są Twoje cele, jak chcesz, aby inni korzystali z Twojego kodu, a także jakie są Twoje wymagania dotyczące dokumentacji i praw patentowych. Pamiętaj, że zawsze możesz zmienić licencję w przyszłości, ale może to być trudniejsze, jeśli Twój projekt zdobędzie dużą liczbę współtwórców lub użytkowników.

Wnioski

Licencje Open Source są istotnym elementem świata otwartego oprogramowania. Wybór odpowiedniej licencji dla Twojego projektu może mieć znaczenie zarówno dla Ciebie, jako autora, jak i dla innych programistów, którzy chcą korzystać z Twojego kodu. Mam nadzieję, że ten artykuł pomoże Ci lepiej zrozumieć różne rodzaje licencji Open Source oraz jak je wykorzystać w praktyce. Pamiętaj, że odpowiednia licencja może zapewnić Ci kontrolę nad tym, jak Twój kod jest wykorzystywany, jednocześnie umożliwiając rozwój i współpracę z innymi programistami. Warto więc poświęcić chwilę, aby dokładnie rozważyć swoje opcje, zanim zdecydujesz się na konkretną licencję.

Inne licencje Open Source

Omówiliśmy pięć najbardziej popularnych licencji Open Source, ale istnieje wiele innych, które warto poznać. Niektóre z nich to:

  • GNU Lesser General Public License (LGPL): Jest to licencja podobna do GPL, ale mniej restrykcyjna. Pozwala na łączenie kodu objętego licencją LGPL z kodem objętym innymi licencjami, bez konieczności ujawnienia całego kodu źródłowego. LGPL jest często używana dla bibliotek, które mają być wykorzystywane przez różne projekty.
  • Mozilla Public License (MPL): Jest to licencja, która oferuje równowagę między GPL a licencjami typu BSD/MIT. Wymaga udostępnienia zmodyfikowanego kodu źródłowego, ale pozwala na łączenie kodu objętego licencją MPL z kodem objętym innymi licencjami.
  • Eclipse Public License (EPL): EPL jest licencją, która pozwala na otwarte udostępnienie kodu, ale jednocześnie chroni prawa autorskie i prawa własności intelektualnej. EPL pozwala na łączenie kodu objętego licencją EPL z kodem objętym innymi licencjami, ale wymaga udostępnienia zmodyfikowanego kodu źródłowego.
  • Creative Commons (CC): Creative Commons to organizacja non-profit, która oferuje zestaw licencji umożliwiających twórcom udostępnianie swoich dzieł. Licencje Creative Commons są często stosowane w przypadku treści, takich jak zdjęcia, filmy, muzyka czy teksty, ale mogą być również stosowane do kodu źródłowego.

Zawsze warto sprawdzić, czy istnieje licencja, która lepiej pasuje do Twojego projektu. Pamiętaj, że wybór licencji może wpłynąć na dalszy rozwój Twojego projektu i jego atrakcyjność dla innych programistów. Niezależnie od tego, którą licencję wybierzesz, kluczowe jest przestrzeganie jej zasad i zrozumienie, jak wpływa ona na prawa autorskie, prawa własności intelektualnej oraz sposób, w jaki Twój kod może być wykorzystywany przez innych.

Masz uwagi lub sugestie do tego wpisu?

discord iconPrzejdź na Discord