A já je chápu. Zdrojové kódy "údajně" pořád jsou k dispozici, tak v čem je problém?
Když někde chce/potřebuje RHEL, tak ať si ho koupí.
Pochopil bych fork distribuce, která by se pak ubírala podobným směrem.
Ale klon? Jenom zkompilovat zdrojáky, vyměnit loga a mít "vlastní distribuci"? A ještě se chlubit, že je to klon. To je už pro mě z logiky věci minimálně nemorální.
Moje (možná nesprávné) chápání GPL je, že by měla umožnit další vývoj. Ale tyto klony toho opravdu moc nepřinášejí.
Nakonec jaký je většinou důvod si vybrat klon, místo RHEL? Asi jenom peníze.
A teď mi začněte nadávat :-D
Nejenom údajně, všechno je na https://gitlab.com/redhat/centos-stream (a pokud ne, ozvěte se, je to bug).
Navíc pořád platí, že se primárně posílají patche do upstreamu.
Takže nadávat nebudu, protože přesně takto to vidím taky.
Toto je proste charakter open-source sveta. Sloboda kreativity. Aj klonovanie je slobodne zvoleny use-case. GPL ta nenuti robit pouzitelne a vseobecne prospesne upravy.
Takyto model ma svoje vyhody ale samozrejme aj problematicke stranky. A tou problematickou je financovanie vyvoja. Ten kto sa podujme nieco vyvijat to proste musi dat zdrama dalej. Je to jeho prispevok/obeta tomuto modelu/filozofii, za to, ze mohol stavat na niecom co urobil niekto iny a on to dostal zdarma.
'Zdrojové kódy "údajně" pořád jsou k dispozici, tak v čem je problém?'
Možná jsem to nějak špatně pochopil, ale pochopil jsem to takto:
1) Pro přístup k (binárnímu) RHELu potřebujete s RedHatem vstoupit do smluvního vztahu.
2) Poté máte přístup k binární verzi distribuce i příslušných zdrojových balíčků, včetně patchů starých verzí. (v souladu s GPL licencí)
3) Pokud z toho smluvního vztahu vystoupíte (ale i pokud v něm stále jste) RedHat vám v rámci podmínek tohoto smluvního vztahu zakazuje redistribuci těchto starých zdrojových kódů (s úpravami).
Teď nemůžu dohledat zprávičky, ze kterých jsem tohoto dojmu nabyl a tak možná to tak vůbec není. Ale potom bych nechápal jaký je problém se dostat ke zdrojákům přes RedHat portál a sestavit si svůj Alma/Rocky linux...
> 3) Pokud z toho smluvního vztahu vystoupíte (ale i pokud v něm stále jste) RedHat vám v rámci podmínek tohoto smluvního vztahu zakazuje redistribuci těchto starých zdrojových kódů (s úpravami).
To si špatně pamatujete. Red Hat redistribuci zakázat nemůže (GPL). Ale už vám potom nemusí dát přístup k novým verzím. Staré Vám ovšem zůstanou zcela v souladu s licencí.
GPL nevyžaduje zveřejnění zdrojových kódů. Vyžaduje, abyste je předal uživatelům. Tj platícím zákazníkům, což RH samozřejmě dělá.
https://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
Proto jsem tam napsal zjednodušeně a už jsem myslel, že tady snad už většina ví jak GPL funguje.
Tak aby to bylo jasné. Prodávám (klidně dávám zdarma) zákazníkům řešení na míru postavené na RHEL (pro jednoduchost dejme stranou licence o support s RedHat). Např. virtualni obraz s mojí aplikací. Pak mám povinnost tomu komu tenhle produkt dám i poskytnout zdrojové kódy. RedHat v tuhle chvíli mě nemůže nijak omezovat v poskytnutí kódů, které jsou pod GPL. A jak jsem napsal vypovězení smlouvy z tohoto důvodu je porušení GPL.
28. 6. 2023, 18:35 editováno autorem komentáře
Saljack: Vypadá to, že stále nerozlišujete dvě věci. Jedna věc je software – konkrétní aplikace, z nichž minimálně některé jsou pod GPL. Druhá věc je distribuce a služby s ní spojené – tj. to, že někdo vezme spoustu různých aplikací a přeloží a nakonfiguruje je tak, aby spolu dohromady fungovaly. A tohle není pod GPL.
GPL vyžaduje, že když někomu dáte software pod licencí GPL, musíte mu zpřístupnit i zdrojové kódy. Takže když RedHat ve své distribuci distribuuje třeba gcc, musí uživatelům distribuce zpřístupnit zdrojáky gcc v podobě, v jaké je v distribuci zahrnuto. Ale to, s jakými parametry gcc kompiloval, jaké měl závislosti (to je právě ta „distribuce“), to nikomu zpřístupňovat nemusí. Dříve to zpřístupňoval a byl při tom velmi benevolentní, teď to omezuje a chce to zpřístupňovat jen svým zákazníkům pod podmínkou, že to nebudou šířit dál. Což je naprosto v pořádku a nijak to nekoliduje s gcc a GPL, která se na gcc vztahuje. Protože GPL neříká nic o službách, které k tomu gcc přidáte navíc.
Tak si to co jsem napsal laskavě přečtěte ještě jednou. Rozdíl samozřejmě chápu a rozlišuji. Proto jsem napsal a naschvál zmínil pouze GPL (a myslel jsem speciálně na vás při psaní):
RedHat v tuhle chvíli mě nemůže nijak omezovat v poskytnutí kódů, které jsou pod GPL
Možná aby to bylo ještě přesnější, zdrojových kódů.
Já píšu jenom o zdrojových kódech pod GPL a ne o ničem jiném. Takže jakýkoli patch, který RedHat udělá do GPL zdrojového kódu podléhá GPL a RedHat nesmí GPL nijak omezovat a dále si podmiňovat. Může si dát do smlouvy klidně, že se nesmí sdílet proces sestavení (i když i to je asi na hraně) ale nesmí zakazovat nebo jakkoliv omezovat sdílení zdrojových kódů pod GPL nad rámec GPL, protože to jasné porušení GPL. Podmínka vypovězení smlouvy za poskytnutí GPL zdrojových kódu třetí straně je v rozporu s GPL.
Narážím na argumenty tohohle typu:
Red Hat redistribuci zakázat nemůže (GPL). Ale už vám potom nemusí dát přístup k novým verzím
Což je jenom omezení GPL. Tím, že vám za případné poskytnutí GPL zdrojových kódů hrozí postih. To je přesně proti GPL. Je to jenom finta, jak GPL omezit nepřímo. Nevím jak a zda to je, případně bude nějak dané ve smlouvách s RedHat.
Nemyslím si, že rozvázání komerční smlouvy je postih z pohledu GPL. Ta komerční smlouva nemá s GPL nic do činění a není na její existenci právo odvozeno od GPL.
V praxi můžete kódy zveřejnit a utajit sebe jako zdroj. Pak bude na Red Hatu, aby to zjistil a reagoval třeba neprodloužením supportní smlouvy. Za samotné zveřejnění Vám nic nehrozí.
Je naivní si myslet, že GPL vyžaduje, aby veškeré podnikání bylo naráz pod GPL. To ta licence nevyžaduje. Můžete to podepřít i tím, že GPL nevyžaduje ani zveřejnění zdrojových kódů. Jen zpřístupnění uživateli. Kdyby chtěla GPL vynucovat povinnou solidaritu ve všem, projevilo by se to už právě v povinnosti zveřejňovat.
Zdá se mi, že berete GPL a OSS spíš jako filozofický směr, než jako právní úpravu.
>Nemyslím si, že rozvázání komerční smlouvy je postih z pohledu GPL. Ta komerční smlouva nemá s GPL nic do činění a není na její existenci právo odvozeno od GPL.
Argumentom by mohlo byt, ze (hrozba alebo aj realizacia) rozviazania tejto zmluvy ako postih za vyuzitie svojich prav pod GPL je dodatocna podmienka, ktoru presne GPL zakazuje. Kedze nasledok je vyuzitie prava stanoveneho GPL, presne tento dovod RH na rozviazanie zmluvy nemoze pouzit, lebo prave v tomto pripade maju aj obchodna zmluva, aj GPL nieco spolocne.
Keby si v RH vymysleli nejaky iny dovod, to by mohlo byt ciste. Ale nie za posunutie GPL zdrojov dalej.
@ja.:
Dodatečná podmínka to je, ale neporušuje GPL. Je to dodatečná podmínka k servisní smlouvě na RHEL. Důsledkem není odepření práv vyplývajících z GPL, ale to, že ztratíte support od Red Hatu. Support od Red Hatu není nárokovatelný a nevyplývá z GPL.
Takže ano, je to podmínka, ale nekrátí práva vyplývající z GPL. Krátí práva vyplývající z čistě komerční smlouvy, která s GPL nesouvisí. GPL uživateli zaručila zdrojový kód, který dostal a může s ním naprosto volně nakládat. Tím byly podmínky GPL naplněny.
RH může smlouvu neobnovit nebo vypovědět z jakéhokoliv důvodu. Na takovou smlouvu není žádný právní nárok, ani z GPL nevyplývá. RH může klidně vypovědět smlouvu kvůli tomu, že se jim nebude líbit politika firmy zákazníka. V tomto je jasná smluvní volnost.
Vůbec jste nepochopil o čem je řeč. Tady vůbec nejde o zveřejnění kódů všem. Ale pokud zákazník RedHatu svému zákazníkovi poskytne software který je pod GPL musí mu poskytnout i kódy. RedHat mu nemůže, nijak bránit a to ani výhružkami ukončení smlouvy, protože to je pouze snaha o omezení GPL. Prostě s GPL přicházejí výhody, nevýhody a povinnosti. V tu chvíli jsou všechny strany povinné dodržovat GPL.
Ještě jednou aby tady zase nevznikali nějaké dohady. Bavíme se čistě jenom o GPL software. Pokud RedHat bude používat nějakou licenci, která končí nárokem na zdrojové kódy u prvního zákazníka, tak to tak prostě je a nikdo nemá právo s tím nic dělat.
Saljack: Ale RedHat mu přece vůbec nijak nebrání v použití GPL kódu. Stále mícháte dohromady aplikace a distribuci. To, co řeší RedHat, je distribuce. A to zakazuje šířit dál. Šíření zdrojáků aplikací pod GPL RedHat nijak nebrání (a nemohl by ani kdyby chtěl, protože ty zdrojáky se většinou dříve či později objeví v upstreamu).
RedHat ukončí smlouvu, na základě které zákazník dostává třeba informace o tom, že gcc překládají s těmito parametry a s těmito verzemi knihoven v systému zkompilovanými s těmito parametry. Tohle není věc, kterou by pokrývala GPL. To je bonus navíc, který dává RedHat na základě své smlouvy o podpoře – GPL nic takového nevyžaduje.
Což je jenom omezení GPL. Tím, že vám za případné poskytnutí GPL zdrojových kódů hrozí postih. To je přesně proti GPL.
Ne, to není nic proti GPL. GPL vám nikdy nedávala právo na nějaké budoucí verze.
GPL zakazuje přidávat nějaké podmínky ke zpřístupnění zdrojových kódů, které by reálně bránili tomu získání zdrojových kódů. Tj. nemůžete říct, že zdrojové kódy poskytnete jenom na vlastním médiu, které stojí 100 000 Kč. Ale žádný závazek, že zpřístupníte nějaké budoucí úpravy zdrojových kódů, z GPL neplyne.
Já nic nepíšu o povinnosti o poskytování aktualizací a nějakém právu na ně. Tohle je totiž přesně ta samá podmínka jako to, že si musíte za médium zaplatit. Je to prostě jenom další finta/klička jak omezit GPL.
Správně jste napsal:
GPL zakazuje přidávat nějaké podmínky ke zpřístupnění zdrojových kódů, které by reálně bránili tomu získání zdrojových kódů.
Což hrozba vypovězení smlouvy rozhodně je. Je to snaha omezit GPL pro zákazníky zákazníků RedHatu. Prostě nelze říct, že naším vztahem GPL licence končí. Jejich zákazníci mají naprosto stejné povinnosti ke GPL softwaru jako RedHat k nim a RedHat tomu nemůže nijak bránit výhružkami ukončení smlouvy, když jim ta povinnost přímo vyplívá z GPL.
RH -GPL-> zákazník -GPL-> zákazník zákazníka
@Saljack:
GPL touto podmínkou nekončí. GPL zůstává zachována. Končí tím leda komerční supportní smlouva, na kterou nemáte žádný právní nárok. Je čistě dobrovolná k uzavření oběma stranami.
Účel GPL zůstává zachován. Zdrojový kód je k dispozici a každý má možnost z něj dál vyjít. Red Hat u toho ale nemusí držet pochodeň, když nechce.
Vy byste naopak GPL rozšiřoval na další smlouvy, které nesouvisejí s dílem samotným, de facto by se jednalo o povýšení licenční smlouvy na filozofii.
@Martin Stransky:
OK, pojďme si představit takový spor. Mezi zákazníkem a RH existuje smlouva, která má své podmínky. Pak tu existuje všeobecná GPL smlouva, která zavazuje všechny, kdo s dílem přijdou do styku.
Kdyby nastalo to, co píšete, že Red Hat ukončil smlouvu, tak co by bylo meritem žaloby? Co Red Hat porušil? Svoji vlastní smlouvu, nebo GPL? Protože od toho se bude odvíjet další postup soudu. Pokud tím porušil GPL, bude rozhodnutí soudu směřovat k náhradě škody vzniklé porušením GPL. Pokud by porušil svoji vlastní supportní smlouvu, pak by se náhrada škody hledala tam..
Myslím, že to máte krutě nedomyšlené, protože domýšlíte, že porušení jedné smlouvy by se mělo projevit do plnění druhé smlouvy - tedy křížem mezi nesouvisejícími smlouvami.
Je pravda ze Red Hat nemuze zakazovat sireni jiz zverejnenych zdrojaku pod GPL, protoze kazdy kdo ty zdrojaky ziskal ma stejne prava jako RH.
Na druhou stranu zase nic nemuze RH nutit prodavat svuj software a sluzby.
Ovsem zatim se nic podobneho nestalo (ukonceni smlouvy kvuli sireni GPL zdrojaku RHEL).
Tohle je totiž přesně ta samá podmínka jako to, že si musíte za médium zaplatit. Je to prostě jenom další finta/klička jak omezit GPL.
Ne, není to ta samá podmínka. GPL říká, že musíte k binárce zpřístupnit zdrojové kódy. Nevyžaduje, že byste musel zpřístupnit know-how, jak jste tu binárku vyrobil. GPL byla vytvořena pro lidi, kteří se vyznají a zdrojáky jim stačí k tomu, aby aplikaci sestavili. Proto je tak propastný rozdíl v tom, jestli zpoplatníte média (čímž bráníte přístupu ke zdrojákům), nebo jestli zpoplatníte know-how, jak aplikaci sestavit (zdrojáky ale dotyčný má).
Což hrozba vypovězení smlouvy rozhodně je.
Jenže tam není hrozba vypovězení smlouvy na základě zveřejnění GPL zdrojáků. To, čemu se RedHat brání, je zveřejnění know-how, které není pokryté GPL licencí.
Celá ta diskuse kolem toho je úplně postavená na hlavu a plyne jenom z neznalosti opensource a GPL. Kdyby všem šlo jenom o ten GPL kód, žádný problém by přece neexistoval – když by ho lidem nedal RedHat (i když musí), vzali by si ho třeba v upstream repository. Jenže to, co chtějí zastánci „klonů“, není samotný GPL kód. Oni chtějí to navíc, co k tomu poskytuje RedHat. Ti lidé nechtějí zdrojáky jádra od RedHatu, když ty samé zdrojáky mohou získat na linux.org nebo GitHubu. Oni chtějí od RedHatu distribuci, to pojivo mezi balíčky. A to není pod GPL.
GPL říká, že musíte k binárce zpřístupnit zdrojové kódy. Nevyžaduje, že byste musel zpřístupnit know-how, jak jste tu binárku vyrobil
No ale právě to GPLv2 vyžaduje, to know-how jak tu binárku vyrobit a cokoliv co se promítne do obsahu binárky musí být součástí nebo aspoň uvedeno (např. použitý překladač).
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
Jak chápu, RH hodlá odstranit ze zdrojových kódů metadata, tj. nejspíš rozlišení na jednotlivé commity, texty ke commitům, veřejně pak nebudu ani poskytovat informace o tom, která části zdrojových kódu jsou v RHEL a které ještě ne.
29. 6. 2023, 16:14 editováno autorem komentáře
No ale právě to GPLv2 vyžaduje, to know-how jak tu binárku vyrobit a cokoliv co se promítne do obsahu binárky musí být součástí nebo aspoň uvedeno (např. použitý překladač).
Ne, to právě GPLv2 nevyžaduje. A nevyžaduje to ani GPLv3. Vždyť jste si to sám odcitoval – jsou vyžadovány skripty. Ale není vyžadováno zveřejnit, s jakými parametry jste ten skript spustil, ani zveřejnit, co přesně máte v systému.
Tohle ustanovení GPLv2 míří třeba na Makefile. Ten musíte zveřejnit. Ale nemusíte zveřejnit, s jakými parametry jste ho spustil, jaké jste měl proměnné prostředí, ani jak dopadly různé testy, kterými Makefile „očuchává“, co máte v systému a co může použít.
Já celou dobu píšu stále do kolo už po několikáté jenom o zdrojových kódech pod GPL a vy (jako obvykle) stále dokola do toho taháte nějaký nástroje okolo, o kterých jsem nenapsal ani čárku (kromě mé poznámky z GNU.org ohledně GPLv3).
Kdyby všem šlo jenom o ten GPL kód, žádný problém by přece neexistoval – když by ho lidem nedal RedHat (i když musí), vzali by si ho třeba v upstream repository. Jenže to, co chtějí zastánci „klonů“, není samotný GPL kód. Oni chtějí to navíc, co k tomu poskytuje RedHat. Ti lidé nechtějí zdrojáky jádra od RedHatu, když ty samé zdrojáky mohou získat na linux.org nebo GitHubu. Oni chtějí od RedHatu distribuci, to pojivo mezi balíčky. A to není pod GPL.
Tohle je právě ten problém a navíc to není pravda. Ten kód totiž není v upstreamu ani náhodou a od upstreamu se liší. Kernel RHEL rozhodně nemá ten samý kód jako je na linux.org nebo GitHubu. A o tomhle to celé je. Pokud RedHat aplikuje na kernel nějaký svůj patch, tak musí ten zdrojový kód kernelu (který je rozhodně pod GPL) poskytnout.
Mimochodem mě jsou klony a celý RHEL celkem šumák a je mi úplně jedno o co klonům a RedHat tady jde. Celou dobu se akorát snažím nastínit, že pokud někomu vypoví smlouvu na základě zveřejnění zdrojových kódů, které jsou pod GPL nebo si dají takovou podmínku do smluv nebo tím jenom budou hrozit, tak je to porušení GPL.
29. 6. 2023, 21:56 editováno autorem komentáře
Saljack: Vy to právě bohužel pořád mícháte dohromady.
RedHat se snaží dostat patche do upstreamu. Pokud nějaké patche kernelu ještě nejsou v upstreamu, RedHat je nijak netají a rozhodně nikomu nebrání v jejich používání.
Celou dobu se akorát snažím nastínit, že pokud někomu vypoví smlouvu na základě zveřejnění zdrojových kódů, které jsou pod GPL nebo si dají takovou podmínku do smluv nebo tím jenom budou hrozit, tak je to porušení GPL.
Akorát jste za celou dobu nenapsal jediný případ, kdy by k něčemu takovému došlo – že by někomu na základě toho vypověděli smlouvu nebo si dali takovou podmínku do smluv.
Tak jsem při hledání GPL našel ještě tohle na GNU.org:
GPLv3 explicitly requires redistribution to include the full necessary “Installation Information.” GPLv2 doesn't use that term, but it does require redistribution to include scripts used to control compilation and installation of the executable with the complete and corresponding source code. This covers part, but not all, of what GPLv3 calls “Installation Information.” Thus, GPLv3's requirement about installation information is stronger.
Takže se domnívám, že pokud je použita GPLv3 také musíte poskytnout úplný postup pro sestavení. U GPLv2 je to velmi nahraně to skrývat.
@Saljack:
Úplný script pro sestavení tam může být, ale nemusí to být tentýž a stejně oparametrizovaný, jako používá RHEL. Představte si, že autor nějakého OSS vydává svůj program ve formě zdrojového kódu.
Red Hat ten kód jen zkompiluje, aniž by udělal jedinou změnu do kódu, jen má své specifické prostředí a konfigurační parametry.
Tvrdíte mi, že pak musí Red Hat zpřístupnit i to, co není součástí původního programu? Že musí zveřejnit, proti jakým knihovnám a v jakém prostředí to kompiloval? To snad ne..? De facto byste mohl jít do konekonečna daleko v tom, co vše musí RH zpřístupnit a došel byste až k hardwaru, na kterém to provedl.
Takže se domnívám, že pokud je použita GPLv3 také musíte poskytnout úplný postup pro sestavení.
Vykládáte to příliš široce. Kdyby se GPLv3 vykládala tímto způsobem, nedodržuje podmínky GPLv3 vůbec nikdo. Při vašem výkladu byste totiž musel poskytnout úplný postup, jakým jste dostal váš systém z nějakých definovaných instalačních médií až do současného stavu, za jakého aplikaci překládáte. A nebo byste muset zveřejnit obraz vašeho systému v okamžiku, kdy jste aplikaci překládal.
Když si přečtete příslušné ustanovení GPLv3, zjistíte, že jeho účelem je zabránit tomu, aby někdo třeba modifikoval před kompilací zdrojové kódy skriptem, který ale ke zdrojákům nepřiloží. Nebo kus kódu generoval nějakou svou privátní aplikací. Zkrátka aby se nestalo, že i když ten kód dostane sebelepší programátor perfektně se orientující v dané problematice, stejně to nepřeloží, protože mu bude kus něčeho chybět.
Účelem toho ustanovení GPLv3 ale vůbec není to, že musíte zdrojáky dodat na stříbrném podnose ve stavu, že to dokáže zbuildovat i slepice, když jí nasypete zrní kolem Enteru. Ne, pokud zdrojáky dodáte ve stavu, že si někdo, kdo problematice rozumí, přečte návod, zajistí si potřebné závislosti a pak spustí překlad, a takhle aplikaci sestaví, je to v pořádku.
GPL nedává žádná práva neschopným. GPL dává práva jenom těm schopným, kteří vědí, co se zdrojáky mají dělat. A jsem stoprocentně přesvědčen, že je to záměr.