Julkaistu 3.9.2024

Miten valita avoin ohjelmistolisenssi

Ohjelmistokoodia pidetään useimmiten tekijänoikeuden alaisena teoksena. Näin ollen ohjelmistokoodin käyttö edellyttää lupaa koodin omistajalta.  Ilman lupaa koodia ei saa ottaa sen kirjallisessa muodossa käyttöön tai levittää eteenpäin. Jos tekijänoikeuden teokselle automaattisesti syntyviä rajoituksia kuitenkin haluaa vähentää, koodi kannattaa lisensoida avoimella ohjelmistolisenssillä. Lisenssi määrittää, mitä koodilla on lupa tehdä ja miten. Lisenssejä voi pitää “lupamalleina”, joissa määritetään koodin käyttöön annetut luvat ja rajoitteet silloin, kun ne poikkeavat tekijänoikeudesta. 

Jos siis haluat julkaista työsi avoimesti muiden käyttöön, tarvitset sille lisenssin.

Avointen ohjelmistolisenssien käyttö edistää muokkauksia ja koodin kehittymistä, ja haluamme Gispolla aina rohkaista mahdollisimman avoimeen mutta kuitenkin tietoiseen ja harkittuun lisenssien käyttöön. Tässä artikkelissa esitellään lyhyesti avoimia ohjelmistolisenssejä ja pyritään auttamaan avointen ohjelmistojen ja lähdekoodien parissa työskenteleviä lisenssien valinnassa.

Mitkä asiat vaikuttavat lisenssin valintaan?

Kun mietitään miten avoimena julkaistava ohjelmisto tai koodi halutaan lisensoida, muutamalla kysymyksellä päästään alkuun lisenssin valinnassa. Miettimällä vastausta seuraaviin kysymyksiin voidaan ainakin määrittää minkälainen lisenssi sopisi parhaiten omaan julkaisuun. Lisenssien päätyyppejä ovat sallivat lisenssit ja tarttuvat lisenssit, joista kerrotaan tarkemmin myöhemmin artikkelissa.

  1. Onko julkaistava ohjelmisto tai koodi kaikilta osin täysin omaa, vai onko mukana kolmannen osapuolen komponentteja? Jos mukana on muiden julkaisemaa koodia, sen lisenssi vaikuttaa uudelleenjulkaisussa valittavissa oleviin lisensseihin. Pääsääntönä voidaan pitää, että sallivat lisenssit mahdollistavat uudelleenlisensoinnin melko vapaasti, kun taas tarttuvat rajoittavat uudelleenlisensointia.
  2. Millä ehdoilla julkaisu voidaan ja halutaan tehdä? Saako koodia tai ohjelmistoa kopioida, muokata ja jakaa täysin vapaasti? Voiko kolmas osapuoli käyttää sitä omiin tarkoituksiinsa julkaisematta sitä uudelleen ja/tai kiristää sen lisenssiä – jopa muuttaa koodin omisteiseksi? Kuten nimikin sanoo, sallivat lisenssit mahdollistavat erilaisia jatkolisensointeja, kun taas tarttuvat lisenssit edellyttävät avoimuudelle vastavuoroista avoimuutta. 
  3. Miten tiukka lisensointi on tarkoituksenmukaista julkaistavan kokonaisuuden osalta? Etenkin pienestä koodinpätkästä kannattaa todennäköisesti tehdä mahdollisimman avoin, jotta pieni koodikomponentti ei rajaa lisensointia isomman kokonaisuuden osana.
  4. Saako julkaistavaa ohjelmistoa tai koodia käyttää myös kaupallisessa tarkoituksessa? Avoimet lisenssit ovat nimensä mukaan avoimia, joten jos kaupallista käyttöä halutaan rajata, tulee tarkastella muita vaihtoehtoja.

Mitä tarkoittaa salliva lisenssi?

Sallivat lisenssit (engl. permissive license) ovat avoimista lisenssivaihtoehdoista vapaampia ja siksi yleisemmin käytettyjä. Sallivien lisenssien alla julkaistua koodia saa kopioida, muokata ja jakaa vapaasti. Käytettyä koodia ei tarvitse julkaista. Vapaa tarkoittaa myös jatkolisensoinnin osalta todella vapaata, eli koodin voi julkaista joko edelleen avoimena tai sen voi lisensoida tiukemmin ja siitä voi tehdä jopa omisteista. Useimmiten sallivat lisenssit kuitenkin edellyttävät alkuperäiseen lähteeseen viittaamista koodia käytettäessä. 

Milloin valita salliva lisenssi?

  • Jos haluaa olla vapaa vastuista julkaistun koodin osalta
  • Jos haluaa antaa täysin vapaat kädet koodin jatkokäytölle ja -julkaisemiselle
  • Jos haluaa mahdollistaa lisenssin muuttamisen toisenlaiseksi myöhemmin

