chevron-left chevron-right

Który rodzaj licencji wybrać dla swojego następnego projektu?

Decydując się na stworzenie nowego projektu, który planujesz udostępniać w sieci, np. za pomocą Github.com, musisz rozważyć kilka rzeczy. Musisz podjąć decyzję czy zezwalasz na bezpłatne używanie Twojego kodu w innych projektach, jakie mają być warunki rozpowszechniania kodu, itd., itp.

W swoich prywatnych projektach najczęściej korzystam z licencji MIT który pozwala na wykorzystanie kodu w różnych innych projektach zarówno prywatnych jak i komercyjnych, jedyne co trzeba zrobić to zachować informacje odnośnie licencji i prawach autorskich kodu. Oprócz licencji MIT istnieją również licencje Open Source takie jak: Apache License 2.0, GNU GPLv3 i inne. W tym wpisie omówię kilka z nich, z którymi spotykam się najczęściej.

Licencja MIT

Najprostsza z licencji. Wymaga zachowania informacji o licencji danego kawałka kodu oraz zachowania informacji o prawach autorskich. Ktokolwiek wykorzysta kawałek kodu objęty tą licencją nie będzie mógł wymagać jakichkolwiek gwarancji od autora kodu. Licencja pozwala na wykorzystanie kodu w projektach prywatnych jak i komercyjnych. Pozwala na dokonywanie zmian w kodzie źródłowym i dalsze rozpowszechnianie kodu.

Zezwolenia:
  • Użytek komercyjny,
  • Użytek prywatny,
  • Modyfikowanie kodu,
  • Dalsze rozpowszechnianie.
Warunki:
  • Zachowana informacja o licencji kodu,
  • Zachowana informacja o autorstwie kodu.
Ograniczenia:
  • Brak odpowiedzialności za skutki użycia kodu,
  • Brak gwarancji na działanie kodu.

Korzystają z tej licencji: jQuery, .NET Core, Rails, DragsterJS

Licencja Apache 2.0

Zasady tej licencji są właściwie takie same jak licencji MIT z jednym wyjątkiem: osoba korzystająca z oprogramowania na tej licencji otrzymuje od twórcy oprogramowania zezwolenie na użycie jego patentów w oprogramowaniu licencjobiorcy. Jednakże, jeśli licencjobiorca wytoczy proces patentowy twórcy oprogramowania to licencja na patenty twórcy zostaje cofnięta licencjobiorcy. Dodatkowo, zabronione jest używanie znaków handlowych w celach komercyjnych. Jedyne miejsce gdzie można użyć znako handlowego autora, to informacja o wykorzystanych narzędziach.

Zezwolenia:
  • Użytek komercyjny,
  • Użytek prywatny,
  • Modyfikowanie kodu,
  • Dalsze rozpowszechnianie,
  • Wykorzystanie patentów.
Warunki:
  • Zachowana informacja o licencji kodu,
  • Zachowana informacja o autorstwie kodu,
  • Zmiany w kodzie w stosunku do wersji podstawowej powinny być udokumentowane.
Ograniczenia:
  • Brak odpowiedzialności za skutki użycia kodu,
  • Brak gwarancji na działanie kodu,
  • Brak możliwości wykorzystania znaków handlowych autora kodu.

Korzystają z tej licencji: Android, Apache, Swift.

GNU GPL v3.0

Największą zmianą w stosunku do wcześniej wymienionych licencji jest wymóg aby jakiekolwiek modyfikacje kodu źródłowego były udostępniane na tej samej licencji co kod źródłowy. Dodatkowo, kod źródłowy powinien być dostępny dla każdego zainteresowanego.

Zezwolenia:
  • Użytek komercyjny,
  • Użytek prywatny,
  • Modyfikowanie kodu,
  • Dalsze rozpowszechnianie,
  • Wykorzystanie patentów.
Warunki:
  • Zachowana informacja o licencji kodu,
  • Zachowana informacja o autorstwie kodu,
  • Zmiany w kodzie w stosunku do wersji podstawowej powinny być udokumentowane,
  • Zmodyfikowany kod powinien być udostępniany na tej samej licencji,
  • Kod źródłowy powinien być dostępny dla każdego.
Ograniczenia:
  • Brak odpowiedzialności za skutki użycia kodu,
  • Brak gwarancji na działanie kodu.

Korzystają z tej licencji: Bash, Gimp.

Podsumowanie

Omówiłem 3 licencje: MIT, Apache 2.0 oraz GNU GPL v3.0. Musisz jednak wiedzieć, że rodzajów licencji Open Source jest bardzo dużo. Ich pełną listę możesz znaleźć na tej stronie: https://opensource.org/licenses. Jeśli dalej nie wiesz na jakiej licencji udostępnić swój kod, to proponuję zacząć od licencji MIT. Jeśli potem uznasz, że jednak chcesz zmienić licencję to nic nie stoi na przeszkodzie aby to zrobić. Warto wtedy wprowadzić odpowiednie numerowanie swojego kodu, np. za pomocą semver.