🐧 Linux

MIT kontra GPL kontra Apache

Trzy licencje, trzy reguły gry. Co wolno zrobić z kodem, a czego nie.

5 min czytania
MIT kontra GPL kontra Apache

Kiedy pierwszy raz wystawiłem własny kod do internetu, doszedłem do pliku o nazwie LICENSE i się zatrzymałem. Wszystko do tego momentu było problemem inżynierskim. To był problem prawny, a mój odruch — skopiować to, czego używają popularne projekty — był dokładnie tym odruchem, który później sprowadza na ludzi kłopoty.

Przeczytałem więc porządnie te trzy, które mają znaczenie, raz. Są krótsze, niż się spodziewasz, i kodują trzy naprawdę różne poglądy na to, co powinno się dziać z pracą, którą rozdajesz. Ten tekst jest o tym wyborze od strony autora — co rozstrzygasz, wybierając licencję dla własnego kodu, i dlaczego kernel wybrał tę, którą wybrał.

Pytanie, na które odpowiadają wszystkie trzy

Bez licencji kod, który publikujesz, nie jest wolny do użycia. Prawo autorskie działa domyślnie, a domyślnie znaczy, że nikt inny nie może legalnie kopiować, modyfikować ani rozpowszechniać Twojej pracy. Publiczne repozytorium bez pliku licencji jest eksponatem muzealnym: patrzeć, nie dotykać. Ludzie nagminnie to mylą i jest to najbardziej brzemienna w skutki rzecz do wiedzenia przed czymkolwiek innym.

Licencja jest więc nadaniem: Ty, posiadacz praw, pozwalasz innym robić określone rzeczy. Trzy popularne różnią się niemal wyłącznie w jednym wymiarze — w tym, czego wymagasz w zamian.

MIT — bierz, tylko nie miej do mnie pretensji

Licencja MIT ma jakieś sto siedemdziesiąt słów, a mniej więcej połowa z nich to wyłączenie odpowiedzialności. W treści mówi: rób z tym, co chcesz — używaj, zmieniaj, sprzedawaj, wstaw do zamkniętego produktu komercyjnego — pod warunkiem, że zachowasz notę o prawach autorskich i rozumiesz, że nie ma tu żadnej gwarancji.

I to wszystko. Żadnego obowiązku dzielenia się zmianami, żadnego obowiązku publikowania czegokolwiek, żadnych warunków co do tego, z czym to łączysz. To najbardziej pozwalająca rzecz, jaką możesz zrobić, nie oddając praw całkowicie.

Wybierz ją, kiedy chcesz maksymalnego rozpowszechnienia i naprawdę nie obchodzi Cię, co stanie się dalej. Biblioteka, którą chcesz mieć w jak największej liczbie produktów, narzędzie napisane dla siebie i publikowane z uprzejmości, wszystko, gdzie celem jest użyteczność, a nie wzajemność. Kompromis, na który się godzisz, jest realny: ktoś może wziąć Twoją pracę, istotnie ją ulepszyć, sprzedawać ulepszoną wersję i nie być Ci winnym nic poza linijką w pliku z podziękowaniami.

GPL — bierz, ale wtedy to zostaje otwarte

GPL nadaje te same wolności i dokłada jeden warunek, zwykle nazywany copyleft. Jeśli rozpowszechniasz oprogramowanie zbudowane na kodzie GPL, musisz rozpowszechniać je na tych samych warunkach, z dostępnym źródłem. Wolność podróżuje razem z kodem i nie da się jej od niego oderwać.

Słowo, po które ludzie tu sięgają, to „wirusowa", zwykle z kwaśną miną. Uważam, że to ujęcie zaciemnia mechanizm, więc powiem wprost: GPL jest wymianą. Dostajesz nagromadzoną pracę wszystkich przed Tobą pod warunkiem, że wszyscy po Tobie dostaną Twoją. Nikt nie jest zmuszony do przyjęcia tej wymiany — możesz po prostu nie użyć tego kodu — ale nie możesz wziąć jednej jej strony bez drugiej.

