Nakažení GPL licencí v Pythonu

Nakažení GPL licencí v Pythonu
« kdy: 14. 04. 2016, 16:25:42 »
Zdravím.

Už se o tom strhla diskuze pod článkem o kompatibilitě ZFS, ale stále to považuji za nedořešené a nemám jasnou odpověď. Tak tedy:

Dejme tomu, že mám script napsaný v Pythonu (dynamickém jazyce), který je pod licencí MIT, nebo třeba closed source. To není podstatné.

Tento script používá další nekompilovaný Python modul, který je licencovaný pod GPL. Tento modul není součástí distribuce, neboť závislosti se instalují přes package manager a v projektu jsou specifikovány jako jednotlivé řádky souboru requirements.txt.

Je nutné, abych musel přelicencovat svůj projekt na GPL, či používat duální licence (k čemu to je, vždyť efekt je pro mě stejný)?

Někteří lidé tvrdí tak, jiní zase onak. V podstatě každý, s kým jsem hovořil mi tvrdil něco jiného. Jsem z toho zmatený.

Poměrně silný argument byl, že se jedná o odvozené dílo, neboť ve svém programu používám názvy funkcí / volání API toho GPL modulu. V tomhle případě ale nechápu, jak by bylo možné na Linuxu provozovat a distribuovat closed source software, což dělá spousta firem a není na tom nic špatného. Vždyť přece všechny syscally a celé API je pod GPL.

Rád bych upozornil, že mě nezajímají obecné principy, se kterými jsem do jisté míry obeznámen, ani jak je to u kompilovaných programů, což pro mě zase není relevantní.

Jde mi o tenhle specifický příklad, kdy používám komponentu, kterou ale neinstaluji já, ale uživatel prostřednictvím package manageru a není to slinkováno, ani kompilováno do jednoho celku.
« Poslední změna: 14. 04. 2016, 20:45:38 od Petr Krčmář »


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:GPL licence
« Odpověď #1 kdy: 14. 04. 2016, 17:25:22 »
Tak pokud by se dalo rici, ze Pythonovy modul je neco jako knihovna, tak http://www.gnu.org/licenses/gpl-faq.en.html#IfLibraryIsGPL . Ten modul by musel byt pod LGPL.

Jenda

Re:GPL licence
« Odpověď #2 kdy: 14. 04. 2016, 19:30:32 »
Mně do teď nebyl schopen nikdo vysvětlit, proč zavolání qsort() z libc způsobí, že volající je odvozené dílo, ale zavolání popen("/bin/sort") ne. Že jedno způsobí, že si GPL kód přečte data z paměti, kde mu je ukázal dynamický linker, a druhé, že si je přečte z pipe, kterou mu otevřel kernel, mi přijde jako nevýznamný technický detail. Stejně jako ta podmínka že sdílí společný adresní prostor - když spustím uCLinux na počítači, který nemá virtuální paměť, jsou najednou všechny programy GPL? Navíc kdyby to tak bylo, šlo by GPL knihovny zneužívat tím, že si udělám jednoduchou binárku, kterou forknu jako nový proces, a teprve tato binárka zavolá funkci z knihovny.

Podle mě má FSF praštěné chápání toho, co je a co není odvozené dílo.

Použij common sense. Osobně bych se řídil podle toho, jestli jsem musel použít nějaké netriviální API, které se jako první vyskytlo v GPL kódu.

Lol Phirae

Re:GPL licence
« Odpověď #3 kdy: 14. 04. 2016, 19:45:48 »
Taky myslím, že nejlepší bude neřešit RMS hovadiny.

Jenda

Re:GPL licence
« Odpověď #4 kdy: 14. 04. 2016, 19:57:07 »
Tak jsem se v té diskuzi dozvěděl, že GPL se přesně takhle (vloženým programem) fakt obchází.

K čemu potom ty ochrany, co GPL dává, jsou, když úloha „vytvořte program, který přes dlopen() načte knihovnu a přes socket přijímá příkazy a volá podle nich knihovní funkce“ trvá naprogramovat někomu, kdo si přečetl první dvě obrazovky manuálové stránky, půl hodiny?


Re:Nakažení GPL licencí v Pythonu
« Odpověď #5 kdy: 14. 04. 2016, 21:34:08 »
Poměrně silný argument byl, že se jedná o odvozené dílo, neboť ve svém programu používám názvy funkcí / volání API toho GPL modulu. V tomhle případě ale nechápu, jak by bylo možné na Linuxu provozovat a distribuovat closed source software, což dělá spousta firem a není na tom nic špatného. Vždyť přece všechny syscally a celé API je pod GPL.