Yleisiä sallivia lisenssejä

  • MIT (Massachusetts Institute of Technology License)
    • Selkeä ja yksinkertainen, edellyttää lähinnä maininnan alkuperäisestä tekijästä ja lisenssistä
    • Yhteensopiva hyvin monien muiden lisenssien kanssa
  • BSD (Berkeley Software Distribution License)
    • Alkuperäinen 4 lausekkeen BSD-lisenssi on rajoittavin ja edellyttää mm. alkuperäisen kehittäjän mainitsemisen ohjelmiston mainosmateriaaleissa 
    • 3 lausekkeen BSD-lisenssissä ei ole mainoslauseketta, mutta vastuuvapauslausekkeet ovat mukana (kehittäjät eivät ota vastuuta tuotteen virheistä tai puutteista) ja lisenssi edellyttää niiden säilyttämistä
    • 2 lausekkeen BSD-lisenssissä ei ole mainoslauseketta eikä se edellytä vastuuvapauslauseikkeiden säilyttämistä 
  • Apache
    • Sisältää patenttioikeudet, eli lisenssi sallii myös ohjelmiston mukana mahdollisesti tulevien patenttien käytön.
    • Ei sisällä tavaramerkkioikeuksia, eli mahdollisesti mukana tulevien tavarmerkkien käytölle tarvitaan erillinen lupa
    • Edellyttää kaikkien alkuperäisten tekijänoikeusilmoitusten, lisenssien ym. sisällyttämistä muutoksiin ja jakeluihin

Mitä tarkoittaa tarttuva lisenssi?

Tarttuvat lisenssit (engl. copyleft license) ovat avoimia lisenssejä, joiden alaista koodia saa myöskin kopioida, muokata ja jakaa vapaasti. Olennaisin ero salliviin lisensseihin verrattuna on, että tarttuvalla lisenssillä lisensoitu koodi on yleensä julkaistava samalla avoimella lisenssillä, jos koodia käyttävä sovelluskin julkaistaan. “Tarttuvuus” tarkoittaa, että koodi, joka on otettu käyttöön avoimena, on myös pidettävä avoimena, jos sitä jatkokehitetään tai otetaan käyttöön osana muuta koodia. Vaatimuksen mukana koodin julkaisijalle siirtyy myös vastuu siitä, että julkaistu koodi todella on avointa eikä siinä ole tekijänoikeuksin suojattuja osia.

Milloin valita tarttuva lisenssi?

  • Jos haluaa varmistua siitä, että koodin lisensointia ei voi muuttaa (esim. siitä ei voi tehdä omisteista)

Yleisiä tarttuvia lisenssejä

  • GPL (General Public License):
    • Julkaistaessa koko koodi julkaistava tämän lisenssin alla, eli kaikki julkaistava koodi muuttuu GPL-lisensoiduksi, vaikka se olisi alunperin ollut jotain muuta. Ei salli uudelleenlisensointia.
    • Lisenssistä on olemassa eri versioita. 
  • EUPL (European Union Public License):
    • GPL-yhteensopiva lisenssi, eli EUPL:n alaista koodia voi uudelleenlisensoida GPL-lisenssillä.
    • Euroopan komission hyväksymä, suunniteltu Euroopan juridiseen kontekstiin (useimmat muut USA:n)
    • Käännetty EU:n virallisille kielille
  • LGPL (Lesser General Public License):
    • Sallii joissakin tapauksissa käytön osana ei-GPL lisensoitua ohjelmistoa (koodi on kyettävä ottamaan käyttöön dynaamisesti linkittämällä) 
    • Ensisijaisesti tarkoitettu ohjelmakirjastoja varten

Ole huolellinen valitessasi lisenssiä

Lisenssin valinta ei ole yksinkertainen tehtävä. Seuraavat asiat on hyvä pitää mielessä, kun lisenssin valinta on ajankohtaista.

  1. Käy läpi julkaistava kokonaisuus ja siinä mahdollisesti käytettävät kolmansien osapuolien tuottamat komponentit. Varmistu, että komponentit on lisensoitu ja mitä lisenssit määräävät uudelleenjulkaisusta ja niissä käytettävistä lisensseistä. Lisenssien muuttaminen yhdestä toiseksi ei aina ole sallittua! Lisenssien yhteensopivuuksista löytyy paljon tietoa netistä ja niiden selvittämiseen on olemassa myös skannerityökaluja kuten esim. https://github.com/CycloneDX/license-scanner.
  2. Ota tekoäly huomioon. Jos koodaamisen apuna on käytetty tekoälypohjaisia työkaluja kuten GitHub Copilot, riski lisensoidun koodin mukanaolosta on olemassa. Käytä tekoälyä harkiten ja katso käyttämäsi työkalun asetukset kuntoon, jotta vältyt (ainakin todennäköisemmin) lisenssiongelmilta.
  3. Toimi lisenssivalinnoissa tietoisesti ja kirjaa ylös tehdyt toimenpiteet lisensoinnin oikeaoppisuuden takaamiseksi.

_____________________________________________

Tämän artikkelin on kirjoittanut Linda Talve.

Profiilikuva

Gispo

Gispo on suomalainen avoimen lähdekoodin paikkatietotalo, jonka palveluihin kuuluu paikkatietokonsultointia, sovelluskehitystä, koulutusta sekä ylläpitoa ja tukea.