Licence BSD a GPL

Datum vydání: 2013-04-06 09:22:31 ; aktualizováno: 2014-11-13 17:14:35

Nette GPL či BSD

Konkrétně řeším aplikaci postavenou nad frameworkem Nette. Informací ohledně licencování je na internetu jak šafránu, proto jsem si zde poznamenala pár informací a odkazů, které mi připadají užitečné a snažila se učinit nějaký závěr.

V Nette Frameworku máte na výběr, zda se rozhodnout pro licenci GPL či BSD. Po přečtení základních informací jsem měla jasno v tom, že určitě BSD. Projekt, který dělám, chci využívat i ke komerčním účelům, a pro to je čistě GPL licence nepoužitelná. Pokud jsem to dobře pochopila, tak pokud zveřejníte kód postavený na knihovnách pod licencí GPL, tak musíte svůj kód dát také pod licenci GPL. Možnost GPL licence je tam hlavně z důvodu, aby bylo možné Nette Framework přičlenit k GPL projektům.

Framework Nette

V sandboxu (vzorová kostra aplikace) od Nette jsou tyto adresáře či soubory podléhající licenci:

  • www\js\jquery.js (licence MIT),
  • www\js\jnetteForms.js (licence BSD či GPL copyright David Grudl),
  • adresář libs\Nette\ (licence BSD či GPL copyright David Grudl).

Publikace kódu ještě neznamená, že si každý s kódem může dělat co chce!

Zdrojový kód jako takový podléhá autorskému právu. Tohoto práva se nelze vzdát. Způsob nakládání s kódem může autor upřesnit v licenci, kterou u kódu uvede. Pokud tuto licenci neudělí, nesmí nikdo (ačkoli je kód zveřejněn) kód použít, rozmnožovat apod. Je to logické, zdrojové kódy se berou, z hlediska autorského zákona, jako literární dílo. Pouze algoritmy nejsou chráněny autorským zákonem.

Vyplývá to mimo jiné z článku Kategorie svobodného a nesvobodného softwaru (viz Soukromý software), a dále nepřímo z článku Zdroják mění licenci pro ukázkové kódy z článků (aby čtenáři mohli volně využít zdrojové kódy uvedené na webu, dali k nim extra licenci BSD), z článku Softwarové licence: úvod pro obyčejné lidi (z dotazu „Nahraju zdrojáky na svůj web – musí tam licence být?“, kde se píše, že pokud nahrajete zdrojové kódy na web, tak tam licence být nemusí a podléhají autorskému právu a kdo je použije, pozmění apod., tak porušuje zákon. Aby bylo možné zdrojáky použít, je pak třeba dát licenci). Toto potvrzuje také článek Výsledky ankety: mezi čtenáři vede klasika – XHTML, PHP a MySQL v sekci „Licence: stále trochu nejasno“.

Licence BSD

Ptáte se, proč bych měla publikovat kód a přitom ho nechtěla šířit dál?

  1. Otázka vypadá na první pohled nesmyslně, ale můžete být nuceni publikovat kód např. u kvalifikačních prací ve škole (diplomové práce, bakalářské práce, absolventské práce), kde vysoká škola u diplomových a bakalářských pracích má dokonce povinnost tyto práce zveřejnit. Můžete si pak klást otázku, zda musíte pak také udělit BSD licenci či nikoli? Má pak škola právo a kdokoli jiný právo libovolně kód použít? Jak tomu případně zabránit, abyste projekt mohli použít pouze Vy. Takovéto práce jsou navíc považovány na školní dílo, které je samostatně řešeno autorským zákonem.
  2. Dále můžete mít vlastní web a na něm zveřejňujete třeba úryvky z vašeho programového kódu, který využívá (zobrazuje volání) nějaké funkce z cizího kódu pod BSD licencí. Mohlo by Vás pak zajímat, jak to potom je s použitím takového kódu a zda k němu máte či nemáte dát také licenci BSD.

