Programvarelisensar
Åndsverklova gir einerett til programvare vi utviklar. Når vi ønskjer å gjere programvara tilgjengeleg for andre (uavhengig om vi tek betalt for ho eller ikkje), må vi definere kva lisensvilkår (reglar for bruk) vi ønskjer skal gjelde for åndsverket vårt.
Åndsverklova definerer grunnreglane som gjeld for alle åndsverk. Dette fundamentet kan vi så tilpasse ved hjelp av lisensar og sluttbrukarlisens (EULA).
Lisensar kan vere meir opne eller meir lukka. Nokre lisensar gir berre ein avgrensa tilgang til å bruke programvara. Slike restriktive lisensar blir ofte brukte på proprietær programvare, der målet er å tene pengar på programvara for å få eit forsprang på konkurrentar ved å halde kjeldekoden hemmeleg. Andre lisensar kan vere meir opne og tillate at andre gjer forandringar, lagar kopiar, lagar sine eigne variantar og bruker koden i sine eigne prosjekt. Det er òg mogleg å gi bort alle rettane sine slik at koden i praksis blir allemannseige og fritt kan brukast av kven som helst og til kva som helst.
Ofte bruker vi ande sin kode i prosjekta våre. Då er det viktig å kunne vilkåra som gjeld for gjenbruk av koden. Kanskje er det ikkje lov å bruke det igjen i det heile, eller kanskje er det avgrensingar som påverkar kva lisensiering du kan bruke på prosjektet ditt viss det inneheld kode frå andre. Det er òg god skikk, og som oftast eit krav, om å vidareformidle den originale lisensinformasjonen og kjelda.
Når vi skal bestemme lisenstype, er det nokre sentrale spørsmål vi må svare på.
Kommersialisering?
Skal du tene pengar på programvara? Viss ja, skal du tene pengar direkte ved sal av programvara gjennom brukarstøttetenester eller gjere utviklinga basert på donasjonar?
Mange utviklar programvare utan mål om å tene pengar på dette. Dette er sjølvsagt heilt legitimt og noko vi alle nyt godt av kvar dag, men viss programmering skal vere meir enn ein hobby, er det behov for å finne ut korleis ein kan tene pengar på arbeidet.
Tilgjengeliggjering av kjeldekoden?
Kjeldekoden til dataprogrammet er som oftast kompilert til maskinkode før han blir gjord tilgjengeleg for brukarane. Maskinkoden til eit program er vanskeleg å analysere og reversere til format som menneske kan lese og arbeide med.
Vi må derfor tenkje gjennom følgjande: Ønskjer vi at andre skal få innsikt i programvara ved å gjere kjeldekode tilgjengeleg, eller ønskjer vi å halde ho hemmeleg? På bakgrunn av dette kan vi avgjere om vi ønskjer å gjere kjeldekoden til koden eller programmet tilgjengeleg for andre eller ikkje.
Skal lisens og kjeldekode vere open eller lukka?
Når vi snakkar om open eller lukka lisens og kjeldekode, snakkar vi om typen lisens som skal gjelde for koden eller programmet, ikkje om kjeldekoden i seg sjølv er tilgjengeleg for allmenta eller ikkje.
Utgangspunktet for lisens er åndsverklova, og denne gir einerett til opphavaren. Dette kallar vi lukka eller proprietær lisens eller kjeldekode. Det er sterkt avgrensa kva andre kan gjere med koden.
Innan dataverda er det ein sterk kultur for å gi åndsverk ein meir open lisens. Kor open lisensen blir gjord, varierer frå lisenstype til lisenstype. I artikkelen Opne lisensar for programmering (ndla.no) kan du lese meir om dei vanlegaste lisenstypane innan IT.
I tabellen under kan du sjå ytterkantane mellom heilt lukka og heilt open lisens og kjeldekode.
Rett | Lukka lisens og kjeldekode | Open lisens og kjeldekode |
---|---|---|
Rett til å bruke programvara | Ja, viss ho er kjøpt eller lovleg skaffa. | Ja |
Rett til å lage private kopiar | Kopiering er berre tillaten for eigen sikkerheitskopi og regulert av lovverket. | Ja |
Rett til distribuere kopiar av programmet eller kode | Nei | Ja |
Rett til å forandre koden til programmet | Tilpassing av kode er berre tillaten for eige nødvendig bruk og regulert av lovverket. | Ja |
Rett til å distribuere kopiar av forandra programvare | Nei | Ja |
Løyve til å bruke kode i eigne prosjekt | Nei | Ja |
Rett til å forandre lisensvilkår | Nei | Varierer mellom dei opne lisensane |
Krav om anerkjenning av opphavet til programvara eller koden | Ja | Som oftast ja |