Nevidim moc velky rozdil v tom, jestli je nejaky ovladac distribuovan na tomtez CD jako nejake distro, nebo kdyz se ten ovladac odnekud stahne. Chapu, ze by distribuce ovladace mohla vadit vyrobci toho ovladace. Proc by ale mela vadit vyrobci kernelu? Ze musi existovat nejake rozhrani mezi kernelem a samotnym vykonnym kodem ovladace je jasne. Ze nekteri vyrobci sve binarni ovladace neuvolni, je take jasne - povazuji to za soucast sveho hardwaru. Samozrejme, ze vyrobci kernelu chteji sirit myslenky GPL. Ale porad mi trochu unika, kde je ten rozdil mezi distribuci na CD s distrem a distribuci samotneho vyrobce ovladace.
Jeste, abych to upresnil. Vim, ze rozdil je v tom, ze po stazeni toho binarniho ovladace dojde uz na strane uzivatele ke slinkovani s dalsim kodem. Ale proc to musi delat uzivatel?
Protože jedině uživatel má na to právo. GPL software si ve vlastní režii můžete libovolně upravovat, slinkovat s proprietárním kódem či dělat jiné psí kusy. Svoboda číslo 1, právo používat program jak vy chcete.
Ale jakmile ho chcete šířit, musíte pod GPL (copyleft). Nemusíte pod GPL šířit nějaké doplňky, které nejsou jeho součástí (tj. odvozeným dílem).
Vývojáři jádra jsou toho názoru, že LKM včetně binárek nVidie jsou _součástí_ jádra, tudíž distribuci kernelu a těchto modulů vnímají jako distribuci _odvozeného díla_, které ale musí být podle GPL šířeno výhradně pod touto licencí, což licence binárek nVidie a ATI neumožňuje.
V tom pripade mi ale prijde zajimavy nazor ze kod
char program[] = { 0x11, 0x55, 0xFF .... };
muzete smele distribuovat pod GPL. Ze v te {} je binarni/instrukcni kod preveneny na hexabajty je jina vec. Distribuce zmeti znaku pod GPL zakazana neni.
Pokud v GPL kodu osefujete spusteni daneho binarniho kodu, ktery je v GPL kodu jako textovy retezec, je vse v poradku.
A jak je to s takovym firmware, ktery se z GPL kodu pouze nahrava do zarizeni?
A jde pod GPL uvolnit disassemblerovy vypis? :)
Druha moznost obalit ten program[] do "modulu", kde povodne volania sa jednoducho presmeruju na fixnu znamu adresu v nvidia driveri (tu asi by bol pre zmenu problem s nvidia licenciou)
K celej tejto maskarade okolo GPL a binarnych ovladacov ma napada len: "Problem nezamyslanych dosledkov". Je jasne, ze nejaky technicky hack na GPL existuje, Linus principielne nie je proti samotnemu pouzivaniu non-free driverov usermi, akurat by tam stacilo dat nejaky warning, ze s problemami tainted kernelu vyvojari nepomozu alebo take nieco.
Co je ovela horsie: predstavte si vychcanu firmu, co chce pouzivat GPL kod a nechce dat svoje zdrojaky, ale distribuuje svoj kod oddelene, instalator u zakaznika downloadne zdrojaky GPL kodu, kodu vychcanej firmy, skompiluje, zlinkuje a problem ma zakaznik (ak to teda vobec problem je). Zakaznik totiz zdrojove kody nema ani keby sa na kusky rozkrajal. (nutnost hlaviciek sa da obist podobne ako pri nvidia driveri)
No, vzhledem k náročnosti a hlavně komplikovanosti zmíněného řešení bych spíše očekával, že se takovému obcházení GPL budou firmy vyhýbat. Přeci jen hláška typu "Program se kompiluje, za den nebo dva to bude hotové" by zákazníka asi moc nepotěšila:-)
Nicméně, existují horší metody obcházení GPL, viz TiVo. A na rozdíl od tohoto poněkud krkolomného postupu, ony se reálně dějí s je poměrně snadné je zrealizovat.
su - \mathfrak{M}ĦĒNJMARCHON (neregistrovaný)
Tiez zavisi o aky program sa jedna, ak je to nejaka "bezna" app typu Acrobat/Photoshop, tak urcite, ak je to nejaky system pre statnu spravu, tak by im to skor nevadilo, tam som uz videl ovela vacsie uchylnosti.
Ad. Tivo: bol by nejaky link, kde je problem zhrnuty do 5-10 viet? Nieco som vygooglil, ale moc jasne mi to z toho neni.
su - \mathfrak{M}ĦĒNJMARCHON (neregistrovaný)
Celkom zacinam chapat RMS a jeho postoj ku GPL v3, ale podobne problemy ziadna (konecne dlha) licencia nevyriesi. IMHO: Keby uz Tivo chceli poskytovat zaruku len na povodny kernel, da sa to spravit velmi jednoducho - pri zmene kernelu (nepodpisaneho od nich) by sa v nejakom EEPROM registri prepisala nejaka hodnota a clovek by stratil zaruku, takze by mal experimentovanie na vlastne triko, nicmene by mal mat moznost dat si tam upraveny kernel.
Pride mi to velmi podobny pristup ako u GSM zariadeni (mobilov): je asi omrdesat platforiem, kazda s vlastnou (nie nutne verejnou) specifikaciou, aby ovecky platili za kazdu ptakovinu. Keby ponukali len platformu (dve, tri, pat) s nejakymi defaultnymi programami a prenosovym pasmom na bazi trebars TCP/IP, hned by sa nasiel niekto, kto by napisal komunikacny program, aby sme jak pakovia neplatili za 5 paketov (SMS, ACK, atd.) nehorazne prachy. Som chcel povodne robit diplomku na tema "jak napchat do redundatnych oblasti v GSM paketoch informacie", ale a) nemam na to zariadenia b) neviem kto by mi ho poskytol c) u nas na skole udajne o takych veciach neradi pocuju. Takze tak.
Vidim to stejne, ale nechapu, protoze koncovy efekt je uplne stejny, jestli se to nejprve distribuuje (zvlast) a pak slinkuje, nebo nejprve slinkuje a pak distribuuje. Jen pri jednom z tech postupu trpi koncovy uzivatel.
Otazka je: Mohu jako uzivatel nechat slinkovani na nekom jinem? Mohu jako uzivatel pozadat distributora, aby to za me slinkoval? Pokud ano, tak by to uz nemel byt problem.