Szerző: roberto

2001. június 25. 19:20

Gyakran feltett kérdések a GNU General Public License-ről -- 2. rész

A GNU GPL FAQ fordításának második részéből többek közt megtudható, hogy használható-e szoftvereken kívül másra is a GPL, hogy milyen esetekben GPL-es egy GPL-es program kimenete, vagy hogy miért inkompatibilis az eredeti BSD licenc és a GPL.

A GNU GPL-ről szóló FAQ HWSW-n megjelenő három részes sorozatának első része itt, az angol eredeti pedig a GNU oldalán olvasható. Kérdéseidet, kommentárjaidat a várjuk a fórumban. Következzék a második rész:

Mit tehetek, ha a programomat az iskolám a saját védjegyzett szoftvertermékének a részévé szeretné tenni?

Manapság sok egyetem próbál az általa fejlesztett tudás és információ korlátozásából tőkét kovácsolni, gyakorlatilag egy picit másképp, mint az üzleti vállalkozások. (A probléma megvitatását és hatásait lásd "The Kept University", Atlantic Monthly, 2000. március.)

Ha esélyt látsz arra, hogy az iskolád megtagadja tőled a program szabad szoftverként való kiadását, akkor jobb, ha a lehető legkoraibb stádiumban felveted a kérdést. Minél közelebb van a program a hasznos működéshez, annál nagyobb a kísértés az irányítók számára, hogy elvegyék tőled, és nélküled fejezzék be. A korai stádiumban nagyobb a mozgástered.

Azt ajánljuk tehát, hogy akkor közelíts feléjük, amikor a program még csak félig van készen, mondd azt, hogy "ha belegyeznek a szabad szoftverként való kiadásba, akkor be fogom fejezni". Ne gondold, hogy ez blöff, bátornak kell lenned kimondani akár azt is, hogy a "programom szabad lesz vagy meg sem születik".

Tudnátok részletes utasításokat adni a GPL saját programomra való alkalmazásáról?

Lásd a GPL útmutatót.

Tudnátok részletes utasításokat adni a GFDL egy dokumentációra vonatkozó alkalmazásáról?

Nézd meg magának a GFDL-nek a végét vagy a GFDL útmutatót.

Halottam valakiről, aki egy GPL-es program másolatát másféle licenc alatt kapta meg. Lehetséges ez?

A GNU GPL nem engedélyezi a felhasználók számára a másféle licencekkel való továbbadást. A program copyrightjának a birtokosa viszont kiadhatja a programot párhuzamosan, többféle licenceléssel, amelyek közül az egyik lehet a GNU GPL.

A másolatoddal lévő licenc érvényes az általad továbbadott másolatokra is, feltéve, hogy a licenc a copyright birtokosától származik, és hogy törvényesen jutottál a másolathoz.

A GNU GPL alatt szeretném kiadni a programomat, de ugyanazt a kódot nem szabad programokban is szeretném használni.

A nem szabad programok kiadása etikailag mindig elítélendő, de törvényesen nem kifogásolható. Ha a kód copyrightjának te vagy a birtokosa, akkor kiadhatod különféle nem kizárólagos licencek alatt, különböző időpontokban.

Kötelezi-e egy GPL-es program fejlesztőjét a GPL? Meg tudja szegni a fejlesztő a tetteivel a GPL-t?

A GPL igazából a fejlesztő engedélye másoknak a program másolására, továbbadására és megváltoztatására. A fejlesztőt a GPL nem köti, tehet bármit, az nem a GPL megszegése.

Persze ha a fejlesztő olyasmit tesz, amivel más már megszegné a GPL-t, akkor minden bizonnyal elveszti a közösségen belüli erkölcsi tartását.

Egy program fejlesztője, aki a GPL alatt adta ki a programot, licencelheti-e azt később másnak is kizárólagos használatra?

Nem, mert az már a nyilvánosság számára elérhető a GPL feltételeivel, és ezt a jogot nem lehet visszavonni.

Használhatok-e GPL-es szerkesztőprogramot nem szabad szoftverek fejlesztéséhez? Használhatok-e GPL-es eszközöket a lefordításukhoz?

Igen, mert a szerkesztőprogramokon és az egyéb eszközökön lévő copyright nem vonatkozik az általad írt kódra.

