Tekst AML AntiMoney Laundering na notatniku i laptopie na drewnianym tle

Licencja GNU GPL v3 – tłumaczenie i zasady użytkowania

7 min. czytania

Licencja GNU General Public License w wersji 3 (GPLv3) to jedna z najważniejszych licencji wolnego i otwartego oprogramowania (FOSS), opracowana przez Free Software Foundation pod kierunkiem Richarda Stallmana i opublikowana jako następca GPLv2 w 2007 roku (pierwsza GPL ukazała się w 1989 roku).

GPLv3 gwarantuje cztery kluczowe wolności: uruchamiania programu w dowolnym celu, badania jego działania dzięki dostępowi do kodu źródłowego, redystrybucji kopii oraz modyfikacji i dystrybucji wersji zmienionych – zawsze na tej samej licencji.

W erze open source GPLv3 pozostaje fundamentem wielu projektów GNU (np. Bash, GCC), chroniąc wolność użytkowników i deweloperów przed zagrożeniami, takimi jak patenty, DRM czy tivoizacja. Ten materiał omawia historię, kluczowe zapisy, zasady użycia, porównanie z innymi licencjami oraz praktyczne wskazówki oparte na źródłach Free Software Foundation (FSF).

Historia i ewolucja licencji GNU GPL

Pierwsza wersja GPL (GPLv1) pojawiła się w 1989 roku jako odpowiedź na postępującą komercjalizację oprogramowania. W 1991 roku wydano GPLv2, wzmacniając ochronę użytkowników. Po 16 latach, w 2007 roku, ukazała się GPLv3 – pierwsza znacząca aktualizacja, przygotowana w 18‑miesięcznym, międzynarodowym procesie konsultacji.

Główne zmiany w GPLv3 dostosowują licencję do współczesnych wyzwań:

  • patenty na oprogramowanie – wprowadzenie klauzuli odwetu patentowego i automatycznej licencji patentowej dla kontrybutorów, co minimalizuje ryzyko agresji patentowej;
  • ochrona przed DRM i tivoizacją – zakaz praktyk uniemożliwiających instalację zmodyfikowanego oprogramowania na dostarczonym sprzęcie, nawet jeśli stosowany jest DRM;
  • międzynarodowy charakter – doprecyzowania zgodne z prawem poza USA, w tym definicje czynności prawnych dotyczących rozpowszechniania;
  • większa kompatybilność – lepsze zgrywanie z innymi licencjami FOSS oraz precyzyjne rozróżnienie pojęć „propagate” (propagowanie) i „convey” (przekazywanie).

GPLv3 dopuszcza przyznawanie dodatkowych uprawnień oraz pewnych dodatkowych warunków (sekcja 7), przy czym nie wolno wprowadzać ograniczeń naruszających prawa przyznane przez licencję.

Tłumaczenie kluczowych zapisów GPLv3

Pełny tekst GPLv3 jest dostępny po polsku na stronie GNU jako nieoficjalne tłumaczenie informacyjne (gnu.org/licenses/gpl-3.0.pl.html). Wiążąca prawnie jest wyłącznie wersja angielska.

Preambuła i wolności użytkownika

Preambuła podkreśla, że celem licencji jest realna ochrona wolności użytkownika i wspólnoty. W praktyce oznacza to cztery nienaruszalne wolności:

  • uruchamianie programu – w dowolnym celu, bez ograniczeń;
  • studiowanie działania – dostęp do pełnego kodu źródłowego umożliwia analizę i naukę;
  • redystrybucja kopii – możesz udostępniać program dalej tym samym lub innym użytkownikom;
  • modyfikacja i dystrybucja zmian – wolno zmieniać kod i publikować wersje pochodne na tej samej licencji.

Sekcja 0 – definicje

„The Program” oznacza każdy program objęty GPLv3 (konkretny utwór), natomiast „convey” (przekazywanie) to czynność udostępnienia programu lub jego kopii innym – pojęcie szersze i precyzyjniejsze niż „distribute” znane z GPLv2.

Sekcja 2 – podstawowe wolności

Każda dystrybucja zmodyfikowanej wersji musi oferować licencję GPL wszystkim stronom trzecim, a modyfikacje powinny być wyraźnie oznaczone wraz z udostępnieniem źródła.

Sekcje 4–6 – udostępnianie źródła

Jeśli przekazujesz binaria (np. pliki wykonywalne), musisz zapewnić równoważny, łatwy dostęp do pełnego kodu źródłowego – w tym skryptów budujących i instalacyjnych – w tym samym miejscu i bez dodatkowych obostrzeń.

Przykład: dystrybuując pakiet binarny na swojej stronie, udostępnij obok niego archiwum ze źródłami lub ważną ofertę dostępu przez sieć.

Sekcje 7–8 – patenty i kompatybilność

Kontrybutorzy automatycznie udzielają licencji patentowej na swój wkład w wersję kontrybutora. Łączenie z innymi licencjami jest dozwolone tylko wtedy, gdy spełnione są warunki kompatybilności i nie narusza to postanowień GPLv3.

Sekcja 13 (AGPLv3, wariant sieciowy)

W przypadku AGPLv3 oprogramowanie udostępniane wyłącznie przez sieć musi zapewniać użytkownikom zdalnym dostęp do kodu źródłowego poprzez interfejs sieciowy.

