Atvērtā pirmkoda licences
Atvērtā pirmkoda programmas ieņem arvien nozīmīgāku vietu IT industrijā, tāpēc ir svarīgi zināt to galvenās īpašības.
Pasaulē izmanto daudzus desmitus atvērtā pirmkoda licenču, un nezinot to kopīgās iezīmes var apjukt. Tomēr programmas lietotāja tiesības ir vienkāršas:
Programmatūras licence ir kā likumi valstī. Tie uzdod "spēles noteikumus", un, tā kā programmatūras ražotāju intereses ir dažādas, tad arī licences ir dažādas.
Pašas licences ir kā Bībele — juristi tās raksta tik pat nebaudāmā žargonā, kā Bībeles tulkotāji Bībeli. Lai aiz kokiem nepazaudētu mežu, tāpat kā Bībelei, arī programmatūras licencēm ir skaidrojumi, ko ar vidēju prāta piepūli spēj izlasīt un saprast parastais mirstīgais. Šeit ir piedāvāts "licenču neitrāls" atvērtā pirmkoda programmu apraksts pēc http://www.opensource.org/docs/osd:
Atvērtā pirmkoda licences nosaka sekojošas programmas īpašības
- Brīva izplatīšana
Licence nevienam nedrīkst aizliegt pārdot vai brīvi izplatīt programmatūru vai tās daļu, kā arī apkopot programmas no dažādiem avotiem. Licence nedrīkst pieprasīt honorāru vai cita veida samaksu par to. - Pieejams pirmkods
Programmā ir jāiekļauj pirmkods, un jāļauj izplatīt gan kompilētā veidā (bināro formu), gan pirmkodu. Ja kāda programma netiek izplatīta kopā ar pirmkodu, jābūt publiski pieejamiem pirmkoda iegūšanas līdzekļiem, un cena par to nedrīkst pārsniegt kopēšanas pašizmaksu; piemērotākais veids ir pirmkoda iegūšana tīmeklī bez maksas. Programmas pirmkoda modificēšanai ir jābūt ērtākajam programmas modificēšanas veidam. Nav atļautas apzināta koda "muhļīšana" un koda starpformu (piemēram, procesora un/vai translatora izejas datu) izmantošana. - Atļauj atvasinājumus
Licencei jāļauj mainīt kodu un veidot atvasinātus risinājumus, un jāļauj izplatīt tos ar tiem pašiem noteikumiem, kā sākotnējo programmu. - Aizsargā pirmkoda autoru
Licence var ierobežot modificēta pirmkoda izplatīšanu tikai tādā gadījumā, ja tā ļauj nemaināmajam kodam pievienot "ielāpus", kas ļauj programmu uzbūvēt savādāku. Licencē ir jābūt tiešai atļaujai izplatīt šādi modificētu programmu. Licence var pieprasīt atvasinātās programmas izplatīt ar savādāku nosaukumu un/vai versijas numuru kā sākotnējā programma. - Neierobežo kādu cilvēku grupu
Licence nedrīkst ierobežot nevienas atsevišķa cilvēka vai cilvēku grupu tiesības. - Neierobežo pielietojumu
Licence nedrīkst ierobežot dažādus programmas lietošanas veidus. Piemēram, tā nedrīkst ierobežot programmas izmantošanu biznesā, ģenētikā un kodolsintēzē. - Visām kopijām vienāda licence
Licences noteikumi ir vienādā spēkā visiem, kam ir programmas kopija, lai tā stātos spēkā nedrīkst būt veicamas nekādas papildu darbības. - Nesaistīta ar konkrētu produktu
Licences darbība nedrīkst būt atkarīga no tā, vai tiek izplatīta programmas daļa, vai arī tā tiek apvienota ar kādu citu programmu. Ja tiek izplatīta tikai programmas daļa, katram programmas daļas īpašniekam ir tādas pašas tiesības, kā visas programmas un citu programmas daļu īpašniekiem. - Neierobežo citu programmatūru
Licence nedrīkst uzlikt ierobežojumus citām programmām, kas tiek izplatītas kopā ar sākotnējo programmatūru. Piemēram, licence nedrīkst uzstāt, ka nesējā, ar kuru tā tiek izplatīta ir tikai atvērtā pirmkoda programmatūra. - Neierobežo kādu tehnoloģiju
Licence nedrīkst ierobežot programmas lietošanu kādā noteiktā tehniskā risinājumā.
Izplatītākās atvērtā pirmkoda programmu licences
- Izplatītākā vienlīdzīgā ("virulentā", "stiprā" jeb copyleft) atvērtā pirmkoda licence ir ir GPL. Tā dod vienādas tiesības un pienākumus gan autoram, gan jebkuram programmatūras kopijas īpašniekam. Tā pieprasa, ka visas izmaiņas un atvasinātie darbi arī ir jāizplata ar tiem pašiem noteikumiem. Līdz ar to, viss, kas tiek pievienots GPL kodam, arī ir GPL kods. Citiem vārdiem sakot, GPL var raksturot kā "atvērta no apakšas līdz augšai, no sākuma līdz beigām" licence.
- Izplatītākās nevirulentās (non-copyleft) atvērtā pirmkoda licences ir MIT, Apache un BSD. Svarīgi, ka atšķirībā no slēgtā koda licencēm, nevienlīdzība nav vis attiecībā uz tiesībām, bet gan uz pienākumiem. "Nevienlīdzība" izpaužas tā, ka lietotājiem nav pienākuma uzvesties tikpat nesavtīgi kā autoriem. Šīs licences ļauj izmantot produktus slēgtos risinājumos. Piemēram, Apple Mac OS/X izmanto BSD kodolu. Bet, tā kā BSD kodols ir licencēts ar BSD, nevis GPL licenci, Apple nav pienākuma publicēt OS/X pirmkodu. Šīs licences varētu raksturot kā "atvērts pirmsākums, bet tālāk slēgts".
- Daļēji "virulenta" licence ir GNU Lesser GPL jeb LGPL licence. Šo licenci visvairāk izmanto koplietojamām bibliotēkām. Attiecībā uz bibliotēkas kodu tā ir tāda pati kā GPL, bet atšķirībā no GPL tā ļauj veidot slēgtu risinājumu "cepuri". Šis kompromiss ļauj izmantot GPL, lai nodrošinātu koplietojamu bibliotēku izplatību, tomēr tās neierobežo koda slēpšanu augstāka līmeņa risinājumos. LGPL var raksturot kā "atvērta no apakšas, bet ar slēgtu augšu" licence.
Programmas autora tiesības
Ja atvērtā pirmkoda programmas autors ir viena fiziska vai juridiska persona, tad tam ir tiesības vienu un to pašu produktu izplatīt ar dažādām licencēm (teorētiski tas ir iespējams arī plašā kopienā, bet praktiski tā, protams, nenotiek). Tā, piemēram, rīkojas Qt Software , izplatot Qt izstrādes vidi un MySQL autori. Qt Software izmanto GPL priekšrocības, lai veicinātu izstrādes vides izplatību un un attīstību, bet tai pat laikā tā "neizlauž rokas" slēgto risinājumu izstrādātājiem (piemēram, Nokia), kas, kaut kādu apsvērumu dēļ, nevēlas izplatīt sava produkta pirmkodu.
Programmas autors ir tiesīgs arī mainīt produkta licenci, tajā skaitā, pat no atvērta koda uz slēgtu. Lai ražotājam būtu šāda manevra iespēja, tas pieprasa, lai līdzizstrādātāji tam nodod tiesības uz pirmkodu. To nevar uzskatīt par ražotāja "ļaunumu", vienkārši ražotājs negrib, ka licences maiņas gadījumā, kāds no līdzautoriem iebilst. Tas nerada nekādas kataklizmas. Lietotāji var turpināt lietot atvērtā pirmkoda produkta versiju, tikai viņi vairs neiegūst jaunākās slēgtā produkta versijas. Parasti šajā brīdī produkts sadalās biznesa un kopienas versijā, kā piemērus var minēt Red Hat Enterprise Linux (RHEL) un Fedora Linux distributīvus, Alfresco dokumentu pārvaldības sistēmu, u.c.