Open Source ohjelmista ja niihin liittyvistä ongelmatilanteista 8/2012

Open Source ohjelmista ja niihin liittyvistä ongelmatilanteista 8/2012

Tässä artikkelissa käsitellään lyhyesti avoimeen lähdekoodin lisenssejä ja niiden periaatteita. Tämän jälkeen käydään lävitse muutamia GNU GPL lisenssien kohtia ja niiden oikeudellisia ongelmia. Viimeiseksi annetaan muutama ohje ohjelmistojen kehittäjille.

Avoimen lähdekoodin lisenssit, jotka täyttävät avoimen lähdekoodin määritelmän (Open Source Definition) voivat saada open source –sertifioinnin. Open Source Initiativen keskeisimmät kriteerit sertifioinnille ovat:

1. Vapaa levitysoikeus.

Lisenssi ei saa estää ketään myymästä tai muuten levittämästä ohjelmaa osana yhdistettyä ohjelmistoa. Lisenssissä ei saa määrätä   ohjelmiston myymisen ehdoksi tällaisessa tapauksessa rojaltia tai muuta maksua.

2. Lähdekoodi.

Ohjelman täytyy sisältää lähdekoodi ja ohjelman levityksen täytyy olla sallittua sekä lähdekoodina että käännetyssä muodossa.

3. Johdannaiset teokset.

Lisenssin on sallittava muutosten tekeminen ja johdannaisten teosten luominen. Näitä on saatava levittää samoilla ehdoilla kuin alkuperäistä ohjelmaa.

Avoimen lähdekoodin täyttävien lisenssien on sallittava kopiointi, levitys ja muuntelu ilman lisenssimaksuja. Lisäksi määritelmässä kielletään mm. sitomasta lisenssiä käyttäjiin, käyttäjäryhmiin, tuotekokonaisuuksiin tai käyttötarkoitukseen.

Sallivat ja vastavuoroisuutta vaativat lisenssit. Sallivat lisenssit ovat perinteisesti akateemista vapautta korostavia ”yliopistolisenssejä” Tässä kirjoituksessa käsitellään jatkossa vain Vastavuoroisuutta vaativia (”copyleft”) lisenssejä.

Vastavuoroisuutta vaativat lisenssit voidaan edelleen jakaa muutamaan alatyyppiin. Ehkä keskeisin kysymys on, voidaanko vastavuoroisesti lisensioituja komponentteja yhdistellä vapaasti osaksi suurempaa kokonaisuutta ilman, että lisenssi asettaa vaatimuksia kokonaisuuden lisenssiehdoille:

Lisenssin periytyvyys tai tarttuvuus (”viral effect”). Jos lisenssi asettaa vaatimuksen, että kokonaisuus pitää vastavuoroisesti lisensioida samoin ehdoin kuin sen yksittäinen komponentti voidaan puhua vahvasta vastavuoroisuudesta tai, lisenssin periytyvyydestä tai tarttuvuudesta.

Lisenssin pysyvyys (”share alike”). Jos lisenssi ei aseta vaatimuksia kokonaisuuden lisensioimiselle vaan sallii esim. komponenttien linkityksen osaksi kokonaisuutta, voidaan puhua heikosta vastavuoroisuudesta tai yksinkertaisesti lisenssin pysyvyydestä.

Toinen relevantti kysymys koskee levitysoikeuden laajuutta ja lisenssiehtojen sitovuutta. Vastavuoroisuutta vaativat lisenssit nimittäin tulevat yleensä sitoviksi vasta, kun ohjelmakopiota levitetään eteenpäin. Vallitsevan tulkinnan mukaan tietokoneohjelman käyttö (jukisesti) verkossa ei ole teoskappaleen levitystä. Joissakin vastavuoroisuutta vaativissa lisensseissä on laajennettu levitysoikeuden määritelmää koskemaan myös verkkokäyttöä (ns. network copyleft), jotta verkkokäytössä ei voitaisi kiertää vastavuoroisuusvelvollisuutta.

