General Public Licence
-=-=-=-=-=-=-=-=-=-=-=-=-=
Nejfantastičtější jsou na světě holá fakta
-- Moliére
The chat program is in public domain. This is not the GNU public
license. If it breaks then you get to keep both pieces.
--Copyright pro program chat
General Public Licenci (dále jen GPL) vytvořil Richard Stallman
na začátku GNU projektu 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):
o Právo na kopírování a šíření programu (zdarma nebo za úplatu)
o Právo na získání zdrojových kódů programu, jejich studium a
modifikaci pro vlastní ůčely, distribuci modifikované verze
o Právo na použití zdrojových kódů ve vlastních programech
Druhou důležitou částí licence je ochrana programu a autora.
Licence jasně říká, že k programu se nepodává žádna záruka a že
autor není nijak zodpovědný za ztráty způsobené chybou v programu.
GPL se také drží hesla, že 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 redistributoři programu si jej tím 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
zdrojáky 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 porgramu 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 a nebo dílo na
tomto programu založené, mužete jej dále šířit, ale musíte každý
soubor opatřit datumem 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 ve vzniklém programu jsou ale nějaké
samostatné celky, které nevznikly rozšiřováním GPL zdrojáků, licence
se tam nepřenáší. Na druhou stranu se ale licence přenáší i na
výstup programu, který nevznikl jeho činností (napřílad část
zdrojových kódů programu). Toto se vstahuje 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 zdrojáky knihoven. Tyto komplikace se
obchází tak, že existuje modifikovaná verze GPL - Library General
Public Licence(LGPL), která toto nepřikazuje. Pod LGPL jsou ale
šířeny jenom některé knihovny a proto je nutné si dávat pozor. LGPL
říká, že zalinkování knihovny je vpodstatě to samé jako použítí
programu. Musíte dávat k dispozici alespoň zkompilované 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žítí ve zdrojácích vlastně zpusobí, že se
zakompilují do objektů. LGPL říka, ž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 headerů.
Aby se uživatelé o těchto právech dozvěděli, je nutné do každého
zdrojového souboru uvédst poznámku, že program je šířen pod GPL a že
se na něj nevstahuje záruka. Interaktivní programy by tuto informaci
měly vypisovat na nějaký příkaz.
Licence je k dispozici ve třech verzích - verze 1, která vznikla
v roce 1989, rozšířená verze 2 z roku 1991 a zmíněná verze pro
knihovny. Tento článek píše o verzi 2.
Verze 1 neobsahuje několik odstavců o přenášení licence, včetně
části o výstupu z 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 autor může souhlasit se šířením programu pod
jinou 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ě.
výheň