Aké povinnosti mám ak používam GPL software

Aké povinnosti mám ak používam GPL software
« kdy: 03. 01. 2020, 02:17:45 »
Dajme tomu že dostanem zákazku.

Vytvorím aplikáciu ktorá bude obsahovať databázu šírenú pod GPL 1.0 licenciou.

Aké práva a povinnosti mi z tohoto faktu vyplývajú?

1. Program musí byť celý pod GPL?

2. Ak áno. Kedy komu a za akých podmienok musí byť kód otvorený? Musím ho otvoriť len pred zákazníkom, ktorému poskytujem môj software? Alebo hocikomu kto ma o to požiada?

3. Čo ak by som kód databázy dokonale oddelil od mojho programu natoľko že by nebol jeho súčasťou (komunikoval by napríklad cez TCP / IP) musí byť stále software uvolnený pod GPL? Kde presne je tá hranica?


Re:Aké povinnosti mám ak používam GPL software
« Odpověď #1 kdy: 03. 01. 2020, 09:57:19 »
Co znamena "bude obsahovat databazi"?

(Btw - vazne je to GPL 1.0?)

1. to zalezi
2. Pokud ano, tak jenom tem, komu jsi poskytl svuj software.
3. Komunikace pres TCP/IP nebo unixovy socket je dostatecne oddeleni, pokud nechces mit "klientskou" cast pod GPL.

Re:Aké povinnosti mám ak používam GPL software
« Odpověď #2 kdy: 03. 01. 2020, 10:30:22 »
Vytvorím aplikáciu ktorá bude obsahovať databázu šírenú pod GPL 1.0 licenciou.

To je dost nejasně definovaná situace. Pokud kupříkladu použijete MySQL/PostgreSQL/Oracle/MS SQL/apod., pak to na licenci vašeho SW nebude mít žádný vliv - vy si s tou databází jen povídáte. Vliv na vás bude mít licence ovladače, a ty mohou být jak svobodné (JDBC) tak velmi proprietární (Embarcadero). Pokud chcete databázi rovnou "vlinkovat" do svého programu, pak i tady to má každý kus SW jinak. Například SQLite má hodně benevolentní licenci a můžete si s ním dělat co chcete. Jiné programy používají LGPL, takže je také můžete linkovat i bez nutnosti vydat svůj kód pod GPL. Ale existují i takové, které si na GPL trvají. Tady prostě budete muset být konkrétní.

1. To je dáno lincencí té "databáze". Každá to má trochu jinak.

2. Tohle je zrada GPL - vy musíte svůj program dát svým zákazníkům a to v souladu s GPL. Tedy včetně zdrojových kódů apod. Jen svým zákazníkům, nikomu jinému. Ta zrada je v tom, že libovolný z vašich zákazníků smí ten program volně šířit dál, vystavit na web k volnému stažení apod. A vy nemáte prakticky žádné legislativní páky na to, jak jim v tom zabránit. GPL jim to explicitně povoluje.

3. Hranici si určuje autor SW v jeho licenci. Musíte si proto přečíst licenci dané "databáze". Obvykle se navíc liší licence pro samotnou databázi a licence pro ovladač/rozhraní/connector. Takže zatímco databáze samotná může mít GPL, tak knihovna pro přístup k ní bude pod LGPL - viz například MariaDB. Ale opakuji znovu: musíte se podívat na ten konkrétní kus SW.

Re:Aké povinnosti mám ak používam GPL software
« Odpověď #3 kdy: 03. 01. 2020, 11:24:51 »
GPLv1 bych neřešil, tu už nikdo nepamatuje a nepoužívá se.

Ad 1) – GPLv2 a GPLv3 se vztahuje na software, který pod ní byl přímo licencován, a na „odvozená díla“. Pokud vaše aplikace bude odvozená od té databáze, musí být i váš software pod GPL. Pokud nebude váš software odvozené dílo, můžete si zvolit jakou licenci chcete. Zrovna u databáze je to jednoduché – pokud budete upravovat přímo tu databázi, je výsledek odvozené dílo a pořád to musí být pod GPL. Vy ale tu databázi nejspíš budete jen používat, tj. bude existovat vaše aplikace a vedle ní ta databáze, se kterou budete jen komunikovat přes nějaké rozhraní – pak vaše aplikace není odvozená od té databáze a licencujete ji jak chcete.