Linux (jádro) je licencován pod GPL 2 ale málo známý(nebo snad často zamlčovaný :) ) fakt je že  je tam cosi jako vyjímka pro uživatelské aplikace používající normální systémová volání. https://www.kernel.org/pub/linux/kernel/COPYING hned první část úplně nahoře.

Také  základní systémová knihovna která je potřeba ke kompilaci téměř čehokoliv, glibc, obsahuje vyjímku, která omezuje dosah licence pouze na knihovnu. Takže ji můžete použít v jakkoliv licencovaném programu aniž by jej to jakokoliv licečně ovlivnilo. http://www.gnu.org/licenses/gcc-exception-3.1-faq.html

Takže né vše co je GPL je čisté GPL, je třeba si to přečíst celé a pořádně :)

Také bych chtěl upozornit že licence není o tom jak to technicky řešené. Ale hlavně o tom jak to vidí autor, někdo třeba na požádání doplní vyjímku na API, nebo upraví licenci na LGPL, zkuste se ho zeptat.
A pokud je to čistá GPL tak je to také o tom jak se RMS vyspinká a hlavně jak to nakonec právníci a soudy v tom kterém konkrétním případě rozhodnou.

Někde jsem narazil na to že ani volání přes "commandline" není považováno za licenčně čisté. Že může záležet kdo přes commandline volá, mebo dokonce jaké se předávají parametry, třeba pokud je to nějaký nečitelný řetězec který byl vybudován s pomocí .h souborů krytých GPL tak je to zase nepřípustné.

Ale to vše je dohadování a žádný pevný technický základ to nemá, dokud se konkrétní situace to neprožene přes soud. (ano opakuju se ale toto je důležité ten konkrétní případ se musí prohat přes soud aby se to vyjasnilo).

Pokud je to čistá GPL a nevyhovuje vám, doporučuju se jí vyhnout a pokusit se najít nějakou jinou knihovnu s vhodnější licencí.
« Poslední změna: 14. 04. 2016, 21:38:51 od Ovrscout »

Re:Nakažení GPL licencí v Pythonu
« Odpověď #6 kdy: 14. 04. 2016, 21:37:52 »
Linux (jádro) je licencován pod GPL 2 ale málo známý(nebo snad často zamlčovaný :) ) fakt je že  je tam cosi jako vyjímka pro uživatelské aplikace používající normální systémová volání. https://www.kernel.org/pub/linux/kernel/COPYING hned první část úplně nahoře.

Také  základní systémová knihovna která je potřeba ke kompilaci téměř čehokoliv, glibc, obsahuje vyjímku, která omezuje dosah licence pouze na knihovnu. Takže ji můžete použít v jakkoliv licencovaném programu aniž by jej to jakokoliv licečně ovlivnilo.

Díky za info, tím se to asi vysvětluje.

Pokud je to čistá GPL a nevyhovuje vám, doporučuju se jí vyhnout a pokusit se najít nějakou jinou knihovnu s vhodnější licencí.

Já teď jedu čistě MIT a GPL se radši vyhýbám. Z mého uhlu pohledu jsou s ní jen problémy.

pavlix

  • ****
  • 253
    • Zobrazit profil
Re:GPL licence
« Odpověď #7 kdy: 15. 04. 2016, 09:35:03 »
Podle mě má FSF praštěné chápání toho, co je a co není odvozené dílo.

To je velice jednoduché. FSF má nějaké definované cíle, kterých se snaží dosahovat všemi možnými prostředky. Některé prostředky jsou právní, jiné zastrašovací. Zmíněné licence pokud vím neobsahují definici odvozeného díla a ani v nich není explicitně napsané to, o čem se tady bavíme. Je to pouze součástí veřejného výkladu těch licencí. Tím si FSF zajišťuje maximální volnost v prosazování svých zájmů. Oni dokáží spoustu lidí a firem odradit od určité činnosti nebo naopak k určité činnosti přesvědčit čistě na základě právní nejistoty, stejně jako to dělají komerční firmy. Podle mě je potřeba všechna veřejná vyjádření FSF posuzovat podle účelu spíše než podle logiky.

Mně osobně takový přístup nevyhovuje a neuměl bych ho praktikovat. Na druhou stranu nám FSF vybojovala spoustu věcí, které bychom jinak neměli. Takže já osobně mám z celé té věci smíšené pocity.

