( Ritter | 2020. 10. 20., k - 03:14 )

Ami leírtál az egyrészt hiányos, másrész egyáltalán nem áll meg. 

Először forráskódot csak az ügyfélnek kell odaadni amennyiben azt kérik. Ha például A-Developer Zrt. fejleszt egy GPL licencű szoftvert B-Banking NyRT-nek, attól még Pistike nem nyújthatja be az igényét a forráskódokra, mert semmi köze a szofver-terjesztéshez aminek a módját a licenc szabályozza. 

Másodszor egyáltalán nem mindegy, hogy saját nulláról írt szoftverről van szó vagy már meglevő kódot használunk fel. Amennyiben saját fejlesztést teszünk nyílt forráskódúvá annak nyilván nyomós oka van. Ilyen esetben az üzleti érdek pont fordított licencsorrendet állít fel, mint amit írtál. 

Saját opensource szoftver esetén legjobb AGPL vagy GPL licencet választani. Amennyiben szoftverszabadalmakat is bejegyeztünk, amikből pénz is akarunk, akkor nem érdemes GPL v3 és Apache v2 licenceket használni. Ezekkel a licencekkel ugyanis szoftverszabadalmainkat _mindenkinek_ még Pistikének is ingyenesen licenceljük. Bár a szabadalmi licencet meg is vonhatjuk bizonyos esetekben, erre később még visszatérek. Itt most csak szoftverszabadalmak licenceléséről van szó. Nem jellemző, hogy tisztes szoftverfejlesztő cég szoftverlicencekből szeretne megélni. A szoftverszabadalmi portfólió zsarolási fegyvernek kell általában, más szoftverszabadalmakkal támadó felek ellen. Aki a matekot jobban szereti a programozásnál lehet szabadalmak környékén pénzt keresni, de akkor érdemes csak erre kihegyezni a vállalkozást. 

Ha szoftverszabadalmak bejegyzésével nem védjük a szoftverünket, akkor nyugodtan lehet AGPL és GPL licencekből is 3-as verziót választani. AGPL licencnek csak akkor van értelme, amennyiben a fejlesztett szoftver vagy egy része online szolgáltatásként működik. Hagyományos, számítógépen futó alkalmazásnál megfelelő a GPL licenc is. Így biztosan elkerüljük azt a nem túl szerencsés szituációt, hogy a mi fejlesztésünkkel egy tőlünk teljesen független vállalkozás keresi betegre magát. Ha egy tőlünk független fél olyan ügyfélkapcsolatokkal rendelkezik, ahol nagyobb pénzt tud csinálni az általunk fejlesztett szoftverből mint mi magunk fejlesztőként, és kereskedelmi verziót akar a mi szoftverünkből GPL és AGPL licenc esetén kénytelen lesz leülni tárgyalni velünk. Mi, fejlesztőként természetesen bármikor újra-licencelhetjük a saját kódunkat attól függetlenül, hogy azt GPL vagy AGPL licenc alatt is odaadtuk már valakinek, vagy simán kitettük az internetre. A kereskedelmi licences verzióba jellemzően belekerülnek extra fejlesztések, nem ritkán a fizetős ügyfelek saját igényei szerint. A GPL licencelés soha nem jár a szerzői jogokról való lemondással!

Apache vagy bármelyik BSD vagy MIT licencet választva fizetés nélkül le tudja nyúlni egy tőlünk független fél a saját fejlesztésű szoftverünket. Saját termékneve alatt tud zárt kereskedelmi szoftvert készíteni belőle, további kiegészítésekkel vagy azok nélkül is. Úgy tudja az ügyfélkörének jó pénzért eladni a mi szoftverünket, hogy abból egy huncut garast sem látunk a végén. A szerzői jogunk MIT és BSD licenccel is megmarad, de pénzt nem tudunk keresni vele automatikusan ha más jó üzletet csinál a mi munkánkkal.

Ha úgy döntünk, hogy nulláról fejlesztett szoftverünket nyílt forráskódúvá tesszük annak több oka lehet. A leggyakoribb, hogy külsős fejlesztők bekapcsolódását várjuk a projektünkbe. A legszofisztikáltabb hr-es fogásoknál, állásinterjúknál is hatékonyabban tudunk új és megfelelő munkaerőt találni az nyílt forrákódú fejlesztésünkbe érdemben bekapcsolódó külsős fejlesztők között. Szokás GPL licencű projekteknél copyright átadást kérni a külsős fejlesztőktől. Ebben az esetben a teljes programkód, külsősök fejlesztéseit is beleérve újralicencelhető zárt szoftverként. Szerintem a mai időkben érdemes ebben az esetben pénz felajánlani a legjobb külsős fejlesztőknek munkájukért, amennyiben állást nem akarunk kínálni nekik, vagy ők nem akarnak új állást maguknak. 