Ad 2 – Pokud byste upravoval a dál šířil tu databázi (která je pod GPL), musel byste zpřístupnit zdrojové kódy těm, komu byste dal tu databázi v binární podobě. Nemusíte jim zdrojáky dávat hned s binárkou, ale musíte dát možnost zdrojáky (zdarma) získat. Přičemž ten, kdo takhle zdrojáky získal, zase postupuje podle GPL – takže může ty zdrojáky vzít, zkompilovat je, binárku šířit dál (klidně za peníze), ale zase k tomu musí poskytnout i ty zdrojáky.

Ad 3) – Nejde o oddělení kódu, ale o to, zda je vaše dílo od té databáze odvozené. Pokud jste vzal zdrojáky té databáze a upravil je nebo k nim něco přidal, musí být výsledné dílo stále licencované pod GPL. Pokud databázi pouze používáte, není vaše dílo odvozené. (Samozřejmě mohou existovat okrajové případy, mohl byste odvozené dílo udělat i tak, že se původních zdrojáků ani nedotknete, a pořád by se na to vztahovala GPL. To ale asi nebude váš případ – a pokud byste se do takové situace dostal, potřebujete hromadu právníků a ne diskutující na Rootu.)

Re:Aké povinnosti mám ak používam GPL software
« Odpověď #4 kdy: 03. 01. 2020, 21:05:27 »
Níže nerozlišuji konkrétní verzi GPL a jde spíše o obecné postřehy - jde o můj laický názor - každopádně by jste měl kontaktovat právníka přes licence!

Add 1) a 3)
Ta hranice kdy ano a kdy ne je podle mne nejasná, a určit v konkrétním sporném případě ji pravděpodobně může jen soud :(
Vytvořením mezi-části, byť by používala roury nebo TCP se nemusíte zbavit odpovědnosti respektovat GPL viz nejen poznámky níže.(a může na to být nahlíženo jako pokus o obcházení GPL, zejména ale nejenom pokud autoři oficiálně prohlásí že to není v souladu s jejich výkladem)

Některé další (nekompletní) postřehy ohledně výkladu k 1) a 3)

Podle některých výkladů se o "odvozené" dílo jedná i pokud je program distribuován jako celek (např. instalátor nainstaluje zároveň vaší aplikaci i databázi je na hraně, neřkuli pokud rovnou bude nakonfigurované jejich propojení).

Někde jsem také viděl uvedeno že se považuje za odvozené dílo, pokud jsou využívána nějaké specifika, nebo interní struktury díla které je kryto pomocí GPL.
A to bez ohledu na to jestli s pro komunikaci používají třeba roury nebo TCP, využití API - včetně i dost obecných API(asi extrémní výklad ale někteří autoři to tak mohou vidět).

Komunikaci s databází většinou zajišťuje nějaká knihovna která je přímo integrovaná do vaší aplikace. Takže je třeba se podívat i na její licenci, zda náhodou také není, nebo neměla by podléhat GPL, pak ji také musíte respektovat.

Ale není to tak černé.
Je třeba se ještě podívat na co všechno se licence aplikuje. Pokud není specifikováno, tak je bezpečnější předpokládat že na vše. Ale může být uvedeno(pokud možno veřejně), že např. na používání určitého API se GPL nevztahuje(pokud na to ovšem nepoužíváte knihovnu která je pod GPL).

Takto např. funguje uživatelské api v linuxu, nebo tuším že nějaký sw to měl pro podporu ne-gpl pluginů.
Je možné že k vaší DB existuje nějaký license-FAQ který osvětluje zda umožňuje použití clientských knihoven nebo API i v GPL nekompatibilních programech případně kterých a za jakých podmínek. Viz zmiňovaná MariaDB
Pokud je to nějaká známá a rozšířená databáze je ke zvážení zda to risknout(věřit že si to nerozmyslí a nebudou pak své uživatele licenčně trolovat).

Add 2)Je tu více možností, prosím přečtěte si tu licenci. Podle jedné z možností je ale povinnost poskytnout kód každému kdo vlastní binárky(což možná nutně neznamená že je má přímo od vás).
Nejjednodušší je ale rovnou dodat "zdrojáky" spolu s binárkami či zařízením (forma i rozsah zas dle licence).

Obecně)
Asi by bylo dobré si projít(přinejmenším):
 - stránky GPL produktu který chcete zakomponovat.
 - anglickou verzi GPL licence
 - anglické stránky www.gnu.org včetně různých FAQ
 - české stránky www.gnu.org včetně různých FAQ
 - různá fóra a poradny

Potom navštivte právníka přes licence a spolu s ním rozhodněte(pořadí není nutně dle preference):
a)Uvolnit vše v souladu s licencí GPL
b)Vyhnout se kombinováním děl s GPL licencí a děl s nekompatibilními licencemi. (respektive najít si jinou DB)
c)Vyžádat (nejlépe přes právníka a písemný) souhlas autora/autorů/nadace která dannou GPL část vyvíjí, zda je vaše použití v souladu s jejich výkladem.
d)Riskovat, že váš výklad licencí a případných výjimek je správný


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Aké povinnosti mám ak používam GPL software
« Odpověď #5 kdy: 03. 01. 2020, 22:40:34 »
Níže nerozlišuji konkrétní verzi GPL a jde spíše o obecné postřehy - jde o můj laický názor - každopádně by jste měl kontaktovat právníka přes licence!

Add 1) a 3)
Ta hranice kdy ano a kdy ne je podle mne nejasná, a určit v konkrétním sporném případě ji pravděpodobně může jen soud :(
Vytvořením mezi-části, byť by používala roury nebo TCP se nemusíte zbavit odpovědnosti respektovat GPL viz nejen poznámky níže.(a může na to být nahlíženo jako pokus o obcházení GPL, zejména ale nejenom pokud autoři oficiálně prohlásí že to není v souladu s jejich výkladem)

Některé další (nekompletní) postřehy ohledně výkladu k 1) a 3)

Podle některých výkladů se o "odvozené" dílo jedná i pokud je program distribuován jako celek (např. instalátor nainstaluje zároveň vaší aplikaci i databázi je na hraně, neřkuli pokud rovnou bude nakonfigurované jejich propojení).

Někde jsem také viděl uvedeno že se považuje za odvozené dílo, pokud jsou využívána nějaké specifika, nebo interní struktury díla které je kryto pomocí GPL.
A to bez ohledu na to jestli s pro komunikaci používají třeba roury nebo TCP, využití API - včetně i dost obecných API(asi extrémní výklad ale někteří autoři to tak mohou vidět).

Komunikaci s databází většinou zajišťuje nějaká knihovna která je přímo integrovaná do vaší aplikace. Takže je třeba se podívat i na její licenci, zda náhodou také není, nebo neměla by podléhat GPL, pak ji také musíte respektovat.

Ale není to tak černé.
Je třeba se ještě podívat na co všechno se licence aplikuje. Pokud není specifikováno, tak je bezpečnější předpokládat že na vše. Ale může být uvedeno(pokud možno veřejně), že např. na používání určitého API se GPL nevztahuje(pokud na to ovšem nepoužíváte knihovnu která je pod GPL).

Takto např. funguje uživatelské api v linuxu, nebo tuším že nějaký sw to měl pro podporu ne-gpl pluginů.
Je možné že k vaší DB existuje nějaký license-FAQ který osvětluje zda umožňuje použití clientských knihoven nebo API i v GPL nekompatibilních programech případně kterých a za jakých podmínek. Viz zmiňovaná MariaDB
Pokud je to nějaká známá a rozšířená databáze je ke zvážení zda to risknout(věřit že si to nerozmyslí a nebudou pak své uživatele licenčně trolovat).

Add 2)Je tu více možností, prosím přečtěte si tu licenci. Podle jedné z možností je ale povinnost poskytnout kód každému kdo vlastní binárky(což možná nutně neznamená že je má přímo od vás).
Nejjednodušší je ale rovnou dodat "zdrojáky" spolu s binárkami či zařízením (forma i rozsah zas dle licence).

Obecně)
Asi by bylo dobré si projít(přinejmenším):
 - stránky GPL produktu který chcete zakomponovat.
 - anglickou verzi GPL licence
 - anglické stránky www.gnu.org včetně různých FAQ
 - české stránky www.gnu.org včetně různých FAQ
 - různá fóra a poradny

Potom navštivte právníka přes licence a spolu s ním rozhodněte(pořadí není nutně dle preference):
a)Uvolnit vše v souladu s licencí GPL
b)Vyhnout se kombinováním děl s GPL licencí a děl s nekompatibilními licencemi. (respektive najít si jinou DB)
c)Vyžádat (nejlépe přes právníka a písemný) souhlas autora/autorů/nadace která dannou GPL část vyvíjí, zda je vaše použití v souladu s jejich výkladem.
d)Riskovat, že váš výklad licencí a případných výjimek je správný
Těch GPL licencí je vícero verzí s různými nuancemi, nicméně základní kritérium je, že dílo je odvozené, pokud tvoří jeden celek s použitou knihovnou, což v praxi znamená, že i jen dynamické linkování je v tomto ohledu virální.

Ta povinnost poskytnout zdrojáky je poměrně přísná, protože bez výjimek. Na stránkách GPL je dlouhá stránka s FAQ, kde je vše podstatné vysvětlené polopaticky.