Re:Nakažení GPL licencí v Pythonu
« Odpověď #8 kdy: 15. 04. 2016, 23:25:14 »
Re: pavlix
Máš pravdu, není to o technickém řešení ani o logice, je to o účelu. Tohle vyjádření se mi líbí, díky.

Ale zas tak velice jednoduché mi to nepřijde:) . Dovolím si vyjádřit svůj, řekněme, více subjektivní názor.
Na mne to púsobí tak, že se názory,cíle a hlavně metody postupně tak nějak radikalizují. Během let vnímám posun od "Chráníme práva uživatele SW" - zaměřeno na jednotlivé lidi/uživatele, což je super. K "Chráníme GPL a GNU komunitu" - tj. děláme to co je pro nás/vás nejlepší.
Pro mne osobně je to podstatný rozdíl.
I když je pravda že většina těhle negativních pocitů o radikalizaci vychází z chování RMS. Možná to je taky ten důvod proč vnímám FSF o něco pozitivněji než GNU a RMS.

Tahle komunita nebo spíše komunity jsou ale dost rozsáhlé, takže to není zas tak jednobarevné, a sposta lidí se pohybuje někde mezi tím, takže je nehážu všechny do jednoho pytle. Spíš jen píšu jak to na mne jako celek působí - rozporuplně, s postupným negativním nádechem.

P.S. Mně je základní myšlenka, zejména opensource, blízká a také oceňuji zásluhy FSF/GNU/RMS na tomto poli. Vadí mi spíš to provedení.

pavlix

  • ****
  • 253
    • Zobrazit profil
Re:Nakažení GPL licencí v Pythonu
« Odpověď #9 kdy: 16. 04. 2016, 10:18:01 »
Radikalizaci v open source nevnímám, naopak mi přijde, že přibývá pragmatičtějšího přístupu, ale to může být subjektivní. Přijde mi, že je největší slává GNU dávno pryč. Mnohý i zásadní GNU software se prakticky vůbec nevyvíjí. Alternativy vznikají jako na běžícím páse. Nechci se pouštět do příliš politických diskuzí, ale GNU software už není zdaleka tak nenahraditelný a mnoho alternativ je právě pod permisivnějšími licencemi. To taky znamená, že když dneska vydám kód jako GPL, uchytí se alternativa jenom proto, že příliš omezuju použití, když ho jiní neomezují.

balki

Re:Nakažení GPL licencí v Pythonu
« Odpověď #10 kdy: 18. 04. 2016, 17:44:24 »
Radikalizaci v open source nevnímám, naopak mi přijde, že přibývá pragmatičtějšího přístupu, ale to může být subjektivní. Přijde mi, že je největší slává GNU dávno pryč. Mnohý i zásadní GNU software se prakticky vůbec nevyvíjí. Alternativy vznikají jako na běžícím páse. Nechci se pouštět do příliš politických diskuzí, ale GNU software už není zdaleka tak nenahraditelný a mnoho alternativ je právě pod permisivnějšími licencemi. To taky znamená, že když dneska vydám kód jako GPL, uchytí se alternativa jenom proto, že příliš omezuju použití, když ho jiní neomezují.

Takze potom tie updaty, co mi chodia pravidelne na GNU (myslim tym operacny system s jadrom linux)  taham zbytocne?

pavlix

  • ****
  • 253
    • Zobrazit profil
Re:Nakažení GPL licencí v Pythonu
« Odpověď #11 kdy: 18. 04. 2016, 20:29:05 »
Radikalizaci v open source nevnímám, naopak mi přijde, že přibývá pragmatičtějšího přístupu, ale to může být subjektivní. Přijde mi, že je největší slává GNU dávno pryč. Mnohý i zásadní GNU software se prakticky vůbec nevyvíjí. Alternativy vznikají jako na běžícím páse. Nechci se pouštět do příliš politických diskuzí, ale GNU software už není zdaleka tak nenahraditelný a mnoho alternativ je právě pod permisivnějšími licencemi. To taky znamená, že když dneska vydám kód jako GPL, uchytí se alternativa jenom proto, že příliš omezuju použití, když ho jiní neomezují.

Takze potom tie updaty, co mi chodia pravidelne na GNU (myslim tym operacny system s jadrom linux)  taham zbytocne?

Obávám se, že nerozumím smyslu a motivaci otázky.