Moje odkazy
Obsah článku:
vydáno: 18. 5. 2009 21:11, aktualizováno: 26. 7. 2020 12:04
Svobodný či otevřený software by těžko mohl fungovat bez licencí. Přesto je jejich problematika často opomíjena a málokdo je skutečně čte. V dnešním článku si přiblížíme několik nejpoužívanějších svobodných licencí.
Poznámka: starší verzi tohoto článku jste mohli potkat na serveru Root.cz. Ta ale obsahuje a některé nepřesnosti a neaktuální informace. Aktualizovaná verze článku je zde na blogu.
Bez licencí by se nakládání se softwarem řídilo pouze autorským zákonem (zákon č. 121/2000 Sb.), který v případě softwaru nedovoluje prakticky nic. Smysl licence tedy spočívá v postoupení určitých práv uživateli a vymezení způsobu užívání softwaru.
GPL je nejrozšířenější svobodná licence a využívá ji 72 % projektů. První verze této licence vznikla pro projekt GNU a napsal ji Richard Stallman. GPL dává uživateli právo takto licencovaný software upravovat, kopírovat a šířit, ať už v původní nebo upravené verzi. Licence nezakazuje komerční šíření softwaru ani neomezuje způsob využití softwaru – autor programu do licence např. nemůže připsat, že se program nesmí používat v jaderných elektrárnách – pak už by to nebyla GPL. Tato licence zaručuje svobodu – svobodu pro všechny bez rozdílu.
Licence se šikovně vyrovnává i s přijetím či nepřijetím ze strany uživatele:
Není vaší poviností tuto licenci přijmout, protože jste ji nepodepsal. Nic jiného vám však nedává možnost kopírovat nebo šířit program nebo odvozená díla. V případě, že tuto licenci nepřijmete, jsou tyto činnosti zákonem zakázány. Tím pádem modifikací anebo šířením programu (anebo každého díla založeného na programu) vyjadřujete své podřízení se licenci a všem jejím ustanovením a podmínkám pro kopírovaní, modifikování a šíření programu a děl na něm založených.
GPL je vyvážená v tom smyslu, že nepřiznává jen bezmezná práva, ale ukládá i povinnosti. Pokud např. do svého programu začleníme (cizí) kód vydaný pod GPL licencí, bude i výsledný celek pod GPL licencí. A tím přispívá k rozšiřování svobodného softwaru. Aktuální je dnes třetí verze této licence.
Nová doba si žádá nové licence. Mnoho aplikací už dnes není distribuováno na počítače uživatelů, ale běží na serverech a uživatelé se k nim připojují pomocí webového prohlížeče První verze AGPL byla uvedena v roce 2002 a vycházela z GPLv2. Uplatnění najde hlavně u aplikací poskytovaných po síti (webu). Na tyto aplikace se můžeme dívat dvěma způsoby:
Pokud se jako autoři chceme vydat druhou cestou, použijeme pro svůj software místo GPL raději licenci Affero GPL, která je přísnější v tom smyslu, že pokud původní aplikace umožňuje koncovým uživatelům stažení zdrojových kódů, musí i upravené nebo redistribuované verze aplikace tuto možnost zachovat.
Tuto licenci použijeme např. u redakčního systému nebo diskusního fóra a zaručíme tak uživatelům upravených verzí aplikace, že uvidí i změny zdrojového kódu, které provedl někdo jiný.
Původní Affero licence z roku 2002 pocházela z projektu Affero, zatímco třetí verze GNU Affero GPLv3 je už dílem organizace FSF. Licence AGPLv3 je kompatibilní s GPLv3, a tudíž je možné kód pod oběma licencemi kombinovat v jednom programu. Více o AGPL licenci v samostatném článku: Affero GPLv3: Vydejte zdrojové kódy síťových aplikací!
Jedním z typických rysů svobodného softwaru je komunita, uživatelé. K čemu by byl program, který by nikdo nepoužíval, že? V případě softwarových knihoven by příliš přísná licence (např. GPL) byla překážkou k jejímu rozšíření (software, který ji používá by musel být také GPL) → neměli bychom pak uživatele, zpětnou vazbu, testery a bez toho by se naše knihovna rozvíjela pomalu nebo vůbec. Z tohoto důvodu se pro knihovny často volí Lesser General Public License (LGPL), která zaručuje trvalou otevřenost kódu vlastní knihovny, ale zároveň dovoluje tuto knihovnu použít i v jinak licencovaném softwaru (i uzavřeném).
Na druhou stranu může docházet k tomu, že vývojáři svobodného softwaru pracují zadarmo a zveřejňují svoje knihovny a vývojáři komerčních uzavřených aplikací tyto knihovny začleňují do svého softwaru (šetří tak čas i peníze) a přitom se od nich směrem ke komunitě svobodného softwaru nevrací žádná hodnota – pouze využijí knihovnu a prodávají svůj uzavřený software. Free Software Foundation proto dnes doporučuje zvážit použití GPL licence i pro knihovny: Why you shouldn't use the Lesser GPL for your next library. Knihovny pod GPL licencí (místo LGPL) povedou k tomu, že svobodný software bude konkurenceschopnější, jelikož proprietární software už nebude zdarma čerpat výhody z práce vývojářů svobodného softwaru. Zatímco komunitě svobodného softwaru tato výhoda zůstane a její členové si budou vzájemně poskytovat software pod GPL licencí.
Tato licence vznikla pro operační systém BSD na univerzitě v Berkeley. Oproti GPL je výrazně stručnější a klade méně podmínek (současně zaručují méně práv). Abychom vyhověli BSD licenci, musíme v kódu i binárním tvaru zachovat informaci o původním autorovi (copyright). Jinak si ale s kódem můžeme dělat téměř cokoli (např. šířit upravené spustitelné verze bez zdrojových kódů).
Můžeme se setkat s několika variantami této licence, původní čtyřbodová, tříbodová nebo dvoubodová. Více v samostatném článku. Dvoubodová a tříbodová varianta je kompatibilní s GPL licencí – můžeme tedy kód vydaný pod BSD licencí zahrnout do svého programu vydaného pod GPL licencí. Výsledné dílo pak bude pod licencí GPL. Opačně to ale neplatí: GPL kód nemůžeme jen tak začlenit do svého BSD programu.
Mezi uživateli se vedou, někdy dost bouřlivé, spory o tom, která licence je „svobodnější“ a vůbec „lepší“ a „pravá“ svobodná licence. Licence, jakožto smlouva, zaručuje některá práva, což na druhé straně znamená povinnosti. Tento spor lze tedy těžko objektivně rozsoudit – záleží totiž vždy na tom, zda stojíme na straně, které licence přiznává práva, nebo naopak na straně, které licence ukládá povinnosti. Podívejme se na věc z pohledu dvou hlavních skupin – uživatelů a vývojářů.
Pokud má psaní softwaru sloužit k naší obživě, zvolíme raději přísnější licenci (GPL, Affero) a budeme se vydělávat na duálním licencování. Zvoli-li bychom zde např. BSD licenci, pravděpodobně bychom se nevyhnuli tomu, aby někdo jiný vydělával na naší práci (což může i v případě GPL, ale za přísnějších pravidel). V případě softwarových knihoven je oblíbená licence LGPL, která zaručuje otevřenost kódu dané knihovny (a jejích odvozenin), ale dovoluje použití knihovny i v uzavřeném softwaru, což umožňuje větší rozšíření a oblibu naší knihovny.
Svobodný software může být i vedlejším efektem naší činnosti nebo zábavou, pak nejčastěji volíme GPL (případně Affero) licenci, pokud chceme, aby náš software byl vždy svobodný a aby každý uživatel výsledků naší práce měl přístup ke zdrojovým kódům, nebo licenci BSD, pokud usilujeme o co největší rozšíření našeho softwaru (i za cenu toho, že někdo kód uzavře a nezveřejní změny).
Pro uživatele je na první pohled nejpříjemnější dvoubodová či tříbodová BSD licence, která mu ukládá nejméně povinností a omezení. Může např. jako programátor začlenit zdrojový kód do své uzavřené aplikace. Když se ale uživateli dostane do rukou program ve spustitelném (binárním) tvaru, byl by pravděpodobně radši za GPL licenci, protože pak může po distributorovi (od kterého binárku obdržel) požadovat zdrojové kódy a ten je musí vydat.
Tyto role u svobodného softwaru často splývají a člověk je jak uživatelem, tak vývojářem daného programu.
Svobodný software bývá často vnímán jako bezplatný software. Ale není tomu tak – Free software a freeware jsou dvě odlišné kategorie:
„Free software“ is a matter of liberty, not price. To understand the concept, you should think of „free“ as in „free speech,“ not as in „free beer.“
Svobodný software nám dává právo ho šířit, ale neukládá nám šíření jako povinnost. Můžeme tak například ve své firmě používat upravené Linuxové jádro a tyto změny neposkytnout nikomu dalšímu. Zda software šířit nebo nešířit je naše svobodné rozhodnutí – a toto rozhodnutí můžeme podmínit zaplacením nějaké částky. Nejenže GPL licence šíření softwaru za úplatu nezakazuje, ale GNU ho dokonce doporučuje:
„Rozšiřování svobodného softwaru je příležitostí, jak získat prostředky pro jeho vývoj. Nepromarněte ji!“
Na druhou stranu je ale potřeba říci, že osoba, které jsme GPL software prodali, má stejná práva – může tento software šířit dále, stejně jako my. To ale nevylučuje např. zakázkový vývoj aplikace pod GPL licencí – zákazník pak tento software může používat ve všech svých pobočkách, aniž by musel dokupovat další a další licence jako u proprietárního softwaru. A pro další rozvoj daného softwaru si může najmout klidně jinou firmu, jelikož má k dispozici zdrojové kódy aplikace – zbavuje se tak závislosti na výhradním dodavateli. Ještě častější bývá, že zákazník zaplatí vývoj určité funkcionality aplikace, kterou využívá.
Přísnější licence navíc poskytují větší prostor pro duální licencování, které nám umožní získat více finančních prostředků pro rozvoj našeho svobodného softwaru. Budeme ho nabízet pod GPL licencí (nebo AGPL v případě webové aplikace) a zájemcům budeme prodávat komerční licenci, která nebude klást podmínky na šíření úpravených zdrojových kódů uživatelům.
Při vydávání programu pod komerční licencí si musíme dát pozor na autorské právo. K uzavření zdrojových kódů potřebujeme splnit alespoň jednu z těchto podmínek:
Příklady duálního licencování:
Poměrně nedávno Nokia oznámila, že knihovna Qt bude šířena i pod LGPL licencí. Tento krok bývá vysvětlován tak, že zatímco Trolltech (autor Qt, koupený Nokií) vydělával na duálním licencování, Nokia vydělává na prodeji mobilů a je tedy v jejím zájmu, aby existoval dostatek (klidně i uzavřených) aplikací pro její mobilní platformu Qt Extended.
Shrňme si teď nejdůležitější vlastnosti jednotlivých licencí. Právo na jedné straně (např. uživatele) znamená vždy povinnost na straně druhé (např. distributora) a naopak.
Licence | Právo upravovat program | Právo šířit kopie programu (původní i upravené) | Závislý kód musí být vydán pod stejnou licencí | Uživatel spustitelné verze má právo na zdrojový kód | Uživatel síťového softwaru má právo na zdrojový kód | Povinnost propagovat autora |
GPL | ANO | ANO | ANO | ANO | NE | NE |
Affero GPL | ANO | ANO | ANO | ANO | ANO | NE |
LGPL | ANO | ANO | NE | ANO | NE | NE |
BSD | ANO | ANO | NE | NE | NE | NE |
Původní BSD | ANO | ANO | NE | NE | NE | ANO |
Všechny tyto licence nám dávají právo upravovat zdrojový kód a šířit ho dále (ať upravený či neupravený). Zároveň nám ale neukládají povinnost zveřejňovat provedené změny, pokud binární tvar programu nešíříme dále (výjimka viz Affero licence).
Závislým kódem zde rozumíme kód programu, do kterého jsme začlenili cizí kód pod určitou licencí. Licence GPL má tzv. „virální charakter“, což znamená, že když do svého programu začleníme část GPL kódu, musí být i zbytek programu pod touto licencí. Tato vlastnost je mnohými nenáviděna a mnohými opěvována, podle toho, jak se to komu hodí. V principu ale přispívá k udržitelnosti svobodného softwaru jakožto modelu distribuce softwaru.
Pokud se vám dostane do rukou spustitelná (binární) forma programu vydaného pod GPL, máte právo požadovat zdrojové kódy. Affero GPL toto právo rozšiřuje i na případy, kdy je program poskytovaný po síti (např. webová aplikace).
Původní (čtyřbodová) BSD licence obsahovala ustanovení týkající se propagace:
Všechny propagační materiály zmiňující vlastnosti nebo použití tohoto softwaru musejí obsahovat následující text: Tento produkt zahrnuje software vytvořený <VLASTNÍKEM PRÁV> a přispěvatelů.
kvůli kterému nebyla kompatibilní s licencí GPL (tento BSD kód nešlo použít v GPL programu) – GPL licence totiž nedovoluje omezovat šíření softwaru nad rámec podmínek v ní uvedených. Novější BSD licence toto ustanovení už neobsahuje a říká se jí trojbodová.
Je třeba mít na paměti, že volba licence je výhradním právem autora. Uživatelé mohou licenci buď přijmout nebo nepřijmout (nepoužívat software), podobně jako si mohou, ale nemusí koupit komerční software. Pokud autor není zcela rozhodnutý, je lepší volit „přísnější“ licenci, protože kdykoli později může vydat software pod „volnější“ licencí a přiřknout uživatelům dodatečná práva, zatímco jednou poskytnutá práva už nelze odebrat. Uživateli nezbývá než brát software pod takovou licencí, pod kterou je nabízen, případně může autora slušně požádat, jestli by nechtěl program licencovat i jinak.
Témata: [GNU/Linux]
Za tento článek zatím nikdo autora nekamenoval