Vapaa ohjelmisto

**Vapaa ohjelmisto** () on sellainen tietokoneohjelmisto, joka kunnioittaa ohjelman käyttäjän vapauksia käyttää, muokata ja jakaa kyseistä ohjelmistoa. Vapaa ohjelmisto menee usein sekaisin avoimen lähdekoodin kanssa. Vapaa ohjelmisto ja avoin lähdekoodi eivät tarkoita samaa asiaa, eivätkä ole toisiaan poissulkevia. 

Richard Stallmanin mukaan vapaalla ohjelmistolla viitataan vapauteen ja oikeuteen levittää ohjelmistoa muutoksilla tai muuttamattomana kuten sananvapaudessa. Eric Raymondin essee *[[The Cathedral and the Bazaar]]* huomioi avoimen lähdekoodin käytännöllisen merkityksen ohjelmistojen kehitysmenetelmään. Vapaa ja avoin ovat eri asioita, mutta eivät estä toisiaan: avoin lähdekoodi on kehitysmenetelmä kun taas vapaa ohjelmisto on sosiaalinen liike ja yhteiskunnallinen kysymys. 

Vapaista ohjelmistoista puhuttaessa halutaan usein viitata eettis-normatiiviseen ajatukseen, jonka mukaan ohjelmistojen nimenomaan kuuluu olla vapaita ja omistusohjelmistot voidaan nähdä tällöin epämoraalisina. Omisteiset ohjelmistot ovat tällöin vastakohta vapaalle ohjelmistolle.

Akronyymeillä *FOSS* (Free and Open Source Software) ja *FLOSS* (Free/Libre and Open Source Software) voidaan viitata samanaikaisesti vapaisiin ohjelmistoihin että avoimeen lähdekoodiin. Suomeksi voidaan vastaavasti käyttää akronyymiä VALO (Vapaa ja avoimen lähdekoodin ohjelmisto). 

Koska englannin sana *free* voi tarkoittaa paitsi vapaata myös ilmaista, vapaat ohjelmistot saatetaan joskus sekoittaa ilmaisohjelmiin, joita ei kuitenkaan saa tutkia ja muuttaa vapaasti. Vaikka vapaatkin ohjelmistot tyypillisesti ovat saatavilla maksuttomasti, maksuttomuus ei ole vapaan ohjelmiston määritelmän kannalta olennaista.

Vapaiden ohjelmistojen kehittämisen motiivit voivat olla teknisiä, taloudellisia tai yhteiskunnallisia. Kehittäjien kannalta merkittävää on halu kehittyä ohjelmien tuottajina oppimalla toisilta tuottajilta. Myös halu auttaa toisia on merkittävä motiivi. Yhteisyyskin luo lisäarvoa: kun minä annan ja joku toinen ja kolmas antaa, me kaikki hyödymme. Vapaiden ohjelmien kehittäjät tekevät usein kehitystyötä ansiotyön ulkopuolella. Vapaita ohjelmistoja kehitetään laajasti myös osana kaupallista yritystoimintaa tai muuna palkkatyönä.

## Määritelmä

Vapaille ohjelmistoille on olemassa erilaisia määritelmiä. Yleisin ja hyväksytyin niistä on Free Software Foundationin (FSF) määritelmä. FSF korostaa yksilön oikeuksia ja sen näkökulma on filosofinen. Vapaan ohjelman tunnusmerkit ovat neljä perusvapautta (joiden numerointi yleisen ohjelmointitavan mukaan aloitetaan nollasta):

* vapaus 0: ohjelmaa saa käyttää mihin tahansa tarkoitukseen
* vapaus 1: ohjelman toteutustapaa saa tutkia, ja ohjelmaa saa muokata omien tarpeiden mukaiseksi
* vapaus 2: ohjelman kopioita saa jakaa edelleen lähimmäisen auttamiseksi
* vapaus 3: ohjelman muokattuja versioita saa jakaa muille, niin että niistä on hyötyä koko yhteisölle.