GNU GPL LISENSSIT

Free Software Foundationin julkaisema GNU GPL on kaikkein suosituin avoimen lähdekoodin lisenssi ja siitä on käytössä kaksi versioita; vuonna 1991 julkaistu versio 2 (GPLv2) ja vuonna 2007 julkaistu versio 3 (GPLv3). Näistä ensimmäinen on edelleen yleisin. Eräs keskeisimmistä eroista näiden välillä on vastavuoroisuusehto.

Oikeudellisesta näkökulmasta avoimen lähdekoodin lisenssien, tässä tapauksessa GNU GPL, arvioinnin tekee hankalaksi se, että niiden soveltamisesta ja tulkinnasta on vain hyvin vähän oikeustapauksia. Ohjelmoijien ja käyttäjien muodostamisissa erilaisissa käyttäjäyhteisöissä on muodostunut vakiintuneitakin tulkintatapoja näiden lisenssiehtojen tulkinnasta.

Tämän valossa on ymmärrettävää, useat suuryrityksen suhtautuvat varauksellisesti avoimen lähdekoodin sisältäviin ohjelmistoihin, näin etenkin jos avoimen lähdekoodin ohjelmia sisällytetään osaksi niiden liiketoiminnan kannalta keskeisiä ohjelmistoihin.

Vastavuoroisuusehdot

GNU GPL lisenssit ovat ns. vahvan vastavuoroisuuden lisenssejä, jossa lisenssi asettaa vaatimuksen, että kokonaisuus pitää vastavuoroisesti lisensioida samoin ehdoin kuin sen yksittäinen komponentti. Tämä ilmenee GPLv2 ehtojen kohdasta 7.

“2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.”

Lisenssiehdon tiukan sanamuodon mukaisen oikeudellisen tulkinnan mukaisesti tämä johtaa tartuntaan (viral effect), jonka seurauksena, jos ohjelmistoon on sisällytetty GPLv2 mukaista avoimen lähdekoodin ohjelmaa (koodia), tulisi koko ohjelmisto julkaista/lisensioida avoimen lähdekoodin ohjelmana (ilman lisenssimaksuja).

Tästä vastavuoroisuusehdosta, sen tulkinnasta ja sen kiertämisestä on käyty paljon keskustelua ohjelmistokehittäjien yhteisössä ja erilaisia suosituksia siitä on myös annettu. Ongelmana on, että näillä tulkinnoilla ja suosituksilla ei ole oikeudellista sitovuutta, eikä GPLv2:n 2 b) kohdan tulkinnasta myöskään ole oikeuskäytäntöä.

Free Software Foundation on listannut sivulleen yleisesti hyväksyttyjä (General Undestanding) tulkintoja GPL ehdoista. Näiden mukaisesti ohjelmasta, johon on käytetty GNU GPL lisenssiehtojen mukaista ohjelmaa/koodia saa periä maksua.

Kysymykseen, jos käytän osaa ohjelmistoa joka GNU GPL lisenssin alaista, voinko tehdä muutoksia alkuperäiseen koodin ja sisällyttää sen uuteen ohjelmistoon ja sen jälkeen levittää sitä ja myydä tätä uutta ohjelmaa kaupallisesti, vastataan Free Software Foundationin sivuilla, www.gnu.org, seuraavasti:

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.
These requirements are the condition for including the GPL-covered code you received in a program of your own.”

Lyhyesti. Muutettua tai uutta ohjelmaa tai sen kopioita saa myydä kaupallisesti, mutta ainoastaan GNU GPL ehtojen mukaisesti. Lähdekoodin tulee olla ohjelman käyttäjien saatavilla ja heillä tulee olla oikeus edelleen jaella ohjelmaa ja tehdä siihen muutoksia.

Patenttilausekkeet

Esimerkiksi GPLv2 ei salli patenttilisenssimaksuja. GPLv2:n johdanto-osasta selviää, että patenttiehdon tavoite on saada kaikki kyseiseen tietokoneohjelmaan kohdistuvat patentit lisensioiduksi jokaiselle käyttäjälle ilmaiseksi.

