Atvirasis kodas

Atvirasis kodas – programinė įranga, kurios išeitinį kodą galima laisvai studijuoti, tobulinti, kopijuoti ar platinti.

Atviro kodo apibrėžimas 

Oficialiai pripažįstama tik versija anglų kalba 1.9
Pasikeitimų istorija yra čia.

Įžanga 

Atvirasis kodas reiškia ne vien galimybę matyti išeitinį kodą, bet taip pat atlikti jame pakeitimus, eksperimentuoti ir dalintis su kitais pakeistais variantais. Atvirojo kodo programinės įrangos platinimas turi sutapti su žemiau esamomis nuostatomis.

1. Laisvas platinimas 

Licencija nedraudžia kam nors parduoti ar perduoti programinės įrangos kaip programinės įrangos distribucijos dalies, kurią sudaro programos iš kelių skirtingų šaltinių. Licencija nereikalauja honoraro ar kokio kito mokesčio už tokį pardavimą, tačiau nebūtinai privalo šitai drausti. Todėl „nemokama programa“ nėra „atviro kodo“ sinonimas. Ir uždaro kodo programa gali būti nemokama, jei toks jos verslo modelis (tarkim, gaunant pajamos iš programoje rodomos reklamos).

Mokami automatiniai GPL ir LGPL licencijas turinčių programų atnaujinimai yra dažna su atviru kodu susijusi komercinė veikla.

2. Išeitinis kodas 

Programa privalo turėti išeitinį kodą bei turi leisti platinimą išeitiniu kodu, taip pat sukompiliuota forma. Jei kažkuri dalis neplatinama su išeitiniu kodu, turi būti aiškiai apibrėžtos galimybės įsigyti atvirąjį kodą apmokant ne daugiau nei motyvuotas kopijavimo išlaidas, arba labiau priimtinai – atsisiunčiant internetu nemokamai. Išeitinis kodas turi būti pateiktas forma, kuria bet koks programuotojas galėtų jį modifikuoti. Tyčinis kodo modifikavimas, kuris suklaidintų programuotoją yra draudžiamas. Tarpinės formos, tokios kaip preprocesoriaus ar transliatoriaus rezultatai yra neleidžiamos.

3. Išvestiniai darbai 

Licencija turi leisti atlikti modifikacijas bei kurti išvestinius darbus, taip pat turi leisti tuos darbus platinti su tokia pat licencija kaip ir išeitinis kodas.

4. Autoriaus išeinamojo kodo neliečiamumas 

Licencija gali uždrausti platinti modifikuotą išeinamąjį kodą tiktai tuo atveju, jei ji leidžia platinti originalų kodą kartu su pataisymų failais (patches), kurie leistų modifikuoti galutinį produktą kompiliacijos metu. Licencija privalo aiškiai leisti iš modifikuoto išeinamojo kodo sukompiliuotų programų platinimą. Licencija gali reikalauti, kad modifikuoti produktai turėtų kitokį pavadinimą ar versijos numerį, nei autoriaus originalus produktas. GPL, LGPL ir daugelis kitų atviro kodo licencijų modifikuoto išeinamojo kodo platinti nedraudžia, tačiau pakeitimai turi būti dokumentuoti.

5. Jokios diskriminacijos 

Licencija neturi diskriminuoti jokio asmens ar tam tikros jų grupės.

6. Jokių apribojimų panaudojimo sritims 

Licencija neturi uždrausti programos naudojimo tam tikroje specifinėje srityje. Pavyzdžiui, licencija negali uždrausti naudoti programos komerciniams tikslams, arba genetinių tyrimų atlikimui.

7. Licencijos platinimas 

Teisės ir pareigos, apibrėžtos šioje licencijoje, turi liesti visus, kuriems yra platinama programinė įranga ar jos išeitinis kodas. Ši licencija neturi būti platinama su kokia nors kita papildoma licencija, kurią būtų privaloma vykdyti arba su ja sutikti.

8. Licencija neturi būti specifinė produktui 

Teisės priskirtos programai neturi priklausyti nuo to ar ji yra programinio paketo (distribucijos) dalis. Jei programa yra atskirta nuo programinio paketo ir panaudota ar išplatinta sutinkant su programos licencijos sąlygomis, visos šalys, kurioms programa yra išplatinta turi gauti tokias pačias teises, kaip ir tie, kurie gauna programą kartu su visu programiniu paketu.

9. Licencija neturi riboti kitos programinės įrangos 

Licencija neturi riboti programinės įrangos platinimo kartus su licencijuojamomis programomis. Pavyzdžiui, licencija neturi reikalauti, kad visa programinė įranga platinama toje pačioje laikmenoje privalėtų būti Atvirojo Kodo (Open-Source).

Kas nėra atviras kodas 
Kai kurie programinės įrangos gamintojai siekia populiarumo, pateikdami savo programas kaip atvirą kodą, nors jos tokios ir nėra. Dažniausiai pasitaiko tokie pavyzdžiai:
 Sukompiliuota programa platinama nemokamai, tačiau jos išeities kodas (arba esminės šio kodo dalys) lieka gamintojo paslaptis.
 Išeities kodas prieinamas, tačiau licencija draudžia jį bet kaip keisti bei platinti pakeistas versijas.
 Išeities kodą galima keisti tik gavus papildomą gamintojo leidimą.
 Licencija riboja teises prašyti atlygio už originalios ar pakeistos programos platinimą bei garantinį aptarnavimą.

Akivaizdu, jog tokios sąlygos neatitinka pateikto atviro kodo apibrėžimo.

Licencijos 

 GPL
 LGPL
 BSD

Renginiai Lietuvoje 
2002 m. kovo 4d. susitikimo su Eric Steven Raymond vaizdo įrašas (Atviras kodas/Informacija/2002 03 07) http://www3.lrs.lt/pls/inter/ivpk_print.doc_view?key=168659

Susitikimo su vienu žymiausių atviro kodo programų judėjimo ideologu E. S. Raymond stenograma (Atviras kodas/Stenograma/2002 03 04) http://www3.lrs.lt/pls/inter/ivpk_print.doc_view?key=162730

Daugiau žr… http://www3.lrs.lt/pls/inter/ivpk_qry.query?DateSince=&DateUntil=&Cathegory=&Subject=939&TWords=&BWords=&SubmitButton=Ie%F0koti

Nuorodos 

 Atviras kodas Lietuvai 
 Atviras.lt
 VGTU Atvirojo kodo institutas 
 www.opensource.org

Laisvoji programinė įranga