054.3 Lesson 1
Tanúsítvány: |
Open Source Essentials |
---|---|
Verzió: |
1.0 |
Témakör: |
054 Nyílt forráskódú üzleti modellek |
Fejezet: |
054.3 Compliance és kockázatmérséklés |
Lecke: |
1/1 |
Bevezetés
Egy régi vicc a nyílt forráskóddal kapcsolatban azt mondja: “A szabad szoftverek nem ingyen vannak.” (Free software doesn’t come for free.). Míg a szabad és nyílt forráskódú szoftverek nagyszerű innovációt és kreativitást tesznek lehetővé, a felhasználóknak és a fejlesztőknek számos szabálynak kell megfelelniük. Ez a lecke a nyílt forráskódú szoftverek megfelelőségével és kockázataival foglalkozik.
Ez a lecke felsorolja a fejlesztők számára a licenceknek való megfeleléshez szükséges alapvető lépéseket, a nyílt forráskódú szoftverek használatának kockázatait, valamint a szervezet által használt szoftverek nyomon követésének és katalogizálásának módjait. Megnézzük, hogyan lehet ezeket a feladatokat irányelvekké alakítani és egy nyílt forráskódú programiroda (Open Source Program Office — OSPO) által támogatni.
A nyílt forráskódú komponenseken alapuló szoftverek kiadásának követelményei
Ha a szervezet belsőleg használja a szoftvert, a szabad és nyílt forráskódú szoftverlicenceknek nincsenek követelményeik. A szervezet meghatározhatja saját szabályait a sebezhetőségek megelőzése, vagy annak biztosítása érdekében, hogy mindenki ugyanazokat az összetevőket használja, esetleg egyéb okokból. De ez már túlmutat ennek a leckének a keretein. Minden olyan követelményt, amelyet a nyílt forráskódú licencek vagy maga a szervezet támaszt a szoftverek használatával szemben, dokumentálni kell, és a szervezetnek képzést kell biztosítania a szabályairól.
Még ha a szervezet a webszerverén futtat is szoftvert, és olyan szolgáltatásokat kínál, amelyekkel a szervezeten kívüli személyek kapcsolatba lépnek, a legtöbb szabad és nyílt forráskódú szoftverlicenc nem támaszt követelményeket. A GNU Affero Public License azonban a szolgáltatásként futó szoftverek esetében is megköveteli a copyleft követelmények betartását.
Az egyes főbb szabad és nyílt forráskódú szoftverlicencek jogi követelményeit más leckékben már részletesen megvizsgáltuk, így ez a rész csak egy listát vázol fel azokról a lépésekről, amelyeket a fejlesztőknek és a menedzsereknek meg kell tenniük a megfelelés érdekében:
- Nyílt forráskódú komponensek ellenőrzése
-
A szervezetnek világos irányelvekre és oktatásra van szüksége azzal kapcsolatban, hogy milyen nyílt forráskódú szoftvereket használjon, és hol építse be azokat a termékekbe. Az ilyen irányelvek kiterjednek a megfelelőségre, valamint más kérdésekre, például a biztonság garantálására és a szoftvert fejlesztő közösségben való részvételre is.
- Az eredeti licenc megtartása a kódban
-
A fejlesztők nem távolíthatják el a licencet az általuk használt komponensből. A licencnek a forráskódban való feltüntetése általában követelmény a licencben. Valójában a licenc eltávolítása plágiumnak minősülhet, mivel a fejlesztő úgy állítja be, mintha ő írta volna a kódot. A licenc eltávolítása később komoly bajokhoz is vezethet, mert a szervezet megsértheti a licencet, amikor a kódot beépíti a termékeibe.
- A licencek nyomon követése
-
A szervezetnek katalógust kell vezetnie, amely listázza az általuk használt minden egyes fájl vagy csomag licencét, annak érdekében, hogy megbizonyosodhassunk arról, hogy a szervezet megfelel a licenceknek.
- A szerző elismerése
-
Majdnem minden licenc megköveteli, hogy a szerzői jog tulajdonosát (gyakran “author”-nak (szerző) nevezik) említsék a szoftverről szóló beszélgetések és a szoftver népszerűsítése során. Minden licenc elmagyarázza, hogy mit kell tartalmaznia ennek a megjegyzésnek: a licencek általában egy szabványos szerzői jogi közleményt írnak elő, amely tartalmazza a szerzői jog tulajdonosának nevét és az évszámot. Ennek az értesítésnek meg kell jelennie a komponenst használó termékkel kapcsolatos minden dokumentációban, beleértve az eszköz vagy program reklámját és weboldalát is.
- A jóváhagyás látszatának elkerülése
-
A BSD licencek némelyike megköveteli, hogy a komponensekkel együtt terjesztett termék terjesztője ne sugallja, hogy a szerzői jog tulajdonosa támogatja a terméket. Még ha a követelmény nincs is kimondva, etikus dolog betartani.
- A forráskód felajánlása copyleft licencekhez
-
Ha egy szervezet olyan bináris fájlt terjeszt, amely copyleft-védett komponenseket tartalmaz, akár szoftver disztribúciókén vagy eszközön, a szervezetnek fel kell ajánlania a nyilvánosság számára a komponensek forráskódját. Ha a szervezet megváltoztatja a kódot, és a származtatott művet bináris formában terjeszti tovább, akkor a megváltoztatott (származtatott) változat forráskódját is fel kell ajánlania a nyilvánosságnak. A terjesztés történhet bármilyen olyan módon, amely a nyilvánosság számára kényelmesen hozzáférhetővé teszi a kódot, például közzéteszik azt egy weboldalon, vagy lemezen, USB-sticken kínálják fel.
- Copyleft komponensek ne kerüljenek beépítésre szabadalmaztatott termékekbe
-
Ha a szervezet copyleft-védett komponenseket épít be egy termékbe, bizonyos körülmények között a szervezetnek az egész terméket ugyanazon copyleft licenc alatt kell kiadnia. Az ezt a követelményt kiváltó feltételek licencenként eltérőek. Néha azonban nem egyértelmű, hogy milyen felhasználás váltja ki a copyleft követelményt. Így az olyan egyértelmű helyzetek kivételével, mint például egy nyílt forráskódú könyvtár használata (amely nem válthatja ki a copyleft kölcsönös követelményét), a fejlesztőknek nagyon óvatosnak kell lenniük a copyleft alá tartozó komponensek felhasználásával kapcsolatban, hacsak a szervezet nem hajlandó a saját termékét ugyanezen licenc alatt kiadni.
- Kódváltozások dokumentálása
-
A kód módosított változatainak terjesztésekor egyértelműen jelezni kell a szervezet által végrehajtott változtatásokat.
- Szabadalmi jogok megadása
-
Egyes ingyenes vagy nyílt forráskódú szoftverlicencek szabadalmi jogokat várnak el a szoftver használatához. Így ha egy szervezet ilyen licenc alapján ad ki kódot, és szabadalommal rendelkezik a kódban szereplő valamely eljárásra, akkor a szervezet nem számíthat fel díjat vagy nem gyakorolhat más, a szabadalmán alapuló ellenőrzést bárkivel szemben, aki a kódot használja vagy adaptálja.
- A védjegyek tiszteletben tartása
-
A nyílt forráskódú szoftverek egy része védjegyoltalom alatt áll. A védjegyek szavakra és kifejezésekre, logókra és egyéb képekre, valamint sok más dologra terjedhetnek ki. Egyrészt egy szervezetnek megfelelően kell kezelnie a védjegyet minden általa használt szoftver esetében: gyakori jogsértés a védjegy engedély nélküli parodizálása, megváltoztatása vagy egyszerű megjelenítése. Másrészt, ha a szervezet használni akarja a védjegyet, meg kell felelnie a védjegyjogosult követelményeinek, ami kizárhatja a szoftver módosítását.
A nyílt forráskódú szoftverek kockázatai
Ez a lecke a megfelelőségről (compliance) szól, ezért e terület kockázataira összpontosítunk, de néhány más témát is érintünk.
Licenc megsértése
A szabad és nyílt forráskódú szoftverlicenceket ugyanolyan komolyan kell kezelni, mint más licenceket és szerződéseket. Szervezetek érvényesítik ezeket, például a Software Freedom Conservancy, amely azon a kis copyleftes projektek nevében jár el, amelyeknek nincsenek saját végrehajtási mechanizmusaik.
Ezek a szervezetek általában végső megoldásként közelítenek a perhez. A legtöbb jogsértés nem szándékos, és oktatással könnyen megoldható. Mégis, árt egy szervezet hírnevének, ha tudatlannak és érzéketlennek tartják azokkal a közösségekkel szemben, akiknek a szoftverétől függ.
És valóban indítottak már pert, amikor a szoftver felhasználója kirívóan megtagadta az együttműködést, és amikor a szoftver és az alperes kellően fontos volt.
Még ha egy szervezetet nem is büntetnek perrel, az engedély megsértése jelentős károkat okozhat a közösséggel való kapcsolatában és a hírnevében. Egy projektet akár olyan egyszerű dolog is kisiklathat, mint az, hogy a fejlesztők kérdései megválaszolatlanul maradnak az általuk használni kívánt szoftverrel foglalkozó fórumokon.
Katasztrófa lehet, ha valaki copyleftelt szoftvert talál egy szabadalmaztatott termékben. A licencnek való megfelelés érdekében a fejlesztőknek vagy el kell távolítaniuk az összes copyleftes kódot, vagy a terméküket a copyleft licenc alatt kell megjeleníteniük. A szoftverük ingyenessé tétele a forráskóddal együtt szörnyű hatással lehet a licencdíjakon alapuló üzleti modellekre vagy a termék értékének más módon történő monopolizálására.
Bizalom és hírnév
Láttuk, hogy az engedélyek megsértése nagyon káros lehet. A bizalmat és a hírnevet megzavaró egyéb magatartásformák szintén kockázatot jelentenek.
Egyes szervezetek szabad vagy nyílt forráskódú szoftverlicenc alatt adnak ki szoftvereket, majd egy bizonyos ponton bejelentik, hogy a jövőbeli verziók jogvédett licenc alá kerülnek. Ez a váltás csábító lehet, mivel sok nyílt forráskódú projekt nem kap elég ügyféltől pénzügyi támogatást.
Az ilyen licencváltozások azonban mind az ügyfelek, mind a projekthez hozzájáruló külső fejlesztők körében haragot váltanak ki. Előfordul, hogy a külső fejlesztők átveszik az ingyenes verziót, és önállóan fejlesztik tovább, ezt a lépést nevezik a projekt forkolásának. Az ingyenes verzió versenyképessé válhat a vállalat saját fejlesztésű változatával szemben, és elvonhatja az ügyfeleket a vállalattól.
A projektfórumokon való részvételnek is vannak kockázatai. A vállalatnak meg kell tanulnia, hogyan lehet jó polgárként viselkedni. A gyakori problémák közé tartoznak:
-
Megpróbálják egy vállalat pénzügyi vagy kód-hozzájárulását arra használni, hogy a projektet olyan irányba kényszerítsék, amit a többi fejlesztő nem akar
-
Túl sok követelményt támaszt a közösséggel szemben, például túl sok funkciókéréssel vagy akár túl sok kérdéssel nyomást gyakorolva rá
-
Durva viselkedés más módon és a projekt magatartási kódexének megsértése
-
Megpróbálja uralni a nyilvánosságot, vagy más módon próbál tőkét kovácsolni a projekt sikeréből
Nem kifizetődő beruházások
Az üzleti modelleket egy másik leckében tárgyaljuk; ez a szakasz csak a nyílt forráskódú projektekben való részvétel pénzügyi kockázatát említi.
A vállalatok azzal a várakozással indíthatnak nyílt forráskódú projekteket, vagy csatlakozhatnak azokhoz, hogy valamilyen mechanizmuson keresztül — például támogatási szerződések, SaaS-szerződések, adatgyűjtés, vagy akár adományok és támogatások révén — bevételre tesznek szert. Sajnos azok, akik nyílt forráskódú projekteket működtetnek, gyakran a reméltnél kevésbé jövedelmezőnek találják azokat. Természetesen minden vállalkozás kockázatot vállal, amikor új projektet indít, de a nyílt forráskódú projektek esetében különösen nehéz megbízható bevételi forrást találni.
A nyílt forráskód akkor tűnik a leginkább fenntarthatónak, ha valamilyen más bevételi formát támogat, például hardvereszközök, autók, nyomtatók stb. értékesítését.
Forkok
Mint láttuk, egy projekt tagjai néha nem értenek egyet a projekt ütemtervével, vezetésével vagy más szempontokkal kapcsolatban, és létrehoznak egy alternatív projektet ugyanazon a kódbázison. Ezt az úgynevezett forkingot egy szervezet is elvégezheti a szoftver egy speciális verziójának létrehozása érdekében. Az Android például a Linux egy speciális változatát használja, amelyet a Google tart fenn. (A Google a Linux alapverziójához is sok hozzájárulást tesz, és ezeket nem mindig fogadják el).
A szervezetek különböző okokból hozhatnak létre forkot. Előfordulhat, hogy változtatásokat nyújtanak be az alapprojekthez, amiket elutasítanak, mert más fejlesztők nem akarják azokat. Egy permisszív licenccel rendelkező vagy csak a szervezeten belül használt projekt esetében előfordulhat, hogy titokban akarják tartani a változtatásokat.
A fork kockázata az, hogy a forkolt projekt fejlesztői felelősek a teljes termék karbantartásáért. Ha fontos hibajavítások vagy új funkciók kerülnek az alapprojektbe, a forkolt projekt fejlesztőinek duplikálniuk kell a változtatásokat, vagy le kell mondaniuk azok előnyeiről. Ahogy telik az idő, és a projektek egyre távolabb kerülnek egymástól, egyre nehezebb lépést tartani az alapprojektben bekövetkező változásokkal.
Inkompatibilis licencek
Amint azt más leckékben is elmagyaráztuk, egyes szabad és nyílt forráskódú szoftverek licenceinek vannak egymással összeegyeztethetetlen záradékai. Az ilyen komponensek nem használhatók együtt egy termékben.
Ez a probléma valószínűleg egy egyesülés vagy felvásárlás során merül fel. Előfordulhat, hogy az egyes vállalatok egy adott licenccel rendelkező szoftvert használtak, és ha a kódot egyesíteni akarják a projektjeikben, meg kell győződniük arról, hogy a licencek kompatibilisek.
Termékfelelősség
Számos nyílt forráskódú szoftver licencében (és számos védett szoftver és szolgáltatás felhasználási feltételeiben) kifejezetten kizárják a szoftver használatáért való felelősséget. Ezt úgy is mondhatjuk, hogy a licenc vagy a szolgáltatási feltételek nem nyújtanak garanciát vagy jótállást.
A szoftvergyártókat ritkán vonják felelősségre a szoftverükkel kapcsolatos problémákért, de az ügyfelek időnként beperelik őket, vagy más büntetési formákkal próbálkoznak. A bíróságoknak nem kell elismerniük a “nincs jótállás” (no warranty) záradékokat.
A törvények és rendeletek egyre inkább felelősséget rónak a szoftverek készítőire. Ezek a jogi korlátozások — vagy legalábbis a korlátozásokra vonatkozó javaslatok — most főképp a mesterséges intelligenciára vonatkoznak, de néha szélesebb körűek.
Exportszabályozás
Sok ország korlátozza az áruk és a szoftverek exportját. A szoftverek esetében az ilyen előírások leggyakrabban a biztonsági termékekre, és különösen a kriptográfia használatára vonatkoznak. Az Egyesült Államokban korábban szigorú ellenőrzéseket alkalmaztak a kriptográfiát tartalmazó szoftverekre, de a nyílt forráskódú projektek esetében az ellenőrzéseket enyhítették.
A vállalatoknak tisztában kell lenniük az exportszabályokkal ott, ahol szoftvert készítenek, abban az esetben, ha ezek a szabályok befolyásolják termékeik értékesítését és forgalmazását.
Szoftver darabjegyzék: tudjuk, mit használunk
Sok termékhez tartozik egy darabjegyzék, ami csak egy lista az összes alkotóelemről. Ha például egy fogyasztási cikket vásárolunk, akkor tartozhat hozzá egy papírlap, amely az összes alkatrészt felsorolja, egészen az anyákig és csavarokig. A lista tartalmazhat hasznos információkat, például az alkatrész méreteit és a cikkszámot, hogy új alkatrészt rendelhessünk.
A nyílt forráskódú projektek ma már tartalmaznak egy Software Bill of Materials-t (szoftver darabjegyzék — SBOM, ejtsd: “S-bomb”). Az SBOM legalább felsorolja a csomagokat, fájlneveket, licenceket, szerzőket vagy tulajdonosokat és verziószámokat. Sok SBOM tovább megy, és a biztonsági résekkel kapcsolatos információkat is tartalmaz.
A projektek minden egyes kiadáshoz automatikus eszközökkel generálnak SBOM-ot. A felhasználók átvizsgálhatják az SBOM-ot, hogy megtalálják a szükséges információkat. A licencek kinyerése például segít a szervezetnek gyorsan eldönteni, hogy az összetevők kompatibilisek-e, valamint jogilag megengedett-e a használatuk a saját kódjukkal.
Hasonlóképpen, az egyes csomagokra vonatkozó verzióinformációk kinyerése segít a szervezetnek felfedezni, hogy a termék különböző részei egy adott könyvtár különböző verzióitól függnek-e. A könyvtár két verziójának használata legalábbis bővülést okoz. Emellett zavart és hibákat is eredményezhet, ha egy komponens rossz verzióval épül be.
SBOM szabványok
Mivel a számítástechnikai környezetek hatalmas mennyiségű (néha több tízezer) alkatrészt használnak, és gyakran változnak, a SBOM-oknak rendkívül strukturáltnak kell lenniük, hogy az információk automatikusan és gyorsan kinyerhetők legyenek. Ez a szakasz a nyílt forráskódú világ két legnépszerűbb formátumát ismerteti:
- Software Package Data Exchange (SPDX)
-
A formátum minden egyes csomagot és annak összes tartalmát egy fa struktúrában ábrázolja. A formátum dokumentálja a fájlok közötti függőségeket és egyéb kapcsolatokat. Az információra mutató mutatók, úgynevezett “snippetek” hozhatók létre, amelyeket aztán az egész dokumentumban lehet használni, hogy az információt csak egy helyen kelljen definiálni. Ezt a formátumot a Linux Foundation fejlesztette ki.
- CycloneDX
-
Ez egy nagyobb formátum, részletesebb mezőkkel, különösen a sebezhetőségre vonatkozó információk esetében. A formátumot az Open Worldwide Application Security Project (OWASP) hozta létre, és népszerű a hadseregben és más, a biztonságra összpontosító szervezetekben. Egy fájlra vonatkozó bejegyzés például tartalmazhatja a biztonsági rés nevét, a sebezhetőséggel kapcsolatos információk forrását, az érintett célpontokat és egyebeket. Ezt a formátumot olyan felhőalapú telepítésekhez is tervezték, amelyek több ezer különböző rendszert tartalmazhatnak.
Mind az SPDX, mind a CycloneDX hierarchikus struktúrákat hoz létre különböző formátumokban, többek között JSON és XML formátumban. Mindkét szabványhoz számos eszköz létezik, mind a formátumok létrehozásához, mind a létrehozott fájlok információk kereséséhez. A népszerű verziókezelő repositoryk segítségével a fejlesztők egy gombnyomással létrehozhatnak egy SBOM-ot e formátumok valamelyikében.
Szoftverösszetétel-elemzés
Annak ismerete, hogy egy szervezet mit használ, megköveteli a szoftver értékelését, amely magában foglalja annak megértését, hogy honnan származik, milyen sebezhetőségeket tartalmaz, milyen licenceket használ, és egyéb olyan tényezőket, amelyek segítenek az egyénnek vagy a szervezetnek eldönteni, hogy használja-e a szoftvert. Ezt a feladatot nevezik Software Composition Analysis-nak (szoftver-összetétel elemzés, SCA), és számos eszköz létezik a SBOM-ok és magának a szoftvernek a kifinomult vizsgálatára.
Egyes eszközök kivonatolják a licencinformációkat, amelyek segítenek a szervezetnek eldönteni, hogy a szoftver biztonságosan beépíthető-e a termékbe, és hogy a különböző komponensek kompatibilis licencekkel rendelkeznek-e. Bizonyos eszközök még a kódrészleteket is összehasonlítják a gyakori nyílt forráskódú projektek könyvtáraival, hogy kiderítsék, nem vették-e át a kódot a nyílt forráskódú projektekből a megfelelő attribúció nélkül.
Ezeknek az eszközöknek a működtetése különösen fontos egy egyesülés vagy felvásárlás során. A felvásárló vállalat rájöhet, hogy az általa megvásárolni kívánt szoftver kevésbé értékes, mint amire számított, mivel olyan nyílt forráskódú komponenseket tartalmaz, amelyek olyan követelményeket támasztanak, amelyek zavarják az új szervezetben történő tervezett felhasználást.
Hivatalos irányelvek és megfelelőség
Az ebben a leckében leírt folyamatokat és technikákat a vezetőknek kell kialakítaniuk a fejlesztők, ügyvédek és más hozzáértők közreműködésével. Ez a szakasz néhány olyan szakpolitikai döntést ismertet, amelyeket a szervezeteknek meg kell hozniuk a nyílt forráskódú szoftverekkel kapcsolatban. A fejezetet egy Open Source Program Office (OSPO) leírásával zárjuk, amely az irányelvek szószólója és információs forrása lehet.
A nyílt forráskódú szoftverek használatát és hozzájárulását szabályozó elvek
A szervezetek nagy hasznot húzhatnak a nyílt forráskódú szoftverek használatából és a hozzájuk való hozzájárulásból, de ezt úgy kell tenniük, hogy saját érdekeiket védjék, és a nyílt forráskódú projektek számára is előnyös legyen. Meg kell határozni a következő irányelveket:
-
Hol érdemes nyílt forráskódú szoftvereket használni (műveletek, belső projektek, ügyfélbarát termékek stb.)
-
Mitől lesz egy nyílt forráskódú projekt megfelelő a szervezet számára: funkciók, teljesítmény, biztonság, a jövőbeli bővítések ütemterve és a közösség életképessége
-
Szoftverösszetétel-elemzésre vonatkozó vizsgálatok, és hogy hol kell tárolni a keletkező dokumentációt
-
A nyílt forráskódú szoftverekhez hozzájáruló fejlesztők jutalmazása, beleértve a nyilvános fórumokon való részvételüket is
-
Irányelvek a projektekhez való hozzájáruláshoz, beleértve azt is, hogyan lehet a vállalatot nyilvánosan képviselni
-
Dokumentációs követelmények, hogy a core csapaton kívüli fejlesztők is megértsék, hogyan kell hozzájárulni és együttműködni
Az OSPO koordinálhatja ezen irányelvek kidolgozását és a megfelelőség biztosításához szükséges oktatást.
Közreműködői megállapodások
A nyílt forráskódú projekteknek biztosítaniuk kell, hogy a hozzájárulások jogszerűek legyenek: például, hogy a kódot nem vették át valamilyen szabadalmaztatott termékből vagy egy olyan nyílt forráskódú projektből, amelynek a licencével nem kompatibilis. Sok nyílt forráskódú projekt megköveteli a fejlesztőktől, hogy a hozzájárulásuk jogszerűségének biztosítása érdekében egy dokumentumot, az úgynevezett Contributor License Agreement-et (hozzájárulói licencszerződés — CLA) nyújtsanak be.
Egy szervezet fejlesztői, akik hozzájárulnak az ilyen projektekhez, felkérhetik a szervezet jogászait, hogy vizsgálják felül és hagyják jóvá a CLA-t. Ezért az ügyvédeknek meg kell érteniük a CLA-k záradékainak relevanciáját, és fel kell készülniük azok ellenőrzésére.
A CLA-kat számos kritika érte, többek között a bonyolultságuk és a kiskapuk miatt, amelyeket a projektek számára hagynak, hogy a hozzájáruló kódot a hozzájáruló által nem kívánt módon használják fel.
Sok projekt a CLA helyett egy rövid dokumentum, a Developer Certificate of Origin (fejlesztői eredetigazolás — DCO) aláírását kéri a fejlesztőtől, amely igazolja, hogy a fejlesztőnek joga van a kódhoz való hozzájárulásra. A DCO-t, amelyet egy másik leckében tárgyalunk, általában nem nyújtják be ügyvédnek felülvizsgálatra.
Egyes projektek egyszerűen csak arra kérik a közreműködőket, hogy írják alá a kódjuk szerzői jogát a projektnek egy Copyright Assignment Agreement-ben (szerzői jogátruházási megállapodás — CAA). Sok közreműködő azonban nem kedveli ezt a gyakorlatot, mert nem használhatják a kódot egy saját, jogvédett projektben, valamint mert ez nagy hatalmat ad a projektnek.
Az Open Source Program Office (OSPO)
A nyílt forráskódú projektek szokatlan társadalmi, technikai, jogi és szervezeti tényezőket egyesítenek. Jelenleg ezeknek a tényezőknek az ismerete még nem terjedt el annyira a szervezetekben, hogy minden vezető, fejlesztő, jogász és más személy mélyen megértse őket. Ezért a szervezeteknek nagy hasznára válhat egy Open Source Program Office (nyílt forráskódú programiroda — OSPO) létrehozása, amely az érdekérvényesítés, az irányelv-alkotás, az irányelv érvényre juttatása és az oktatás központjaként működik.
Az OSPO-k egyfajta univerzális részlegként számos szerepet tölthetnek be, például:
- A nyílt forráskód támogatása
-
Az OSPO-k a szervezetükben terjeszthetik mind a nyílt forráskódú mozgalom mögött álló koncepciókat, mind a nyílt forráskód használatára vonatkozó javaslatokat. Emlékeztethetik a fejlesztőket, hogy keressenek nyílt forráskódú megoldásokat az általuk megoldandó problémákra, és ösztönözhetik őket a megfelelő szoftverek bevezetésére. Sürgethetik a vezetőket, hogy biztosítsanak időt a fejlesztőknek a nyílt forráskódú projektekben való részvételre, és ismerjék el ezt a részvételt, amikor a fejlesztőket fizetésemelés és előléptetés szempontjából értékelik.
- Az irányelvek meghatározása
-
Az OSPO-k mozgósíthatják a vezetőket, hogy hozzanak létre irányelveket és hozzanak létre repositorykat számukra.
- Az irányelvek végrehajtása
-
Az OSPO-k emlékeztethetik a fejlesztőket a szoftverek és a SBOM-ok átvizsgálására, valamint a nyílt forráskód használatára vonatkozó vállalati szabályok betartására. Az OSPO-k megőrizhetik az elfogadott szoftverekkel kapcsolatos dokumentációt és a vállalati használat egyéb szempontjait.
- Oktatás
-
Az OSPO-k elmagyarázhatják a fejlesztőknek, hogyan értékeljék a nyílt forráskódú projekteket és hogyan vegyenek részt bennük, elmagyarázhatják a jogászoknak a licencek és egyéb jogi megfontolások részleteit, és segíthetnek a vállalatnak megérteni azokat a szervezeti és kulturális változásokat, amelyek megkönnyítik a nyílt forráskódú szoftverek használatát.
Az OSPO létrehozásához számos dokumentum és online forrás áll rendelkezésre. Egy kis szervezet a feladatot át is ruházhatja egy olyan harmadik félre, aki szakértője az adott területnek.
Gyakorló feladatok
-
Miért nem vehet ki egy fejlesztő egyszerűen egy nyílt forráskódú projektből egy neki tetsző kódot, és miért nem illesztheti be a saját kódjába a licenc megőrzése nélkül?
-
Milyen dokumentumokat írna alá egy fejlesztő, amikor hozzájárul egy nyílt forráskódú projekthez?
-
Találunk néhány nyílt forráskódú szoftvert, amely kiváló alapot adna a kereskedelmi weboldalunknak. Ráhúzhatjuk-e a népszerű logójára a sajátunkat, hogy egy figyelemfelkeltő képet készítsünk a weboldalhoz?
Gondolkodtató feladatok
-
Milyen megfontolások vezethetnek arra, hogy forkot hozzunk létre egy nyílt forráskódú projekt saját használata érdekében, a forkok hátrányai ellenére?
-
Ha találunk egy olyan nyílt forráskódú szoftvert, amely megfelel az igényeinknek, milyen okok miatt vethetjük el?
-
Egy copyleftelt naplózóeszközt szeretnénk használni saját fejlesztésű termékünkben. Van olyan módja a kombinálásuknak, amely nem követeli meg, hogy a terméket copyleft licenc alatt terjesszük?
Összefoglalás
Ez a lecke számos olyan szempontot tartalmaz, amelyet figyelembe kell venni, mielőtt szabad és nyílt forráskódú szoftvereket használunk. Elmagyaráztuk, hogy hogyan kell betartani a licenceket, a különböző jogi, hírnevet érintő és pénzügyi kockázatokat, valamint azt is, hogy hogyan kell meghatározni a fontos irányelveket, és hogyan lehet azokat a szervezeten belül érvényesíteni.
Válaszok a gyakorló feladatokra
-
Miért nem vehet ki egy fejlesztő egyszerűen egy nyílt forráskódú projektből egy neki tetsző kódot, és miért nem illesztheti be a saját kódjába a licenc megőrzése nélkül?
Ez általában a nyílt forráskódú licenc megsértése, valamint plágiumnak és szerzői jogok megsértésének minősül. Gyakorlatilag a szervezetet rákényszeríthetik a licenc betartására, aminek következményei a szégyentől és a jó hírnév csorbításától kezdve az üzleti modelljük tönkretételéig terjedhetnek, ha a copyleftes kódot a jogvédett kóddal keverik.
-
Milyen dokumentumokat írna alá egy fejlesztő, amikor hozzájárul egy nyílt forráskódú projekthez?
A Contributor License Agreement egy jogi dokumentum, amely a nyílt forráskódú szervezet számára a kód használatára vonatkozó jogokat biztosítja. A Developer Certificate of Origin egy rövidebb és egyszerűbb dokumentum, amely megígéri, hogy a fejlesztőnek joga van a kódhoz való hozzájárulásra. A Copyright Assignment Agreement minden jogot biztosít a fogadó szervezetnek.
-
Találunk néhány nyílt forráskódú szoftvert, amely kiváló alapot adna a kereskedelmi weboldalunknak. Ráhúzhatjuk-e a népszerű logójára a sajátunkat, hogy egy figyelemfelkeltő képet készítsünk a weboldalhoz?
Ha a projekt védjegyeztette a logóját, a változtatás valószínűleg sérti a védjegyet. Még ha a logó nincs is védjeggyel védve, a változtatásunk tiszteletlen és összezavaró lehet.
Válaszok a gondolkodtató feladatokra
-
Milyen megfontolások vezethetnek arra, hogy forkot hozzunk létre egy nyílt forráskódú projekt saját használata érdekében, a forkok hátrányai ellenére?
Ha elégedettek vagyunk a kód jelenlegi állapotával, akkor nem biztos, hogy folyamatosan követnünk kell az alapprojekt változásait. Lehet, hogy olyan terméket szeretnénk létrehozni, amely lényegesen különbözik az alapprojekt felhasználásától, és ezért hajlandóak vagyunk elválni az alapprojekttől. Lehet, hogy a kód elég értékes az üzleti tervben ahhoz, hogy a csapat hajlandó legyen teljes felelősséget vállalni a fejlesztéséért és karbantartásáért.
-
Ha találunk egy olyan nyílt forráskódú szoftvert, amely megfelel az igényeinknek, milyen okok miatt vethetjük el?
Előfordulhat, hogy a kód túl sok hibát és biztonsági rést tartalmaz, a projekt fejlesztői közössége nem működik jól, esetleg nem tetszik a kód fejlődésének iránya, vagy a licenc nem kompatibilis a termékünk más kódjaival.
-
Egy copyleftelt naplózóeszközt szeretnénk használni saját fejlesztésű termékünkben. Van olyan módja a kombinálásuknak, amely nem követeli meg, hogy a terméket copyleft licenc alatt terjesszük?
Az eszköz kódjának a saját kódunkba való integrálása a copyleft kölcsönös követelményét válthatja ki, attól függően, hogy melyik licenc van érvényben. A naplózóeszközt el kell különíteni a saját termékétől, hogy a mi termékünket ne tekintsék származékosnak. Biztonságos lehet például, ha a copyleft alatt álló eszközt különálló folyamatként futtatjuk és üzenettovábbításon keresztül kommunikálunk vele.