Jedna granica jest warta zapamiętania, bo bywa nagminnie mylona: obowiązek wiąże się z rozpowszechnianiem, nie z używaniem. Uruchomienie oprogramowania na GPL wewnątrz firmy, zmodyfikowanego dowolnie, nie uruchamia niczego. Źródła jesteś winien tylko tym, komu to oprogramowanie wydajesz. Dlatego firma może wewnętrznie utrzymywać mocno przerobionego Linuksa i nie opublikować z niego nic, całkowicie legalnie.

Apache 2.0 — pozwalająca, z odpowiedzią na kwestię patentów

Apache 2.0 należy do tej samej pozwalającej rodziny co MIT: używaj, zmieniaj, zamykaj, sprzedawaj. Jest dłuższa z jednego merytorycznego powodu — zajmuje się wprost patentami.

Współtwórcy udzielają Ci licencji na patenty obejmujące ich wkład, a jeśli pozwiesz kogoś o patenty w tym oprogramowaniu, Twoje własne nadanie wygasa. MIT milczy w tej sprawie, co w praktyce znaczy, że współtwórca mógłby wnieść kod, a później dochodzić patentu na technikę, którą ten kod realizuje. Rzadkie, ale nie teoretyczne, i na tyle istotne, że prawnicy korporacyjni mają tu wyraźną preferencję.

Wybierz Apache, kiedy praca może trafić w okolice produktów komercyjnych, a wolisz, żeby kwestia patentów została rozstrzygnięta w dokumencie, a nie na sali sądowej. To MIT ze spiłowanymi rogami, a dodatkowa objętość kupuje dokładnie to.

Dlaczego kernel jest na GPL i co z tego wyniknęło

To jest ta część, która zmieniła mój sposób myślenia o tym wyborze.

Licencja kernela została ustalona wcześnie i świadomie, a konsekwencję widać trzydzieści pięć lat później. Firmy budujące na nim produkty — producenci routerów, telefonów, sprzętu AGD, każdy wypuszczający urządzenia wbudowane — muszą udostępnić swoje modyfikacje kernela. Nie cały produkt, ale tę część. Co znaczy, że usprawnienia zrobione dla telewizora trafiają do serwera, a usprawnienia zrobione dla superkomputera trafiają do laptopa z 2016 roku.

To jest mechanizm stojący za czymś, na czym opieram się komercyjnie. Powód, dla którego porzucona przez producenta maszyna wciąż ma działające sterowniki, jest taki, że kodu obsługującego jej sprzęt nie mogła po cichu zagrodzić żadna z firm, które go używały. Gdyby kernel był na MIT, każdy duży producent miałby zarówno możliwość, jak i handlowy motyw, żeby utrzymywać prywatną odnogę, a dekady usprawnień leżałyby w dziesiątkach osobnych sejfów.

Chcę uważać, żeby nie zamienić tego w ranking moralny, bo licencje pozwalające dały własne wyniki, z których korzystam codziennie — spora część hydrauliki internetu jest na licencjach pozwalających i jest wszędzie właśnie dlatego, że przyjmuje się ją bez tarcia. Te dwie filozofie wyprodukowały różne rzeczy. Copyleft zbudował wspólne dobro, którego nie dało się zagrodzić. Licencje pozwalające zbudowały infrastrukturę, która rozeszła się bez oporu. Obie zadziałały, przy innych zadaniach.

Pytanie, które trzeba zadać o własny kod, nie brzmi więc, która licencja jest najlepsza. Brzmi: jeśli ktoś to weźmie, ulepszy i zamknie wynik, czy stracę coś, na czym mi zależało? Odpowiedz uczciwie. Jeśli tak, copyleft. Jeśli nie, licencja pozwalająca, a wybierz Apache zamiast MIT, jeśli patenty są gdziekolwiek w pobliżu Twojej dziedziny. To jest cała decyzja i zajęło mi wieczór czytania, żeby móc ją podjąć świadomie, a nie przez naśladownictwo.

Chcesz Linuxa na biurku, a nie tylko na ekranie?

Dostarczamy odnowione komputery Dell OptiPlex z Linuxem Mint już zainstalowanym, zaktualizowanym i gotowym do pracy — z klawiaturą i myszą w zestawie. W Białymstoku i okolicach przywozimy i konfigurujemy na miejscu. Albo wyślij nam maszynę, którą już masz, a zrobimy to samo z nią.