Neřekl bych, že to je specialita OSS. Pokud chcete změnit licenci obsáhlého komerčního produktu, tak si musíte pročíst všechny smlouvy od firem, od kterých jste koupili kód/grafiku/ozvočení/manuály/.... Uzavřením kódu si vůbec nepomůžete.
jenomze licence obsahleho komercniho produktu se prilis casto nemeni uz proto, ze ty licence jsou delany na miru a zhusta pravniky profesionaly
GPL je takova univerzalita, kterou velka vetsina tvurcu ani nezna, jenom to je "moderni" a "free"
navic zasadni problem GPL a podobnych licenci je prave v tom o cem hovori clanek - nemoznost rozvoje pomoci komercnich rozsireni - za cenu ze bude vsechno free tak to ale nemotivuje k vytvareni inovaci a vylepseni...
a ano, vim, ze GPL veci nemusi byt free, jenomze to je jako prodavat do ciny - prodate to jenom jednou...
No to je ale kravina. Proč by váš zákazník dával někomu dalšímu produkt, který mu prodáte? To jako že by se dobrovolně zbavil konkurenční výhody, kterou mu Váš produkt poskytuje tím, že ho dá zdarma své konkurenci?
Co následující řešení - vyžaduje spolupráci od GPL vývojářů - definici API:
tzn. pokud oni uznají, že third party je přínos tak si myslím, že GPL nemusí být past.
Mám program licencovaný pod GPL.
V něm definuji API.
Nad API napíšu knihovnu pod licencí BSD/LGPL.
Knihovnu použiju v mém uzavřeném rozšíření.
Jde to takhle?
- V mém programu se neobjeví ani bit z původního zdrojáku.
- Můj program nezavolá ani jednu z funkcí v původním zdrojáku
- Pobezi moje rozsireni bez GPL projektu? NE=je to odvozeny projekt a ridi se licenci projektu (pokud to neni tusim LGPL); ANO=neni to odvozeny projekt, je to proste moje funkci samostatne reseni (v tom nepocitam samozrejme ruzne prekladace, tam je to malinko slozitejsi)
- Pokud chci napsat close-source rozsireni, napisu si plugin (kterej bude muset byt pod GPL a ktery musim tedy dat i ostatnim), kterej bude komunikovat mym vlastnim krypto-jazykem s mym vlastnim daemon/knihovnou a teprve v me vlastni knihovne se bude provadet vlastni cinnost. Tahle knihovna/daemon pobezi sam o sobe bez potreby GPL projektu, budu si to muset napsat kompletne sam a tudiz si to budu moct licencovat, jak se mi zlibi.
co tím bylo myšleno? Překladač je program který produkuje data. Že to je čirou náhodou spustitelný kód je GPL jedno. GPL je licence na programy/jejich součásti a jejich zdrojový kód a ne na data jež produkují.
no, tim jsem myslel, aby se nekdo se mnou do krve nehadal o bodu (1), kdyz napisu zdrojovej kod C, Perl, PHP, tak ho "bez prekladace nespustim, takze ho musim sirit taky jako GPL".
Jinak mas pravdu, na prekladac se muzu divat jako na program, ktery cte jedny data a produkuje jina data. Data nejsou soucasti programu. Ale jak jsem to popsal, tak napr. program v perlu (zdrojovy kod) neprekladam do binarniho, ale spoustim ho interpreterem, cili takovej perl skript by bez kodu perlu nebezel, tak by me nekdo mohl chytnout za slovo, ze v tom pripade jakykoliv kod v perlu napsany musim licencovat licenci Perlu (nebo PHP).
Rozdil je v tom, ze kdyz napisu rozsireni do nejakyho systemu a pouzivam funkce toho systemu (napr. na sablony), tak prakticky to rozsireni bez toho sablonovaciho zakladniho systemu nespustim. Takze pokud se nepletu, kdyz ten sablonovaci system (knihovna) bude pod GPL, tak musim i to rozsireni dat pod GPL a kdyz bude pod LGPL, tak ho muzu licencovat, jak chci. (je to spravne? zatim jsem osobne nikdy nic nelicencoval, takze tohle je jenom vysledek, jak to prozatim chapu z jinych diskuzi a clanku).
Že program napsaný v Perlu musí být licencován pod GPL je naprostý nesmysl! Pod GPL byste musel licencovat změny, prováděné v interpretu, což ovšem neděláte. Nebo změny v modulech, licencovaných pod GPL, či od nich odvozených. Že modul voláte je bezpředmětné. Je přeci od toho a vy ho neměníte ani nevykrádáte. Jeho tělo ve vašem zdrojáku vůbec není. A že váš program představuje pro interpret data, je u skriptovacích jazyků ještě jasnější, než u kompilovaných. Spouštíte přeci Perl, ne program. ( I u spustitelných kódů na Linuxu se volá nejprve bash, ten volá Perl a ten teprve program).
No vida, takze je to jinak. Takze ono to GCC sice jako konverze dat vypada, ale fakticky se pouziva volani funkci GCC, takze program psany v C pouzivajici volani C funkci se musi licencovat pod GPL (normalne), ale autori GCC dali vyjimku, ze je mozne vyslednemu prelozenemu programu dat jinou licenci. Pochopil jsem to ted spravne?
No, je to zajimavy. Perl ma GPL nebo Artistic licenci, PHP4 preslo na Apache licenci, Python ma vlastni Python licenci. No, takze jak jsem psal v prvni zpravicce, programovaci jazyky z toho radsi vynechame:)
kompiovaný kód nepoužívá "volání funkci GCC" to je s prominutím blbost
C funkce o kterých mluvíte jsou funkce knihovny glibc (http://en.wikipedia.org/wiki/Glibc) a ta je vydaná pod LGPL a ta linkování umožňuje, navíc je na ní GCC nezávislý ...
Pomocí GCC můžete klidně kompilovat zdrojáky z Windows bez použití glibc
1. ani jednu z nich nemusíte používat (jde to ztuha, ale jde to ...)
2. obě jsou pravděpodobně GPL
pravděpodobně proto, že v http://gcc.gnu.org/viewcvs/trunk/ je soubor COPIING.LIB obsahující LGPL
jeho přípona mě směruje na to, že lib* adresáře jsou licencovány pod LGPL
To doufám nemyslíte vážně. To pak taky cokoliv proženete GPL kodekem audia/videa musí být GPL? Nebo cokoliv co zkomprimujete/dekomprimujete GPL archivátorem přelicencujete na GPL? Nebo dokonce cokoliv, co projde GPL TCP/IP stackem musí být GPL?
Mylny zaver. Pokud kompilujete program v C, tak k nemu nutne musite prilinkovat funkce standardni knihovny C, ktere sou dodavany s kompilatorem. Na tyto plati zminena vyjimka.
1. standardní knihovny nemusíte pro kompilaci použít (stačí vám standardní *.h, a ty jsou popsaný v ANSI standardu a tak na ně nemůže licence snad ani být ...)
2. celá diskuze na téma GCC je omyl ...
já celou dobu hovořím o kompilaci "gcc -c" ale většina ostatních myslí "gcc" tzn. včetně slinkování a přilinkování knihoven.
--------------------------------------------
int main ()
{
int a = 1;
}
--------------------------------------------
gcc -c main.c je jen "data processing" z C do .obj
ale
gcc main.c ještě spustí linker a přilinkuje OS specific věci
No relevantni k debate to je v tom smyslu, ze treba Cygwin (Red Hat) vam neumozni distribuovat binary zkompilovane s jejich kompilatorem bez toho, abyste je cele prelicencovali pod GPL.
Red Hat sells a special Cygwin License for customers who are unable to provide their application in open source code form. For more information, please see: ...
Pokud ten uzavřený program poběží samostatně (nebude slinkovaný s tím programem pod GPL) a to API definujete vy (tedy můžete jej licencovat pod více licencemi), tak ano.