Avoin lähdekoodi 2004 Mikko Välimäki 13.2.2004
Kuka puhuu? Mikko Välimäki, oik. kand Tutkija ja opettaja TKK:lla, valimaki.org (artikkeleita, lisenssisuomennoksia ym.) EFFI.org (politisointi) ja Turre.com (konsultointi)
Rakenne Mitä on avoin lähdekoodi tänään? Avoimen ajan lyhyt historia Eri ohjelmistot ja teollisuuden tuki Määritelmät ja lisenssit Oikeudelliset riskit Ohjelmistoliiketoiminta
Lyhyt historia
Ohjelmistoteollisuus Ohjelmistoteollisuus on kehittynyt hitaasti mutta vääjäämättä räätälintyöstä monistettaviin, lisensoitaviin tuotteisiin ja massamarkkinoille IBM erotti ensin ohjelmistot raudasta 1969 ja avasi mikrotietokoneiden arkkitehtuurin 1981
Avoimen koodin juuret Vielä 1970-luvulla ohjelmistotuotteissa oli lähes poikkeuksetta koodit mukana Lisensointi ja massamarkkinat muuttivat ohjelmistojakelun binääreihin Yliopistomaailmassa avoimuus säilyi, ohjelmistoissa ei ollut juuri käyttöehtoja Richard M. Stallman julkaisi GNU Manifeston 1983 ja perusti Free Software Foundationin
Avoimuuden esiinmarssi Internetin räjähdysmäinen kasvu 1990-luvulla rakentui pitkälti avoimen lähdekoodin ohjelmistojen varaan (Linux, Apache, MySQL, Perl,...) Open Source Initiative perustettiin 1998 Taistelut UNIXin avoimuudesta Berkeley vs. AT&T (1992-1994) IBM vs. SCO (2003-) Poliittinen keskustelu 1990-luvun lopulta
Markkinat tänään Ohjelmistotuotemarkkinoiden koko satoja miljardeja euroja Avoimen lähdekoodin osuus markkinoista riippuu mittaustavasta mutta on jo joissakin segmenteissä (mm. webbiserverit) huomattava
Avoimet ohjelmistot ja teollisuuden tuki
Avoimia ohjelmistoja BSD (1970s-) Sendmail (1980-) GCC, Perl (1987-) Linux (1991-) Apache, MySQL, PHP (1995-) Mozilla (1998-) OpenOffice (2000-)
Mahdollisuuksia ja riskejä
Suuret toimittajat IBM: Linux is perfect for anyone with an eye on their budget who still needs a reliable and scalable operating system. (ibm.com/linux) Oracle: With technical contributions to enhance Linux, with code-level support of the key Linux operating systems, and with strategic partnerships, Oracle is offering an Unbreakable Linux platform for customers to safely deploy Linux in a mission critical environment. (otn.oracle.com/tech/linux)
Muutakin kuin Linux HP: HP is hosting a number of open source software projects that run on various HP systems. (opensource.hp.com) Apple: Apple s open source projects allow developers to customize and enhance key Apple software. Through the open source model, Apple engineers and the open source community collaborate to create better, faster and more reliable products for our users. (developer.apple.com/darwin)
Jopa Microsoft... Eilen: We believe that a shared source model, coupled with continuing contributions to public standards, provides a path that is preferable to the open source approach founded on the GPL. (2001) Tänään: The software industry often is depicted as... rival camps of commercial and open-source providers. Market forces, however, are rendering this portrayal obsolete. Both models have proven beneficial to the software market. (2004)
Määritelmät ja lisenssit
Tekijänoikeus ja patentti Tekijänoikeus suojaa tietokoneohjelmaa ja sen lähdekoodia Kopiointi, levitys ja muuntelu kiellettyä Lisenssissä annetaan tyypillisesti vain rajattu käyttöoikeus binääriin Myös ohjelmistopatentit nykyään relevantteja, lakia muutetaan parhaillaan EU:ssa
Mitä on avoin lähdekoodi? Open Source Initiativen vaatimukset: Vapaa levitysoikeus Avoin (ja toivottavasti ilmainen) lähdekoodi Johdannaiset teokset oltava sallittu Syrjimättömyys (laitteisto, käyttäjät,...) Tekijän integriteetti suojattava
1. Vapaa levitysoikeus Lisenssi ei saa estää ketään myymästä tai lahjoittamasta ohjelmaa osana yhdisteltyä ohjelmistoa, joka on koottu useista eri lähteistä saaduista ohjelmista
2. Lähdekoodi Ohjelman täytyy sisältää lähdekoodi ja ohjelman levityksen täytyy olla sallittu sekä lähdekoodina että käännetyssä muodossa. Jos jotakin osaa ohjelmasta levitetään ilman lähdekoodia, tällöin on selkeästi tiedotettava, miten lähdekoodi on saatavissa kohtuullisin kopiointikustannuksin - mieluiten Internetin kautta ilmaiseksi
3. Johdannaiset teokset Lisenssin on sallittava muutosten tekeminen ja johdannaisten teosten luominen. Näitä on saatava levittää samoilla lisenssiehdoilla kuin alkuperäistä ohjelmaa.
Entä vapaat ohjelmat? Free Software Foundationin vaatimukset: Vapaus ajaa ohjelmaa Vapaus tutkia ohjelman toimintaa Vapaa levitysoikeus Johdannaiset teokset oltava sallittu GNU GPL yhteensopivuus
Lisenssejä Open Source Initiative ja Free Software Foundation ovat hyväksyneet viime vuosina kymmeniä lisenssejä BSD (1989), kaiken salliva (n. 5-10% suosio) GPL (1989), pysyvä ja tarttuva (65%) LGPL (1991), pysyvä (n. 5-10% suosio) MPL (1998), pysyvä, lähdekoodi tarttuva
Lisenssin pysyvyys Copyleft: vaikka lähdekoodia muutettaisiin, lisenssiä ei saa vaihtaa, joten teos pysyy avoimena Jos copyleft-moduli kuitenkin linkitetään osaksi suurempaa kokonaisuutta, voidaan kokonaisuus lisensoida muilla ehdoilla
Lisenssin tarttuvuus Viral effect, reciprocal, inheritance : jos tarttuvaa koodia yhdistetään muuhun lähdekoodiin, tulee kokonaisuus lisensoida tarttuvan koodin ehdoin GNU GPL-yhteensopivuus: salliiko lisenssi, että GPL syrjäyttää sen, jos lähdekoodi liitetään GPL:n alla olevaan kokonaisuuteen
Lisenssien vertailu Kriteeri Vapaa levitys Vapaa käyttö Avoin koodi Pysyvä Tarttuva Shareware X - - - - Freeware X X - - - BSD X X X - - LGPL X X X X - GPL X X X X X
Oikeudelliset riskit
Milloin GPL tarttuu? 2 b) Jokainen teos, jonka Lisenssin saaja julkaisee tai levittää edelleen, ja joka kokonaan tai osittain perustuu tai sisältää osia Ohjelmasta, on lisensoitava kokonaisuudessaan ilman maksua kaikille kolmansille osapuolille tämän Lisenssin ehtojen mukaisesti.
Tulkintatilanteita GPL-koodiin tai -koodista linkattu GPL-koodia muuteltu GPL-modulia käytetään rajapinnan kautta Komponentti Ohjelmistotuote Kirjastorutiineja Ajonaikainen kirjastomoduli
Joitakin riitaisuuksia Linuxin laitteistoajurit (erillisinä moduleina) FSF FAQ: ajonaikainen linkitys ok, jos käännetty binääriin, pitää olla GPL Torvalds: ei ikinä GPL Stallman: aina GPL MySQL ja asiakasohjelmat (rajapinnan kautta) All commercial clients require a license
Tarttuuko LGPL? 6. As an exception to the Sections above, you may also combine or link a work that uses the Library and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer s own use and reverse engineering for debugging such modifications Miten tulkitaan Javan import-komentoa?
Case: SCO vs. Linux Kalifornianalainen konkurssin partaalla oleva yritys haastoi Linuxin tukijoita oikeuteen Väite: Linuxin lähdekoodiin kopioitu osia SCO:n omistamista kilpailevista tuotteista (sekä tekijänoikeus- että patenttirikkomuksia) Onko käyttäjien ostettava kaikkiin Linuxeihin lisenssi SCO:lta? Vastaväitteitä: SCO jakoi aiemmin samaa lähdekoodia ja koodi yleisesti tunnettua
Oikeuksien selvennys Vapaasti lisensoitavien ohjelmien ongelmana on oikeuksien hajaantuminen ja hallitsemattomuus, jolloin riskit kasvavat Ratkaisuvaihtoehtoja: Oikeuksien hankkiminen sopimuksin Lähdekoodin kirjoittaminen uudestaan Vastuun keskittäminen toimittajalle Käytön lopettaminen
Ohjelmistoliiketoiminta
Menestystarinoita? Puhtaat avoimen lähdekoodin yritykset harvoin menestystarinoita Esimerkiksi Linux-distribuutiot pääosin nollabisnes (Corel, Caldera, Mandrake...) Poikkeuksiakin toki löytyy kuten RedHat, MySQL, TrollTech,... Avoin lähdekoodi tuonut paljon bisnestä pienille Internet-konsultointiyrityksille
Liiketoimintamalleja
Kaksoislisensointi
Esimerkkiyrityksiä
Lisenssin valinnasta Sallivat lisenssit (BSD, MIT,...) Kiinnostavia ohjelmistokehittäjien näkökulmasta, teknologian standardointiin ja julkisesti rahoitettuihin hankkeisiin Pysyvät ja tarttuvat lisenssit (GPL, LGPL,...) Sopivia yhteisöprojekteihin ilman vaaraa, että joku kaupallistaa kaiken, sekä myös kaksoislisensointiin
Kysymyksiä - kommentteja? http://www.valimaki.org/