chevron-left chevron-right

Piotr Nalepa Frontend, architecture and AI

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

This version
blog.piotrnalepa.pl/2017/03/02/ktory-rodzaj-licencji-wybrac-dla-swojego-nastepnego-projektu
Published
Author
, Staff Software Engineer
Categories
DSP2017, Other
Feedback
Write to me · Post on X

This post is 9 years old. Browsers and tools may have changed since then, so check the code against current documentation before you use it.

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.

Section 1Licencja 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

Section 2Licencja 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.

Section 3GNU 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.

Section 4Podsumowanie

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.

Share
Feedback

About the author

Staff Software Engineer

I've been writing this blog since 2009 and building for the web professionally for 14 years. Today I lead the frontend of the Cosmos platform at Bishop Fox, where I've been since day one of the project. Before that I worked at OLX, KUDO, Auto1 and eZ Systems. Here I write about what I've learned in practice: JavaScript, TypeScript, React, CSS and frontend architecture. I've also spoken at conferences across Poland and Europe. Got a question or an idea for a post? Let me know!