Tarkvarale seatakse litsents, et kaitsta selle autori(te) huve. Tasulise tarkvara ehk ärivara puhul on litsents enamasti võimalikult piirav. Lõppkasutaja ei tohi muuhulgas tootekoopiat teistele jagada, rentida ning teostada programmifailide peal reverse engineering-ut. Suletud lähtekoodiga vabavara ja ka jaosvara puhul on kasutajal õigusi juba rohkem, tarkvara jagamine on lubatud ja võib-olla isegi soovitatav. Kõige rohkem vabadusi on aga avavara puhul, mille alla kuulub avatud lähtekoodiga tarkvara. Ent ka sellist tarkvara kaitstakse litsentsidega, niiöelda vabade litsentsidega. Vaba litsents kaitseb kasutaja ja arendaja vabadusi, paljudel juhtudel ka tarkvara jätkusuutlikkust. Üks faktor, mis selgelt eristab vabasid litsentse, on edasikandumisklausel ehk copyleft — kas ja millistel tingimustel peab mingist tarkvaraprogrammist tuletatud uus tarkvara kandma esialgsega sama litsentsi. Seekordse ITSPEA lugemise lõpus toodud ülesande raames analüüsin, kuidas mõjutab vabade litsentside edasikandumisklausel litsentsivalikut.

Puuduv copyleft

Nagu ka ITSPEA wiki artiklis kirjutatud, toob FSF (Free Software Foundation) puuduva edasikandumisklausiga litsentside näidetena välja Apache, MIT, X11 ja BSD. Neid litsentse kasutava tarkvara puhul ei ole nõutud, et derivaadid jääksid sama litsentsi kasutama. Ühes artiklis on märgitud, et Node.js-i / NPM-i maailmas on MIT litsents kõige levinum (aastal 2016 kasutas seda üle 50% NPM-i pakkidest; eeldan, et juhipositsioon on MIT litsentsi käes ka aastal 2020). Pythoni maailma ühed tuntumad veebiraamistikud Django ja Flask rakendavad BSD litsentsi. Puuduva copyleft-iga litsentse võiks eelistada siis, kui soovitakse arendaja elu teha võimalikult lihtsaks. Nende litsentside kasutamise puhul pannakse suuremat rõhku sellele, et arendajad saaksid ilma eriliste piiranguteta tarkvara pakendada ja muuta, selle asemel, et kindlamalt tagada muudatuste upstream-i jõudmise võimalus.

Nõrk copyleft

Nõrga edasikandumisklausliga litsentsi näiteks on GNU LGPL (Lesser General Public License). LGPL lubab selle litsentsiga kaitstud tarkvara integreerida litsentsi edasikandumisnõudeta teistesse tarkvaraprojektidesse, viimaste puhul võib olla tegemist ka ärivaraga. Kui aga LGPL-iga kaitstud tarkvara muudetakse, siis on arendajad kohustatud oma muudetud versiooni avalikustama. Kõne all olevat litsentsi kasutatakse enamasti teekide puhul (sellest ka varasem nimi GNU Library General Pulbic License). LGPL-i kasutavad näiteks GUI (Graphical User Interface) teegid GTK ja QT. LGPL-i tasub kaaluda juhul, kui luuakse tarkvara, mis on mõeldud teiste arendate poolt integreerimiseks, ent samas soovitakse tagada tarkvara jätkusuutlikkus luues eeldused teiste arendajate poolt muudetu upstream-i jõudmise.

Tugev copyleft

Kuulsaim tugeva edasikandumisklausliga litsents on GNU GPL (General Public License). Nii nagu LGPL, nõuab ka GPL muudetud tarkvara teistele kättesaadavaks tegemist. Ent kui tarkvaraprojekti integreeritakse GPL litsentsi kasutav teine tarkvaraprojekt, siis peab ka esimene rakendama GPL litsentsi. Seetõttu on kõne all olev litsents eelistatud vaba tarkvara puristide poolt. Ilmselt tuntuim GPL-i rakendav projekt on Linux kernel. GPL-i võiks eelistada juhul, kui soovitakse tagada tarkvara elujõulisus, rakendades avatud lähtekoodiga arenduse võimalusi — koodil võib potentsiaalselt hoida silma peal mitmeid arendajaid ning edasikandumisklausel hoolitseb selle eest, et võimalikud kasulikud uuendused võiksid jõuda põhiprojekti.

Väga tugev copyleft

Väga tugeva edasikandumisklausliga litsentsi esindaja on GNU AGPL (Affero General Public License). AGPL lisab muidu tugeva copyleft-iga GPL-ile täienduse, mille kohaselt kuulub tarkvara levitamise alla ka selle kasutus üle veebi. Seega laieneb lähtekoodi avalikustamise nõue ka kaasaegsel juhul, kus kasutaja ei pruugi tarkvara alla laadida, vaid kasutab seda läbi veebibrauseri. AGPL-i kasutavate projektide näideteks on Launchpad ja ownCloud Server Edition. AGPL-i võiks kasutada sarnastel ajenditel nagu GPL-igi, ent kui tegu on üle veebi kasutatava tarkvaraga.

Uus suundumus — source available

Uuema aja suundumus on suuremate projektide puhul liikude open source pealt source available peale. Sisuliselt on tegu litsentseerimisviisiga, mille puhul on tarkvara lähtekood kättesaadavav, ent (kommertsiaalne) kasutus on piiratud ning tihtipeale nõuab tarkvara autoritele raha maksmist. Üks põhjus selliste litsentside vajalikkuse osas on Amazoni otsus küsida AWS-is raha teenuste eest, mis põhinevad avatud lähtekoodiga tarkvaral, ilma et autoritele makstaks (artikkel).

Kokkuvõte

Nagu eelkirjutatust näha — kui otsustada avatud lähtekoodiga tarkvara arenduse kasuks, siis on eri situatsioonides otstarbekas kasutada erinevaid vabu litsentse. Ent pilvelahenduste ajastul ei pruugi veebirakenduste jaoks open source olla elujõuline valik, mitmed näevad source available lähenemisel helgemat tulevikku.