layout | title | inheader | permalink |
---|---|---|---|
page |
Ohjelmistolisenssit |
false |
/lisenssit/ |
Tässä osassa ollaan käsitelty ohjelmiston suunnittelua ja toteutusta. Seuraavaksi katsotaan, missä kohtaa ohjelmiston suunnittelua lisenssöinti on merkittävässä osassa.
Osan on kirjoittanut Akira Taguchi.
Kuvitellaan, että teet ohtun miniprojektiksi graafisen laskimen. Julkaiset koodisi GitHubiin, ja joku ottaa sinuun yhteyttä. Yhteydenottaja kehuu teosta ja haluaisi ottaa tämän käyttöön oletuslaskimena kehittämässään käyttöjärjestelmäjakelussaan, Cubblissa. Yhteydenottaja kuitenkin kertoo, ettei tämä onnistu ennen kuin olet lisensöinyt ohjelmasi sopivalla lisenssillä. Mitä teet?
Ohjelmistolisenssi on lainopillinen väline, joka säätelee ohjelmiston käyttöä ja edelleenjakelua. Ohjelmistokehittäjillä tämä usein ilmenee LICENSE-tiedoston julkaisemista lähdekoodin mukana. Tämän LICENSE-tiedoston sisältö määrää valitun ohjelmistolisenssin. Esimerkki Poetryn ohjelmistolisenssistä: https://github.com/python-poetry/poetry/blob/master/LICENSE.
Ohjelmistolisenssi valitaan käyttötarkoituksen mukaan. Seuraava verkkosivu on hyvä lähtökohta löytää juuri oikea ohjelmistolisenssi tarkoitukseen: https://choosealicense.com/. Verkkosivuilta voidaan kopioida leikepöydälle haluttu lisenssi ja täyttää sillä repositorion LICENSE-tiedoston sisältö (ks. Poetry-esimerkki).
Vaikka Choose a License-verkkosivun Appendix-alasivu (https://choosealicense.com/appendix/) antaakin hyvin vertailtavaksi lisenssejä, käydään silti nyt läpi muutama käytetympi lisenssi karkeasti läpi:
Lisenssi | Ehdot | Tyyppi |
---|---|---|
MIT-lisenssi | Lisenssin tekstin pitää säilyä lähdekoodissa ja mm. suljettuja versioita saa tehdä | Suvaitseva |
GNU General Public License, eli GPL | Lähdekoodi pitää julkaista samalla lisenssillä eikä suljettuja versioita saa tehdä | Suojeleva |
GPL 2.0 | Sama kuin GPL, mutta painotus ettei suljettuja versioita saa tehdä, edes muiden lakivelvotteiden vuoksi | Suojeleva |
GPL 3.0 | Sama kuin GPLv2, mutta painotus ettei suorittava rautakaan saa rajoittaa GPL-lisenssin velvoitteita | Suojeleva |
Mozilla Public-lisenssi 2.0 | Sama kuin GPL, paitsi mikäli projekti kasvaa merkittävän suureksi, voidaan lisenssi vaihtaa, esim. Chromium -> Chrome | Suvaitseva |
The Unlicense | Tee mitä haluat | Avoin |
- (Ei lisenssiä) | Omistat kaikki oikeudet | Yksityisomisteinen |
CC BY | Lisenssin tekstin pitää säilyä teoksessa. Voidaan antaa ei-ohjelmistoille, esim. Kurssimateriaalille | Suvaitseva |
CC BY NC | Sama kuin CC BY, mutta kaupallinen käyttö on kielletty (NC, No-Commercial) | Suvaitseva |
Katsotaan ensin, mitä lisenssejä muut ohjelmistot käyttävät.
Mitä lisenssiä Code Climate käyttää: https://github.com/codeclimate/codeclimate/?
Vastaus
GNU Affero General Public License v3.0Mitä lisenssiä Visual Studio Code käyttää: https://github.com/microsoft/vscode/?
Vastaus
MIT-lisenssiSeuraavaksi harjoitellaan lisenssin valintaa ohtun miniprojektia varten.
Haluan, että miniprojektiani voidaan käyttää ja jakaa millä tahansa ehdoilla. Valitsen
- MIT-lisenssi
- The Unlicense
Vastaus
b. The UnlicenseMikäli miniprojektiani käytetään suuremmassa ohjelmistossa, haluan että suurempi projekti saa halutessaan käyttää eri lisenssiä, kuin miniprojektin alkuperäinen lisenssi. Valitsen
- MIT-lisenssi
- Mozilla Public-lisenssi 2.0
Vastaus
b. Mozilla Public-lisenssi 2.0Nyt osaat toivottavasti lisensoida ohtun miniprojektisi sekä tulevat ohjelmistoprojektisi. Mikäli jotain jäi epäselväksi, pingaa @mynamabitchiro (Akira Taguchi) OhTun Discord-palvelimella tai mistä vain internetin kulmasta löydätkään Akiran.
Vapaalla ohjelmistolla ja avoimella lähdekoodilla on suuri ero. Seuraava video kertoo ohjelmistovapaudesta sekä tämän puolesta taistelevan Software Freedom Conservancysta:
Jos kiinnostuit ohjelmistovapaudesta, pistä rohkeasti viestiä Akiralle!