Ohjelman muokkaaminen vaatii käytännössä ohjelman lähdekoodin. Vaikka muutoksia on mahdollista tehdä suoraan konekieliseen ohjelmaankin, tämä on virhealtista, useimmissa tapauksissa hyvin hankalaa ja tietynlaisten muutosten osalta mahdotonta. Pelkkä lähdekoodin jakelu ei kuitenkaan tee ohjelmaa vapaaksi – esimerkiksi joissakin myytävänä olevissa peleissä voi olla mukana lähdekoodia, vaikka sitä ei ole lupa levittää edelleen.

FSF:n määritelmä ei ota kantaa hintaan. Ohjelmaa pitää saada myydä, mutta toisaalta ostajaa ei saa kieltää levittämästä ohjelmaa eteenpäin ilmaiseksi tai valitsemallaan hinnalla, maksamatta tekemistään lisäkopioista. Tästä seuraa, että vapaat ohjelmat käytännössä ovat yleensä saatavilla ilmaiseksikin. Vapaiden ohjelmistojen mukana voidaan kuitenkin myydä esimerkiksi tukipalveluja tai sellaisia osia, jotka eivät ole vapaita. Kaupallisten Linux-jakeluversioiden ansaintalogiikka perustuu tyypillisesti juuri tukipalvelujen myyntiin.

GNU:n lisäksi toinen merkittävä vapaan ohjelman määritelmä on Debianin vapaiden ohjelmistojen ohjeisto. Debianin määritelmä ei ole aina yhteensopiva GNU:n käsityksen kanssa.
Debian on päätynyt pitämään GNU:n GNU Free Documentation Licensea (GFDL) epävapaana. Myös Wikipedia käytti tätä lisenssiä.

## Vapaa ohjelmisto vai avoin lähdekoodi?

Vapaista ohjelmistoista puhuvat korostavat vapautta. Linuxin menestyksen myötä huomattiin myös vapaiden ohjelmistojen muita etuja, mm. varsinaiseen kehittäjätiimiin kuulumattomien mahdollisuus parantaa ohjelmistoja. Näitä käytännön etuja korostavat, johtohahmonaan Eric Raymond, alkoivat kutsua vapaita ohjelmistoja avoimen lähdekoodin ohjelmistoiksi, koska vapaus, ja varsinkaan vapauden englanninkielisen sanan *free* toinen merkitys *ilmainen*, ei istu kovin hyvin, kun ohjelmistoyrityksiä yritetään ylipuhua vapauttamaan koodinsa.

Stallman ja FSF eivät kuitenkaan pidä termistä avoin lähdekoodi: kun vapauden arvoa välineenä korostetaan vapauden itseisarvon sijaan, on helppo luopua vapaudesta silloin, kun siitä luopuminen on käytännöllistä (esimerkiksi kun suljettu laiteajuri on avointa ajuria parempi aiotussa käytössä). Epävapaan laiteajurin (ja sen myötä epävapaata ajuria vaativan laitteen) torjuminen sen sijaan antaisi kilpailuvaltin niille laitevalmistajille, jotka tukevat vapaiden ajureiden kehittämistä.

Linux-ytimen luojalla, suomalaisella Linus Torvaldsilla on Stallmanin kritisoima käytännöllinen suhde tietokoneohjelmien vapauteen, mikä on osaltaan johtanut kiistaan GNU/Linux-jakeluiden nimeämisestä. Jos nimessä viitataan pelkästään Linuxiin, korostetaan Torvaldsin osaa näiden käyttöjärjestelmien synnyssä ja hänen ensisijaisesti välineellistä asennoitumistaan avoimeen lähdekoodiin. Jos nimessä mainitaan GNU, huomiota annetaan GNU-hankkeelle ja sen arvomaailmalle.

Vaikka avoimen lähdekoodin ja vapaiden ohjelmistojen puolestapuhujien näkökohdat ovat erilaisia, käytännön työssä he ovat usein samassa rintamassa: avoimen lähdekoodin määritelmä on käytännössä hyvin lähellä FSF:n vapaan ohjelmiston määritelmää. Esimerkiksi Mozilla ja OpenOffice vapautettiin luultavasti avoimen lähdekoodin liikkeen ansiosta, ja ne ovat merkityksellisiä vapaalle GNU/Linux-käyttöjärjestelmälle.

