Programvarulicens

Programvarulicens anger de villkor som gäller för att använda och eventuellt sprida vidare och ändra i ett dataprogram.

Några vanliga licenser är:

 Microsoft Corporations End User License Agreement (EULA) 
 FSF:s GNU General Public License, (GPL) – programmet och dess källkod är fritt tillgängligt. För att garantera att det förblir fritt tillgängligt begränsas rätten att distribuera programmet (eller varianter av det) utan att även tillhandahålla källkod.
 BSD-licensen – programmet och dess källkod är fritt tillgängligt. Man får göra "slutna" program som bygger på programmet.

Många programmerare som föredrar att skriva program framför att ha åsikter om andras program tycker att licenser är onödigt komplicerat. En sådan reaktion är Poul-Henning Kamps licens Beerware.

Det är vanligt att programvarulicenser är mycket komplicerade och innehåller stadganden som är ogiltiga genom lagstiftning om upphovsrätt, konsumentskydd, produktansvar och liknande. Det är också i viss mån oklart i vilka fall licenserna skall betraktas som giltiga avtal och i vilken mån istället rimliga antaganden skall gälla. Detta är också några skäl till att företag satsar på lösningar och särskild programvara för licenshantering.

Kompatibilitet mellan licenser 
Frågan om kompatibilitet mellan licenser uppstår då kod från olika projekt med olika licenser skall kombineras, utan möjlighet att lätt komma till nytt avtal med upphovsrättsinnehavarna. Frågan är viktig ifråga om fri programvara, för vilken möjligheten att kombinera kod från olika projekt är viktig och för vilken upphovsrätten ofta innehas av många parter som kan vara svåra att nå.

Ett programvaruföretag som själv utvecklar sin programvara (eller kräver fulla rättigheter till programvara utifrån) kan fritt bestämma om licenserna, men samma problem uppstår om företaget använder kod som finns tillgänglig bara på vissa villkor.

En av orsakerna till framgången för fri programvara är att den som behöver ett program kan använda ett snarlikt existerande program för sitt projekt och lägga till funktionalitet från andra projekt. Så länge licenserna i projekten är fria och identiska finns inga upphovsrättsliga hinder. Licenserna kan skilja sig något, om det går att hitta en licens som tillfredsställer alla licensernas villkor.

Om däremot programvarulicenser säger emot varandra på något sätt, är det inte möjligt att kombinera källkod från programmen för att skapa ett nytt programvaruprojekt.

Om den ena licensen kräver att alla nya versioner måste tillåtas användas till vad som helst och den andra säger att koden inte får användas till vapenteknologi så föreligger en motsägelse och programmen kan inte kombineras utan att man bryter mot någondera licensen. Det är till och med möjligt att två program med identisk licens är inkompatibla: om licensen anger att en viss fil skall hållas oförändrad och filen är olika i programmen kan dessa inte kombineras.

Inte alla licenser som är godkända av OSI eller av FSF är kompatibla med varandra, så det går inte att fritt blanda material från OSI/FSF-godkända licenser. Till exempel så kan ny programvara som kombinerar kod under Mozilla Public License (MPL) med kod under GNU General Public License (GPL) (bägge godkända av både OSI och FSF) inte delas på ett sätt som inte bryter mot reglerna för GPL eller MPL. Därför är till exempel Mozilla ”dubbellicenserat”: användaren får välja att använda endera licensen, och om kod används i ett GPL-projekt väljer man GPL.

GPL-kompatibilitet 
Alla copyleft-licenser begränsar vilka tilläggskrav man kan ställa då man kombinerar koden med annan kod. Eftersom GPL är en av de vanligaste fria licenserna är kompatibilitet med GPL viktig. GPL är dessutom sträng: inga ytterligare krav får läggas till. Därmed är licensen kompatibel endast med licenser som innehåller inget eller vissa av kraven i GPL, men inga andra. Version 3 av GPL tillåter vissa ytterligare krav.

Många av de vanligaste fri mjukvarulicenserna, som till exempel MIT-licensen, BSD-licenserna (2 klausuls-versionen) och LGPL är kompatibla med GPL. Det betyder att man kan kombinera kod från sådana projekt med kod från GPL-projekt utan en juridisk konflikt. Den nya versionen kräver då att hela programmet licenseras om som GPL. Det är dock inte självklart att fria licenser är kompatibla med GPL.

Referenser 
Noter

Externa länkar
 FLOSS License Slide visar om två licenser är kompatibla med varandra. (engelsk)