Néhány program technikai okokból saját részeinek másolatát helyezi el a kimenetében, a Bison például egy sztenderd elemzőprogramot másol a kimeneti állományába. Ilyen esetekben a kimenetre másolt szövegre ugyanaz a licenc vonatkozik, mint annak a forráskódjára. Viszont a kimenetnek azon része, amely a program bemenetéből származik, a bemenet copyrightját örökli.

A Bison történetesen használható nem szabad programok fejlesztésére, ugyanis úgy döntöttünk, hogy megengedjük a Bison kimenetében lévő sztenderd elemzőprogram korlátozás nélküli használatát. Azért hoztuk e döntést, mert más, a Bisonnal összevethető egyéb eszközök már megengedték a nem szabad programokban való felhasználást.

[oldal:Kérdések II.]

Van mód arra, hogy GPL-esítsem a programom használatának eredményeként előálló kimenet? Ha például a programomat hardvertervezéshez használják, megkövetelhetem-e hogy a tervek szabadok legyenek?

Ez törvényesen nem valósítható meg, a copyright-törvény nem ad lehetőséget az olyan kimenet felhasználásába való beleszólásra, amelyet mások a saját adataikból nyernek a te programod felhasználásával. Attól, hogy a felhasználó a te programodat használja az adatainak bevitelére vagy konvertálására, a kimenet copyrightja még az övé marad. Még általánosabban: ha egy program más formára alakítja a bemenetét, akkor a kimenet a bemenet copyrightjának a státuszát örökli.

A kimenet felhasználásába való beleszólásra az egyetlen lehetőség, ha a kimenet lényeges része (többé vagy kevésbé) a programodból származik. Például a (fentebb már említett) Bison kimenetének egy részére a GNU GPL vonatkozna, ha nem tettünk volna kivételt ebben a speciális esetben.

Ráveheted persze a programodat, hogy bizonyos szöveget illesszen a kimentébe, még akkor is, ha ennek nincsenek technikai okai, de ha a bemásolt szöveg semmiféle praktikus célt nem szolgál, akkor a felhasználó egyszerűen törölheti a kimentből, és csak a megmaradó részt fogja használni. Ekkor már a bemásolt szöveg továbbadására vonatkozó feltételeket sem kell figyelembe vennie.

Milyen esetekben GPL-es egy GPL-es program kimenete?

Csak akkor, ha a program saját részeit másolja be a kimenetébe.

Ha egy GPL-es modult modullal bővítek, használnom kell-e a GPL-t a saját modulomra?

A GPL szerint az egész kombinált programot a GPL alatt kell közzétenni. A modulodnak tehát a GPL alatt kell elérhetőnek lennie.

De további engedélyeket adhatsz a kódod használatával kapcsolatban. Megteheted, hogy a GPL-nél lazább, de azzal kompatibilis licenc alapján bocsátod ki a programod. A licencek listájának az oldalán egy részleges lista található a GPL-kompatibilis licencekről.

Ha egy libet a GPL alatt bocsátottak ki, akkor az azt jelenti, hogy minden programnak, amely a libet használja GPL-esnek kell lennie?

Igen, mert amikor a program ténylegesen fut, tartalmazza a libet.

Windowsos alkalmazást írok Microsoft Visual C++-ban, amit GPL alatt szeretnék kiadni. Megengedi a GPL a programomnak a Visual C++ runtime libjével való dinamikus linkelését?

Igen, mert a runtime lib normális körülmények közt az általad használt fordítóval jár együtt.

Miért inkompatibilis az eredeti BSD licenc és a GPL?

Mert az eredeti BSD licenc olyan sajátos követelményt állít, amely nem része a GPL-nek, nevezetesen a program hirdetésére vonatkozó követelményt. A GPL kijelenti, hogy

Az átvevők itt megadott jogainak gyakorlását nem lehet további megszorításokkal korlátozni.

A hirdetésre vonatkozó pont ilyen további megszorításnak számít, így inkompatibilis a GPL-lel.

A BSD licenc fölülvizsgált változatában nem szerepel a hirdetésre vonatkozó pont, ezzel a probléma is megoldódik.

Ha egy GPL alatt kibocsátott program plugineket használ, akkor milyen licenckövetelmények vonatkoznak egy pluginre?