## Lisenssit

Vapailla ohjelmilla on erilaisia lisenssejä. Lisenssit on tapana jakaa kahteen pääluokkaan niin sanotun copyleft-ominaisuuden perusteella:

*Copyleft-lisenssit* vaativat, että ohjelman (joko sellaisenaan tai muokattuna) levittäminen edelleen on tehtävä alkuperäisin ehdoin (samalla lisenssillä). Ehtojen säilyttäminen koskee edelleen levittämistä ja uudelleen julkaisua. Näin taataan ohjelman säilyminen vapaana, ja että ohjelman jokainen käyttäjä saa samat vapaudet. Omaan käyttöön saa toki tehdä muutoksia vailla pakkoa julkaista niitä. Copyleft-lisensseistä tunnetuin on Linux-ytimen käyttämä, FSF:n julkaisema GNU General Public License (GPL). Muita copyleft-lisenssejä ovat esim. GNU Lesser General Public License (LGPL), Mozilla-lisenssi (MPL) ja Berkeley Database (aka Sleepycat Software Product) -lisenssi.

*Ei-copyleft-lisenssit* eli niin sanotut ”sallivat lisenssit” (esim. Zope-, X11- ja BSD-lisenssi) eivät aseta vaatimuksia muokattujen versioiden julkaisulle, jolloin omille muokatuille versioille saa halutessaan määrätä kopiointikiellon tai muita rajoituksia. Niitä voidaankin täten pitää heikompina lisensseinä, koska ne eivät varmista ohjelman edelleenkehitettyjen versioiden säilymistä vapaana, vaan sitä vastoin sallivat lisensoidun lähdekoodin ottamisen jopa osaksi suljettuja omisteisia ohjelmistoja.
Todellinen riski on olemassa, että ei-copyleft-lisensoidusta vapaasta ohjelmasta tehdään omisteinen paranneltu versio, joka suosiossa ohittaa alkuperäisen vapaan, joka taas kuolee; tai että ei-copyleft-lisensoidusta vapaasta ohjelmasta tehdään suljettu omisteinen ohjelmisto, jolla sen omistajat tekevät voittoa, ilman että he mitenkään kontribuoivat takaisin alkuperäiseen vapaaseen ohjelmaan tai yhteisöön, joka sen alun perin loi.

GNU-projekti ei pidä alkuperäistä BSD-lisenssiä vapaana sen "mainontalausekkeen" vuoksi. Lisäksi GPL-lisenssin 2.0 ja 3.0-versiot eivät ole yhteensovia keskenään. GNU-projekti kehottaa lisensoimaan ohjelmat esimerkiksi "GPL 3 tai myöhempi versio".

Yleensä kehotetaan käyttämään jotakin vakiintunutta ja hyvää lisenssiä, oman lisenssin laatimisen sijaan. Näin koodin lainaaminen eri projektien välillä on mahdollisimman helppoa eikä ohjelmistoa levitettäessä jouduta miettimään onko ohjelmisto riittävän vapaa. Jos projektilla, johon koodia tehdään, on poikkeava lisenssi, koodin levityksen salliminen tämän ohessa myös esimerkiksi GPL:n alla edesauttaa tilannetta. Lisenssiä on vaikea muuttaa jälkikäteen, kun koodia on jo moni muuttanut.

## Katso myös
* GNU
* Richard Stallman
* Debian Free Software Guidelines
* Avoin lähdekoodi
* Jaettu lähdekoodi
* Suljettu lähdekoodi
* Avoin sisältö

## Lähteet

## Aiheesta muualla

* Miksi ohjelmistojen pitäisi olla vapaita
* Ensimmäinen ohjelmistojenjakamisyhteisö
* Euroopan vapaiden ohjelmistojen säätiö
* Vapaa Suomi – portaali vapaille ohjelmistoille
* VALO-CD: Kokoelma parhaita vapaita ja avoimen lähdekoodin ohjelmia Windowsille