Litsentsimise kitsaskohtade juhtumipõhine uurimine
Asko osa: Oracle (mitte ainult andmebaas, vaid ka Oracle Linux, MySQL, OpenOffice-i lugu jpm)
GPL 2 vs GPL 3
GPL on vanim ja tõenäoliselt tuntuim vaba tarkvara litsents, mille algne versioon loodi juba 1989. aastal Richard Stallmani ja Vaba Tarkvara Fondi (FSF) poolt. GPLi teine pikalt turgu valitsenud versioon nimega GPL 2 tuli välja aastal 1991. Kuigi GPL litsentside üldine idee on anda kasutajale vabad käed GPL litsentsi all oleva tarkvara kopeerimiseks, uurimiseks, täiendamiseks ning levitamiseks, seejuures nakkuva copyleft tüüpi litsentsina laiendades need õigused ka kõikidele tuletistele, ilmnes GPL 2 litsentsi kasutamisel aastate jooksul erinevaid kitsaskohti, mille parandamiseks tuli 2007. aastal välja GPL 3.
GPL 2 litsentsi puudused
1. Patendidega seonduv / Novelli-Microsofti kokkulepe
2006. aastal teatasid Microsoft ja tarkvarafirma Novell omavahelisest koostööleppest, mis hõlmas muuhulgas kokkulepet, et Microsoft ei rakenda oma patente Novelli SUSE Linuxi kasutajatele, kuniks need kasutajad programmi edasi ei levita. Täpsemalt lubati üksteist patentidega seoses mitte kohtusse kaevata ning ka üksteise tooteid promoda. SUSE Linux kasutas GPL 2 litsentsi, mis nagu kõik GPL litsentside versioonid sätestas, et litsentsi all oleva tarkvara levitamisel laienevad tarkvara saajale samad õigused ehk muuhulgas ka õigus tarkvara edasi levitada. Kuna Microsoft lubas „kohtusse mitte kaevata“ üksnes Novelli kliente, siis nemad omakorda tarkvara tegelikkuses vabalt levitada ei saanud - sellega lootis Microsoft nn kaudset patendimaksu koguda. [1] GPL 3 üks kaasautoritest, FSFi jurist Eben Moglen ütles: "If you make deals with a party having patents, to pay tribute to that party, in return for protecting some but not all of your customers... you are violating the license, and you must stop distributing altogether." [2] Just Novelli-Microsofti kokkulepe oli peamiseks tõukeks, miks GPL 3 litsentsitingimustesse lisati klauslid, mis keelavad GPL 3 all leviva tarkvara kasutajal tegemast selliseid patentidega seotud kokkuleppeid, mis piiravad (osade) teiste tarkvara kasutajate vabadusi - selle vastu eksija kaotab ise tarkvara kasutusõigused.[3][4]
2. DRM / TiVo juhtum
Tivo Inc, USA firma, mille number 1 toode oli TiVo digitaalne meediamängija, kasutas oma süsteemis GPL 2 litsentsi all olnud Linuxit. Näiliselt järgis TiVo küll GPLi nõudeid, andes kasutajatele ligipääsu lähtekoodile ning võimaluse tarkvara muuta, kuid seda muudetud tarkvara DRM piirangute tõttu TiVo riistvaral jooksutada ei õnnestunud. Olukorda, kus GPLi all leviva tarkvara muudetud vorme ei ole võimalik DRMi või mingite riistvara piirangute tõttu esialgses süsteemis kasutada, hakati kutsuma tivoiseerimiseks. Tivoiseerimise vältimiseks tulevikus lisas FSF GPLi kolmandasse versiooni klausli, mis sätestab nn installeerimise informatsiooni (autoriseerimisvõtmed jms info, mis on vajalik muudetud GPLi all oleva tarkvara käivitamiseks ja kasutamiseks) andmise nõude tulevastele „tivodele“. [5][6][7]
3. Tingimused on hägusad ja teist võimalust ei anta / Patrick McHardy alusetult rikastumas
GPL 2 litsentsi tingimusi on peetud kohati mitmetimõistetavaks ja ebaselgeks (nt dünaamiliselt vs staatiliselt lingitud teekide kuuluvus GPLi alla jpm), mistõttu rikkumise olemasolu või selle puudumine võib olla vaataja/lugeja/kohtumõistja silmades. [8] Kuigi GPL 3 püüdis võrreldes GPL 2 litsentsiga oma tingimusi ühetimõistetavamalt kirja panna, võrdles Van Lindeberg veel oma 2008. aastal ilmunud raamatus “Intellectual Property and Open Source: A Practical Guide to Protecting Code” inimeste suhtumist GPL litsentsidesse suhtumisega AIDSi 1980. aastatel - kuna oli ebaselge, kuidas suhtutav nakkub, levis palju desinformatsiooni ja liialdusi.
Teisalt aga sätestab GPL 2 üheseltmõistetavalt, et tarkvara kasutaja kaotab litsentsi tingimuste rikkumisel automaatselt tarkvara kasutamise õigused. Säärane teise võimaluse mitteandmine GPL 2 puhul andis võimaluse karistada teadmatusest rikkujaid liiga karmilt ega mõjunud soodustavalt inimeste soovile GPL 2 all olevat tarkvara kasutada või selle all olevat koodi omalt poolt edasi arendada. [9] Samuti ei teeninud teise võimaluse mitteandmine eesmärki panna inimesi litsentsitingimusi järgima, vaid hoopis andis isikliku põhjendamatu finantsilise kasu saamise võimaluse näiteks arendaja Patrick McHardyle, kes aastate jooksul kümneid rikkujaid kohtusse kaebas ja sellega miljoneid eurosid võitis. [10] Nimelt oli McHardy seotud väikese osa GPL 2 all oleva Linuxi tuuma koodi loomisega, mis andis talle võimaluse GPL 2 litsentsitingimuste rikkujad otse oma nime alt kohtusse kaevata ja neilt raha nõuda (selle asemel, et pöörduda FSF vms organisatsiooni pole, kes väidetavat rikkujat noomiks ja õigele teele püüaks suunata). Muuhulgas esitas McHardy mitmeid tegelikkuses põhjendamata kohtunõudeid ka GPL 2 mitmetimõistatavatele kohtadele toetudes. Linux kaebas McHardy lõpuks ise kohtusse, saamata lubada, et firmad loobuvad oma toodetes Linuxi koodi kasutamisest suvalise programmeerija kohtunõuete kartuses. [11] GPL 3 litsentsile lisati aga nn ümberkasvatamisklausel, mis annab esmakordsele litsentsitingimuste rikkujale võimaluse patud olenevalt olukorrast 30 või 60 päeva jooksul heastada. [12]
4. Mitteühilduvus / Apache’i litsents 2.0
GPL 2 probleemiks oli muuhulgas ka mitteühilduvus paljude teiste vaba tarkvara litsentsidega (Apache 2.0 litsents, algne Mozilla Avalik Litsents (MPL) jt), mis välistas GPLi all oleva tarkvara miksimise mitmete muude litsentside all oleva tarkvaraga. Ühilduvuse parandamiseks teiste vaba tarkvara litsentsidega (millest ühe peamisena toodi välja Apache’i 2.0 tarkvaralitsents) [13] viidi GPL 3 tingimustesse muudatusi, kuid probleemid ühilduvusega jätkusid ka GPL 3 puhul (vt täpsemalt edasi).[14]
GPL 3 litsentsi puudused
1. Ühepoolne ühilduvus / Apache’i litsents 2.0
Apache 2.0 litsents, mis GPL 2ga ei ühildunud üldse, GPL 3ga küll ühildub, kuid ühepoolselt. Nimelt kuna GPL 3 on piiravam litsents kui Apache 2.0, siis Apache’iga litsentsitud tarkvara saab kasutada üleüldiselt GPL 3 litsentsi all oleva tarkvara osana, vastupidi aga mitte.
Probleem tekib nimelt juhul, kui muidu Apache’i 2.0 all olev projekt tahab kasutada GPL 3ga litsentsitud tarkvara, sest ASF (Apache’i Tarkvara Fond) näeb ette, et Apache’i tarkvara peab olema Apache 2.0 litsentsi all, GPL 3 nakkuva litsentsina nõuab aga, et kogu projekt, kus kasvõi tükike GPL 3 sees on, oleks GPL 3 all. Ühilduvus toimib ainult siis, kui muidu GPL 3 litsentsi kasutav tarkvara tahab oma alamosana kasutada mingit Apache 2.0 litsensi all olevat tarkvara - siis saab kogu kombineeritud tarkvara kenasti levitada GPL 3 all (samas Apache’i 2.0 all olevale koodijupile Apache’i litsents kehtib endiselt, kuna GPL 3 nõuetega konflikti ei teki).
[15]
[16]
2. GPL 2 ja GPL 3 omavaheline ühilduvus / LibreDWG, LibreCAD ja FreeCAD hädas
Kui tahta GPL 2ga litsentsitud koodi kombineerida GPL 3 litsentsi all oleva koodiga, on seda võimalik teha ainult juhul, kui antud GPL 2 versioon sisaldab klauslit, et seda tarkvara on võimalik kasutada GPL 2 või hilisema GPL litsentsi tingimustel (mis juhul saab kogu kombineeritud tarkvara kasutada hilisema litsentsi ehk GPL 3 tingimustel). Kui GPL 2 all olevat tarkvara saab aga litsentsiklausli järgi kasutada ainult GPL 2 litsentsi tingimustel (nt Linuxi tuum), siis seda tarkvara GPL 3 all oleva tarkvaraga ühildada ei saa.
Üks enam kõneainet saanud juhtusid siinkohal on olnud GPL 2 litsentsi kasutanud GNU LibDWG teegil põhinev DWG failide lugemiseks mõeldud LibreDWG teek, mis GPL 3 litsentsi alla minnes ei ühildunud enam GPL 2 litsentsi all olnud LibreCADi ja FreeCADiga. [17] Kuna nii LibreDWG, LibreCAD kui ka FreeCAD olid oma litsentsivalikul seotud teiste projektidega, ei olnud neil niisama lihtsalt võimalik ka litsentsitüüpi muuta, kuigi vastav palve LibreDWG viimiseks GPL 2 alla FSFile tehti.
[18]
[19]
Kuna FSF keeldus LibreDWG litsentsi downgrade’imisest, siis DWG failide lugemise võimaluse taastamiseks arendas LibreCAD lõpuks enda libdxfrw teegi, FreeCAD aga hakkas vaba tarkvara asemel esialgu kasutama omandvara (sic!), aastaid hiljem sai ta aga üle minna LGPL litsentsile.
[20]
Copyleft
Viited
- ↑ https://www.infoworld.com/article/2634150/microsoft-novell-deal-violates-gpl-.html
- ↑ https://www.theregister.co.uk/2007/05/18/gpl_microsoft_novell/
- ↑ https://www.crn.com/news/applications-os/198700743/new-gpl-3-draft-takes-aim-at-microsoft-novell-pact.htm
- ↑ https://timreview.ca/article/106
- ↑ https://timreview.ca/article/106
- ↑ https://www.gnu.org/licenses/gpl-3.0.html
- ↑ http://gplv3.fsf.org/rms-why.html
- ↑ https://santaclaralawtechlawforum.wordpress.com/2015/10/12/gpl-3-overview/
- ↑ https://www.theregister.co.uk/2018/06/18/red_hat_gpl_violation/
- ↑ https://www.theregister.co.uk/2017/10/18/linux_kernel_community_enforcement_statement/
- ↑ https://www.zdnet.com/article/linux-beats-internal-legal-threat/
- ↑ https://www.gnu.org/licenses/gpl-3.0.html
- ↑ https://www.ifross.org/en/what-difference-between-gplv2-and-gplv3
- ↑ https://www.fsf.org/news/gpl3dd4-released
- ↑ https://www.apache.org/licenses/GPL-compatibility.html
- ↑ https://www.zdnet.com/article/gplv3-myth2-you-cant-mix-gpl-software-with-other-software
- ↑ https://savannah.gnu.org/projects/libredwg/
- ↑ https://web.archive.org/web/20161109103037/http://libregraphicsworld.org/blog/entry/whats-up-with-dwg-adoption-in-free-software
- ↑ http://libregraphicsworld.org/blog/entry/libredwg-controversy-2-months-later
- ↑ http://libregraphicsworld.org/blog/entry/libredwg-revived-starts-getting-regular-releases