GPLv2:n kohdan 7 mukaisesti, että ohjelmaa ei saa levittää – eli lisenssi ei ole enää pätevä – jos patentin haltija esittää GPLv2:n vastaisia ehtoja (rojaltimaksuja tms.) ohjelman käyttäjälle.

Toinen tilanne, jossa jokin patentinhaltija esittää perustellun vaatimuksen siitä että GPLv2:n mukainen ohjelma loukkaa sen jotakin patenttia, tällöin GPLv2:n 7 kohdan mukaisesti avoimen lähdekoodin ohjelman käyttäjän tulee kokonaisuudessaan lakata jakelemasta tätä avoimen lähdekoodin ohjelmaan.

”7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason …  then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.”

Ohjelmistoyrittäjän kannalta tämä aiheuttaa ongelmia, jos sen asiakkaille toimittamissa ohjelmistoissa käytetyn avoimen lähdekoodin osalta sen käyttöoikeus lakkaa. Tällöin tämä osuus ohjelmistosta tulee korvata muulla tavoin, joko kirjoittamalle se itse uudestaan tai hankkimalla lisenssi tähän osaan ohjelmistosta muutoin.

Avoimen lähdekoodin käyttösäännöt ohjelmistoyrityksessä

Avoin lähdekoodi tulisi ottaa huomioon jo ohjelmistotoimituksista sovittaessa. Isoilla ohjelmistoja hankkivilla yrityksillä on omat ohjeistuksensa asiasta. Toisaalta myös esimerkiksi julkishallinnon JIT 2007 yleisten ehtojen kohdassa 17(9) annetaan toimittajalle vastuu selvittää, mitä avoimen lähdekoodin komponentteja toimitukseen sisältyy. Kohdan mukaan toimittajan on lähtökohtaisesti vältettävä vastavuoroisuutta vaativien ehtojen käyttöä siten, että niistä aiheutuisi velvoitteita asiakkaan muiden ohjelmistojen käyttöön:

”Jos sopijapuolet sopivat avoimen lähdekoodin käyttämisestä, toimittaja ilmoittaa tilaajalle etukäteen avoimeen lähdekoodiin liittyvistä käyttöoikeutta koskevista ehdoista sekä muista ehdoista ja rajoituksista, joita tilaajan tulee avoimen lähdekoodin käytössä noudattaa. Mikäli toisin ei ole sovittu, toimittaja vastaa siitä, että avoimen lähdekoodin sopimuksen mukainen käyttö ei johda siihen, että tilaajan muihin ohjelmistoihin sovellettaisiin avoimen lähdekoodin käyttöoikeutta koskevia ehtoja.”

Useat yritykset ovatkin luoneet käyttösääntöjä avoimelle lähdekoodille, koska avoimen lähdekoodin komponenttien hyödyntämiseen liittyy erilaisia käyttörajoituksia ja ohjelmia saattaa tulla yrityksen käyttöön ohi perinteisten ostokanavien esim. Internetistä. Ohjelmistoyrityksen käyttösäännöt voisivat kuulua vaikka seuraavasti;

1. Avointa lähdekoodia ei saa ottaa käyttöön ilman lupaa; käytön suunnittelusta on aina raportoitava.

2. Ennen käyttöönottoa on tutkittava ohjelman lisenssiehdot ottaen huomioon ohjelman aiottu käyttötarkoitus (loppukäyttö, tuotekehitys, oma ohjelma, asiakkaan ohjelmisto).

3. Osa lisensseistä voidaan luokitella valmiiksi hyväksytyiksi (yliopistolisenssit), muut lisenssit vaativat aina tapauskohtaisen tarkemman selvityksen (vastavuoroiset lisenssit).

4. Käyttöönotetuista ohjelmista on pidettävä kootusti kirjaa, josta selviää ainakin ohjelman nimi, oikeuksien omistaja, käyttöönottoajankohta, lisenssi, lisenssiehdot ja käyttötarkoitus.