052.2 Lecke 1
Tanúsítvány: |
Open Source Essentials |
---|---|
Verzió: |
1.0 |
Témakör: |
052 Nyílt forráskódú szoftverlicencek |
Fejezet: |
052.2 Copyleft szoftverlicencek |
Lecke: |
1/1 |
Bevezetés
A licencek fontosságát már ismertettük mind a szoftverek használata, mind a fejlesztés szempontjából. Ezért nem meglepő, hogy a szabad szoftvereket a kezdetektől fogva a licencelés új megközelítései is jellemezték: a szoftverek korlátlan használatának vagy közös fejlesztésének feltételeit jogilag kell meghatározni ahhoz, hogy védelmet és érvényt lehessen szerezni.
Annak tudatában, hogy a szerzői jog, amely a világ szinte valamennyi jogrendszerében szilárdan rögzült, nem kérdőjelezhető meg és nem helyettesíthető, a szoftverfejlesztők már az 1980-as években olyan megközelítést alkalmaztak, amely tiszteletben tartja a szerzői jogi szabályokat, de kiegészíti azokat a “szabadság” elvét hangsúlyozó új szabályozásokkal: copyleft.
A Copyleft és a GNU General Public License (GPL)
Richard Stallman, aki akkoriban a híres MIT fejlesztője volt, 1983-ban megalapította a GNU Projectet, hogy kifejlesszen egy szerinte “szabad” operációs rendszert. Hamarosan világossá vált, hogy a projekt által kifejlesztett kódot jogilag védeni kell, hogy azt ne tudják egyszerűen átvenni a kereskedelmi szolgáltatók, és így “non-free”-vé (nem-szabaddá) váljon.
Stallman ezért 1985-ben megalapította a nonprofit Free Software Foundation (FSF) alapítványt, amely a következőképpen foglalja össze küldetését a honlapján: “The Free Software Foundation is working to secure freedom for computer users by promoting the development and use of free (as in freedom) software and documentation…” (A Free Software Foundation a számítógép-felhasználók szabadságának biztosításán dolgozik a szabad (mint a szabadság) szoftverek és dokumentációk fejlesztésének és használatának előmozdításával…)
E küldetés kulcsfontosságú eszköze egy olyan licenc, amely egyrészt tiszteletben tartja az alkalmazandó jogszabályokat (különösen a szerzői jogokat), másrészt jogilag tiszta módon valósítja meg a szabadságról alkotott elképzeléseit. Ennek eredménye volt a GNU General Public License (GPLv1) első változata 1989-ben. Ez a licenc és számos cikk — mint például a “What is Free Software?” (Mi a szabad szoftver?), amelyet Stallman 1992-ben írt — világossá teszi a szabad szoftverfejlesztők motivációit és értékeit, akik ma már “mozgalomként” is tekintenek magukra.
A programozási magot továbbra is a Stallman által a fent említett cikkben megfogalmazott “négy alapvető szabadság” alkotja, amelyek számozása 0-val kezdődik:
The freedom to run the program as you wish, for any purpose (freedom 0). (A program tetszés szerinti futtatásának szabadsága, bármilyen célra (szabadság 0))
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. (A szabadság a program működésének tanulmányozásához, és megváltoztatásához úgy, hogy a számítást úgy végezze, ahogy szeretnénk (1. szabadság). Ennek előfeltétele a forráskódhoz való hozzáférés.)
The freedom to redistribute copies so you can help others (freedom 2) (A másolatok továbbterjesztésének szabadsága, hogy segíthessünk másokon (2. szabadság)).
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. (A szabadság, hogy a módosított változatok másolatait másoknak is terjeszthessük (3. szabadság). Ezzel az egész közösségnek esélyt adhatunk arra, hogy profitáljon a változtatásainkból. Ennek előfeltétele a forráskódhoz való hozzáférés.)
What is Free Software?
Unlike licenses for commercial products, which place restrictions on use in the foreground, free software is about maximum freedom for users and developers.
A GNU GPLv1 preambuluma ezt a következőképpen foglalja össze:
Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. (Specifikusan, a General Public License célja, hogy biztosítsa, hogy a szabad szoftverek másolatait szabadon továbbadhassa vagy eladhassa, hogy a forráskódot megkaphassa vagy megszerezhesse, ha szeretné, hogy a szoftvert megváltoztathassa vagy darabjait új szabad programokban felhasználhassa; és hogy tudja, hogy ezeket a dolgokat megteheti.)
version 1
Ez azt jelenti, hogy mindenkinek joga van a GPL alá tartozó szoftverek korlátozás nélküli használatára, terjesztésére és módosítására (ami azért lehetséges, mert a forráskód hozzáférhető, azaz “nyílt”), cserébe a módosítások terjesztéséért. Még az is lehetséges, hogy pénzt kérjenek a szoftver továbbadásáért:
Actually, we encourage people who redistribute free software to charge as much as they wish or can. If a license does not permit users to make copies and sell them, it is a nonfree license….Free programs are sometimes distributed gratis, and sometimes for a substantial price. Often the same program is available in both ways from different places. The program is free regardless of the price, because users have freedom in using it. (Valójában arra bátorítjuk azokat, akik szabad szoftvereket terjesztenek, hogy annyit kérjenek értük, amennyit csak akarnak vagy tudnak. Ha egy licenc nem teszi lehetővé, hogy a felhasználók másolatokat készítsenek és eladják azokat, akkor az nem szabad licenc….A szabad programokat néha ingyenesen, néha pedig jelentős összegért terjesztik. Gyakran ugyanaz a program mindkét módon, különböző helyeken elérhető. A program az árától függetlenül szabad, mert a felhasználók szabadon használhatják.)
Selling Free Software
But if the freedoms are so far-reaching, to what extent is software protected under this license, for example from being incorporated into proprietary products?
Ez a szerepe a korábban említett copyleft elvnek, amelyet a GPL már az 1. verzióban is alkalmaz, még ha a kifejezés még nem is szerepel kifejezetten:
You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. (A Programot nem másolhatja, módosíthatja, nem adhat allicencet, nem terjesztheti és nem ruházhatja át, kivéve a jelen General Public Licenseben kifejezetten meghatározottak szerint.)
This means that all these freedoms are linked to the condition that users preserve these freedoms in everything they do with the software.
A Copyleft tehát nemcsak szabadságjogokat garantál, hanem minden felhasználótól megköveteli, hogy ezeket a szabadságjogokat másoknak is biztosítsa. Ezt úgy érik el, hogy a copyleft licenc alá tartozó szoftverek (mint például a korai GPLv1) csak akkor módosíthatók és terjeszthetők, ha a módosításokat ugyanolyan feltételek mellett, azaz ugyanezen licenc alatt teszik közzé.
A szabad szoftverek eszménye, nevezetesen a szoftverek kollektív használata és továbbfejlesztése ezért elsőbbséget élvez az egyének szoftverrel kapcsolatos személyes igényeivel szemben. A kölcsönösség elve kulcsfontosságú: aki él a szabadsággal, annak meg is kell adnia azt másoknak. A copyleft licenceket ezért gyakran nevezik reciprokális licenceknek.
A szoftverlicencnek ez a teljesen új megközelítése már a GPL 1. verziójában is jogilag megalapozottnak és megvalósíthatónak bizonyult, így a GPL a modern informatikai piac fejlődésének közel 40 éve alatt mindössze két nagyobb módosításon esett át.
GPLv2 és GPLv3
1991-ben a Free Software Foundation bemutatta a GNU General Public License 2. verzióját (GPLv2), amely hosszú éveken keresztül a szabad szoftverprojektek legnépszerűbb licenceként vált ismertté. A Linux operációs rendszer kernele például ma is a GPLv2 licenc védelmét élvezi.
Ha összehasonlítjuk a 2-es verziót az 1-es verzióval, azt látjuk, hogy a kétértelműségek elkerülése érdekében pontosabb meghatározásokat tartalmaz. Például a 2-es verzió sokkal részletesebben megmagyaráza, hogy mit jelent a “forráskód”.
Szintén érdekes az új 7. Szakasz (Section), amely a szabadság elvét és így a licenc érvényességét abszolútnak tekinti, és nem enged meg semmilyen kompromisszumot — például kevésbé szabad részek beépítését a szoftverbe:
If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. (Ha Ön nem tudja úgy terjeszteni a Programot, hogy a jelen Licenc szerinti kötelezettségeinek és bármely más vonatkozó kötelezettségének egyszerre eleget tegyen, akkor ennek következtében a Programot egyáltalán nem terjesztheti. Például, ha egy szabadalmi licenc nem tenné lehetővé a Program jogdíjmentes továbbterjesztését mindazok számára, akik közvetlenül vagy közvetve Önön keresztül másolatokat kapnak, akkor az egyetlen módja annak, hogy ezeknek és a jelen Licencnek is eleget tegyen, az lenne, ha teljesen tartózkodna a Program terjesztésétől.)
Csak 16 évvel később, 2007-ben tette közzé az FSF a GPL új változatát, hogy figyelemmel legyen a technikai újításokra — például a szoftverszolgáltatások interneten keresztül történő biztosítását --, valamint a más FOSS licencekkel való kompatibilitás kérdéseit. A licenc azonban az alapvető kijelentéseit tekintve stabil maradt, és csupán a további pontosítás érdekében újabb részletekkel egészült ki. Nézzünk meg néhány ilyen kiegészítést közelebbről!
Míg a GPLv2 még mindig általánosságban terjesztésként (distribution) említi a szoftver rendelkezésre bocsátását, a GPLv3 két új kifejezéssel pontosítja ezt a folyamatot: propagálás (propagation) és átruházás (conveying). Ennek fő oka az, hogy a “terjesztés” kifejezést világszerte számos szerzői jogi törvény határozza meg. A félreérthetőség és a konfliktusok elkerülése érdekében a GPLv3 ezeket az új kifejezéseket használja, és a következőképpen határozza meg őket:
To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. (Egy munka “propagálása” azt jelenti, hogy bármi olyat tesz vele, ami engedély nélkül közvetlenül vagy másodlagosan felelőssé teszi Önt a vonatkozó szerzői jogi törvények szerinti jogsértésért, kivéve a számítógépen történő végrehajtását vagy egy magánmásolat módosítását. A propagálás magában foglalja a másolást, a terjesztést (módosítással vagy anélkül), a nyilvánosság számára hozzáférhetővé tételt, és egyes országokban egyéb tevékenységeket is.)
To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. (Egy munka “átruházása” minden olyan propagálást jelent, amely lehetővé teszi más felek számára, hogy másolatokat készítsenek vagy kapjanak. A felhasználóval való puszta interakció egy számítógépes hálózaton keresztül, másolat átadása nélkül, nem minősül átruházásnak.)
Mivel jelentősen megnőtt azon kereskedelmi szoftvertermékek száma, amelyek forgalmazását a gyártók olyan technikai intézkedésekkel korlátozzák, mint a regisztrációs kódok vagy hardverkomponensek (úgynevezett dongles), az 1990-es évek végén számos nemzetközi jogi kezdeményezés született az ilyen intézkedések megkerülésének kriminalizálására. Ez az úgynevezett digitális jogkezelés (Digital Rights Management — DRM), amelyet az ellenzők lekicsinylően digitális korlátozások menedzselésének is neveznek. Ez szálka az FSF szemében, mivel az intézkedések alapvetően ellentmondanak a szoftverek szabad terjesztésének igényének.
Válaszul a GPL 3. verziója tartalmaz egy olyan passzust, amely kimondja, hogy a GPL alá tartozó szoftverek nem módosíthatók a DRM jogi követelményeire hivatkozva. Ez azt is jelenti, hogy a GPLv3 alatt licencelt szoftverek használhatnak DRM-et, de mások meg is kerülhetik ezeket az intézkedéseket.
A tivoizálás (tivoization) kifejezést is gyakran használják ebben az összefüggésben. A szó kifejezetten szerepelt a GPLv3 első tervezeteiben, de a végleges változatba nem került bele. A kifejezés a TiVo nevű cégre vezethető vissza, amely a digitális videomagnójában GPLv2-licencű szoftvert használt, ugyanakkor technikailag megakadályozta, hogy módosított szoftvereket telepítsenek és használjanak a készülékre. Az FSF véleménye szerint ez ellentmondott a GPL elveinek, és némi vita után a GPLv3 ezt figyelembe veszi az úgynevezett felhasználói termékekre (user products) vonatkozó bekezdéssel. Ez általánosságban előírja, hogy a GPLv3 licencelt szoftvert használó termékeknek tájékoztatást kell adniuk arról is, hogyan lehet ezt a szoftvert módosítani.
Egy további kiegészítés a szabadalmakra vonatkozik, amelyeket az FSF a szoftverekkel kapcsolatban a szabadság és az innováció akadályozására hivatkozva alapvetően elutasít. Ez már a GPLv3 preambulumában is szerepel:
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. (Végezetül, minden programot folyamatosan fenyegetnek a szoftverszabadalmak. Az államoknak nem szabadna megengedniük, hogy a szabadalmak korlátozzák a szoftverek fejlesztését és használatát az általános célú számítógépeken, de azokban az államokban, ahol igen, szeretnénk elkerülni azt a különleges veszélyt, hogy a szabadalmak egy szabad programra alkalmazva azt ténylegesen jogvédetté tehetik. Ennek megakadályozása érdekében a GPL biztosítja, hogy a szabadalmak nem használhatók fel arra, hogy a program ne legyen szabad.)
A licenc szövege több olyan passzust is tartalmaz, amely lehetővé teszi a szabadalom alá tartozó kód beillesztését a licencadó “nem kizárólagos, világméretű, jogdíjmentes szabadalmi licencével” annak érdekében, hogy megvédje az ilyen kód felhasználóit a szabadalmi jogosultak és a licencjogosultak közötti vitáktól.
A GNU Affero General Public License (AGPL)
Az internet növekvő elérhetőségével és sebességével egyre több olyan szolgáltatás jelenik meg, amelyekben a szoftvert csupán telepítik a szolgáltató — az alkalmazásszolgáltató (Application Service Provider — ASP) — szervereire, és amelyek ügyfelei az interneten keresztül lépnek kapcsolatba a szolgáltatásokkal. Ez a trend a Software as a Service (SaaS) elnevezést kapta.
Ilyen esetekben a GPLv2 nem adott egyértelmű tájékoztatást arról, hogy a (szolgáltató által esetleg módosított) forráskódot hozzáférhetővé kell-e tenni, és ha igen, hogyan. A GPL 3. verziója ezt a ASP-loophole-nak nevezett kiskaput azzal zárja be, hogy a 13. szakaszban kifejezetten utal az FSF által 2007-ben kiadott másik licencre: a GNU Affero General Public License 3. verziójára (GNU AGPLv3). A név az Affero cégre vezethető vissza, amely kifejlesztette és kiadta ennek a licencnek az első két változatát.
Ez az AGPLv3 alapvetően megfelel a GPLv3-nak, de kifejezetten szabályozza az ASP-problémát a “távoli hálózati interakció” (remote network interaction) szakaszban. Továbbá mindkét licenc kifejezetten kimondja, hogy korlátozás nélkül kombinálhatók egymással.
Összefoglalva, a GNU AGPL a GPL kiegészítő kiegészítője. Az AGPL kiterjeszti a GPL hatályát azáltal, hogy a copyleftet olyan szoftverekre is alkalmazza, amelyeket már nem helyi telepítésben, hanem kizárólag hálózaton keresztül továbbított szolgáltatások formájában használnak.
A copyleft licencek kompatibilitása
A szabad szoftverek fejlesztése mások munkájára építve, azaz mások forráskódjának integrálásával, módosításával és megosztásával virágzik. Ha egy módosított vagy újonnan lefordított szoftver minden része ugyanazon copyleft licenc, például a GPLv3 alatt áll, akkor ez jogi problémák nélkül lehetséges. A licenc egyszerűen megköveteli, hogy az eredményt ugyanezen licenc alatt terjesszék.
A dolgok bonyolultabbá válnak, amikor a szoftver a különböző licencek hatálya alatt áll. Ebben az esetben több tényezőt kell figyelembe venni.
Kombinált és származékos művek
A szabad szoftverek néha nagyon eltérő feltételek mellett jönnek létre. A változtatások az egyszerű hibajavításoktól a több millió sornyi kódot tartalmazó összetett projektekig terjednek. A terjedelemtől függetlenül a licencelés tekintetében alapvetően kétféle munkát különböztetünk meg: származékos és kombinált.
Tegyük fel például, hogy az A szoftverprojektből hiányzik egy bizonyos funkció. Ahelyett, hogy ezt a funkcionalitást a semmiből fejlesztenénk ki, érdemes egy másik, pontosan ezt a funkcionalitást nyújtó B projekt kódját kombinálni A-val. A B-ből származó szoftvert ehhez nem is kellene megváltoztatni, hanem egyszerűen hozzá lehetne adni A-hoz. Ez tehát egy kombinált projekt. Ha mind az A, mind a B ugyanazzal a copyleft licenccel rendelkezik, akkor a kombinált projekt nem jelent problémát.
Ha A és B különböző copyleft licencek alatt áll, óvatosságra van szükség: az A és B kombinációja már különálló munka? És ha igen, akkor melyik licenc alatt lehet vagy kell licencelni? Vagy elkerülhető a konfliktus azáltal, hogy az A és B részek külön-külön megmaradnak a saját licencükkel, és nem alkotnak új munkát?
Ez még nehezebbé válik a származékos művek esetében, azaz amikor az A projekt csak úgy tudja felhasználni a B funkcionalitását, hogy a B kódját közvetlenül beépíti az A kódjába. Ez az integráció egy új, származékos projektet hoz létre, amelynek részeit már nem lehet szétválasztani.
A copyleft a származékos projektek esetében lép életbe. Ha például az A copyleft licenc alatt áll, mint például a GPLv3, akkor a kölcsönösség elvének megfelelően az új, származékos munkának is a GPLv3 alatt kell állnia. De mi van akkor, ha B más licenc alatt áll? Ez is copyleft licenc, és kompatibilis a GPLv3-mal? Vagy ha más típusú licencről van szó, akkor B-t is lehet-e más licenc alatt közzétenni, azaz újralicencelni? Vagy A és B licencek kategorikusan kizárják egymást?
Ebben a leckében nem az a cél, hogy felsoroljuk a lehetséges kombinációkat és a lehetséges megoldásokat. A lényeg az, hogy bemutassuk a probléma összetettségét, amely a nagyon különböző kérdések kombinációjából adódik.
Technikailag az első dolog, amit tisztázni kell, hogy a szoftver különböző részei (példánkban A és B) hogyan működnek együtt: elválaszthatók-e egymástól, vagy vannak-e olyan folyamatok, amelyek végrehajtása már nem rendelhető egyértelműen egyik vagy másik részhez?
Jogi szempontból kérdésként merül fel, hogy milyen viszonyban állnak egymással A és B licencei. Összeegyeztethetőek-e egymással, vagy csak részben, vagy csak az egyik irányba? Lehetséges-e az újralicencelés?
Itt csak utalni tudunk ezeknek a kérdéseknek a bonyolultságára, megoldani nem tudjuk őket. Az ilyen döntésekhez alapos jogi ismeretekre van szükség. Ezért az új munkákra, de különösen a kombinált és származékos projektekre vonatkozó engedélyezési döntéseket korán, gondosan és mindig részletes jogi tanácsadás után kell meghozni.
Gyengébb copyleft
A copyleft rendkívül robusztusnak bizonyult az elmúlt évtizedekben, különösen a GPL 2-es és 3-as verziójaként. Azonban különleges technikai követelmények miatt az FSF-nek adaptálnia kellett a licenceit; a GNU Affero General Public License például ilyen. A következő alfejezetekben további példákról lesz szó.
A GNU Lesser General Public License (LGPL)
Gyakran használt módszer szoftverfejlesztés során, hogy kis modulokat használnak standard feladatokhoz, mint például fájlok megnyitása vagy mentése. Ezeket a modulokat — vagy az ilyen modulok gyűjteményeit — szoftverkönyvtáraknak (software library) nevezik. Ezek általában nem független végrehajtó alkalmazások, de rutinok, hogy a tényleges alkalmazás tudja integrálni azt, ami szükséges. Az integrációs folyamatok linking néven ismertek, ahol megkülönböztetés van a két módszer között.
A statikus könyvtárak esetében a tényleges alkalmazás (segédprogramokon és köztes lépéseken keresztül) szilárdan integrálja a modulok kódját az alkalmazás futtatható fájljába. Ezzel szemben a dinamikus könyvtárak esetén az alkalmazás csak akkor integrál egy modult, amikor az a futáskor szükséges — ekkor tölti be azt az aktív memóriába.
Ez felvet egy kérdést a copyleft és a licencelés tekintetében: milyen licencjogi következményei vannak a linkelésnek? Például az átvételnek ez a formája megköveteli-e, hogy a GPL alatti könyvtárat használó alkalmazás maga is átvegye a GPL-t? És ez vonatkozik-e mind a statikus, mind a dinamikus linkelésre?
A linkelési folyamat annyira mindennapos a szoftverfejlesztésben, valamint a reciprokális copylefthez kapcsolódó problémák annyira kiterjedtek, hogy az FSF már korán olyan licencelési megoldást keresett, amely lehetővé teszi a linkelést a GNU Lesser General Public License (LGPL) segítségével. Az LGPL a GPL minden egyes új verziójával egy időben frissül. A licenc neve az 1. verzióban GNU Library General Public License volt, ami rávilágított arra az eredeti problémára, ami a licenc létrehozásához vezetett. A 2. és 3. verzió a “Library” helyett a “Lesser” (kisebb/kevesebb) szóval jelzi, hogy valójában miről is van szó, nevezetesen a copyleft elv pragmatikus gyengítéséről.
Az LGPL alatt licencelt könyvtárat tehát használhatja egy szoftver anélkül, hogy maga a szoftver automatikusan a copyleft hatálya alá tartozna. Az úgynevezett permisszív (megengedő) licencek alá tartozó szoftverprojektek (amelyekről egy másik leckében lesz szó) különösen profitálnak ebből a kompromisszumból, mivel ez olyan megközelítések kombinációjának teremt jogi védelmet, amelyek a licencjog szerint önmagukban nem lennének kompatibilisek.
Az LGPL-licenc alatt álló szoftvereken végrehajtott változtatások továbbra is a copyleft hatálya alá tartoznak, azaz szintén az LGPL alatt kell állniuk.
Az LGPL-licenc alatt álló könyvtárnak azonban cserélhetőnek kell lennie, hogy a szoftver felhasználója egy módosított verzióval helyettesíthesse azt. Ehhez megfelelő feltételeket kell teremteni, azaz tájékoztatást kell adni arról, hogy hogyan lehet ilyen cserét végrehajtani.
Egyéb copyleft licencek
Más FOSS-projektek és szervezetek is keresik a saját igényeiknek legmegfelelőbb jogi keretet, ezért pedig saját licenceket fejlesztenek ki. Ilyen például az 1998-ban alapított Mozilla Foundation, amely ma leginkább az általa támogatott két projektről ismert: a Firefox internetböngészőről és a Thunderbird e-mail kliensről.
A Mozilla Public License (MPL) 1. verziója 1998-ban jelent meg, a jelenlegi (2024) 2.0 verzió pedig 2012-ben.
Az LGPL-hez hasonlóan az MPL-t is gyakran nevezik “weak copyleft” (gyenge copyleft) licencnek. Valójában egyensúlyt próbál teremteni a copyleft szigorú követelményei és a kereskedelmi termékekkel való integráció lehetőségei között. Ezt többek között a file-level copyleft néven ismert elvvel éri el: ha módosítunk egy olyan fájlt, amely az MPL alá tartozó szoftverhez tartozik, akkor ezt a fájlt integrálhatjuk a zárt szoftverekbe mindaddig, amíg maga a módosított fájl az MPL alatt marad, és így hozzáférhető.
Egy másik példa a gyenge copyleft licencre az Eclipse Foundation Eclipse Public License (EPL). A jelenlegi, 2017-es 2.0-s verzió nagyon hasonlít az MPL-re, és gyakran a leginkább “üzletbarát” copyleft licencként emlegetik. A különböző copyleft licencek — és az itt említetteken kívül vannak még mások is — azonban gyakran inkább a történelmi fejlődés, mintsem egyértelmű jogi különbségek miatt keletkeztek.
Gyakorló feladatok
-
Minek a rövidítése a GPL?
-
Miért hívják a copyleft licenceket reciprokálisnak is?
-
Melyik FSF copyleft licenc alkalmas szoftverkönyvtárakhoz?
-
Mely angol szavak váltották a “distribution” kifejezést a GPLv3-ban és miért?
-
Az alábbi copyleft licencek közül melyiket adta ki a Free Software Foundation?
GPL version 3
AGPL version 1
LGPL version 2
MPL 2.0
EPL version 2
Gondolkodtató feladatok
-
Az alábbiak közül melyek copyleft licencek?
GPL version 2
3-clause BSD License
LGPL version 3
CC BY-ND
EPL version 2
-
Létrehozható-e tipikusan olyan származékos projekt, amely két olyan szoftverprojekt részeit egyesíti, amelyek különböző erős copyleft licencek védelme alatt állnak? Indokoljuk meg!
-
Az alábbi licencek közül melyek strong copyleft és melyek a weak copyleft licencek?
Common Development and Distribution License (CDDL) 1.1
GNU AGPLv3
Microsoft Reciprocal License (MS-RL)
IBM Public License (IPL) 1.0
Sleepycat License
-
Describe some compatibility issues that could arise when combining software under a weak copyleft license with software under a non-copyleft license.
Összefoglalás
Ez a lecke a copyleft elvét követő szoftverlicencek jellemzőivel foglalkozik. Jelenleg az 1980-as években a Free Software Foundation által kifejlesztett GNU General Public License (GPL) a legnépszerűbb, erős szerzői jogvédelemmel rendelkező licenc. Az aktuális 3. verzióig többször átdolgozott változata ellenére alapvető követelményei gyakorlatilag változatlanok maradtak: a licenc által biztosított, a szoftver korlátozás nélküli használatára, továbbterjesztésére és módosítására vonatkozó szabadságot mindenkor meg kell őrizni. Ez azt jelenti, hogy a módosított szoftver csak azonos feltételek (azaz azonos licenc) mellett terjeszthető.
A technikai újítások, valamint a más projektekkel való együttműködés során a jogi mozgástér iránti igény arra késztette az FSF-et, hogy kiegészítő vagy alternatív licenceket dolgozzon ki. A GNU Lesser General Public License (LGPL) például figyelembe veszi a szoftverfejlesztés során gyakran használt szoftverkönyvtárak statikus vagy dinamikus összekapcsolását. A GNU Affero General Public License (AGPL) arra a technikai trendre reagál, hogy a szoftvereket nem helyi telepítésben, hanem hálózaton (különösen az interneten) keresztül, szolgáltatások formájában használják.
Az FSF mellett más projektek, például a Mozilla Foundation és az Eclipse Foundation is kifejlesztett copyleft licenceket. Ezek szintén kompromisszumot keresnek a licenc által biztosított szabadságjogok biztosítása és a más licencek alá tartozó szoftverekhez való egyszerűbb viszony között egy gyengébb copyleft révén.
A licencek kompatibilitása elvileg fontos kérdés a copyleft licencek esetében, mivel a szabad, közös szoftverfejlesztés elvét össze kell egyeztetni az adott licenc által meghatározott jogi feltételekkel. A különböző licencek alá tartozó szoftverek bármilyen kombinációja esetén a jogi feltételeket minden egyes esetben gondosan meg kell vizsgálni.
Válaszok a gyakorló feladatokra
-
Minek a rövidítése a GPL?
General Public License
-
Miért hívják a copyleft licenceket reciprokálisnak is?
A copyleft elve megköveteli, hogy korlátozás nélkül adjuk meg a licenc által biztosított szabadságokat másoknak. Ha például a GPL védelme alatt módosítjuk a szoftvert, akkor kötelesek vagyunk ezeket a módosításokat mások számára is hozzáférhetővé tenni ugyanilyen feltételekkel, a kölcsönösség elve alapján.
-
Melyik FSF copyleft licenc alkalmas szoftverkönyvtárakhoz?
GNU Lesser General Public License (GNU LGPL)
-
Mely angol szavak váltották a “distribution” kifejezést a GPLv3-ban és miért?
A “convey” és “propagate” kifejezések váltották a “distribution” szót. Ennek hátterében az áll, hogy a “distribution” kifejezés szilárdan rögzítve van a nemzetközi szerzői jogban. A konfliktusok és félreértések elkerülése érdekében a GPL 3. verziója nem használja ezt a kifejezést.
-
Az alábbi copyleft licencek közül melyiket adta ki a Free Software Foundation?
GPL version 3
X
AGPL version 1
LGPL version 2
X
MPL 2.0
EPL version 2
Válaszok a gondolkodtató feladatokra
-
Az alábbiak közül melyek copyleft licencek?
GPL version 2
X
3-clause BSD License
LGPL version 3
X
CC BY-ND
EPL version 2
X
-
Létrehozható-e tipikusan olyan származékos projekt, amely két olyan szoftverprojekt részeit egyesíti, amelyek különböző erős copyleft licencek védelme alatt állnak? Indokoljuk meg!
Nem. Az erős copyleftet tartalmazó licencek általában megkövetelik, hogy a módosított verziók ugyanezen licenc alatt legyenek. Ez kizárja az újbóli licencelést is. A licencek kombinációja feloldhatatlan ellentmondást jelent, ha mindkettő ezeket az elveket követi.
-
Az alábbi licencek közül melyek strong copyleft és melyek a weak copyleft licencek?
Common Development and Distribution License (CDDL) 1.1
weak
GNU AGPLv3
strong
Microsoft Reciprocal License (MS-RL)
weak
IBM Public License (IPL) 1.0
weak
Sleepycat License
strong
-
Mondjunk néhány kompatibilitási problémát, amelyek akkor merülhetnek fel, ha gyenge copyleft licencű szoftvert kombinálnak nem copyleft licencű szoftverrel!
Míg az erős copyleft megköveteli, hogy a módosított szoftvert ugyanazon licenc alatt terjesszék, addig a gyenge copyleft esetében a feltételek “lazábbak”. Mindazonáltal minden más licenccel való kombináció alapvető kompatibilitási kérdéseket vet fel. E kérdések megválaszolásakor fontos szempontokat kell figyelembe venni: a két szoftverprojekt eredeti részei egyértelműen elkülönülnek-e az új projektben, és ha szükséges, akkor továbbra is különböző licencekkel rendelkeznek-e? Milyen szinten történik valójában a kapcsolat a két eredeti szoftverprojekt között? A forráskódot közvetlenül átveszik, vagy “csak” dinamikusan linkelik a másik szoftverrel (könyvtárral)? A két licenc közül az egyik általában lehetővé teszi az újbóli licencelést? Minden ilyen jellegű kérdésre csak a vonatkozó licencek pontos elemzése után és jogi szakértelem birtokában lehet választ adni.