> Často se vedou spory o situaci u dynamického linkování, ale podle FSF je situace naprosto stejná: pokud distribuujete moduly určené pro použití s konkrétním svobodným software u uživatele, vytvořili jste kombinované dílo a jako celek opět musí být zveřejněno pod GNU GPL – tedy i váš modul.
Jak je to v případě, kdy program používá GPL knihovnu, ale nedistribuuje jí, má jí pouze jako závislost, která se instaluje přes package manager?
Například když napišu python script pod MIT, který ale závisí na knihovně zveřejněné pod GPL. To najednou musím kód přelicencovat na GPL, i když knihovna samotná není součástí distribuce (=není vložená balíčku) mého projektu, je jen specifikovaná v requirements.txt?
Pokud je ta knihovna pod GPL, pak i všechny programy, které ji použijí, musí být pod GPL. Bez ohledu na to, jak jsou linkované. Občas se to vysvětluje v duchu "pro kompilaci potřebujete znát definici knihovny, takže vytváříte odvozené dílo od definice knihovny, která je nedílnou součástí knihovny a tudíž také pod GPL".
Tahle vlastnost GPL se obchází dvěma způsoby:
1. Autoři knihovny sami uznají, že je to kravina, a místo GPL použijí LGPL. Ta, zjednodušeně řečeno, definici knihovny prohlašuje za samostatnou část, se kterou si můžete dělat co chcete. Dokud nebudete linkovat staticky, tak na vás žádné požadavky nemá.
2. Mezi váš program a knihovnu vložíte další program. Ten bude používat knihovnu a volat váš hlavní program. Bude muset být uvolněn pod GPL, ale vy v něm nemáte prakticky nic, co by bylo tajné. Ale je to dost blbá drbačka s callbacky, protože tenhle GPL program musí volat ten váš ne-GLP, nikoliv naopak, jak by to bylo samozřejmé. Váš hlavní program pak bude samostatně funkční celek bez jakékoliv vazby na knihovnu nebo váš spojovací program, o jejichž existenci a definici nebude mít ponětí. Proto nebude odvozeným dílem. Ale píše se to dost blbě a přidaná hodnota je nulová.
Situace je docela růžová, většina důležitých knihoven je pod LGPL. Na GPL knihovnu narazíte jen zřídka a většinou je to jen chyba autora, kterou na požádání opraví.
Sice nepotřebujete .h, ale tu knihovnu znát musíte. Minimálně názvy funkcí a význam parametrů. A to je ta definice, kterou dle FSF licence GPL chrání. Zda je to .h soubor nebo například introspekce na tom nic nemění. Poohlédněte se po prohlášeních FSF, respektive pana Stallmana, na toto téma. Nebo koukněte na nějaký dokument o tom, co řeší LGPL.
Uniká. Popisuje to Karel ve svém příspěvku v bodě dva. Ta mezivrstva je sice odvozená od původního díla, ale od ní pak už není odvozený ten binární kód. Ona totiž naopak volá ten kód, ne tak, jak by to bylo logické. Čili pak je to:
jádro ← vrstva → binárka
Takže binárka je samostatný kus software rozhraním, se kterým „náhodou“ komunikuje jaderný modul napsaný pod GNU GPL. Tím se přetne ta nutnost relicencovat odvozené dílo, protože to odvozené dílo není.
to by mi fakt zajimalo, jak to v tom bode 2 funguje. Autor sice pise o tom, ze 'obrati' ten 'smer' volani, ale to je v pripadech ktere si dovedu predstavit zcela nerealne. Autor to popisuje jako 'drblacku', ale ja to povazuji za 'prakticky' nemozne.
Bylo by to mozno vysvetlit na nejakem prikladu. Mam hlavni program, ktery komunikuje s uzivatelem a podle potreby vola funkce nejake databazove knihovny. a ziskava tak data, ktera pak uzivateli zobrazi. Necht se ta funkce v tom hlavnim programu jmenuje
char *data(long rec_number);
ktera pro nejaky rec_number dodava ta data. Jak vypada ta 'meziknihovna'. Podle ceho se ta meziknohovna dovi, jake rec_number mam prave na mysli?
Nechapu ale hlavne, proc by to bylo treba delat. My to resime s meziknihovnou, ktera je pod GPL a pres shared memory komunikuje s tim NOT-GPL hlavnim programem a sama je slinkovana s tou GPL databazovou knihovnou. To je naprosto v souladu GPL - i kdyz - a to uz je pravnicke svinstvo ze strany FSF, ze kdyz se to distribuuje vsechno spolecne , tak FSF hrozi, ze to dá stejne k soudu. Vychodiskem v tom pripade je, ze je treba distribuci resit pres ruzne nosice nebo z ruznych webovych stranek.
Vypadalo by to uplne jednoduse ...
Mas ten mezikus, a ten se appky zepta "chces data?" Apka mu odpovi "jo chci ..." + naky parametry. Mezikus to veme, a zepta se databaze a odpoved vrati appce.
Ale jak sem rek, je to ptakovina, protoze takhle odvozeny SW nefunguje a nikdy nefungoval. Odvozeny SW neznamena, ze volas nejaky API. Odvozeny SW znamena, ze si integroval do toho SW cizi kod.
Pokud vaše meziknihovna komunikuje s tím NOT-GPL programem, pak je to v pořádku. Pokud váš NOT-GPL program komunikuje s vaší meziknihovnou, pak GPL porušujete. Toto pravidlo mi vadí, nesouhlasím s tím, ale pan Stallman na toto téma opakovaně vydával prohlášení, kde si stojí za tím, že už jen vědět, jaké má knihovna funkce a význam parametrů, znamená vytvářet odvozené dílo. Proto také máme LGPL.
Viz například třetí odstavec zde: http://www.gnu.org/licenses/why-not-lgpl.html
Co se příkladu týká, tak bohužel už C z rukávu nesypu, tak alespoň náznak pseoudokódu. Proprietární část sama definuje funkci, jakou chce volat. O existenci GPL knihoven neví, samo definuje, jak ta funkce má vypadat. A nabízí funkci, kterou může kdokoliv (kdo zná její definici) zavolat a nastavit callback. Pokud pak potřebuje tu funkci z GPL knihovny zavolat, tak se podívá, zda už někdo ten callback nastavil. Pokud ano, tak ho zavolá. Pokud ne, tak spadne.
GPL knihovna:
char *data(long rec_number);
Proprietární software:
definuj datový typ data_callback jako function (char * rec_number, char **data) return boolean;
data_callback data_callback_function ;
export boolean set_data_callback(data_callback x)
{
data_callback_function = x;
}
char *my_data()
{
char * data;
if ( data_callback_function != null )
{
data_callback_function(to_char(id), &data);
return( data );
}
throw "No callback setup yet";
}
GPL Interface:
boolean my_data_callback(char * rec_number, char **data)
{
char * i_data = gpl.data( to_long(rec_number) );
copy_text(data, i_data);
return(true);
}
init
{
proprietary.set_data_callback( &my_data_callback );
}
> pan Stallman na toto téma opakovaně vydával prohlášení, kde si stojí za tím, že už jen vědět, jaké má knihovna funkce a význam parametrů, znamená vytvářet odvozené dílo
Pan Stallman si může stát za čím chce, ale není to nic víc než názor jednoho člověka. Autoritativně to může rozhodnout jenom soud, a to ještě jenom v nějaké jurisdikci a pro konkrétní případ. (Tím neříkám, že nemá pravdu, jenom prostě není definitivní autorita v té věci)
Je to názor člověka, který tu licenci napsal. Pokud soud rozhodne jinak, tak pan Stallman, respektive FSF, udělá to, co už v minulosti udělali: prostě vydá GPL verze 4.
Osobně mě docela děsí, že někdo zcela ignoruje licenci i jejího autora a odvolávají se na soud. Když se vám ty podmínky, které vám autor licence uložil, nelíbí, tak se tomu SW vyhněte obloukem. Osobně považuji obcházení licence za nečestné. Její text není zcela jednoznačný, ale její autor k ní vydal poměrně rozsáhlá vysvětlení a mraky komentářů. Máte veškeré dostupné informace k tomu, abyste věděl, co tou licencí chtěl autor říct. Tak ho respektujte a nechtějte po soudech, aby ho nachytaly na nějakou chybu v textu.
> Je to názor člověka, který tu licenci napsal [...] Když se vám ty podmínky, které vám autor licence uložil, nelíbí
To je ale úplně zcestný směr uvažování. JÁ vytvořím nějaký soft a JÁ uděluju případně dalším lidem práva s tím softem nějak nakládat. Pokud se mi zdá, že to, co jim chci udělit, pěkně popisuje GPL, tak ji můžu použít. A pokud mám pocit, že někdo MŮJ soft použil v rozporu s tím, jaká práva jsem mu chtěl dát, tak se budu soudit JÁ s NÍM a co si o textu licence myslí pan Stallman je celkem jedno. Maximálně se může třeba tvrdit, že na významu té licence existuje obecná shoda a že ta druhá strana předpokládala, že jsem tou licencí myslel to, co jí myslí jiní lidi.
Ale v žádným případě neklade Stallman ani nikdo jiný na nikoho žádné podmínky. Stallman jenom napsal text. Podmínky ukládá autor softu. Je to stejné, jako bych na něco použil nějaký obecně dostupný vzor smlouvy - výklad autora toho vzoru je v případě smlouvy irelevantní. Jediné, co rozhoduje, je výklad soudu.
Do liceci si kdo chce muze psat co chce, je mu to hovno platny, kdyz neco specifikuje zakon, tak vzdy plati ten, a ne blabol v licenci. To je mimo jiny duvod, proc se M$ naprosto zasadne nesoudi kvuli EULA. Protoze by se jim mohlo stat, ze soud to prohlasi za neplatne zcela jiste z casti, nebo jako celek.
Modla? Proč modla? Je to autor té licence, on ji napsal. To mu dává dost velkou autoritu bez ohledu na to, kolik má uctívačů a kolik odpůrců. Osobně nechápu, proč je GPL tak populární. A z reakcí pod tímto článkem mám pocit, že u řady lidí hlavně proto, že vůbec netuší, co se v ní píše.
hi, diky za obsahlou odpoved.
Z tohio prikladu je jasne, co se temi callbacky primarne docili - jmena funkci a ani NIC dalsiho neni s puvodnim dilem spojeno. To je OK a je to i pekna programatorska finta, jak to udelat. Priznam se, ze ja bych na to sel asi tak, ze bych si vymyslel vlastni jmena funkci a i parametry bych totalne zprehazel, aby bylo jasne, ze to neni odvozene. (do 10 radku - tedy 10 funkcnich definic je kryto citaci z dila!).
Ted ale k tomu , co porad nechapu. Jsou ty 3 komponenty slinkovany do jednoho celku? To by samozrejme neslo, protoze pak by se delo vse v jednom adresnem prostoru a pak se jedna jednoznacne o odvozene dilo - at uz vola jakakoliv komponenta kteroukoliv jinou.
Jestlize vychazim z toho, ze ty GLP komponenty (databazova GPL knihovna a GPL meziknihovna) jsou slinkovany spolu a ten proprieterni dil je vedle, tak take spolu musi nejak komunikovat.
K tomu , co jste napsal, ze ta komunikace pres shared memory je porusenim GPL - tak to neni pravda. Neznam nejake jine fundovane zdroje nez nemecke a proto pro ty, kteri by se o to zajimali - jedna se o disertaci Fabiana Schäfera z roku 2010 s nazvem -'Der virale Effekt' (viralni efekt). V teto disertaci je velmi obsahle vysvetleno, kdy je mozno povazovat komunikace 2 komponent za odvozene dilo a co je potreba udelat , aby se o odvozene dilo nejednalo. (v principu jde o to, aby ta meziknihovna byla vytvorena trochu obecneji , minimalne musi existovat dokumentace k te funkci interface).
"Pokud je ta knihovna pod GPL, pak i všechny programy, které ji použijí, musí být pod GPL. "
To zní jako slušný nesmysl. Pokud program nechci distribuovat i s knihovnou, může mi to být ukradené. Když si ho ode mně někdo stáhne a zkompiluje vůči té knihovně, nebude nic porušeno (pokud ho s ní nebude distribuovat dále).
> projekt OpenSolaris skončil a jeho zdrojový kód stále není možné jednoduše využít ve zbytku svobodného software
Tohle mi přijde jako trochu zavádějící formulace - někdo by mohl nabýt dojmu, že ten kód je nějaký "abandonware". Tak to není, jednak existují komunitní pokračovatelé OpenSolarisu a navíc kód pořád žije v komerčním Solarisu.
Btw, výzva vydat ZFS pod GPL je dost absurdní - ZFS je killer feature a Sun (natož teď Oracle) neměl a nemá motivací jím pomáhat konkurenci, aby si kanibalizoval vlastní produkt...
Až tak absurdní to zase není, když uvážíte že Oracle kromě ZFS podporuje i přímého konkurenta BTRFS, a kromě Solarisu prodává taky Linux. Nevím sice, jaký je poměr mezi jejich příjmem z Linuxových instalací databáze proti Solarisovým, ale ani bych se nedivil, kdyby Linux měl větší podíl. Ergo, usnadnit podporu Oraclího ZFS v Oraclím Linuxu mi nepřipadá zrovna nelogické... jenže tohle je Oracle, a ten je logika holt krátká.
To je zase blabol, co Mr Krcmar?
GPL 3 rozhodne neresi torrent, protoze peer na torrentu zadnou distribuci nedela. Nebo chteji tvrdit, ze switch dela distribuci? Router dela distribuci? Jo tak to by si vsichni ISP meli koupit licence na vse, co pres jejich sit protece. Veskery jejich zelezo (dokonce vcetne kabelaze) totiz vytvari docasne kopie, ktere nasledne distribuuji dal ... chmm ... presne stejne jako torrent.
GPL3 pokud vim resi predevsim ... SW patenty.
Jo a jen tak pro zajimavost... dokonce ani autor nemuze souhlasit s licenci, kterou nevidel. Takze noticka na tema "cosi nebo novejsi" ... nema naprosto zadny vyznam.
Dalsi casti toho blabolu je, ze ZFS musi byt GPL ... to jako proc? Kupodivu i v samosce prodavaji spoustu zbozi, ktery se da vsemozne kombinovat, a to presto, ze kazdej dodavatel ma zcela jiste jiny podminky. ZFS neni nic jinyho, nez nejakej kus SW s nejakou licenci, stejne jako LO, FF, ... Podle tyhle logiky se ovsem na GPL systemu neda provozovat NIC, co neni taky GPL. Takze GPL vlastne porusujou uplne vsichni. Vcetne tebas Redhatu, kterej nongpl rovnou prodava ...
Doporučuji neargumentovat mlékem a chlebem a přečíst si odkazované články. Ten BitTorrent je tam výslovně takto zmíněn samotným Richardem Stallmanem. A poslední odstavec je také nesmysl, nikdo neřeší „společné provozování“ – to je licenčně v pořádku. Problém je v jejich zkombinování. A o tom je celý tento článek.
So in order for nVidia to be able to legally distribute a binary-only
kernel module, they have to be able to feel damn sure that they can
explain (in a court of law, if necessary) that the module isn't a derived
work. Enough to convince a judge. That's really all that matters. Our
blathering matters not at all.
[...]
And so _I_ personally think some binary modules are ok, and you've heard
my arguments as to why. That means that _I_ won't sue over such uses,
since in my opinion there is no copyright infringement IN THOSE CASES due
to me not considering them derivative.
Ty distribuce taky porušují GPL. Často distribuují také další freeware, který má licenci, která neumožňuje distribuci třetími stranami, kodeky, které jsou kryté softwarovými patenty (právně napadnutelné v USA, Japonsku,...). S legalitou si moc hlavu nepárají, porušování GPL licence je jenom jedno z mnoha. Jenže kde není žalobce, tam není ani soudce.
Volání API ≠ linkování. Slinkováním vzniká odvozené dílo (odjakživa), viz například GPL FAQ. Přesně proto před čtvrt stoletím vznikla licence GNU LGPL. Prosím, méně dojmů a více ověřených informací.
Bavime se tu o samostatnym modulu. A nikoho nezajima, jestli je to modul se zfs nebo modul od nvidie, ati .. atd. kazdy ma jinou licenci, o kazdem se zcela 100% da rict, ze neni odvozen z niceho GPL. Naopak, spousta GPL je odvozena z tech nongpl veci - treba za pomoci reverzniho inzenyrstvi.
Takze by to chtelo neplacat mimo.
Este stastie ze WINE ma taku benevolentnu licecenciu, inak si viem zivo predstavit ako zenu napr. Valve pred sud, za to, ze ich produkt je zlinkovany s ich implementaciou systemovych kniznic win. :)
Teraz vazne, pri dyn linkovani dochadza k skutocnemu zlinkovaniu s kodom az pri load time u uzivatela. Binakra pri zakladenej implementacii obsahuje len meno kniznice, symbolov a cast ABI. Z toho sa neda poznat licencia kniznice.
Takze ty hromady lidi, co distribuji knihovny pod LGPL a prakticky vsichni pravnici, co se tim zabyvaji se podle vas vsichni pletou? Pochopte, ze vase argumentace vam muze pripadat logicka, ale zakony a jejich vyklady proste funguji jinak. Nejste prvni kdo neco takoveho tvrdi, takze nevidim duvod, proc by zrovna kvuli vam zacaly soudy rozhodovat jinak. GNU CLISP byl prelicencovany na GPL z toho duvodu, ze pouzival libreadline, ktera je pod GPL. Autor CLISPu to taky nechapal, kecal o tom, ze prece muze napsat libnoreadline s uplne stejnym API, ale pak pochopil, ze ten pravnicky bordel proste podle jeho predstav nefunguje a pravdepodovne nikdy fungovat nebude.
Znovu se ptam, ty hromady lidi, co distribuji knihovny pod LGPL a pravnici, co se tim zabyvaji, se podle vas vsichni pletou? A vy, bez jakekoli zkusenosti s vymahanim copyrightu a licenci, jste jedinecny genius, ktery to jen na zaklade sve logicke uvahy chape spravne? Nepripada vam to trochu nepravdepodobne?
Zvanit muzes jak chces, ale jsou to jenom zvasty.
"Předmětem práva autorského je také dílo vzniklé tvůrčím zpracováním díla jiného"
ZFS naprosto NIJAK nezpracovava cizi dilo.
1) Pokud byl jakkoli aktivně použit nebo dokonce modifikován zdrojový kód předlohy, jde téměř jistě o odvozené dílo.
2) Pouhé použití knihovny prostřednictvím aplikačního programového rozhraní (API) nečiní z programu dílo odvozené z knihovny.
3) Pokud program nabízí mechanismus pro připojení samostatných modulů (pluginů, ovladačů zařízení apod.), pak tyto moduly nejsou odvozeným dílem.
4) V případě spojování (linkování) programů je potřeba zvážit, zda je předloha svou podstatou takové spojování umožňuje a předpokládá, tj. je-li například prezentována jako knihovna. Technický způsob takového spojení (statické, dynamické apod.) pak není rozhodující.
Toliko zakon a vysvetleni k nemu.
2)
Až na to, že je tu jeden malý problém. Musíte dodržet zákon i licenci (která může upravit vše, krom věcí zákonem výslovně přikázaných nebo zakázaných - § 66 odst. 6 AZ).
Zejména tato část:
"Takový uživatel může užít oprávněně nabytou rozmnoženinu počítačového programu v rozsahu stanoveném v odstavci 1 (minimální rozsah), pokud není smlouvou dohodnut rozsah širší; minimální rozsah nelze s výjimkou oprávnění uvedeného v odstavci 1 písm. b) dohodou zúžit."
Pokud tudíž GPL nedodržíte, pak teprve nastoupí čistý zákon, a podle toho nemáte skoro žádná práva (ztratíte i právo použít, které GPL jinak neřeší). Takže fakt, že podle zákona to odvozené dílo není je vám k ničemu, protože tu knihovnu stejně nesmíte užít, aniž byste dodržel podmínky autora - žádné linkování s ne-GPL kódem.
3) a 4) Podle zákona máte pravdu, ale podle licence ne. A licence platí jen pokud dodržíte všechny její body.
Neni pravda, licence je specialni pripad smlouvy. U vsech smluv plati, ze jejich soucasti, ktere jsou v rozporu se zakonem, jsou neplatne. Teprve v pripade, ze by cela smlouva vykazovala zasadni rozpory se zakonem, muze byt neplatna jako celek.
Tzn, pokud nekomu dodam soft, napisu, ze s nim muze nakladat jak chce, a pridam bod, ze ale musi kazdy mesic pri uplnku zabit minimalne 10 lidi a obetovat je, tak nebure platit prave a pouze tento bod, zbytek smlouvy je platny.
Jenže GPL neodporuje zákonu. To by musel někde v AZ být paragraf, že takovéto omezení uživatele je nepřípustné. Jenže ten tam není a co není zakázáno, je povoleno. Naopak je v zákoně napsané, že máte minimální práva, pokud smlouva nestanoví jinak. Ta definice odvozeného díla podle smlouvy má tudíž v tomto případě pro tu smlouvu vyšší prioritu, než obecná definice v zákoně.
GPL je kouzelná v tom, že pokud ji nedodržíte, tak jste na tom s právy ještě hůř, než s ní (bez GPL nemůžete prakticky nic; s GPL máte omezenou distribuci).
> BSD obsahují GNU věci,
Muzu se zminit o situaci ve FreeBSD. U ostatnich nevim:
Pokud myslis porty/balicky, tak to je sw tretich stran, neni to soucast FreeBSD. Kazda z tech tretich stran si muze svuj sw licencovat jakkoli uzna za vhodne. AFAIK neni zadne omezeni na to, jakou licenci muze mit sw v portech - port jenom slouzi k usnadneni instalace toho ktereho sw. Takze staci, aby to slo online stahnout a/nebo nekde cachovat, a muze to v portech byt. FreeBSD nema zadne odliseni Free-Non free veci jako to maji nektere distribuce Linuxu. Neresi to, protoze neni proc.
A pokud myslis vlastni FreeBSD (tzv. "Base"), tak ten 1. obsahuje minimum GPL veci, 2. pokud to jde, postupne se GPL veci nahrazuji BSD-licensed alternativami 3. GPL3-based veci nejsou akceptovatelne vubec. I pokud to znamena extremni usili, jsou zastarale GPL2 sw nahrazovane alternativami. (Napr. nahradit gcc clangem byl heroicky kus prace a FreeBSD to stalo za to, prestoze zdroje ma velmi omezene).
No a nejdulezitejsi je to, co uz tady x-krat zaznelo a o cem je cely clanek: GPL sw nesmis LINKOVAT z jinak licencovaneho kodu. Distribuovat ho VEDLE jinak licencovaneho sw muzes bez problemu.
> A když je tam ještě ZFS?
No a? CDDL je s BSD licenci kompatibilni. Takze CDDL-licensed kod muzes bez jakychkoli problemu s BSD-licencovanym kombinovat.
> obsahuje minimum GPL veci,
Zapomnel jsem link: https://wiki.freebsd.org/GPLinBase
To právě záleží, co je odvozené z čeho. Pokud do BSD portují třeba nějaký shell vydaný pod GNU GPL, pak ten shell staví nad kódem BSD a je to v pořádku. BSD licence nenutí ke změně licence odvozená díla (= není virální).
Horší by to bylo, kdyby BSD portovalo nějakou systémovou knihovnu vydanou pod GNU GPL a nad ní portovalo vlastní věci. Ty by pak musely být také pod GNU GPL. Ale to v praxi taky nenastane, protože knihovny jsou vydávány pod GNU LGPL, která zase to nakažení ruší. Takže v obou případech je to v pořádku.
No, ale tam jsou součástí základu systému GPL věci (např. do nedávna gcc, ld, ar (a nevím, co všechno), myslím, že dodnes vše kolem překladu nebylo portováno). Podle toho, jak to chápu, by celý OS měl být tedy GPL (a co se CDDL týče tedy nekompatibilní).
Né, že bych se chtěl do BSD nějak obouvat, ale připadá mi to, jako porušení GPL s tím, že to nikomu až tak nevadí. Jen by mě zajímalo, jestli to tak je.
Ne, pod GPL by muselo být jenom to, co je s GPL kódem SLINKOVANÉ. Gcc přece není třeba s shellem slinkované! (A na knihovny gcc je výjimka - můžu klidně překládat pomocí gcc komerční soft).
Pokud vedle sebe jenom na disku leží GPL-licencované /usr/bin/gcc a BSD-licencované /bin/sh, tak to NENÍ porušení GPL!
Opakuju: na té výš odkazované stránce máš seznam GPL-softu. Co z něj podle tebe je s něčím slinkované?
"projekt OpenSolaris skončil a jeho zdrojový kód stále není možné jednoduše využít ve zbytku svobodného software vydaného pod GNU GPL. Oracle už teď nemá praktický důvod držet se staré licence"
Toto nie je pravda.
OpenSolaris síce skončil ale z dôvodu že Sun ako vlastníka OpenSolaris kúpil Oracle a tým prešli na Oracle aj licenčné práva. Oracle ponuka vlastný produkt Oracle Solaris 11 https://www.oracle.com/solaris/solaris11/index.html.
No od OpenSolarisu sa forkli distribúcie a niektoré sú čiastočne živé. Napr.: Smartos, Nexenta, Openindiana a ine.
To že autor nepozná Oracle Solaris alebo iné distribucie, to neznamená že neexistujú a je možné vykradnúť ich zdrojové kódy. Každopádne Solaris ešte úplne neumrel, no Oracle ho tlačí do hrobu celou svojou silou, až sa aj zo Solarisu stane len zápis v dejinách informatiky.
Když jsem před časem hledal místo, lákali mě i do Oraclu, abych dělal na Solarisu. Odmítnul jsem to, protože podle mě Solaris pod Oraclem nemá budoucnost. Na to odpověděli, že si Solaris budou střežit jako oko v hlavě, protože to je jejich vlastní operační systém a tedy jediný operační systém, na kterém se můžou zaručit, že Oracle bude chodit tak jak má. Dokud neměli vlastní systém, tuto záruku prý podkytovat nemohli.
Co se stalo se Solarisem od té doby jsem už nesledoval.
Ahoj,
myslím si, že když nezávislý novinář prezentuje nějakou kauzu, měl by popsat postoje obou stran. Tento článek považuji za velmi jednostranný, proto si dovolím doplnit překlad (doufám, že aspoň trochu podařený) relevantního postoje Dustina Kirklanda, který je součástí produktového a strategiského týmu Canonicalu, vedeného Markem Shuttleworthem - tedy názor druhé strany:
http://blog.dustinkirkland.com/2016/02/zfs-licensing-and-linux.html
Přestože CDDL a GPLv2 jsou obě "copyleft" licence, mají odlišný rozsah. CDDL se vztahuje ke všem souborům vydaných s CDDL, zatímco GPLv2 se vztahuje na odvozená díla.
CDDL není možné vztahovat na linuxové jádro, protože zfs.ko je samostatný modul souborového systému - jádro samotné celkem zjevně není dílo odvozené z tohoto nového souborového systému.
A zfs.ko, jako samostatný modul souborového systému, jasně není dílo odvozené z linuxového jádra, ale spíše celkem zjevně odvozené dílo z OpenZFS a OpenSolaris. Obdobné výjimky existovaly po mnoho let, za všechny ostatní například samostatné neGPL moduly jádra.
Vzdyt to v clanku je, jaky mas problem?
Ubuntu proti tomu chce souborový systém distribuovat v binární podobě, protože podle právníků společnosti Canonical nepředstavuje CDDL žádný problém a licenčně je vše v pořádku. Všichni to ale tak jednoznačně nevidí a Software Freedom Conservancy pokládá takové spojení kódů za porušení GNU GPL.
Ten tvuj odkaz nerika nic jineho. Proste Ubuntu se pousti na tenky led a jestli se Oracle rozhodne Canonical pravne napadnout, muzeme tady mit dalsi kauzu ve stylu SCO... Myslet si muze kdo chce co chce, ale rozhodnout muze jedine soud.
Postoj Canonicalu jsme podrobně rozebírali v samostatném článku Ubuntu také nabídne ZFS. Licence prý není problém, který je z toho mého odkazován. Tento článek navíc nebyl zaměřen na postoj tvůrce Ubuntu, ale na postoj FSF.
Vždyť se tady o tom mluví pořád dokolečka: ten GPL kód musí být s tím non-GPL kódem SLINKOVANÝ. To je něco, na čem se shodnou všichni. Jestli to stačí nebo je potřeba ještě nějaké další podmínky, o tom si myslí každý něco jinýho. Ale tahle podmínka je určitě nutná.
Takže jestli se nějaký ovladač instaluje "do systému" a tvůj SW s ním není slinkovaný, nemají ty dva kusy kódu nic společného a můžou být bez problému pod jakoukoliv licencí.
> svůj SW nemohu distribuovat pod GPL, i když jsem víceméně jeho autor
Tohle je zajímavý moment. Tak si uvědom, že ta licence, která způsobuje problémy, **je GPL**, protože je virální, není to ta druhá. "Normální" situace je taková, že licence se vztahuje k nějakému konkrétnímu zdrojovému souboru. Říká, co s tím souborem můžeš dělat. A neříká, co můžeš dělat s jinými soubory (v rámci toho jednoho programu). Takže jeden .c zdroják může být pod WTFPL licencí, jiný pod BSD licencí a není v tom žádný problém. GPL je ale v tomhle anomální, protože vyžaduje nějaká pravidla pro **jiné zdrojáky**.
Čili pokud sis vybral GPL a máš problém, tak máš problém právě proto, že sis vybral GPL. Není to vina té druhé licence, je to tvoje chyba. Je to asi tak, jako by sis vybral licenci, která požaduje, aby se autor programu po pěti letech zastřelil a nadával bys na to, že po tobě někdo chce, aby ses zastřelil. No tak si vyber nějakou licenci, která to po tobě nechce a problem solved, ne?!
Ještě jsem teda zapomněl, že pokud jsi jediný autor toho tvého softu, nebo vlastník všech práv (někdo to pro tebe napsal za peníze apod.), tak tě ani GPL nijak nesvazuje, protože ty si se svým dílem můžeš dělat co chceš. Licence jenom stanovuje podmínky, jak se mají chovat jiní lidi, za jakých podmínek jim ty, jako autor, uděluješ jaká práva na nakládání s tvým dílem.
Takže klidně můžeš ten svůj soft poskytovat na webu pod GPL a zároveň s ním můžeš dělat věci, které (ostatním lidem) GPL zakazuje.
"vytvořím nějaký SW, nějaký SW, ve kterém použiju, např. non-GPL ..." + "tak svůj SW nemohu distribuovat pod GPL, i když jsem víceméně jeho autor"
- Tyto dvě věty mohou být v rozporu. Záleží například, jakým způsobem je onen non-GPL použit. Může to znamenat, že ty NEJSI autorem toho, co nazýváš "svůj SW" - že autorem jsi Ty a autoři těch "ovladačů", pokud to vydáš jako celek.
To platí obecně, např. i pro C runtime knihovny.
Abys Ty mohl užít cizí kusy, musíš k tomu mít licenci. Proto se, obvykle, věci jako ovladače, konkrétní standardní knihovny jazyka a podobně, vydávají pod licencí, která Ti dává široké možnosti běhu programu. Obvykle. (GPL s tím má problém právě proto, že omezuje styl užití a vynucuje si /licenčně/ věci navíc, ne nutně potřebné pouze pro vlastní běh programu, ale týkající se i zdrojáků).
Takže problém je pouze, pokud si Ty pro svůj kód zvolíš licenci, která dává (určuje) i práva nad rámec cizího díla, ke kterým nemáš dostatečné oprávnění. Pokud si vybereš, pro svůj kód, třeba public domain like, nebo GPL, jsi to _TY_ kdo musí zajistit, abys měl dostatečná práva k veškerému použitému kódu tak, aby vyhovovala _TVOJÍ_ vybrané licenci. Řešením je:
- vybrat svůj kód pod takovou licencí, aby vyhovovala všem stávajícím licencím použitých cizích děl
- požádat autory cizích děl, zda Ti jej neposkytnou (ať už za úplatu či jinak) pod takovou licencí, která by byla vyhovovala té Tvé vysněné
Ja bych tuhle situaci nevidel tak zle. Problem je jen a pouze v distribuci. Tj. pokud bude existovat zfs.ko modul, pak sice nikdo nevi jakou ma mit licenci, protoze je zaroven odvozenym dilem jadra a zaroven pod licenci CDDL. Ale z pohledu uzivatele je to sumak, jenom je problem, ze distributor nedokaze splnit licencni podminky GPL a CDDL. Ale pokud nekdo vytvori program, ktery pouzije zfs, prida patch pro zkompilovani jako jaderny modul, tak je prece vsechno v poradku. Samozrejme vznika problem, ze vytvorene dilo nelze distribuovat (samozrejme nikomu jinemu, pokud si takto zfs zkompiluji v ramci firmy nastavim zdroje balicku a rozinstaluji na vsechny pocitace, tak taky neni problem). Ale kdyz uz mam modul v pocitaci, tak to prece dale distrubuovat nepotrebuji ne ?
> Problem je jen a pouze v distribuci.
To je sice pravda, ale tímpádem je taky problém ve všem, co na to navazuje. Nemůže existovat jedna otestovaná distribuční verze. Každý si to bude kompilovat sám s kdovíjakým nastavením kompilátoru. Bugreporty bych v takové situace řešil nechtěl...
Taky asi dost těžko půjde použít ZFS jako root partitionu v instalátoru (že by instalátor něco kompiloval? No nevím...)
Prostě kvůli licenci ZFS nikdy nebude first class citizen.
To jsou pouze male problemy, tady uz zalezi na tom, jake mam alternativy (v tomto pripade btrfs) a jake plynou vyhody. Tohle posuzovat nechci a ani nemuzu.
K problemum:
Pokud reknu, ze s takovym a takovym nastavenim a verzi kompilatoru to funguje a je to stabilni, pak bugreporty resit nemusim. Ostatne uzivatele gentoo si kompiluji vsechno sami s kdovijakym nastavenim kompilatoru.
Root partiion neni slozite vyresit dvoustupnovou instalaci, ale je pravda, ze boot partition jen tezko bude zfs.
Jinak neni zfs a btrfs spise urceny pro datove partition ? Posledne, kdyz jsem dal btrfs v domeni, ze se nebudu muset bat aktualizaci na root, tak byly aktualizace priserne pomale. Ale to uz bylo davno.
"Prostě kvůli licenci ZFS nikdy nebude first class citizen." To nebude. Chapu problemy, ale kdo chce parit na linuxu, tak taky stahne proprietarni graficke ovladace karty. Netvrdim, ze je to idealni, ale zaroven tvrdim, ze moznost provozovat ZFS na linuxu primo v jadre (jako modul) tu je - ani jedna z licenci to nezakazuje. Akorat vysledek nemuzu nikomu distribuovat.
> Ostatne uzivatele gentoo si kompiluji vsechno sami s kdovijakym nastavenim kompilatoru.
Jiste, ale taky maji nulove garance a support.
> Jinak neni zfs a btrfs spise urceny pro datove partition ?
Proc? Jedna ze super veci je mit moznost nainstalovat novy root vedle stareho a prepnout jeden na druhy jednim prikazem (fallback pro pripad spatneho updatu)
> Chapu problemy, ale kdo chce parit na linuxu, tak taky stahne proprietarni graficke ovladace karty.
To je srovnavani hrusek s jabkama. Pro pareni nepotrebuju zadne garance. Kdyz to spadne, tak to spadne no. Ale primarni urceni ZFS je na server. A pokud mam stoterrové úložiště pro desítky aplikací, tak je to fakt trochu jiný příběh...
K tomu pareni je srovnatelna situace, ze mam na notasu ZFS a na nem fotky z dovolene. Jo, v takovem pripade neni zadny problem.
> Root Partition
Protoze root je pak v podstate neupdatovatelny inplace, nevim jestli uz to opravili nebo to vubec opravit lze, ale spousta malych novych konfiguracnich souboru, headery, atd... delala btrfs problemy. Nyni teda mluvim o debianu, u ktereho si myslim, ze to vyresili tak, ze pouzivaji unsafe-io parametr dpkg nebo eatmydata utilitku, ktera zakazuje fsync(), sice to trochu pomohlo, ale v podstate to nevyresili. Nevim jak je to s jinymi distribucnimi systemy. A taky nevim jak je to se ZFS. Btw. mit novy a stary root vedle sebe a prepinat je na pouzitem systemu nezavisle - a jednoduche prepinani bych nedoporucoval, protoze nikdy nevis, co ti nova verze udela s /home/user/.* adresari. Ale to zalezi na konkretni situaci a problemy muzou nastat pri jakemkoliv updatu.
> Hrusky a jablka
Tohle jsem myslel uplne jinak, nez bylo pochopeno. Spis jsem narazel na to, ze uzivateli, ktery chce parit, nezalezi na tom jak se musi proprietarni ovladace instalovat. Stejne jako uzivatel, ktery chce pouzivat ZFS. A jestli chces vytahovat garance, tak moc souborovych systemu na linuxu zadne nema a ty nove uz vubec ne.