- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny Listopad 1997

GNU General Public License Version 2

Jan Hubička, 28. října 1997

Dokument General Public License (dále jen GPL) vytvořil Richard Stallman na začátku projektu GNU v roce 1989. Jejím úkolem bylo přesně specifikovat, co GNU považuje za free software a chránit programy pod GPL před pozdější komercializací. GPL zaručuje každému uživateli několik základních práv (v licenci se vysvětluje, že slovo "free" znamená spíše "freedom" - svobodu):

  • právo na kopírování a šíření programu (zdarma nebo i za úplatu)
  • právo na získání zdrojových textů programu, jejich studium a modifikaci pro vlastní účely, distribuci modifikované verze
  • právo na použití zdrojových textů ve vlastních programech

Druhou důležitou částí licence je ochrana programu a autora. Licence zcela zřetelně říká, že k programu se nepodává žádná záruka a že autor není nijak zodpovědný za ztráty způsobené chybou v programu. GPL se také drží hesla "Co je free, by tak mělo zůstat" a proto přidává několik omezení a povinností, které by měly zabránit komercializaci programu.

Licence se snaží zabránit patentování jednotlivých částí programu, aby si jej redistributoři nemohli přivlastnit. Patent může být vydán jen v tom případě, že umožňuje jeho volné šíření.

Nejkomplikovanější částí licence je ochrana programu před změnou licence. Nelze totiž snadno určit, co ještě je stejný program a co už není. Kdyby byly tyto podmínky příliš striktní, stačilo by zdrojové texty programu jen trochu pozměnit a program by si mohl rázem každý přivlastnit. Na druhé straně přiliš volné podmínky by mohly způsobit, že i obrázek nakreslený v programu pod GPL by se stal automaticky "dílem založeným na programu" a tak by se licence na něj přenášela. Richard Stallman chtěl pod GPL napsat celý operační systém, pod kterým by potom mohly být vyvíjeny i komerční programy a tak použil jakýsi kompromis.

Pokud vytvoříte modifikovanou verzi programu nebo dílo na tomto programu založené, můžete jej dále šířit, ale musíte každý modifikovaný soubor opatřit datem modifikace a poznámkou, že je modifikován. Nesmíte změnit licenci. Díky tomu se licence šíří jako virus na další a další programy. Pokud jsou v programu nějaké samostatné celky, které nevznikly rozšiřováním zdrojových textů pod licencí GPL, licence se tam nepřenáší.

Na druhou stranu se ale licence přenáší i na výstup programu, který nevznikl jeho činností (například část zdrojových kódů programu). Toto se vztahuje i na knihovny. Pokud je tedy knihovna pod GPL a vy s ní slinkujete některý komerční program, musíte na požádání dodávat zdrojové texty knihoven. Tyto komplikace se obchází tak, že existuje modifikovaná verze GPL - Library General Public Licence (LGPL), která tuto podmínku neobsahuje. Pod LGPL jsou ale šířeny jenom některé knihovny a proto je nutné si v každém konkrétním případě zjistit podmínky šíření.

LGPL říká, že "zalinkování" knihovny je vlastně totéž jako použití programu. Musíte dávat k dispozici alespoň skompilované objekty vašeho programu, aby bylo možné přelinkovat program na jinou verzi knihovny. Problémy způsobují hlavičkové soubory, které také patří do knihovny a jejich použití ve zdrojových textech vlastně způsobí, že se zakompilují do objektů. LGPL říká, že pokud v těchto souborech jsou jen definice datových typů, jednoduchá makra a inline funkce kratší než 10 řádek, licence se na objekt nepřenáší. Této definici odpovídá většina hlavičkových souborů.

Aby se uživatelé o těchto právech dozvěděli, je nutné do každého zdrojového souboru uvést poznámku, že program je šířen pod GPL a že se na něj nevztahuje záruka. Interaktivní programy by tuto informaci měly vypisovat po zadání nějakého příkazu.

Licence je k dispozici ve třech verzích - verze 1, která vznikla v únoru 1989, rozšířená verze 2 z června 1991 a zmíněná verze pro knihovny. Je zajímavé, že LGPL je ve verzi 2 ačkoli verze 1 nikdy neexistovala. Je tomu tak proto, že LGPL vznikla stejně jako GPL verze 2 v červnu 1991 a tak se její autoři rozhodli označit je stejně.

Verze 1 neobsahuje několik odstavců o přenášení licence, včetně části o výstupu programu (proto nebyla nutná LGPL). Hlavním důvodem pro vznik verze 2 byla možnost přivlastnit si program jeho patentováním. Ve verzi 1 se nic o patentech neříká. Také přibyl odstavec 10 o tom, že Free Software Foundation může vydat novou podobnou licenci a autor může souhlasit se šířením programu pod novou licencí. Další rozdíly nejsou příliš důležité - verze 1 například nepoznamenává, že je možné poskytnout záruku i za příplatek. Většina pojmů je ve verzi 1 definována méně přesně.

Kompletní text všech licencí naleznete na adrese ftp://prep.ai.mit.edu/pub/gnu. Český překlad GPL si můžete přečíst na adrese http://www.freesoft.cz/gplcz.html. *


- předchozí článek - následující článek - obsah - úvodní stránka -