Ještě jednou k licencím

Ještě jednou se vrátím k předchozímu článku o softwarových licencích - tentokrát spíš s takovým přehledem možných alternativ.

U minulého článku padly v diskusi některé argumenty zastánců GPL, většinou s dodatkem "jak jinak toto zajistit?" Spousta z nich je pochopitelných. Některé z nich řeší jiné "BSD-like" licence, které jsou většinou málo známé. Pojďme si je připomenout a zjednodušeně vysvětlit hlavní rysy.

Pokud chcete některou z těchto licencí použít, rozhodně si přečtěte jejich originální znění, které bývá závazné; neoficiální překlady jsou spíše pomůckou k tomu, abyste si udělali hrubou představu o právech a povinnostech, rozhodně se na ně nelze odvolávat. Stejně tak je tento článek pouze zjednodušeným, a tedy i nepřesným, vyjádřením licenčních podmínek.

BSD licence (lépe řečeno "Modifikovaná BSD licence", protože originální obsahovala nyní zavržený dodatek) je liberální licence, která dává uživateli právo s produktem svobodně nakládat, pokud budou dodržena tři základní pravidla: Musí být zachován copyright původního autora, musí být zmíněno zřeknutí se odpovědnosti a nesmí být k šíření či podpoře využito jméno či značka autora či dalších přispěvatelů. (Neoficiální překlad BSD). BSD tedy nijak neošetřuje případné uzavření kódu, nestanovuje povinnost zveřejnit změny ani nic podobného. Rovněž neomezuje nijak "společné šíření" a nestanovuje podmínky, za nichž může být BSD kód kombinován s jinými produkty pod jinými licencemi. S licencí "Modified BSD" je téměř totožná licence X11, podobná je jí i "licence MIT".

MPL (Mozilla Public License) je restriktivnější než BSD. (Kompletní text, neoficiální český překlad). Hlavní rozdíl proti BSD je ten, že pokud do svého SW zahrnete software s licencí MPL, musíte tuto část (i s případnými změnami) dál šířit jako MPL. Totéž pokud bude MPL kód vložen do nějakého zdrojového souboru - v takovém případě jste povinni zveřejnit celý zdrojový soubor. Na rozdíl od GPL však MPL umožňuje, aby na ostatní části SW byla použita jiná licence. MPL tedy zajišťuje stálou otevřenost kódu a jeho změn, aniž by si nárokovala otevřenost celého odvozeného díla. Navíc máte právo šířit binární kód pod naprosto libovolnou licencí.

CDDL (Common Development and Distribution License) vychází z MPL a poněkud ji upravuje - viz FAQ. Jedná se opět o souborově orientovanou licenci, která požaduje zachování otevřeného kódu na konkrétní soubory a stanovuje povinnost uveřejňovat změny, přesto dovoluje kombinovat takovéto soubory v projektech s vlastním kódem, který nijak neomezuje.

LGPL je uprvená GPL, vhodná především pro knihovny. Umožňuje knihovnu slinkovat s jakýmkoli programem, aniž by kladla na tento program omezení jako klade GPL, tedy zejména nevyžaduje jeho otevření ani nevyžaduje GPL kompatibilní licenci.

Pokud jste tedy autorem SW a je vaším zájmem, aby VÁŠ kód byl stále otevřený, můžete použít CDDL či MPL. Pokud nechcete, aby váš kód používal někdo ke komerčním účelům, můžete použít některou z CC-BY-NC licencí či modifikovat BSD licenci vlastním dodatkem, v němž specifikujete podmínky pro takovou situaci. Všechny tyto výhrady lze ošetřit výše zmíněnými svobodnými licencemi, které považuju osobně za ideální mix mezi požadavkem "otevřeného kódu" a "zveřejnění změn a vylepšení pro užitek ostatním" na jedné straně a "svobodou použít jak uznám za vhodné" na straně druhé.

Zkuste se zamyslet - nejsou důvody, proč používáte a prosazujete GPL, právě z rodu těch, které řeší výše uvedené licence? Je opravdu nutné např. chránit otevřenost vašeho kódu tím, že budete požadovat otevřenost kódu jiných autorů? Nestačila by vám CDDL či MPL licence?

---

