052.3 Lecke 1
Tanúsítvány: |
Open Source Essentials |
---|---|
Verzió: |
1.0 |
Témakör: |
052 Nyílt forráskódú szoftverlicencek |
Fejezet: |
052.3 Permisszív szoftverlicencek |
Lecke: |
1/1 |
Bevezetés
A permisszív (megengedő) licencek jelenleg a legszélesebb körben használt nyílt forráskódú licencek, szemben a korlátozó (restrictive) licencekkel, mint amilyen például a GNU General Public License (GPL). A megengedő szoftverlicencek általában egyszerűek és rugalmasak, és széles körű szabadságot biztosítanak a szerzőknek — talán a legszélesebb körű szabadságot a nyílt forráskódú licencek között.
Ez a fajta licenc széleskörű szabadságot biztosít a szoftverfejlesztőknek a szoftver felhasználása, módosítása és terjesztése tekintetében, feltéve, hogy elismerik az eredeti szerzőt. Például általában valaki terjeszthet egy származékos művet zárt forráskódú licenc alatt, feltéve, hogy a projekt tartalmazza azon munka szerzőjének a megnevezését, amelyből az új termék származik.
Ennek a logikának az az elve, hogy a szoftver lehető legnagyobb mértékű terjesztését tegye lehetővé. A megengedő licencek azt állítják, hogy a szoftver kereskedelmi felhasználásának megkönnyítése révén az egyének és a nyilvánosság javát szolgálják, miközben a szerzői jogok a tulajdonosi jogok megadásával megmaradnak.
Nem véletlen, hogy az első és legfontosabb megengedő szoftverlicenceket az akadémiai területen fejlesztették ki, mint például a kaliforniai Berkeley Egyetem BSD-szerű licenceit vagy a Massachusetts Institute of Technology MIT/X11 licencét. Ezeket akadémiai nyílt forráskódú licenceknek nevezik. Az iparágon belüli hatásuk olyan mértékű volt, hogy megalapozták a hasonló, akadémiai kontextuson kívül született permisszív szoftverlicencek, például az Apache Software Foundation Apache License-ének alapjait.
A permisszív szoftverlicencek jogai és kötelezettségei
Általában a legnépszerűbb megengedő szoftverlicencek korlátlan jogot biztosítanak az engedélyesnek a következőkre:
- A szoftver használata
-
A permisszív szoftver licenc által lefedett szoftvert bárki használhatja (az egyéni felhasználók, a kereskedelmi vállalatok, a hatóságok) és bármilyen céllal, legyen az akár személyes vagy professzionális.
- A szoftver módosítása
-
A szoftver továbbfejleszthető, adaptálható, vagy akár komponensként (pl. könyvtár) más szoftverekbe integrálható.
- A szoftver továbbterjesztése
-
Ha a szoftvert származékos munka formájában módosítják, akkor a különböző licencek, beleértve a zárt licenceket is, alapján továbbterjeszthető.
A permisszív szoftverlicencek egyetlen kötelezettsége általában a tulajdonosi hozzájárulás: az engedélyes köteles feltüntetni a szoftver eredeti szerzőjének nevét a származékos munkában, és a szoftver továbbterjesztésekor a licenc szövegének másolatát is tartalmaznia kell.
A legfontosabb engedélyköteles szoftverlicencek jellemzői
Ez a szakasz elmagyarázza a különbségeket az MIT/X11 licenc, a legelterjedtebb BSD licencek és az Apache 2.0 licenc között, melyek manapság széles körben használatosak.
MIT/X11 licenc
A MIT/X11 licenc (szövege: https://opensource.org/license/mit), más néven X11 licenc, egyike a korábban említett tudományos licenceknek. A licenc nevét a Massachusetts Institute of Technology által 1987-ben kifejlesztett X Window System szoftverről kapta. Ez a licenc az egyik legrégebbi és legnépszerűbb permisszív szoftverlicenc, részben egyszerű, világos nyelvezete miatt.
Ez a licenc biztosítja az engedélyes számára a következő jogokat:
-
A szoftver használata, módosítása és terjesztése
-
A szoftver kereskedelmi forgalomba hozatala, módosításokkal vagy anélkül
-
Származékos munkák kiadása más licenc alatt, akár zárt forráskódú szoftverként is
Az engedélyes kizárólagos kötelezettsége, hogy a szerzői jogi közleményt és a licenc szövegét a szoftver vagy annak származékos munkái forráskódjába beépítse.
A MIT/X11 licenc kompatibilisnek tekinthető az összes legfontosabb copyleft licenccel, mind a weak, mind a strong licencekkel. Az MIT/X11 licenc különösen kompatibilis a következő licencekkel
-
GNU General Public License (GPL), 2.0 és 3.0 verzió
-
GNU Lesser General Public License (LGPL), 2.0 és 3.0 verzió
-
Mozilla Public License (MPL)
Ez azt jelenti, hogy az eredetileg MIT/X11 licenc alatt licencelt szoftverek származékos munkái a fent említett licencek valamelyike alatt is terjeszthetők, vagy beépíthetők a fent említett licencek valamelyike alatt kiadott projektekbe.
2 klauzulás BSD licenc
A 2-Clause BSD License (2 záradékos/klauzulás BSD licenc) (szövege: https://opensource.org/license/bsd-2-clause) az eredeti BSD licencből származik. 1980-ban hozta létre a Berkeley Egyetem Kaliforniában a BSD licenceként (ami egy Unix-szerű operációs rendszer).
A licenc egyszerűségéről ismert és ahogy a neve is mutatja, mindössze két rövid záradékból áll. Lényegében azonos az MIT/X11 licenccel. Mint az MIT/X11 licenc, ezt is fel kell tüntetni a szoftverben. Ezenkívül a 2 klauzulás BSD licenc megköveteli, hogy a licenc jogosultja a kód továbbterjesztésekor a dokumentációban és egyéb átadott anyagokban is szerepeltesse a licenc szövegét.
Összefoglalva a 2 klauzulás BSD licenc biztosítja a jogokat:
-
A szoftver használatára, módosításéra és terjesztésére
-
A szoftver kereskedelmi forgalomba hozatalára, módosítással vagy anélkül
-
származékos művek kiadására más licenc alatt, akár zárt forráskódú szoftverként is
Az engedélyes köteles:
-
Hozzáadni a szerzői jogi közleményt és a licenc szövegét a szoftver vagy az abból származékos munkák forráskódjához és bináris változatához
-
Hozzáadni a szerzői jogi közleményt és a licenc szövegét a szoftverrel együtt szállított dokumentációjához vagy egyéb anyagokhoz
A 2 klauzulás BSD licenc kompatibilisnek tekinthető az összes főbb copyleft licenccel, mind a weak, mind a strong licencekkel. A 2 klauzulás BSD licenc különösen kompatibilis a következőkkel:
-
GNU General Public License (GPL), 2.0 és 3.0 verzió
-
GNU Lesser General Public License (LGPL), 2.0 és 3.0 verzió
-
Mozilla Public License (MPL)
Ezért az eredetileg a 2 klauzulás BSD licenc alatt licencelt szoftverek származékos munkái a fent említett licencek valamelyike alatt is terjeszthetők, vagy beépíthetők a fent említett licencek valamelyike alatt kiadott projektekbe.
3 klauzulás BSD licenc
A 3-Clause BSD license (3 klauzulás BSD licenc) (szövege: https://opensource.org/license/bsd-3-clause) egy újabb változata az eredeti BSD licencnek, amely mindössze három záradékból áll. A fő jellemző, ami megkülönbözteti ezt a licencet nővérétől, a 2 klauzulás BSD licenctől, a “non-endorsement clause”, amelynek célja, hogy megakadályozza az eredeti szerző nevének felhasználását a származékos művek terjesztésére vagy eladására.
A 3 klauzulás BSD licenc biztosítja az engedélyes számára a következő jogokat:
-
A szoftver használata, módosítása és terjesztése
-
A szoftver kereskedelmi forgalomba hozatala, módosításokkal vagy anélkül
-
Származékos munkák kiadása más licenc alatt, akár zárt forráskódú szoftverként is
Az engedélyes köteles:
-
Hozzáadni a szerzői jogi közleményt és a licenc szövegét a szoftver vagy az abból származékos munkák forráskódjához és bináris változatához
-
Hozzáadni a szerzői jogi közleményt és a licenc szövegét a szoftverrel együtt szállított dokumentációjához vagy egyéb anyagokhoz
-
Tartózkodni a szerzői jogtulajdonos vagy a közreműködők nevének feltüntetésétől a szoftverből származó termékek támogatása vagy népszerűsítése céljából, külön előzetes írásbeli engedély nélkül
Az utóbbi kötelezettség — a “non-endorsement clause” (nem-jóváhagyási záradék) — értelmezéséhez képzeljünk el egy olyan forgatókönyvet, amelyben egy vállalat vagy magánszemély egy szabad szoftverlicenc alapján engedélyezett szoftverből kiindulva készít egy származékos munkát. E záradék hiányában az engedélyes azzal népszeűsíthetné az új terméket, hogy jelzi, hogy az egy ismert fejlesztő szoftveréből származik, így profitálva annak presztízséből.
A testvér licencéhez hasonlóan a 3 klauzulás BSD licenc is kompatibilisnek tekinthető az összes legfontosabb copyleft licenccel, legyen az weak vagy strong. A 3 klauzulás BSD licenc különösen kompatibilis a következőkkel:
-
GNU General Public License (GPL), 2.0 és 3.0 verzió
-
GNU Lesser General Public License (LGPL), 2 és 3 verzió
-
Mozilla Public License (MPL)
Ezért az eredetileg a 3 klauzulás BSD licenc alatt licencelt szoftverek származékos munkái a fent említett licencek valamelyike alatt is terjeszthetők, vagy beépíthetők a fent említett licencek valamelyike alatt kiadott projektekbe.
Apache 2.0 licenc
Az első Apache licencet az Apache Software Foundation, egy 1999-ben alapított nonprofit szervezet fejlesztette ki, hogy szoftvereit terjeszteni tudja, valamint más projektekbe könnyen beépíthetővé tegye. A küldetés az volt, hogy üzletbarát szemlélettel karöltve garantálja a kollaboratív szoftverfejlesztést, a nyílt forráskódú filozófiát.
Az Apache 2.0 licenc (szövege: https://www.apache.org/licenses/LICENSE-2.0), amely valószínűleg a legelterjedtebb a permisszív szoftverlicencek között, néhány lényeges szempontban eltér a korábban tárgyalt licencektől. A fő szempont a szabadalmi jogok minden egyes engedélyesnek való tulajdonítását érinti, beleértve a szabadalmi licenc megszüntetésére vonatkozó záradékot; ezzel korlátozva és megakadályozva a szabadalombitorlás miatti kártérítési igényeket.
Van két másik fontos kötelezettség is. Az engedélyesnek ugyanezen Apache 2.0 licenc alatt kell kiadnia a szoftver minden olyan részét vagy komponensét, amelyet az engedélyes nem módosított. Továbbá az engedélyesnek minden módosított fájlban feltűnő módon kell elhelyeznie egy közleményt, amely jelzi, hogy az engedélyes módosította az adott fájlokat.
A korlátozó licenceket népszerűsítő Free Software Foundation az Apache 2.0-t ajánlja a legjobbként a permisszív szoftverlicencek közül kis mennyiségű szoftver, valamint könyvtárak terjesztésére.
Az Apache 2.0 licenc biztosítja az engedélyes számára:
-
A szoftver használatának, módosításának és terjesztésének jogát
-
A szoftver kereskedelmi forgalomba hozatalának jogát, módosításokkal vagy azok nélkül
-
A származékos munkák más licenc alatt történő kiadásának jogát, akár zárt forráskódú szoftverként is
-
A szabadalmi licencet a szabadalom által lefedett szoftver használatára, értékesítésére, importálására és egyéb módon történő átruházására
-
A szabadalmi licencet a szoftver használatára, értékesítésére, importálására és egyéb módon történő átruházására, amely egyébként sértheti a közreműködő szabadalmi igényét.
Az engedélyes köteles:
-
Szembetűnő értesítéseket helyezni minden módosított fájlba, amelyek jelzik, hogy a fájlok módosításra kerültek
-
Az eredeti szoftver minden változatlan részét az Apache 2.0 licenc alatt kiadni
-
Feltüntetni a szerzői jogi közleményt és a licenc szövegét a szoftver és a származékos munkák forráskódjában is
-
Feltüntetni a szerzői jogi közleményt és a licenc szövegét a dokumentációban és más, a szoftverhez mellékelt anyagokban
The Apache 2.0 license is considered to be compatible with only some of the most important copyleft licenses. In particular, the Apache 2.0 license is compatible with:
-
GNU General Public License (GPL), 3.0 verzió, de a 2.0-val nem
-
GNU Lesser General Public License (LGPL), 3.0 verzió, de a 2.0-val nem
-
Mozilla Public License (MPL), 2.0 verzió, de az 1.1-el nem
Ez azt jelenti, hogy az eredetileg az Apache 2.0 licenc alatt licencelt szoftverek származékos munkái a fent említett kompatibilis licencek valamelyike alatt továbbterjeszthetők, vagy beépíthetők a fent említett kompatibilis licencek valamelyike alatt kiadott projektekbe.
Az Apache 2.0 licenc és más nyílt forráskódú licencek közötti korlátozott kompatibilitás elsősorban a szabadalmi licencnek az engedélyes részére történő megadására vonatkozó záradékok jelenlétének köszönhető.
Permisszív szoftverlicencek és más nyílt forráskódú licencek viszonya
Most, hogy áttekintést kaptunk a megengedő szoftverlicencek közös és alapvető jellemzőiről, megvizsgálhatjuk, hogy miben különböznek a szabad felhasználású szoftverektől és a copyleft licencektől.
Összehasonlítás a Public Domain szoftverekkel
Az első különbség a permisszív szoftverlicencek és a köztulajdonban lévő szoftverek kiadása között a puszta létezésükben rejlik. A közkincs (public domain) nem egy tényleges licenc, hanem csak egy módja a szoftverek kiadásának. Más szóval, a definíció szerint a köztulajdonban lévő munkák nem rendelkeznek licenccel.
A következő különbség a permisszív licencek által az engedélyesre rótt kötelezettségekben rejlik. Valójában a köztulajdonban lévő kiadvány felhasználóját semmilyen kötelezettség nem terheli. Azonban bárki, aki egy szoftver felhasználása, módosítása vagy továbbterjesztése során a szabad felhasználású szoftverlicenc alapján jár el, köteles eleget tenni a korábban kifejtett attribúciós kötelezettségnek: az eredeti szerző nevének és a licenc szövegének másolatát a fel kell tüntetnie a szoftverben.
Az attribúciós kötelezettség következménye az, hogy egy permisszív szoftverlicenc alá tartozó szoftverből származékos munka nem adható ki közkincsként, mivel ez sértené (vagy legalábbis megkerülné) az eredeti szerző attribúcióhoz való jogát.
Összehasonlítás a copylefttel
A permisszív szoftverlicencek és a korlátozó, copyleft licencek közötti különbségtétel összetettebb, különösen a különböző copyleft licencek közötti különbségeket figyelembe véve. Amint azt az előző leckékben láttuk, az egyik fő különbség a strong copyleft licencek (beleértve a GNU General Public License (GPL) 2.0 és 3.0 verzióját) elválasztása a weak copyleft licencektől (beleértve a GNU Lesser General Public License (LGPL) 2.0 és 3.0 verzióját, valamint a Mozilla Public License-t) .
A korlátozó és a permisszív licencek közötti fő különbség a copyleft elvében rejlik, amely a korlátozó licencek központi eleme. Ennek az elvnek megfelelően az engedélyes, aki a szoftvert copyleft licenc alapján módosítja, majd terjeszti, szükségszerűen — részben vagy egészben — ugyanolyan licenccel kell kiadnia a származékos munkát, mint az eredeti szoftvert. E kötelezettség elmulasztása a szerzői jog megsértését eredményezi, ami jogi következményekkel jár.
Ezzel szemben a megengedő szoftverlicencek nem írnak elő ilyen kötelezettséget. Azok, akik ilyen típusú licencek alatt használnak vagy terveznek szoftvereket kiadni, szabadon dönthetnek a származékos munkájuk licencéről, beleértve a szabadalmi licenceket is.
Strong Copyleft
A megengedő szoftverlicencek és a strong copyleft licencek közötti különbség sokkal markánsabb, mint a weak copyleft licencek esetében.
A lényeges különbség az, hogy a strong copyleft licencek megkövetelik, hogy a származékos műveket ugyanazon licenc alatt adják ki, mint az eredeti szoftvert. Ez akkor is érvényes, ha a copyleft-licenc alatt álló szoftvert egy másik projektbe integrálják: a teljes származékos munkát ugyanazon strong copyleft licenc alatt kell kiadni.
Weak Copyleft
A strong copyleft licencekkel ellentétben a weak licencek csak részben írják elő, hogy a származékos munkát ugyanezen licenc alatt kell kiadni. Pontosabban, a weak copyleft licenc alatt kiadott szoftvert továbbterjesztő engedélyesnek ugyanezt a licencet kell alkalmaznia a munkájának az eredeti licencből származó részre. Például egy LGPL alatt licencelt könyvtáron alapuló könyvtárat szintén az LGPL alatt kell licencelni.
A gyenge copyleft-licenceket pontosan azért találták ki, hogy jellemzőiket közelebb hozzák a megengedő szoftverlicencek jellemzőihez. Mindazonáltal abban különböznek a megengedő szoftverlicencektől, hogy az utóbbiak semmilyen körülmények között nem írják elő azt a kötelezettséget, hogy a származékos vagy integrált munkákra is ugyanazt a licencet kell fenntartani.
Gyakorló feladatok
-
Milyen két kötelezettséget írnak elő általában a permisszív szoftverlicencek?
-
Az alábbi licencek közül melyik nem permisszív szoftverlicenc?
Apache 2.0 licenc
LGPL licenc
MIT/X11 licenc
3-Clause BSD
-
Mi különbözteti meg a permisszív szoftverlicencet a copyleft licenctől?
A copyleft licenc alatt kiadott szoftverek nem terjeszthetők, míg a permisszív szoftverlicenc alatt kiadott szoftverek igen.
A copyleft licenc alatt álló szoftverekből származó munkák nem adhatók ki védett licenc alatt, míg a permisszív licenc alatt álló szoftverek igen.
A copyleft licenceket csak az Amerikai Egyesült Államokban ismerik el jogilag, míg a permisszív szoftverlicencek világszerte elismertek.
-
Melyik megengedő szoftverlicenc ad szabadalmi engedélyt a szabadalom által lefedett szoftver használatára, értékesítésére, importálására és egyéb módon történő átruházására?
Apache 2.0 licenc
2-Clause BSD licenc
MIT/X11 licenc
3-Clause BSD licenc
-
Ha egy szoftver az MIT/X11 licenc alatt kerül kiadásra, terjeszthetjük-e azt saját licenc alatt, és értékesíthetjük-e a szoftveren alapuló származékos munkát?
Gondolkodtató feladatok
-
Módosítjuk az Apache 2.0 licenc alatt terjesztett szoftvert, és a származékos munkát saját licenc alatt terjesztjük tovább. Milyen lépéseket kell tennünk, hogy megfeleljünk az Apache 2.0 licenc kötelezettségeinek?
-
Nevezzünk meg legalább három példát népszerű, megengedő szoftverlicencek alatt kiadott projektekre!
-
Why can’t you distribute, under a LGPL 2.0 license, software that includes components that were originally released under the MIT/X11 license, the Apache 2.0 license, and the 2-Clause BSD license? What different weak copyleft license can be used to release the software?
Összefoglalás
Ebben a leckében megtanultuk: * Mik azok a permisszív szoftverlicencek és mik az általuk biztosított jogok és az általuk előírt kötelezettségek * A permisszív szoftverlicencek és más nyílt forráskódú licencek közötti különbségeket * A legnépszerűbb permisszív szoftverlicencek jellemzőit * A permisszív szoftverlicencek kompatibilitását más nyílt forráskódú licencekkel
Válaszok a gyakorló feladatokra
-
Milyen két kötelezettséget írnak elő általában a permisszív szoftverlicencek?
Kötelezettség a szoftver eredeti szerzőjének nevének feltüntetésére és a licenc szövegének másolatának csatolására a származékos munkához.
-
Az alábbi licencek közül melyik nem permisszív szoftverlicenc?
Apache 2.0 licenc
LGPL licenc
X
MIT/X11 licenc
3-Clause BSD
-
Mi különbözteti meg a permisszív szoftverlicencet a copyleft licenctől?
A copyleft licenc alatt kiadott szoftverek nem terjeszthetők, míg a permisszív szoftverlicenc alatt kiadott szoftverek igen.
A copyleft licenc alatt álló szoftverekből származó munkák nem adhatók ki védett licenc alatt, míg a permisszív licenc alatt álló szoftverek igen.
X
A copyleft licenceket csak az Amerikai Egyesült Államokban ismerik el jogilag, míg a permisszív szoftverlicencek világszerte elismertek.
-
Melyik megengedő szoftverlicenc ad szabadalmi engedélyt a szabadalom által lefedett szoftver használatára, értékesítésére, importálására és egyéb módon történő átruházására?
Apache 2.0 licenc
X
2-Clause BSD licenc
MIT/X11 licenc
3-Clause BSD licenc
-
Ha egy szoftver az MIT/X11 licenc alatt kerül kiadásra, terjeszthetjük-e azt saját licenc alatt, és értékesíthetjük-e a szoftveren alapuló származékos munkát?
Igen.
Válaszok a gondolkodtató feladatokra
-
Módosítjuk az Apache 2.0 licenc alatt terjesztett szoftvert, és a származékos munkát saját licenc alatt terjesztjük tovább. Milyen lépéseket kell tennünk, hogy megfeleljünk az Apache 2.0 licenc kötelezettségeinek?
Az alábbiakat:
-
Minden egyes módosított fájlba be kell illeszteni egy értesítést, amely igazolja, hogy a fájlokat módosították
-
Az eredeti szoftver minden, változtatás nélküli részét az Apache 2.0 licenc alatt kell kiadni
-
A szerzői jogi közleményt és a licenc szövegét be kell építeni a szoftver vagy a származékos munkák forráskódjába
-
A szerzői jogi közleményt és a licenc szövegét fel kell tüntetni a dokumentációban és az egyéb, a szoftver terjesztéséhez mellékelt anyagokban
-
-
Nevezzünk meg legalább három példát népszerű, megengedő szoftverlicencek alatt kiadott projektekre!
-
Angular web framework — MIT/X11 licenc
-
Ruby on Rails — MIT/X11 licenc
-
Apache HTTP Server — Apache 2.0 licenc
-
Kubernetes — Apache 2.0 licenc
-
-
Why can’t you distribute, under a LGPL 2.0 license, software that includes components that were originally released under the MIT/X11 license, the Apache 2.0 license, and the 2-Clause BSD license? What different weak copyleft license can be used to release the software?
Even though the MIT/X11 license and 2-Clause BSD license are compatible with the LGPL 2.0 license, the Apache 2.0 license is not. Software that includes components released under MIT/X11 license, Apache 2.0 license, and 2-Clause BSD license can be released under LGPL 3.0 license, because it is compatible with all those permissive software licenses.