Hopp til innhold
Fagartikkel

Programvarelisenser

Programvare er åndsverk og beskyttet av opphavsrett. Som skaper av programvaren bestemmer du hvilke betingelser, altså hvilken lisens, som skal gjelde for andres bruk av din kode eller programvare.

Lisensiering av programvare

Åndsverkloven gir enerett til programvare vi utvikler. Når vi ønsker å gjøre programvaren tilgjengelig for andre (uavhengig om vi tar betalt for den eller ikke), må vi definere hvilke lisensbetingelser (regler for bruk) vi ønsker skal gjelde for åndsverket vårt.

Åndsverkloven definerer grunnreglene som gjelder for alle åndsverk. Dette fundamentet kan vi så tilpasse ved hjelp av lisenser og sluttbrukerlisens (EULA).

Lisenser kan være mer åpne eller mer lukkede. Noen lisenser gir kun en begrenset tilgang til å bruke programvaren. Slike restriktive lisenser brukes ofte på proprietær programvare, der målet er å tjene penger på programvaren for å få et forsprang på konkurrenter ved å holde kildekoden hemmelig. Andre lisenser kan være mer åpne og tillate at andre gjør forandringer, lager kopier, lager sine egne varianter og bruker koden i sine egne prosjekter. Det er også mulig å gi bort alle rettighetene sine slik at koden i praksis blir allemannseie og fritt kan brukes av hvem som helst og til hva som helst.

Ofte bruker vi andres kode i prosjektene våre. Da er det viktig å kunne betingelsene som gjelder for gjenbruk av koden. Kanskje er det ikke lov å gjenbruke i det hele tatt, eller kanskje er det begrensinger som påvirker hvilken lisensiering du kan bruke på prosjektet ditt hvis det inneholder kode fra andre. Det er også god skikk, og som oftest et krav, om å videreformidle den originale lisensinformasjonen og kilden.

Aspekter ved lisensieringen

Når vi skal bestemme lisenstype, er det noen sentrale spørsmål vi må besvare.

Kommersialisering?

Skal du tjene penger på programvaren? Hvis ja, skal du tjene penger direkte ved salg av programvaren gjennom brukerstøttetjenester eller gjøre utviklingen basert på donasjoner?

Mange utvikler programvare uten mål om å tjene penger på dette. Dette er selvsagt helt legitimt og noe vi alle nyter godt av hver dag, men hvis programmering skal være mer enn en hobby, er det behov for å finne ut hvordan man kan tjene penger på arbeidet.

Å tjene penger på programvare

1. Salg av brukerlisens til enkeltperson eller gruppelisens til bedrifter

Mot forhåndsbetaling gir du en varig rett til bruk av programvare, som oftest en bestemt hovedversjon. Vegas 19 er et eksempel på dette.

2. Abonnement av tilgang til programvare

Mot jevnlig leie gir du midlertidig rett til bruk av programvare, som oftest den nyeste versjonen. Et eksempel på dette er Adobe sine produkter.

Det er også mulig å gjøre hoveddelen av programmet gratis, men kreve abonnement for tilgang til avansert funksjonalitet.

3. Hybrid med både salg og abonnement

Innen spillverdenen er det blitt vanlig både at det koster noe for spillet, og at utvidelser (DLC) eller nettkomponenten av spillet krever en abonnementsløsning. De fleste MMO bruker en slik løsning.

4. Abonnement på brukerstøtte

Du kan lage og gi bort bruksrett på programvare og så ta betalt for brukerstøtteabonnement. Dette er vanlig for mange åpne kildekodeprosjekter som for eksempel Red Hat Linux.

5. Utvikling basert på donasjoner

Du kan lage og gi bort bruksrett på programvare og spørre brukere eller bedrifter om støtte gjennom donasjoner for videre utvikling og drift. Firefox nettleser er et eksempel på et slikt program.

6. Programvare finansiert av reklame

Reklame kan blandes med alle kommersialiseringsvariantene, men er mest vanlig i programvare som er gratis.

7. Salg av brukerdata

Dessverre er det en vanlig praksis hos mange å samle inn og selge brukerdata ut til reklameaktører. Dette kan også kombineres med de fleste kommersialiseringsvariantene selv om kjøpte lisenser og abonnementlisenser ofte har mindre av slikt. Du kan lære mer om dette i podkasten Dine data er til salgs.