PS na vysvětlenou: U minulého článku jsem uzavřel diskusi - připadalo mi, že se diskuse točí v kruhu a už nepřináší nic nového, navíc jsem vzhledem k jiným okolnostem neměl náladu opakovat neustále totéž. David Grudl mne pak požádal o odstranění svých komentářů. Já jsem jeho žádosti vyhověl - to jen na vysvětlenou, že zmizelo celé jedno vlákno. Zmizelo na výslovnou Davidovu žádost a po vzájemné dohodě, že u tématu, které otevřel, bude lepší diskuse žádná než useknutá.

Komentáře

Proc GPL

Proc se mne GPL libi a proc se "evolucne" prosadilo: Pokud investuji nemale usili do tvorby SW a zverejnim ho pod BSD, tak pak prijde takovy Microsoft, prevezme z BSD cely IP stack a klidne to bude vydavat za svuj uspech a komunita ostrouha. V pripade GPL je jasne, kdo je autor ceho a komunita "profituje" z dalsiho zverejneneho kodu.

Jinymi slovy - GPL rika - mel jsem s timhle hodne prace. Pokud chces vyuzit plody tohoto usili, tak taky neco "zaplat".

... nebo takový Apple

... nebo takový Apple převezme celé BSD jádro a klidně na něm postaví celý Mac OS X a komunita ostrouhá... :)
 
GPL ve skutečnosti říká: "Měl jsem s tím hodně práce, pokud chceš využít plody mého úsilí, musíš s plodama svého úsilí naložit stejně jako já a musíš to vyžadovat i po ostatních." Jinak viz diskuse k minulému článku.

MySQL AB

Možná bych zde zmínil MySQL AB -- firmu která vyvinula MySQL, a asi i díky tomu že ji celou dávala pod virální GPL se na ní byla schopna slušně uživit -- každý kdo chtěl použít jejich databázi jako ve svém softwaru(*) ho musel buď otevřít nebo zaplatit komerční licenci. Možná i díky tomu je nakonec koupil za za asi miliardu dolarů. Takže hádám že pro firmy co chtějí na plodech svojí práce nějak dál profitovat jsou restriktivnější licence jako GPL užitečné.

(*) Klientská knihovna libmysqlclient je taky GPL, asi s nějakou výjimkou pro PHP, nicméně na software co se k ní přímo linkuje (aplikace v C apod) se ta doložka uplatňuje.

GPL

GPL ve skutečnosti říká: Já si klidně vezmu cokoli z mnoha jiných licencí. Klidně si vezmu BSD kód, MIT kód a kód pod řadou jiných licencí, ale naopak jim nedám vůbec nic. Sama si vezmu cokoli podle hesla: „Co je Tvoje, to je moje a co je moje, do toho Ti nic není.“

Inými slovami...

Keď to neviem predať ja, tak to nebude predávať nikto! :-)

Díky za stručné osvětlení.

Díky za stručné osvětlení. Pořád jsem si říkal pod jakou licencí případně vypouštět některé své scripty a GPL se mi moc nepozdávala ale byl jsem líný si všechny číst. BSD je přesně to co jsem chtěl :)

MIT vs X11

Ad „téměř totožná licence X11, podobná je jí i "licence MIT"“ – to je poněkud nepřesné. Licence MIT a X11 jsou dva různé názvy jedné licence. Viz Wikipedii a komentář od FSF.

Vycházel jsem z tohoto

Vycházel jsem z tohoto seznamu, který odlišuje X11 a MIT (Expat).

Myslím, že na každý software

Myslím, že na každý software se hodí jiná licence. Na všechny webové projekty je určitě vhodné použít BSD-like licenci a dost projektů tak také činí. (Divím se, že Drupal třeba ne).

Naopak pro součásti OS a desktopové aplikace bývá vhodnější licence GPL.

U mě osobně při výběru

U mě osobně při výběru licence hraje roli i to, jestli jsem ji vůbec schopen pochopit. GPL je licence, jejíž FAQ je delší než ona samotná.

A proč vlastně existují

A proč vlastně existují všechny ty licenční open-source varianty a sub-varianty s podmínkami? Nebylo by lepší software buď prodávat nebo poskytovat jako freeware? No a když se někdo rozhodne, že jeho software nemá žádnou cenu, tak ho poskytne jako open-source volně k použití. Toť vše a není nutno vymýšlet podmínky a sub-podmínky, ve kterých aby se prase vyznalo ;-)

Některé své kódy dávám volně

Některé své kódy dávám volně k využití, a to si nemyslím, že "nemají žádnou cenu". To že je něco bezplatné neznamená, že je to bezcenné. ;)

Problém je jinde: Někteří geekhippies mají ze slova "komerce" osypky jako Klaus z tržních regulací, tak se snaží zajistit, aby jejich opensource zůstalo navždy opensource a aby žádná zlá komerční firma nikdy nemohla plody jejich práce beztrestně strčit do svého fujkomerčního produktu, páč JEJICH práce patří KOMUNITĚ.

Ti, kterým je komunita a duch opensource ukradený, pak klidně použijí BSD licenci, což je to tvé "volné použití". :)

"...nemají žádnou cenu" bylo

"...nemají žádnou cenu" bylo myšleno jako "na prodej to nemá cenu" a ne že je to "bezcenné" :-)

Přesně, jak píšeš, někteří fanatičtí odpůrci "komerce" už neví, co by všechno chtěli v těch licencích omezovat. Dle mého, by to mělo jít jednoduše, buď komerční produkt nebo free pro ostatní, ať si s tím pak každý dělá, co chce se všemi riziky a následky.

Díky za přehled

Díky za přehled, určitě se hodí.

Ale nevím, proč pořád brojíte proti GPL a ošklivé komunitě.
Ty chceš použít výsledky něčí práce a on si dal podmínku, že ti dá zdrojáky, pokud ty nám dáš své. A ty jsi svobodný, protože můžeš souhlasit, nebo říct na to ti kašlu.
Microsoft (a jiní) ti takovou svobodu nedává. Zdrojáky od nich neuvidíš a binárky jsou pěkně mastné. (Škoda, za tu dobu by byly XP pěkně ořezané od balastu který spousta lidí nechce.)

Ale líbí se mi MPL. Jestli to chápu tak tobě zůstává povinnost přejatý kód zpřístupnit i s případnými změnami (předpokládá se že k lepšímu:) a mě do toho co napíšeš sám nic neni.

Proti GPL brojím z několika

Proti GPL brojím z několika důvodů. Jedním je ten, který tu popsal Miloslav Ponkrác, dalším je třeba to, že nemám rád komunity, které zavánějí sektářstvím a které za jeden prst chtějí celou ruku až navěky. Dalším důvodem je třeba to, že mi Microsoft nevadí (bijte mne a kamenujte), takže nemám potřebu se proti němu takto vymezovat.
Co mi vadí je to, že bych někdy rád použil např. nějaký kód (třeba na "generování náhledů") ve své aplikaci, se kterou chci naložit podle svého (prodat / uvolnit / cokoli). Ale pokud je ten kód pod GPL, tak bych musel celou aplikaci dát jako GPL - za jednu část to je příliš vysoká cena. Takže si to raději napíšu sám nebo sáhnu po něčem pod BSD-like. A protože co nemám rád sám, to nechci činit druhým, tak své kódy nezveřejňuju pod GPL, ale pod free licencí BSD.
Píšu o tom proto, že jsem přesvědčen, že spousta lidí má na věc podobný pohled jako já, ale znají jen nejznámější GPL, tak používají tu, ačkoli by jejich požadavkům vyhověla třeba právě MPL.

Už dva dny přemýšlím nad

Už dva dny přemýšlím nad původními argumenty, které mě vedly k GPL (je pravda, že nyní již jedu setrvačnostní). Dospěl jsem k názoru, že tím důvodem je podpora.

Pokud totiž nad mým dílem vyroste derivát a ten bude mít uzavřený kód, tak dříve nebo později se na mě začnou lidé obracet s tím, že když použijí tu část, kterou obhospodařuje můj kód tak jim to spadne. To nemusí být pravda (současně se spustí i něco jiného) nebo to může být pravda (a pád nastane díky interakci s jinými moduly). Nicméně já nemám šanci to nijak odladit. Nijak na to reagovat. Protože do toho produktu nevidím. A z pohledu uživatele zůstane špína na mě.

A mluvím o uzavřeném kódu, protože je bohužel možností toho tranzitivního obalu Moje licence -> [CDDL|BSD|MPL] -> uzavřený kód nadstavby.

A ano. Vím, že v BSD "musí být zmíněno zřeknutí se odpovědnosti a nesmí být k šíření či podpoře využito jméno či značka autora či dalších přispěvatelů." Jenomže i když to tam je napsané, tak realita je jiná. A pokud poskytovatel derivátu neposkytuje uspokojující podporu, tak uživatel si hledá jiné cesty a pátrá i autorů jednotlivých komponent.

Otázka: Pokud je kód uzavřen,

Otázka: Pokud je kód uzavřen, odkud se uživatel dozví, že v tom byla vaše komponenta použita? ;)
Ale dejme tomu, že je použita MPL a zrovna vaše jméno se tam, jako na potvoru, objeví. Můj názor je takový, že chce-li se programátor dožít v plném tělesném i duševním zdraví čtyřicítky, mít odpovídající krevní tlak a hladinu cholesterolu, tak by měl 1. cvičit, 2. střídmě jíst a 3. nedělat uživatelskou podporu, nota bene pro programy, co nevytvořil on.
Já vím že praxe je často jiná, ale prosím pěkně: Pokud jsem udělal software na stahování dat, který je použit v tachografu, který je namontován v elektrické lokomotivě, tak nebudu dělat ani support pro tachograf, ani support pro lokomotivu, a pokud se na mne někdo s takovým dotazem obrátí, tak mu slušně odpovím, že lituji, ale nevím. Já soucítím s nebohým mašinfírou, kterému ten krám nejede, a chápu jeho rozčilení z toho, že s ním ze Škodovky nikdo nekomunikuje a z Metry taky ne, ale to není moje starost ani moje zodpovědnost. Pokud bych něco takového připustil, tak jsem na nejkratší cestě k Chocholouškovi!

Odpověď: A jak víte (víme) že

Odpověď: A jak víte (víme) že ve Windows je IP stack z BSD? :)

> nedělat uživatelskou podporu, nota bene pro programy, co nevytvořil on
Což se dělá blbě, když děláte ve firmě, která se živí především podporou (Red Hat).

> ale to není moje starost ani moje zodpovědnost
Ale je, protože takový uživatelé jsou VELMI hlasití. Praxe ukázala, že je mnohem lepší se takovým situacím vyhnout.

Např. Jak nechcete opravit_?! Tady stojí že autorem Tachografu je Martin Malý, no jste to vy. Nebo ne? No ještě abyste to popíral. Jak nemáte zrdojáky?! Však jste to napsal. Vy jste to vytvořil a teď to nejde. Tak to opravte. No tak. Nebo na vás pošlu Novu a to pak budete koukat... A tak. No však to určitě sám znáte.

Znám. Ale nechává mě to

Znám. Ale nechává mě to chladným. To že je někdo kretén a myslí si, že výrobce čepiček na ventilky mu bude radit vždy když mu auto nepojede, není můj problém. I kdyby zavolal Novu, Blesk, Šíp a Srstku, tak je mi to šumák. A může i několik demonstrací a protestních koncertů uspořádat. A může i na protest odejít z Bloguje! :)

Vřele doporučuju stejný přístup. Spousta lidí vás bude nenávidět a považovat za zlého a neochotného, ale to není nic, co by člověka muselo trápit.

 

BTW - proč tedy uživatelé Windows nežádají o podporu autora IPTables vždy když jim nejede internet? :)

 

Mimochodem, jistě víte jak jsem to s tou podporou myslel - na situaci, kterou popisujete vy: Udělám kód, kdosi ho upraví, ještě kdosi ho použije kdesi a nějaký pitomec si myslí, že já jsem za to všechno ZODPOVĚDNÝ a že jsem POVINEN mu pomoct. Nejsem.

GPL je nezmysel

Som Apache committer a všetky Apache projekty sú distribuované pod APL licenciou (obdoba BSD). Apache projekty používajú veľké firmy a cuduj sa svete, nikomu to nevadí. Práve naopak, jeden z dôvodov, prečo APL vyzerá tak ako vyzerá je, aby kód mohli používať veľké firmy.

GPL myšlienka pri frameworkoch (nie samostatných programoch) je naivná. Určite kvoli nejakému frameworku vydanému pod GPL nebude firma otvárať svoj zdrojový kód ktorého vývoj stál X mil. dolárov a ktorý z rôznych (business) príčin ani otvoriť nemôže. To radšej reimplementuje danú funkcionalitu. Na druhej strane ak je framework pod APL, firma ho použije, ak sú s nim problémy často ich opraví a poskytne patche (má na to dobrý dôvod, nikto nechce maintainovať vlastný brach kvoli pár opravám) príp. zaplatí priamo vývojárom projektu.

Amen - je to přesně jak

Amen - je to přesně jak říkate. Kolik opensource projektů by mohlo profitovat z více business-friendly license...

Volby prohlížení komentářů

Vyberte si, jak chcete zobrazovat komentáře a klikněte na „Uložit změny“.