Attól függ, hogy milyen módon hívja meg a program a plugineket. Ha fork-ot és exec-et használ a meghívásra, akkor a pluginek külön programok, tehát a főprogram nem állít a számukra licenckövetelményeket.

Ha a program és a pluginek dinamikusan linkeltek, egymás függvényeit hívják meg és megosztják az adatszerkezeteiket, akkor szerintünk egyetlen programot alkotnak, ezért a pluginek a főprogram bővítéseiként kezelendőek. Ez annyit jelent, hogy csak GPL vagy GPL-kompatibilis szabad szoftver licenceléssel bocsáthatók ki.

Ha a program és a pluginek dinamikusan linkeltek, de a köztük végbemenő kommunikáció pusztán a plugin "main" függvényének néhány opcióval való meghívása, majd az eredményre való várakozás, akkor az határesetnek tekinthető.

Alkalmazhatom-e a GPL-t egy nem szabad program pluginjére?

Ha a program fork-ot és exec-et használ a pluginek meghívására, akkor a pluginek különálló programok, tehát a főprogram nem állít számukra speciális követelményeket, használhatod a GPL-t a pluginre.

Ha a program és a pluginek dinamikusan linkeltek, egymás függvényeit hívják meg és megosztják az adatszerkezeteiket, akkor szerintünk egyetlen programot alkotnak, ezért a pluginek a főprogram bővítéseiként kezelendőek. Ez azt jelenti, hogy a GPL-es plugin főprogrammal való linkelése megsértené a GPL-t. A jogi probléma azonban megoldható, ha a programod licencéhez egy kivételt csatolsz, amelyben engedélyezed a program linkelését a nem szabad főprogrammal.

A további részleteket lásd a "Szabad szoftvert írok, amely nem szabad libeket használ" kérdésnél.

Van egy GPL-es programotok, amit linkelni szeretnék a védjegyzett programom felépítésekor. Az, hogy linkelem a programotokat jelenti-e azt is, hogy a programomnak GPL-essé kell válnia?

Igen.

És van arra esély, hogy az LGPL feltételeivel kapjam meg a programotokat?

Kérheted ugyan, de a legtöbb szerző ellen fog állni a kérésnek. A GPL lényege az, hogyha használod a kódunkat, akkor a te programodnak is szabad szoftvernek kell lennie. Ez egyfajta késztetés, hogy olyan módon jelenítsd meg a programodat, hogy az közössé váljon.

Mindig megvan a törvényes lehetőséged, hogy ne használd a kódunkat.

[oldal:Kérdések III.]

Olyan alkalmazást írtam, ami sok különféle összetevőt linkel, különféle licencekkel. Eléggé össze vagyok zavarodva, hogy milyen licenckövetelmények vonatkoznak a programomra. Tudnátok segíteni abban, hogy milyen licenceket használhatnék?

A válaszadáshoz látnunk kellene a programod által használt összetevőknek a listáját, azok licenceit, és egy rövid leírást arról, hogyan is kezeli a programod az egyes összetevőket.

Mi a különbség az "egyszerű csoportosítás" és "két modul egyetlen programmá való egyesítése" között?

Két program egyszerű csoportosítása azt jelenti, hogy egymás mellé tesszük őket ugyanazon CDROM-on vagy merevlemezen. Akkor használjuk ezt a fogalmat, ha önálló programokról van szó, amelyek nem egyetlen program részei. Ebben az esetben a programra nincs semmilyen hatással az, ha a másik GPL-es.

Két modul összeillesztése azt jelenti, hogy úgy kapcsoljuk össze őket, hogy egy nagyobb önálló programot alkotnak. Bármelyik rész is volt GPL-es, az összekapcsolt egésznek is GPL-esnek kell lennie -- ha ezt nem akarod vagy nem tudod megtenni, akkor nem is kombinálhatod őket.

Mitől válik két rész kombinációja egyetlen programmá? Ez jogi kérdés, amit végül a bírák döntenek el. Úgy gondoljuk, hogy a döntő ismérvek a kommunikációs mechanizmusokon (exec, pipe, rpc, függvényhívás megosztott címtartományban, stb.) és a kommunikáció szemantikáján (azon, hogy milyen típusú az információcsere) múlnak.

Ha a modulok ugyanabban a futtatható állományban vannak, akkor egyértelműen egyetlen programban kapcsolódnak össze. Ha a modulokat úgy tervezték, hogy egymáshoz linkelve futnak egy megosztott címtartományban, akkor az majdnem biztosan az egyetlen programmá való összeillesztésüket jelenti.

