Mám program, který se skládá ze spousty mého kódu a taky z několika cizích knihoven, které jsou vypuštěny pod řadou různých licencí: některé používají nějakou vlastní freeware licenci (vesměs zhruba v duchu "dělej si s tím co chceš, ale napiš mě jako autora knihovny a nechtěj po mě žádné záruky"), některé jsou uvolněné pod Mozilla Public License 1.1, jedna knihovna je GNU GPL 2 a jedna je GNU GPL 3. Já jsem teď ty licence trochu zkoumal, abych věděl, pod jakou licencí mám uvolnit svůj program, a místo aby mi to problém osvětlilo, tak ho to naopak zatemnilo - skoro mám pocit, že program nemůžu uvolnit vůbec:
1) GNU FAQ říká, že GPL2 a GPL3 spolu nejsou kompatibilní. Když hledám průsečíky v Compatibility Matrix (část "I want to use a library under"), tak není ani jedna kombinace, kterou bych směl použít, pokud chci současně využít knihovnu pod GPL2 i pod GPL3.
2) Do toho ještě leze MPL, která zase ve svém FAQu na otázku kombinace MPL kódu a GPL kódu říká, že to v jedné binárce nejde, leda že by ten MPL kód byl současně vypuštěn i pod GPL (což v mém případě není).
Určité zjednodušení by mohlo být v tom, že v mém případě je GPL2 knihovna použita v relativně samostatném DLL (které vůbec nemusí být přítomno, pokud program jeho funkce nepotřebuje) a zrovna tak i GPL3 knihovna je použita jen v dalším samostatném DLL. Ale kdybych se dejme tomu nekdy v budoucnosti rozhodl použít knihovnu, kterou potřebuju zakompilovat rovnou do exáče, tak jsem zase na začátku.
Otázky:
1) Pokud je jediný GPL kód použitý v samostatném DLL, které program může a nemusí použít (v podstatě je to plugin pro nepovinnou funkčnost), stačí, když pod příslušným GPL uvolním jenom to DLL a zbytek programu pod jinou licencí? GLP FAQ k tomu "velmi nápomocně" píše, že moje použití je hraniční případ ("borderline case").
2) Pokud to takhle udělat nejde, existuje nějaký jiný způsob, jak v jednom programu zkompilovat GPL2 a GPL3 kód?
3) Existuje vůbec nějaký způsob, jak v jednou programu zkombinovat můj kód (u kterého je mi vcelku jedno, pod kterou free licencí ho uvolním), MPL kód a GPL kód?
Zdůrazňuji: Nejde o to, jak "využít GPL kód a nemuset publikovat zdroják" - program je tak jako tak uvolněn se zdrojovým kódem a kdybych nebyl omezen "nakažlivostí" jednotlivých licencí, vyhovoval by mi právě ten výše uvedený typ licence "dělej si s tím, co chceš, pokud budu uveden jako autor a nebude po mě vyžadována žádná odpovědnost". Jde o to, jak moci použít různé knihovny s různými licencemi, aniž bych tyto licence porušoval.
4) Je k dispozici nějaký FAQ, který by se zabýval právě využíváním různě licencovaných knihoven? GPL FAQ a MPL FAQ jsou v tomto ohledu poměrně k ničemu.
5) Jak tenhle problém řešíte vy, pokud ho vůbec řešíte? |