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ň