Nikdo vás však k publikaci zdrojového kódu nenutí, projekty založené na BSD či GPL licenci lze využívat i komerčně bez toho, abyste kód dávali z ruky.

Je možné publikovat kód a mít ho chráněný autorským právem a zároveň mu neudělit BSD licenci?

Ano, mělo by to být možné. Molo by stačit, když jednoduše licenci ke svému kódu nedáte, a pokud kód obsahuje i cizí kód, který je pod BSD licencí, tak u tohoto cizího kódu BSD licence bude uvedena.

BSD licence by vás neměla zavazovat (na rozdíl od licence GPL) k tomu, abyste i Vy vydali svůj kód pod stejnou licencí. BSD licence není nakažlivá, na rozdíl od licence GPL. U obou licencí (BSD i GPL) můžete vyvíjet svůj kód pro interní potřebu, aniž byste museli dávat kód k dispozici. Ale jakmile kód publikujete, tak GPL licence Vás zavazuje veškerý kód dát pod licenci GPL. BSD licence, ani v případě publikace, vás nezavazuje dát veškerý kód pod licenci BSD. Pod touto licencí musí zůstat pouze kód, který této licenci podléhal. BSD licence vám dává volnost rozhodnout o vašem kódu, jakou licenci po něj použijete. Kód může zůstat uzavřený. BSD licence se týká pouze šíření a modifikace kódu, který byl touto licencí chráněn a šířen.

Jak teda publikovat?

Napadají mne dvě řešení:

  1. Licence BSD se týká distribuce a úprav původního kódu vydaného pod licencí BSD (např. knihoven). Pokud chci zveřejnit svůj kód, který využívá tyto knihovny, a přitom chci mít plná autorská práva bez toho, abych dávala BSD licenci, tak mne napadá řešení, že sice zdrojové kódy (ty svoje) zveřejním, ale licenci k nim žádnou neudělím. Své kódy publikuji, ale bez kódů knihoven, které jsem já neprogramovala. Publikuji pouze svůj text, chráněný autorským právem daným ze zákona. Publikovaný kód sice přímo nebude běžet, ale po doplnění knihoven by již běžet měl. Užití takového mého díla by podléhalo mému souhlasu, dle autorského zákona.
  2. Pokud bych však publikovala svůj kód včetně knihoven pod licencí BSD, musím přidat licenci BSD minimálně ke kódu, který pod touto licencí byl vydán. Zda udělím licenci, a jakou, i ke svému kódu, jehož jsem autorem, je čistě moje věc. Licence bývá obsažena v každém souboru zdrojového kódu (alespoň odkaz na licenci a copyright). Pro jistotu bych možná přidala do adresáře znění celé BSD licence s poučením, jakých souborů se licence týká. Ale bohužel žádné pokyny, jak toto přesně řešit, jsem nenašla a zdrojové kódy, které jsem viděla, obsahovaly pouze zkrácenou verzi licenčních podmínek (pouze copyright + odkaz na www stránky, kde šla licence dohledat). Dle informací dostupných na webu Nette je důležité zachovat původní znění copyrightu v souboru. Asi bych tam ale ještě přidala plné znení licence, aby se odlišilo, zda distribuuji kód Nette pod BSD či GPL licenci. Když redistribuujete se svým kódem zároveň i původní kód založený na BSD licenci (nebo ho nějak změníte a dál distribuujete), tak už BSD licenci musíte zachovat u kódu, který této licenci podléhal. Alespoň to mi vyplývá po přečtení licence BSD.

Jinak prosím berte tento článek s určitou rezervou a raději si veškeré informace zde podané ověřte, protože se mohu mýlit… V licencích je nádherný zmatek, informací málo a k dispozici je většinou pouze anglická (tj. jediná platná) verze licence.

Další informace a zdroje:

Nette Framework

Zdroják

Root – root.cz

Opensource

GNU

Wikipedia – wikipedia.org

PHP

Různé

Licence MIT (např. jQuery)

Související články