Természetesen BSD, MIT és Apache licencek alkalmazásának is van értelme. Például akkor ha nagyon nagy halak vagyunk, mondjuk Google méretben, és egy új codeket akarunk elterjeszteni, hogy letörjük a licencdíjas konkurenciát. Ebben az esetben a BSD vagy MIT licenc a megfelelő. Ezeket a kódokat mindenféle szoftverbe be tudják építeni tőlünk független fejlesztők anélkül, hogy egyesével kapcsolatba kellene lépniük velünk kereskedelmi újralicencelés miatt. Chatelős - telefonálós alkalmazásoktól, amelyek értékének tekintélyes részét fogja kitenni a mi munkánk egészen például játékokig használhatják a nyílt forráskódú codec kódunkat, ahol csak egy kis része a mi kódunk a teljes játéknak, és például a multiban egymással játszó gamerek hang alapú kommunikációjára használják. Vagy a játék átvezető videóihoz. Fizetni nem fognak a fejlesztésbe fektetett munkánkért, de hát ha Google méretűek vagyunk ez nem is akkora probléma. Viszont ha jól elterjed a saját codecünk, akkor idővel nem kell licencelnünk az MPEG-LA-tól drága új generációs cocekjeit, mert az ingyen nyílt forrással osztogatott codecünkkel dominanciát szereztünk. 

Amennyiben már meglevő fejlesztésre építünk, akkor azt jellemzően azért tesszük, hogy fejlesztési időt és ezzel sok pénzt spóroljunk. Itt az elsődleges szempont nem a licenc hanem az, azok a nyílt forráskódú projektek amikre építeni kívánjuk a saját fejlesztésünket. Ha kis számú ügyfelünknek fejlesztünk teljesen mindegy, hogy GPL vagy MIT vagy Apache licenccel adjuk a szoftverünket. Különösen ha folyamatos frissítésekkel kell ellátnunk az ügyfeleinket. A mai világban szinte lehetetlen esemény, hogy egy jellemzően laikus, más területen tevékenykedő ügyfél fogja egy számára fejlesztett szoftver forráskódjait, majd elmenjen velük másik fejlesztőt keresni. Megjegyzem például .NET fejlesztéseknél a teljes forráskód olvasható a kész .exe és .dll fájlokból. Java esetén kell némi tool hozzá de ott is könnyen visszanyerhető a forráskód. A szellemi tulajdonunk védelme érdekében például .NET C# fejlesztéseknél szokás code obfuscatort használni, ami többek között minden metódust ugyanarra névre nevez át, és szignatúra dönt arról végül melyikről is van szó. A változók neveit is generált olvashatatlan nevűekre változtatja át. A forráskód továbbra is olvasható de érdemben nem sokat lehet kezdeni vele. Ugyanez egy GPL licencű programkód általunk írott részével is megtehető. 

A Linux kernel blob-okról is hallott már minden hup olvasó valószínűleg. Ezek ugyanúgy GPL licencű kódok, mint a Linux kernel egyébként normálisan olvasható részei. 

Szóval ha azzal kívánjuk fejlesztésünknek időt és pénzt spórolni, hogy már meglevő nyílt forráskódú szoftverekre alapozunk, annál nagyobb butaságot nem is csinálhatunk, minthogy jobb és számunkra megfelelőbb GPL licencű kód helyett csak a licenc miatt egy számunkra kevésbé optimális de BSD licencű szoftvert választunk a fejlesztésünk alapjának. 

LGPL licencű libekre úgy építhetünk saját zárt forráskódot mintha BSD vagy MIT licencűek lennének. A különbség annyi, hogy az LGPL libek forráskódját ki kell adni az ügyfelünknek amennyiben kéri. Ha semmit nem módosítottunk rajta, csak felhasználjuk a saját szoftverünkhöz, akkor csak azokat a forráskódokat kell odaadnunk amit egyébként is le tudna tölteni más forrásból. 

Már szó esett a szolgáltatásokról. Internetes szolgáltatások esetében GPL licencű kódok tetszőleges felhasználása esetén sem kell odaadnunk a GPL -es kódokat módosító, továbbfejlesztő saját munkánkat. Google, Facebook, Amazon és még sok mára óriássá nőtt vállalkozás profitált ebből milliárdokat. Egyedüli kivétel ez alól az AGPL licenc, amiről már korábban írtam. Mellesleg az AGPL sem zárja ki, hogy pénzt keressünk így licencelt szoftverünkkel. Szép példa erre a Mailvelope. AGPL licencű webes szolgáltatás, amihez azért tartozik fizetős modell is: https://www.mailvelope.com/en/products
A már említett szoftverszabadalmak teljesen más megközelítést igényelnek. Röviden AGPL v3, GPL v3, LGPL v3, Apache v2 licenceket választva automatikusan ingyen adjuk a szoftverszabadalmainkat is. De ezzel nem veszítjük el őket. Sőt ellenséges, támadó célú per esetén meg is lehet vonni az ingyenes szoftverszabadalmi licencet a felperes féltől még akkor is ha nem vagyunk a per résztvevői. GPL v2, BSD, MIT, licenceket választva nem adunk ingyenes szabadalmi licencet senkinek. Ez nem jelenti azonban azt sem, hogy automatikusan pénz járna egy harmadik féltől amennyiben olyan szoftvert forgalmaz, amely általunk szabadalmaztatott eljárást alkalmaz. Sokba kerülnek a szabadalmak, mert megszakítás nélkül minden olyan országban fenn kell tartanunk ahonnan pénzt remélünk utána. Nem is túl szerencsések a szoftverszabadalmak, de ez már egy új téma lenne. Ezért csak érintőlegesen írtam róla.