www.czarnaowca.it
Licencja to element prawa do własności intelektualnej, która umożliwia nam wykorzystywanie jakiegoś tworu w jakiś zdefiniowany sposób. W sytuacji jak kupujemy płytę z muzyką, uzyskujemy licencję na niekomercyjne wykorzystanie na użytek własny – czyli nie możemy takiej muzyki puścić w klubie jako DJ, ale możemy ją słuchać w aucie, czy w domowym zaciszu. Podobnie jest z oprogramowaniem. jeżeli kupujemy licencję na program, np.: na grę komputerową – możemy w nią grać, ale nie możemy jej udostępniać i rozpowszechniać – to już nazywamy piractwem komputerowym.
W świecie systemu o otwartym kodzie źródłowym też nie można robić wszystkiego co nam się żywnie podoba. Każde oprogramowanie posiada swoją licencję, niezależnie czy mówimy tutaj o WordPress, Linux, OpenOffice, czy Kubernetes.
Zależnie od intencji twórców, są licencje bardziej liberalne lub konserwatywne w kwestii dostępności do darmowego oprogramowania. To co jest darmowe, nie zawsze nam umożliwia wykorzystanie komercyjne danego oprogramowania.
Ostatnimi czasy w świecie open source zawrzało w temacie licencji. WordPress okazał się zbyt mało liberalny, gdy główny twórca pokłócił się z popularnym dostawcą hostingowym. Redis już nie można oferować jako usługę, więc warto poszukać alternatyw. Terraform do zaawansowanych tematów wymaga płacenia.
Czytałem jakiś czas temu problem jaki posiadało Allegro, gdyż przez licencję nie mogli wykorzystać w swoim produkcie biblioteki, która całkowicie rozwiązywałaby ich problem – i musieli tworzyć własne rozwiązanie. Mimo gotowego rozwiązania, nie można było go wykorzystać.
Z tych właśnie powodów warto wiedzieć coś o licencjach Open Source i co można z nimi robić, a czego nie można.
Najpopularniejsze licencje Open Source
Licencja MIT
Jest to jedna w najstarszych i najbardziej popularnych licencji. Powstała Massachusetts Institute of Technology i jest praktycznie idealna do każdego zastosowania.
Na tej licencji są udostępniane takie rozwiązania jak biblioteki React, jQuery, czy Bootstrap, a także Ruby on Rails.
W jej ramach możemy dane oprogramowanie wykorzystywać, modyfikować i dystrybuować kod w praktycznie każdej postaci, choćby w projektach komercyjnych. Jedyne co musimy uwzględnić to zachowanie informacji o prawach autorskich i wyłączenie odpowiedzialności przez twórców.
Apache License 2.0
Licencja stworzone przez Apache Software Foundation w 2004 roku, która również jest bardzo liberalna. Wymaga dołączenia informacji o zmianach oraz licencji w dokumentacji, ale za to można wykorzystywać oprogramowanie komercyjnie, można oprogramowanie modyfikować, a choćby sublicencjonować, jednocześnie zachowując ochronę patentową.
Najpopularniejsze oprogramowanie, które korzysta z tej licencji to praktycznie wszystko czym opiekuje się fundacja, np.: Hadoop, ale również popularny soft jak Kubernetes. Z ciekawostek warto zaznaczyć, iż do 2021 roku z licencji Apache 2.0 korzystał Elastic Search, po czym zmienili licencję na SSPL, która drastycznie ogranicza możliwości wykorzystania Elastic Search. W odpowiedzi, Amazon wypiął się na firmę Elastic i stworzył OpenSearch.
Licencja BSD
Grupa licencji wykorzystywanej i stworzonej przez firmę Berkeley.
BSD 3-Clause License (New BSD)
Wywodzi się od oryginalnej licencji BSD, używanej w systemach BSD. Można to oprogramowanie wykorzystywać komercyjnie, można oprogramowanie modyfikować. Nie wolno jedynie używać nazw autorów do celów promocyjnych bez zgody autorów.
Przykładem systemu co korzysta to już wspomniane systemy z rodziny BSD, ale także najpopularniejsza baza danych – PostgreSQL.
BSD 2-Clause License (uproszona BSD)
Jest to praktycznie to samo co BSD3, ale bez klauzyli reklamowej. Wykorzystuje to przykładowo system OpenBSD.
GNU General Public License
Kolejna rodzina licencji, tym razem autorstwa Free Software Foundation. Powstają od 1989 roku i w tej chwili jest wykorzystwane wiele jej odmian.
Główne licencje GNU GPL
Obecnie jest dostępna w dwóch wersjach, 2.0 oraz 3.0. Pozwala na modyfikacje i rozpowszechnianie kodu pod warunkiem zachowania otwartości źródeł. Nie można integrować z zamkniętym oprogramowaniem – co oznacza obowiązkowe udostępnianie kodu również jako open source.
Oprogramowanie co korzysta z tego to między innymi WordPress, Linux, czy Blender.
GNU Lesser General Public License
Licencja GNU GPL nie jest mocno konserwatywna i stoi na straży, by wszystko co korzysta z licencji, było również OpenSource. Z tego powodu powstała licencja LGPL, która stanowi kompromis między GPL, a bardziej liberalnymi licencjami jak MIT, czy BSD.
Dzięki temu można tak jak w GPL, modyfikować i wykorzystywać komercyjnie oprogramowanie, ale jedyne zmiany dostępne publicznie muszą dotyczyć zmian w oryginalnym kodzie źródłowym.
Wykorzystują to projekty takie jak FFmpeg, czy LibreOffice.
Affero General Public License
AGPL to odpowiedź na zmieniający się świat. Licencja GPL dotyczy oprogramowania, ale aktualnie mocno stoi model SaaS aplikacji, więc aplikacje nie są uruchamiane na komputerze użytkownika. Z tego powodu powstała wersja Affero, która uwzględnia właśnie oprogramowanie SaaS, wymuszając publikację kodu.
Wykorzystuje ją np.: Min.IO, Bacula, czy Grafana, a do 2018 roku również MongoDB, które niestety przeszło na SSPL.
Licencja Mozilla Public License
Licencja stworzona przez fundację Mozilla na potrzeby swojego oprogramowania, aktualnie dostępna w wersji 2.0
Pozwala ona wykorzystywać komercyjnie oprogramowanie, a choćby mieszać je z zamkniętym kodem, ale wszystkie zmiany w oryginalnym kodzie muszą być otwarte.
Firefox, czy Thunderbird właśnie korzysta z tej licencji.
Inne licencje
Istnieje również wiele innych, mniej popularnych licencji takich jak ISC (OpenSSH, alternatywa dla BSD), zLib (libpng), czy Python License (Python).
Są również śmieszne licencje jak „Do What The F*ck You Want To Public License”, która chyba nie wymaga opisu. Hot Potato License – gdzie odpowiedzialność za aplikację przejmuje osoba, która jako ostatnia wprowadzała zmiany. Czy po prostu brak licencji.
Licencje „Open” dotyczą również innych zasobów, np.: czcionek (np.: licencja SIL), czy muzyki i grafiki (Creative Commons).
Podsumowanie
Odpowiedni dobór licencji to klucz do tego co potem będziemy mogli z danym oprogramowaniem. Nie zawsze możemy wykorzystywać wszystko tak jak byśmy tego chcieli, czasem będziemy musieli iść na pewien kompromis lub zrezygnować z użytku danego elementu.
Zastanawiam się, kiedy ostatni raz sprawdziłeś, czy możesz korzystać z danej biblioteki lub rozwiązania ze względu na licencję?