Ohjelmien lisensoinnista Mitä ohjelmoijan on hyvä tietää ohjelmien tekijänoikeuksista ja (erityisesti open source) lisensseistä Tapani Tarvainen 27.11.2015
Lähtökohta: tekijänoikeus Yksinoikeus "määrätä teoksesta valmistamalla siitä kappaleita ja saattamalla se yleisön saataviin". Automaattinen kaikilla teoksilla (jotka ylittävät teoskynnyksen), ei edellytä rekisteröintiä tai määrämuotoista copyright-tekstiä Ylikansallista (Bernen sopimus, WIPO, EU...) lisenssi mieluiten (myös) englanniksi Tekijänoikeuden lähioikeudet (luettelosuoja ym) Myös patentti- ja tavaramerkkioikeus voivat tulla vastaan
Kysymyksiä Millainen lisenssi milloinkin kannattaa laittaa omaan koodiin? Miten omassa ohjelmassa voi käyttää muiden tekemää (netistä löytyvää yms) koodia ja mitä se vaikuttaa lisensointiin - voiko eri tavoin lisensoituja ohjelmia yhdistää ja mitä se vaikuttaa? Mitä tapahtuu jos samaa koodia jakaa usealla eri lisenssillä?
Lisenssin valinta Riippuu ohjelman luonteesta (standalone, kirjasto, web-sovellus), tekijän tarkoituksista ja mahdollisesti käytettävästä muusta koodista Lisenssi on peruuttamaton ellei siinä erikseen toisin mainita, mutta saman ohjelman voi lisensoida uudestaan eri lisenssillä ja eri ehdoilla eri tahoille Käytettäessä muiden tekemiä koodeja pitää selvittää lisenssiyhteensopivuus Omaa lisenssiä ei kannata kirjoittaa ellei ole lakimies
No License Suositus: Copyright Kaino Koodari 2015 Implisiittinen lisenssi: laillisesti (tekijän/ oikeudenhaltijan luvalla) saatua ohjelmaa saa käyttää (myös kaupallisesti) mutta ei muokata eikä levittää edelleen; varmuuskopiointi on aina sallittua, reverse engineering jos tarpeen yhteensopivuussyistä Jaettaessa ohjelmia netissä jakotapa voi vaikuttaa (esim. foorumin säännöt)
Public Domain This code is in the public domain. Ei yksiselitteistä suomalaista vastinetta, esim. Tätä ohjelmaa saa vapaasti käyttää miten tahansa kaikkiin tarkoituksiin. Tekijän nimi (ja päiväys tai ainakin vuosiluku) syytä laittaa kuitenkin, ja jotkut suosittelevat pitempiäkin tekstejä Disclaimer ( as is, no warranty ) hyvä lisätä
GPL General Public License (aiemmin Gnu Public License ) Copyleft : Lähdekoodi annettava, muokkaus ja edelleen levitys sallittava, muutettuja versioita levitettävä samalla lisenssillä jos niitä levittää ( tarttuu koodia yhdistettäessä), tekijää ei saa vaatia vastuuseen Useita hieman erilaisia versioita, voi sallia monia tyyliin version 2 or any later version
GPLv3 vs GPLv2 helpompi yhdistää muiden lisenssien kanssa Tivoisaatio -rajoitus DRM-rajoitus (ei tehokas suoja ) patenttilisenssipakko (muokattua) lähdekoodia ei tarvitse julkistaa ellei binääriäkään jaa (v2 epäselvä tässä, toisaalta vrt. Affero)
Affero GPL Nykyinen versio Gnu AGPL v3 Tarkoitettu verkossa ajettaville ohjelmille: muokattu lähdekoodi annettava myös vaikka ohjelmaa saa vain ajaa verkon yli (vaikkei mitään binääriä käyttäjälle annetakaan) Eksplisiittisesti yhteensopiva GPLv3:n kanssa (mutta ei GPLv2:n)
LGPL Lesser GPL ( Library GPL ) Lievennys GPL:ään: eksplisiittisesti sallii linkittämisen vaikuttamatta kokonaisuuden lisensointiin Rajapintojen pitää olla avoimia niin, että LGPLlisensoituja osia voi muuttaa Tarkoitettu lähinnä ohjelmakirjastoille
MIT license Sallii suunnilleen kaiken kunhan lisenssitekstiä ei poista eikä vaadi tekijää vastuuseen mistään Olennaisesti sama kuin BSD license (tästä on useita variantteja, lisänä usein eksplisiittinen kielto käyttää alkuperäisen tekijän nimeä mainonnassa)
Apache license Sallii vapaan levittämisen kuten MIT/BSD, mutta lisää patenttivapauden (tekijä lupaa ilmaisen lisenssin mahdollisiin koodiin liittyviin patentteihinsa, käyttöoikeuden menettää jos vaatii patenttikorvauksia koodista) Yhteensopiva GPLv3:n kanssa, mutta ei GPLv2:n
Muita yleisiä OS-lisenssejä Artistic license: lähinnä Perl-ohjelmille Eclipse license: melkein kuten BSD Mozilla license: BSD/GPL kompromissiyritys EUPL: EU-komission versio GPL:stä CPL: IBM:n Common Public License Paljon muitakin on, kannattaa harkita lähinnä yhteensopivuussyistä jos koodaa tietyn yhteisön kanssa
Suljetun koodin lisenssit Suljetun koodin (erityisesti ohjelmakirjastojen) käyttäminen oman ohjelman yhteydessä on mahdollista hyvin vaihtelevin ehdoin (ehdot syytä lukea tarkkaan ja olettaa kielletyksi kaikki mitä ei erikseen sallita) Kääntäjien tuotoksia saa yleensä levittää vaikka mukana menisikin suljettujen kirjastojen osia Käyttöjärjestelmän jaettuja kirjastoja saa yleensä käyttää mutta ei levittää, poikkeuksia on
Open (and closed) data Muuta kuin ohjelmakoodia koskevat lisenssit hyvin kirjavia, ehdot kannattaa lukea huolella Laissa hieman vähemmän rajoitettua kuin ohjelmat (mm. saa kopioida omaan käyttöön) Elävä data ts. verkossa oleva ja sieltä jonkin rajapinnan kautta käytettävä data (esim. karttadata) erityisen ongelmallista, oikeuskäytäntöä vähän Ilmaisuus tarkoittaa, että on yleensä turha valittaa ainakaan yksityiselle toimijalle (Google tms), jos ehdot muuttuvat kesken kaiken (etenkin elävän datan kanssa)
Open data -lisenssejä PDDL: Public Domain for data/databases ODC-By: Attribution for data/databases ODC-ODbL: Attribution share-alike for data/databases GFDL: Gnu Free Documentation License Open Publication License Creative Commons -lisenssit
Henkilötietojen käsittely Henkilötietoja sisältävän datan käsittelyssä on paljon lisärajoituksia (henkilötietolaki, EU-direktiivi ja säädökset) Henkilötieto = mikä tahansa tiettyyn henkilöön helposti yhdistettävissä oleva tieto Käsittely sallittua vain laissa luetelluin perustein Jotkin henkilötiedot erityisen arkaluontoisia, käsittely vielä rajoitetumpaa (vaatii erityisperustetta) 1+1=3? Kahden tai useamman tietokannan yhdistäminen voi aiheuttaa rajoituksia, joita millään niistä yksinään ei ole
Lisätietoa opensource.org choosealicense.org wikipedia.org/wiki/comparison_of_free_and_opensource_software_licenses opendatacommons.org opendefinition.org creativecommons.org opencontent.org