Tilgjengeliggjøring av kildekoden?

Dataprogrammets kildekode er som oftest kompilert til maskinkode før den gjøres tilgjengelig for brukerne. Maskinkoden til et program er vanskelig å analysere og reversere til formater som mennesker kan lese og arbeide med.

Vi må derfor tenke gjennom følgende: Ønsker vi at andre skal få innsikt i programvaren ved å gjøre kildekode tilgjengelig, eller ønsker vi å holde den hemmelig? På bakgrunn av dette kan vi avgjøre om vi ønsker å gjøre kildekoden til koden eller programmet tilgjengelig for andre eller ikke.

Holde kildekode hemmelig

Mange produsenter av programvare velger å holde kildekoden hemmelig. De selger eller gjør tilgjengelig kun maskinkode som er vanskelig å reversere.

Hemmelighold av kilde gir et lag av sikkerhet mot piratkopiering, analyse og tyveri av kode og at sikkerhetssvakheter i koden blir funnet av utenforstående trusselaktører.

Hemmelighold gir noe sikkerhet, men fører også med seg risiko. Selv om det er vanskelig, kan maskinkode reverseres, og trusselaktører har mange måter de kan finne svakheter på. Hvis få har lest og analysert kildekoden, er det også få som har hatt mulighet til å oppdaget eventuelle svakheter og få dem forbedret.

Mange produsenter leier inn ekstern ekspertise innen hacking og kodeanalyse for å gå gjennom kildekode i søk etter svakheter.

Gjøre kildekode tilgjengelig

Mange produsenter velger å gjøre kildekoden til programmene sine tilgjengelig. Da kan kjøperen av programvare gjøre forandringer som er nødvendig for å få programvaren til å fungere bedre med annen programvare som er i bruk. (Slike forandringer er ofte tillatt under åndsverkloven.) Åpenhet gjør det også lettere for brukerne å vurdere sikkerheten til programvaren og finne og varsle om svakheter i koden.

Når kildekoden er tilgjengelig, har også trusselaktørene tilgang. Dette vil si at de mye lettere kan finne svakheter de kan utnytte. Piratkopiering og produksjon av programvare-patcher som fjerner kopisperre, blir enklere.

At kildekoden er tilgjengelig, betyr ikke at andre har lov til å kopiere og bruke deler eller hele koden til andre prosjekter, men det kan være veldig vanskelig å bevise at tyveri av kode har skjedd.

Skal lisens og kildekode være åpen eller lukket?

Når vi snakker om åpen eller lukket lisens og kildekode, snakker vi om typen lisens som skal gjelde for koden eller programmet, ikke om kildekoden i seg selv er tilgjengelig for allmennheten eller ikke.

Utgangspunktet for lisens er åndsverkloven, og denne gir enerett til opphaveren. Dette kaller vi lukket eller proprietær lisens eller kildekode. Det er sterkt begrenset hva andre kan gjøre med koden.

Innen dataverdenen er det en sterk kultur for å gi åndsverk en mer åpen lisens. Hvor åpen lisensen gjøres, varierer fra lisenstype til lisenstype. I artikkelen Åpne lisenser for programmering (ndla.no) kan du lese mer om de vanligste lisenstypene innen IT.

I tabellen under kan du se ytterkantene mellom helt lukket og helt åpen lisens og kildekode.

Rettighet

Lukket lisens og kildekode

Åpen lisens og kildekode

Rett til å bruke programvaren

Ja, hvis den er kjøpt eller lovlig anskaffet.

Ja

Rett til å lage private kopier

Kopiering er kun tillatt for egen sikkerhetskopi og regulert av lovverket.

Ja

Rett til distribuere kopier av programmet eller kode

Nei

Ja

Rett til å forandre programmets kode

Tilpasning av kode er kun tillatt for eget nødvendig bruk og regulert av lovverket.

Ja

Rett til å distribuere kopier av forandret programvare

Nei

Ja

Tillatelse til å gjenbruke kode i egne prosjekter

Nei

Ja

Rett til å forandre lisensbetingelser

Nei

Varierer mellom de åpne lisensene

Krav om anerkjennelse av opphavet til programvaren eller koden

Ja

Som oftest ja


Relatert innhold