Dodatkowe klauzule

„W wersji 3 lub dowolnej późniejszej” – dołączenie takiej formuły w nagłówku licencji projektu pozwala skorzystać w przyszłości z ewentualnych aktualizacji FSF.

Opłaty – możesz pobierać wynagrodzenie za nośnik, dystrybucję, wsparcie lub gwarancję, ale nie możesz nakładać dodatkowych ograniczeń licencyjnych odbierających użytkownikom prawa wynikające z GPLv3.

Zasady użytkowania GPLv3 – krok po kroku

GPLv3 to licencja o silnym copyleft: prace pochodne i komponenty łączone w jeden program muszą być licencjonowane na warunkach GPLv3. Oto praktyczne reguły:

  1. Używanie prywatne – możesz kopiować i uruchamiać program bez ograniczeń i bez obowiązku udostępniania źródła;

  2. Modyfikacje – dokumentuj zmiany w kodzie; dystrybuuj zmodyfikowane wersje wyłącznie na GPLv3, z wyraźnym oznaczeniem modyfikacji;

  3. Dystrybucja binariów – zapewnij pełne źródła (wraz z plikami build/instalacyjnymi, np. Makefile) w sposób równoważny do udostępniania binariów;

  4. Łączenie z innymi kodami – oto krótkie zestawienie:

    Scenariusz Wymaganie GPLv3
    Statyczne linkowanie z kodem GPLv3 cały program musi być na GPLv3
    Dynamiczne linkowanie z biblioteką LGPLv3 dozwolone bez „zakażania” programu; biblioteka pozostaje na LGPLv3
    Udostępnianie wyłącznie przez sieć (AGPLv3) źródło musi być dostępne użytkownikom sieciowym
  5. Sprzęt i DRM – zabronione jest uniemożliwianie instalacji zmodyfikowanego oprogramowania (tivoizacja), nawet gdy obowiązują mechanizmy DRM;

  6. Patenty – przekazując program, udzielasz licencji patentowej na swój wkład; naruszenie praw patentowych może unieważnić twoje uprawnienia na mocy GPLv3.

Nie możesz ukrywać źródeł ani nakładać dodatkowych ograniczeń licencyjnych odbierających użytkownikom prawa z GPLv3; łączenie z kodem zamkniętym w sposób tworzący jeden program wymaga zgodności z copyleft (w przeciwnym razie jest niedozwolone).

Porównanie GPLv3 z pokrewnymi licencjami

Dla szybkiego porównania charakteru copyleft i zastosowań zobacz poniższą tabelę:

Licencja Copyleft Zakres Kluczowa cecha Przykłady
GPLv3 silny (cały program) binarne + źródło przy dystrybucji ochrona przed DRM i tivoizacją, klauzule patentowe Bash, GCC
LGPLv3 słabszy (głównie biblioteki) kompatybilna z oprogramowaniem właścicielskim dynamiczne linkowanie bez rozszerzania copyleft na całość wybrane biblioteki systemowe
AGPLv3 silny + warunek sieciowy aplikacje web/serwerowe źródło także dla użytkowników zdalnych oprogramowanie SaaS

Na tle licencji permisywnych (np. MIT, Apache-2.0) GPLv3 jest bardziej wymagająca, ale skuteczniej chroni wolność użytkowników i społeczności.

Często zadawane pytania (FAQ) i pułapki

Na podstawie oficjalnego FAQ FSF warto pamiętać o następujących kwestiach:

  • czy GPLv3 wpływa na urządzenia specjalnego przeznaczenia – licencja dotyczy wyłącznie dystrybuowanego oprogramowania; sama w sobie nie nakazuje zmian w sprzęcie (poza zakazem tivoizacji przy dystrybucji oprogramowania na nim);
  • relacja z AGPLv3 po stronie klienta – klienci łączący się z usługą AGPLv3 nie muszą udostępniać źródła serwerowi, o ile sami nic nie udostępniają użytkownikom sieciowym;
  • uruchamianie bez dystrybucji – wyłącznie lokalne użycie nie rodzi obowiązków udostępniania kodu źródłowego;
  • typowe pułapki – niejasności wokół dodatkowych warunków z sekcji 7, kwestie DRM w urządzeniach o krytycznym znaczeniu oraz błędne przekonanie, że nie wolno pobierać żadnych opłat (wolno, byle nie naruszać praw z GPL).

Wpływ GPLv3 na branżę i przyszłość

GPLv3 wciąż kształtuje ekosystem open source, zapewniając równowagę między swobodą użytkowników a wymogami transparentności dla dystrybutorów. Niektóre organizacje unikają jej w określonych komponentach z powodu konsekwencji silnego copyleft dla modeli biznesowych, jednak wiele nowych projektów świadomie wybiera GPLv3 lub nowszą, aby trwale zabezpieczyć wolności użytkowników i społeczności.

Grzegorz Kuzia
Grzegorz Kuzia

Redaktor naczelny Poland IT Hub. Od ponad 8 lat zajmuję się testowaniem sprzętu, recenzowaniem gier i tworzeniem praktycznych poradników technologicznych. Specjalizuję się w wirtualnej rzeczywistości, aplikacjach mobilnych oraz cyberbezpieczeństwie. Moją misją jest pokazywanie, że technologia może być prosta i dostępna dla każdego – bez żargonu i komplikacji.