Softwarové licence – kterou si vybrat?

Následující text je určen vývojářům, kteří chtějí svůj software poskytovat ostatním a rozhodují se, jakou licenci k tomu použijí. Nicméně užitečný může být i uživatelům neprogramátorům – licence totiž slouží hlavně jim.

Pomocí softwarové licence dáme uživatelům právo náš software používat. Bez udělení licence by totiž jeho použití bylo nelegální. Naštěstí si nemusíme najímat právníky a formulovat vlastní licence (smlouvy). Existuje dostatek typových licencí, které můžeme jednoduše použít. Smlouvu nemusíme uzavírat s každým uživatelem jednotlivě – stačí licenci přibalit k našemu programu a vystavit ho třeba na Internet.

Zdrojové kódy programu obvykle nezveřejňujeme jen tak pro nic za nic. Něco si od toho slibujeme. Např. že si je jiný vývojář stáhne a upozorní nás na chybu v našem programu. To nevnímáme jako kritiku, ale naopak jako pomoc a snahu o vylepšení našeho programu. Někdo jiný do našeho softwaru zase dopíše novou funkci a my ji můžeme přijmout a začlenit do své větve programu.

Svobodný software není o tom, že bychom pracovali zadarmo a ostatní měli užitek z naší práce – je to způsob jak najít kolegy a spolupracovníky, kteří nám pomohou s rozvojem našeho programu, je to způsob jak dávat i získávat zároveň. V dnešní době je běžná spolupráce vývojářů napříč různými firmami na jednom softwaru – dělají to proto, že se jim to vyplatí. Dokáží takto vyvíjet a dodávat software efektivněji, než kdyby si každý hrál na svém vlastním písečku.

Aby to celé fungovalo, vznikla myšlenka tzv. copyleftu. Ten ve zkratce znamená, že svobodná podstata, kterou dal programu jeho původní autor, se nemůže jen tak vytratit – ani při kopírování, ani při začlenění kódu do jiného programu.

Jestliže program A dává uživateli právo zkoumat a upravovat zdrojový kód, musí i program A1 (který je z A odvozený) toto právo zachovat. Pokud tedy bude jiný programátor stavět na vaší práci (začlení váš kód do svého programu), musí zachovat otevřenost a poskytnout příslušná práva i svým uživatelům. Jde o princip jakési vyváženosti a spravedlnosti – nejen brát, ale i dávat. On využije váš program a ušetří si tím hodně práce – na oplátku ale svoje úpravy poskytne svým uživatelům pod stejnou svobodnou licencí. V důsledku tohoto pravidla množství svobodného kódu ve světě neustále stoupá – z čehož mají prospěch jak vývojáři, tak uživatelé.

Příkladem copyleftové licence je GNU GPL (General Public License).

Někdy možná budete stát před složitým rozhodnutím. Na světě stále vzniká i mnoho nesvobodného softwaru. Co když nějaký jeho vývojář bude chtít použít váš program (zřejmě knihovnu nebo framework), ale nepoužije ho, protože nechce otevřít svůj software? Co když by takový vývojář do vašeho programu doplnil nějakou zajímavou funkci nebo vám poslal opravu chyby? Co když ale vůbec nic takového neudělá a jen si ušetří práci a svůj program bude draze prodávat jako uzavřený? Je to jako kdybyste pracovali u svého konkurenta a nebrali za to žádný plat. Pokud uvolníte svůj zdrojový kód pod svobodnou copyleftovou licencí a váš kód bude dobrý, může to inspirovat a motivovat jiného vývojáře, aby i on uvolnil svůj program jako svobodný (díky tomu bude moci využít váš kód a ušetřit si práci). Vy tak pomůžete jemu a naoplátku se k vám dostane jiný svobodný software, ze kterého se můžete ledasco naučit nebo ho přímo použít.

Kterou cestou se vydat a co je pro vás výhodnější, si musíte rozhodnout sami – je to váš software a vaše právo. Kompromisním řešením může být použití licence Lesser GPL, která sice umožňuje začlenění programu do nesvobodného softwaru, ale vyžaduje, aby původní kód zůstal svobodný. Např. napíšete knihovnu pro převod obrázků z jednoho formátu do druhého a vydáte ji pod LGPL. Autor uzavřeného grafického editoru ji začlení do svého programu – jeho kód šířit nemusí, ale kód vaší knihovny musí nechat otevřený. Pokud by do něj udělal nějaké změny a vylepšení, musí tento upravený zdrojový kód poskytnout svým uživatelům. Uživatelé tak můžou získat zdrojový kód knihovny – nikoli ale celého programu. Jedná se o tzv. slabý copyleft.

Poměrně novým fenoménem jsou webové aplikace. Ty jsou specifické tím, že běží na serveru a uživatelé s nimi komunikují přes HTTP protokol a webový prohlížeč. Klasické licence (jako GNU GPL) nedokáží uživateli zaručit právo, že se v takovém případě dostane ke zdrojovému kódu aplikace – program totiž není distribuován až k němu, ale jen na server kdesi v Internetu. S rostoucím množstvím webových aplikací tento problém nabírá na vážnosti – uživatelé sice fakticky používají svobodný software, ale nemájí stejná práva, která by měli u desktopové aplikace (běžící na jejich počítači). Nadace pro svobodný software proto vytvořila licenci GNU Affero General Public License, díky které mají i uživatelé aplikací běžících na serveru všechna práva, která svobodný software přináší.

Kterou tedy?

Nadace pro svobodný software (FSF) pro vás ve spolupráci s profesionálními právníky vytvořila kompletní sadu licencí:

GNU GPL GNU Affero GPL GNU Lesser GPL

Obecně je lepší zvolit spíše „přísnější“ licenci (jako GPL, AGPL). Není totiž problém software dodatečně vydat i pod jinou licencí (LGPL). Zatímco zpětně odebrat „příliš volnou“ licenci už nelze.

Dodatek

Existuje i řada jiných více či méně podobných licencí – najdete je na stránkách organizací FSFOSI. Jejich použitím se ale částečně připravujete o výhodu typových licencí, protože pravděpodobnost, že uživatel bude znát nějakou „exotickou“ softwarovou licenci je nižší, než že bude znát GNU GPL (která je nejpoužívanější). Použití jiných licencí je tedy lepší se vyvarovat – pokud k tomu nemáte dobrý důvod (navazujete na cizí práci a je potřeba zachovat původní méně obvyklou licenci).

Jednou z nich je i BSD licence – jedná se o sice svobodnou, ale necopyleftovou, softwarovou licenci. Uživatelé takto licencovaného softwaru nemají prakticky žádná práva – záleží pouze na libovůli distributora, jestli jim zdrojové kódy a právo na jejich úpravy poskytne. Může se tak klidně stát, že uživatelé budou používat aplikaci, která byla původně svobodná, ale oni nebudou mít nic z práv, která udělil původní autor. Jako autoři byste se měli BSD licenci vyhnout a použít raději GNU Lesser GPL (LGPL). BSD licence vám totiž nepřinese žádné uživatele navíc (začlenění vašeho kódu do uzavřených aplikací umožňuje i LGPL) a pouze připravíte uživatele o jejich práva.

Další čtení

© 2017 František Kučera