Skrivet av Nikkop:
Kan man släppa en mjukvara under ingen licens alls, eller måste det finnas minst en licens?
Upphovsmannen till ett verk får som standard ensamrätt att bestämma hur verket får användas. Det är grundtanken med upphovsrättslagstiftningen. Med engelska termer så har upphovsmannen "copyright" på verket (finns komplikationer gällande begrepp som "verkshöjd", etc., men generellt gäller detta).
Om någon vill använda något som jag har upphovsrätten på, och jag inte har specificerat något alls gällande användandet, så är det bara de lagligt skyddade rättigheterna som en tredje part kan nyttja, exempelvis rätten att citera, rätten till privatkopior om de köpt en "laglig" förlaga, etc. Att inte ange någon specifik licens är alltså möjligt, och det medför att verket är begränsat under striktaste möjliga termer.
Om jag däremot säger "Detta program är licensierat under GPLv2" så har jag som upphovsrättsägare till verket explicit gett tillstånd till andra att nyttja verket under dessa termer. Jag har ju dock fortfarande upphovsrätten till verket, så jag skulle när som helst kunna välja att licensiera det under andra termer, tom stänga koden. Det gäller ju då inte "retroaktivt", så jag kan inte springa iväg och stämma någon som använt kod som jag släppt under GPL-tiden under dessa termer. Det finns många kodbaser som är licensierade under multipla licenser för olika ändamål (QT, Perl, Ruby, etc.) — upphovsrättsinnehavaren har stor frihet här.
Låt däremot säga att jag har ett GPL-projekt och jag har tagit emot icke-triviala patchar av andra personer, skrivna under GPL-överenskommelsen. Jag kan då inte i efterhand välja att stänga koden inklusive deras ändringar utan deras tillstånd — de är upphovsrättsinnehavare till sina kodbidrag som de licensierade under GPL till kodbasen när de bidrog. Dessa personer får på samma sätt inte retroaktivt ändra sig och ta tillbaka sina patchar från GPL-villkoren. Detta är väldigt naturligt, och en stor grundbult för att öppen mjukvara ska fungera — alla äger sina koddelar, men licenserna ger tillåtelse till andra att använda koden inom deras ramar. Jag kan fortfarande plocka bort deras bidrag och stänga min kodbas om jag vill, men de har rätten att vidareutveckla koden under GPL-villkoren fram till det tillfälle jag stängde den.
Utläggning om ett visst sentida fall och olika länders lagstiftning:
Det var ett "intressant" fall nyligen gällande en utvecklare som bidragit till "Org mode" — en Emacsplugin — men kom på kant med projektledaren på ett personligt plan, och därför uttryckligen ville bråka med hela projektet ("create a minor discomfort for the Org community") genom att dra tillbaka användarrättigheterna för sitt bidrag.
Då Org mode distribueras med Emacs vilket är licensierat under FSF:s regler som säger att all copyright ska överföras till FSF vid bidrag, så är det även tydligt att Org mode måste ha samma licensvillkor, vilket i sig är skäl nog att hans förfrågan var utan substans. Dock skiljer sig licenslagstiftning i olika delar av världen, och FSF:s krav på att "copyright ska överföras till FSF" är inte en laglig möjlighet i många delar av världen — "copyright" stannar alltid hos upphovsrättsinnehavaren. Fortfarande så är den enda rimliga tolkningen i jurisdiktioner där sådan överföring inte är tillåten just att en "oinskränkt licens" ska ges till FSF i detta fall, varpå den kan nyttjas bäst FSF vill likväl.
Å fjärde sidan så hade dessa ändringar till Org mode inte hunnit distribueras tillsammans med Emacs vid den aktuella tidpunkten, så frågan blev snarare: "när sker licensierandet?" — är det när koden skrivs, när den överförs till projektet eller när den distribueras? Svaret var ganska entydigt att när ändringarna distribuerats till en maillista med intentionen att inkluderas i projektet så gavs tillståndet att använda koden under projektets licensiering.
--
Det var en inte-så-spännande historia, men belyser att licensiering är viktig för att kunna samarbeta. I ett enpersonsprojekt så är det enkelt — en person har alla rättigheter. Jobbar man på ett företag så kommer företaget säkerligen se till att inget liknande bråk kan uppstå, och vanligen implementeras villkor på de anställda som att all kod som de producerar under sin anställning "ägs" av företaget.
I Sverige och de flesta andra länder (mer eller mindre alla förutom GB och USA) så är upphovsrätten tvådelad och består av en "moralisk rätt": dvs rätten att bli erkänd som upphovsman av ett verk, och en "nyttjanderätt": rätten att t ex nyttja verket kommersiellt. Den förstnämnda kan inte överlåtas (exkl GB/USA som nämndes, och i t ex Sverige kan man skriftligen avsäga sig rätten att nyttja den, men likväl inte överlåta den till någon annan (åtminstone inte förrän man dör)… Bra snårigt ), men den sistnämnda är då rätten som tillfaller företaget enligt anställningskontraktet. I praktiken säljer man denna rätt till företaget för sin arbetstid och blir betalad i lön. Det finns dock exempel på företag som även hävdar äganderätt på alla verk som anställda producerar även på sin fritid, vilket jag inte tror är lagligt hållbart i Sverige, och ej heller i ett flertal delstater i USA (så länge som det inte är uppenbart relaterat till företagets verksamhet).
Dold text
Licenser är inte bara ett snårigt ämne vad gäller fri mjukvara — tvärtom, det är mycket mer att tänka på vid samarbete för kommersiell distribution av mjukvara under stängda licenser. Och då har vi ändå bara hanterat utvecklarsidan och inte licenshanteringen gentemot kunder.
Skrivet av Nikkop:
Säg att jag vill att man får göra vad man vill med min mjukvara a-lá "Open Source-drömmen" - t.ex. sälja vidare den.
Ett krav för att en licens ska räknas som "fri" enligt FSF är att den måste tillåta kommersiell distribution av tredje part. Så för att uppfylla dina krav: välj vilken fri licens som helst.
GPL säger att du måste erbjuda källkoden under GPL-villkoren tillsammans med programmet vid distribution (observera att det kvittar om det är kommersiell distribution eller ej). Andra licenser kan ha mer eller mindre strikta krav.
En utvecklare kan plocka ett BSD-licensierat projekt (finns en del olika varianter på sådana licenser), stänga det och utveckla/sälja det på egen hand utan att någon annan får se koden igen. Det ger frihet till utvecklare/företag, men det begränsar användares rättigheter vad gäller öppenhet. För GPL-projekt så kan utvecklare/företag inte ta någon annans kod och stänga+sälja den, utan måste hålla den öppen vid vidaredistribution, vilket kan hävdas begränsar deras rättigheter, men däremot så är användarnas rättigheter vad gäller öppenhet garanterade. Båda är "fria licenser", men GPL sätter användares rättigheter i första rummet, BSD-liknande prioriterar utvecklares/företags rättigheter. Olika licenser passar olika bra för olika projekt.
Notera alltså att jag kan ta ett GPL-projekt och göra ändringar utan att behöva skicka tillbaka dessa till ursprungsprojektet eller ens tillgängliggöra dem, om jag inte tänkt distribuera programmet. Det är inte heller någon rättighet för någon annan att tvinga mig att visa upp mina ändringar. Det är inte ens en rättighet för någon annan att tvinga mig att visa upp mina ändringar för den personen även om jag säljer koden till andra — men däremot får jag inte inskränka dessa rättigheter hos de som jag sålt programmet (och då även koden) till.
Däremot så gagnar det alla parter om jag återger mina förbättringar till huvudprojektet, då alla andra kan ta del av dessa, och jag enklare kan ta del av andras förbättringar i framtiden. GPL uppmuntrar starkt till att ge tillbaka förbättringar till ursprungskoden, men det är faktiskt inte ett krav.