Ezzel szemben a pipe-ok, a socket-ek, és a parancssori argumentumok olyan kommunikációs mechanizmusok, amelyeket két külön program között szokás használni. Ha ilyenekkel van megoldva megoldva a kommunikáció, akkor a modulok rendszerint különálló programok. De ha a kommunikáció típusa elég mély, komplex belső adatszerkezetek cseréjével, akkor ez alapot szolgáltathat a két rész egyetlen nagyobb programként való megítélésére.

Miért kívánja meg a Free Software Foundation (FSF) az FSF-copyrightos programok fejlesztésén közreműködőktől, hogy átengedjék a copyrightot az FSF-nek? Egy GPL-es program copyrightjának birtokosa vagyok, nekem is ezt kellene tennem? Ha igen, hogyan?

Az ügyvédeink javasolták, hogy ahhoz, hogy a bíróság előtt a legjobb helyzetből szerezhessünk érvényt a GPL-nek az azt megszegőkkel szemben, előnyösebb, ha a program copyright-státuszát annyira leegyszerűsítjük, amennyire csak lehetséges. Ezt úgy tesszük, hogy megkérjük a közreműködőket, engedjék át a copyrightot az FSF-nek, vagy mondjanak le róla és tegyék a programot szabadon felhasználhatóvá (public domain).

Az egyéni közreműködőket arra is megkérjük, hogy kérjenek a munkáltatójuktól nyilatkozatot, amelyben a munkáltató lemond a copyrightról, így biztosak lehetünk abban, hogy a munkáltató nem követeli magának a már elvégzett munkát.

Természetesen ha minden közreműködő szabadon elérhetővé tenné a munkáját, akkor nem volna copyright, amivel a GPL-t be lehetne tartatni. Ezért arra bátorítjuk az embereket, hogy a nagyobb munkáik copyrightosak, míg a kisebb változások szabadon felhasználhatók legyenek.

Ha meg akarod kísérelni a programodra vonatkozó GPL betartatását, akkor valószínűleg hasznos lesz, ha hasonló elveket követsz. Ha további információra van szükséged, írj a licensing@gnu.org címre.

Ha a GPL feltételeivel szereztem be egy programot, átírhatom-e az eredeti kódot egy új programmá, és kereskedelmi forgalomba hozhatom-e az új programot?

Eladhatod a módosított program másolatait, de csak a GNU GPL feltételeivel. Épp ezért például elérhetővé kell tenned a forráskódot a felhasználók számára, ahogy az a GPL-ben le van írva, és meg kell engedned nekik a program továbbadását és módosítását is.

E követelmények a feltételek egy GPL-es program kódjának a saját programodba való bekerüléséhez.

A C vagy a C++ programnyelvet használom és a GCC-vel fordítok. Az e nyelveken írt programjaimat ugyanolyan licenceléssel kell kibocsátanom mint amilyen a GCC licencelése?

A GCC használata nem támaszt követelményeket a programod licencelésével kapcsolatban.

Használhatom szoftveren kívül másra is a GPL-t?

A GPL bármilyen munkára alkalmazható, amíg tisztázható, hogy mit jelent a munka "forráskódja". A GPL ezt a munka megváltoztatáshoz előnyösebb formájaként definiálja.

A dokumentációk és tankönyvek számára, vagy még általánosabban: olyan munkák számára, amelyek egy tárgy tanítására készültek, a GPL helyett inkább a GFDL-t ajánljuk.

Vizsgáljuk meg a következő helyzetet: X kiadja V1-et a GPL feltételeivel. Y közreműködik a V2 fejlesztésén, a V1-hez adott változtatásokkal. X módosítani szeretné a V2 licencét egy nem GPL licencre. Szüksége van-e ehhez X-nek Y engedélyére?

Igen. Mivel Y X-nek a V1-es verziójára épített, kötelezve volt arra, hogy a saját verzióját a GNU GPL alatt adja ki. Azt viszont senki sem követelheti meg Y-tól, hogy bármilyen más licenc alkalmazását elfogadja a saját kódjára. Ezért X kénytelen megszerezni Y jóváhagyását mielőtt másféle licenceléssel adja ki a kódot.

folyt. köv.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról