GPL og licenser – hvordan forbliver fri software fri?
I denne uges uddrag fra min kommende bog om fri software skal vi høre om, hvordan det er muligt at sikre, at et program, der udgives som fri software, også forbliver frit, så det altid er muligt at bruge, undersøge, forbedre og videregive det.
Løsningen på dette ligger i ophavsretten og den underlige konstruktion, der kaldes “copyleft” – at en forfatter kan give afkald på sin eneret til at udgive et værk på betingelse af, at andre altid giver det videre på samme betingelser som de fik det.
GPL og fri software – licens til at dele
Richard Stallman modtog i 1990 MacArthur-fondens “Genius Award” som anerkendelse af GNU-projektets store tekniske betydning. Og dog var Free Software Foundations og GNU-projektets største nyskabelse måske ikke af teknisk, men af juridisk karakter.
Et tilbagevendende problem med den uhæmmede videregivelse og deling af programmer i 70ernes hackerkultur var, hvad der ville ske, hvis et program, som en håbefuld programmør havde sendt ud i verden med den klausul, at alle måtte tage det og bygge videre på det og gøre med det, hvad de ville, faldt i hænderne på en person, der ikke var interesseret i at dele sit arbejde med andre. I værste fald kan et firma som Microsoft eller IBM tage et stykke fri software og bygge videre på det og lave et “plus-produkt”, som koster penge og ender med at udkonkurrere den frie udgave, fordi det er meget smartere. Nogle programmører af fri software interesserer sig kun for det tekniske og har ikke noget imod, at firmaer bygger deres programmer ind i kommercielle produkter. Men GNU-projektet har jo netop til formål at skabe et helt frit system, der kan bruges af alle. Hvis Microsoft eller en anden softwaregigant skaber et smart men lukket GNU+, som alle mennesker bruger i stedet, vil det være et nederlag.
Da Stallman i midten af 1970erne skabte de første udgaver af sit berømte tekstredigeringsprogram Emacs, var han allerede begyndt at formalisere hacker-etikkens fordring om kollektivt ejerskab af koden ved at bede folk om at bidrage til fællesskabet. Med Emacs fulgte “the Emacs License”, der stipulerede, at alle udvidelser skulle udleveres til Stallman. Han kom dog senere til den erkendelse, at dette krav var for vidtgående. Mange mennesker lavede mindre udvidelser, som de selv brugte i det daglige, men som ikke kunne betragtes som færdige. Det var små ting, som folk lavede til sig selv uden tanke om at udgive det, og egentlig ville det være en krænkelse af deres privatliv at kræve det udleveret. Problemet var der dog stadig: Folk kunne tage et GNU-program og udgive deres egen version i en rent binær form, så brugeren ikke havde adgang til kildekoden. Brugerne ville altid kunne skaffe den oprindelige version af et GNU-program ved at henvende sig til Free Software Foundation, men det hjalp ikke meget, hvis de ikke vidste det, eller hvis det var en “udvidet” udgave af programmet, de havde fået.
Stallman udformede derfor en simpel licenstekst, der tog udgangspunkt i programmørens ophavsret over programmet. Denne licens sagde, at brugeren af programmet havde ret til at bruge det og ret til at modtage kildeteksten og undersøge det, forbedre det og udgive egne versioner af det – de fire friheder – men ændrede versioner af programmet skulle altid udgives under de samme licensbetingelser. Licensteksten skulle udleveres sammen med programmet, så brugeren blev oplyst om sine rettigheder. Hvis dette kunne formuleres, så det var juridisk holdbart, ville problemet være løst. Almindelige brugere blev ikke pålagt at udlevere deres egne ændringer, så længe de ikke havde til hensigt at udgive eller sælge dem, men bordet fangede, lige så snart noget blev udgivet, fangede bordet. Kommercielle virksomheder ville derfor være tvunget til at udgive deres egne versioner af GNU-projektets programmer som fri software og oplyse deres kunder om de rettigheder, som licensen gav dem.
Stallman henvendte sig til en advokat, som han fik til at udarbejde en licenstekst, der på juridisk skudsikker vis ville gøre et program til fri software for alle brugere af programmet og samtidig ville forbyde, at ændrede versioner kunne udgives under andre vilkår. Resultatet blev første version af GNU GPL eller GNU General Public License, der i sine forskellige varianter er den vigtigste frie softwarelicens i dag.
Helt grundlæggende formaliserer GPL det enkle princip, at alle ændrede og forbedrede versioner af et program skal videregives på samme betingelser, som man modtog dem. Da virksomheder og andre aktører kunne tænkes at undergrave licensens ånd ved at pålægge deres egne versioner særlige juridiske eller tekniske begrænsninger og på den måde sno sig uden om pligten til at stille deres egne ændringer til rådighed, indeholder licensteksten også en lang række tekniske og juridiske betingelser, der skal forhindre den slags manipulation. I den første version af GPL var der ikke taget højde for, at et firma kan udvide et program ved hjælp af en teknologi, der er omfattet af et patent og herefter forbyde andre at videregive programmet, eftersom de ikke har ret til at bruge den patenterede teknologi. For at imødegå dette medtog man i anden udgave af licensen den såkaldte “Liberty or Death”-klausul. Denne klausul forbyder modtageren af et program at udgive en ændret version af programmet under GPL uden samtidig at give alle modtagere af programmet fuld tilladelse til at anvende eventuelle patenter uden yderligere vederlag.
Et andet eksempel er på en teknisk undvigelse af GPL er “tivoisering”, baseret på en metode, der blev indført af Tivo, som producerer de avancerede harddisk-optagere af samme navn. En Tivo er udstyret med en udgave af styresystemet GNU/Linux, som er specielt tilpasset denne harddisk-optager og blandt andet implementerer en lang række restriktioner, der bl.a. kan begrænse, hvilke TV-programmer, ejeren af apparater kan optage. GNU/Linux-systemet og de tilhørende værktøjer er omfattet af GPL. Tivo opfyldte også formelt GPLs krav ved at lægge kildekoden til deres ændrede version til download på nettet. En Tivo er imidlertid udstyret med firmware, der nægter at køre en udgave af systemet, som ikke er signeret med en særlig krypteringsnøgle, som Tivo ikke valgte at lægge ud sammen med ændringerne i kildekoden. Resultatet var, at Tivos brugere nok kunne downloade, undersøge og ændre kildekoden til GNU/Linux-systemet på deres Tivo-maskiner, men deres egne udgaver ville ikke kunne køre på en Tivo, eftersom brugeren ikke havde adgang til krypteringsnøglen. GNU/Linux-systemet på en Tivo-maskine er derfor i praksis ikke fri software. Systemet er tilpasset med nogle ændringer, der kun giver mening på en Tivo – men netop en Tivo kan brugerne ikke få lov til at køre deres egne ændringer på.
For at undgå dette smuthul er version 3 af GPL udstyret med den klausul, at hvis et program under GPL ændres for at tilpasse det noget bestemt hardware, og hvis denne hardware kræver, at det udførbare program signeres med en særlig krypteringsnøgle for at kunne afvikles, så skal denne krypteringsnøgle stilles til rådighed sammen med kildekoden. Version 3 af GPL lukker en række andre huller og indeholder derfor en hel del kompliceret juridisk sprog, men som udgangspunkt er betingelserne helt enkle. Du har ret til at bruge, undersøge, ændre og videregive et program under GPL. Du har derfor også ret til at få udleveret kildekoden til det, på den ene eller den anden måde – om du så kan downloade den fra nettet eller (som det var almindeligt i gamle dage) må skrive til en bestemt adresse for at få den tilsendt med posten.
Fortalen til GPL er et kapitel for sig og minder mere om et politisk manifest end om en slutbrugeraftale:
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program—to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
Selv om det måske er en underlig ting at sige om en softwarelicens, kan der ikke være nogen tvivl om, at det er historiens vingesus, vi hører, når vi læser denne tekst. Fri software er i dag, omend i nogen grad “bag facaden”, endog meget udbredt og faktisk ganske uundværligt for at få vores samfund og infrastruktur til at hænge sammen. Selv proprietære systemer som Microsofts Windows og Apples MacOS ville næppe være til at kende, hvis man tog al den frie software ud af dem. Og hvis der er noget, der har spillet en vigtig rolle i udbredelsen og ikke mindst beskyttelsen af fri software, er det GNU-projektets General Public License. GPL er blevet den gyldne standard for, hvordan programmer kan udgives som fri software på en måde, der sikrer at de også forbliver fri software.
Den grundlæggende idé i GPL kan siges at være “Den Gyldne Regel: “Gør mod andre, som du ønsker, de skal gøre mod dig”. Ophavsretslige bestemmelser med denne type betingelse kaldes med et ordspil på det engelske ord for ophavsret for copyleft. Det grundlæggende element i en copyleft-licens er, at det er tilladt at videregive og ændre det beskyttede materiale – men at det samlede værk skal videregives på de samme betingelser, som man modtod det. Det vil sige, at du skal tilbyde modtageren til hele det program, som du leverer til dem, inklusive alle dine egne ændringer eller tilføjelser.
GPLs regel om, at afledede værker skal udgives under samme betingelser som værket selv har ført til beskyldninger om, at GPL er en “virus”, som inficerer alle de programmer, der bruger den. Og det er da også sandt, at hvis man bygger et program under GPL sammen med et andet program, bliver det samlede program nødt til at være, om ikke under GPL, så under betingelser, der kan sameksistere med GPL – er “GPL-kompatible”, som man plejer at udtrykke det rent teknisk-juridisk.
Et eksempel på en mindre restriktiv er BSD-licensen, der bl.a. anvendes af styresystemet FreeBSD. FreeBSD er en direkte efterkommer af Berkeley Unix (BSD står for Berkeley Software Distribution, efter Berkeley-universitetet i San Fransisco). BSD-licensen er langt mindre restriktiv end GPL med hensyn til, hvad man må gøre med programmet.
Dybest set kan BSD-licensen, som forklaret på FreeBSDs hjemmeside www.freebsd.org, koges ned til to punkter:
- Please don't claim you wrote this.
- Please don't sue us if it breaks.
Hvis du ønsker at udgive et helt nyt system baseret på FreeBSD, er du altså forpligtet til, for eksempel ved at medtage en fil med licensteksten i installationsprogrammet eller ved at skrive det i et menupunkt, at fortælle, hvem der oprindelig har skrevet programmet. Du må også være klar over, at programmets oprindelige forfattere ikke påtager sig noget ansvar overhovedet for, hvordan det virker. Til gengæld er det muligt og tilladt at tage FreeBSD og lave dit eget private styresystem og sælge det, uden at du dermed er forpligtet til at give aftageren adgang til kildekoden. Du kan helt frit gøre det, som Stallman frygtede og for alt i verden ville undgå: Du kan tage et frit program og gøre det ufrit, proprietært. Faktisk er ét sådant system blevet meget populært, nemlig Apples styresystem MacOS, som oprindelig bygger på FreeBSD og har overtaget mange af Unix-systemets tekniske fordele. Den frihed, som Apple benyttede sig af, da de byggede deres indbydende og teknisk velfungerende system, har de dog ikke valgt at give videre til deres egne brugere.
Hvis man ønsker at tage to omtrent lige store programmer og bygge sammen til ét, så er det faktisk muligt, hvis det ene stykke kode er under en BSD-licens og det andet under GPL. Blot vil der gælde, at man skal kunne identificere de enkelte deles “oprindelse”, således at de dele af programmet, der oprindelig var under GPL, fortsat skal være under GPL, mens de dele, der oprindelig var under en BSD-licens, vil kunne ændres og videregives i overensstemmelse med BSD-licensen. Der er nemlig intet i BSD-licensens betingelser, der forhindrer folk i at lægge begrænsninger på den del af koden, der er omfattet af GPL, og der er intet i GPL, der forhindrer, at man distribuerer de dele af programmet, der er omfattet af BSD-licensen. Vi siger, at de to licenser er kompatible. Hvis to licenser for fri software ikke er kompatible, kan programmer omfattet af dem ikke lovligt kombineres til et nyt program.
Hvis du kombinerer et program udgivet under GPL med et andet program, kan licenserne kun være kompatible, hvis brugeren har adgang til kildekoden og til at udgive ændrede versioner af det samlede program. Hvis du kombinerer et program under GPL med et andet, vil begge programmer automatisk blive omfattet af de rettigheder til at ændre, undersøge og videregive programmet, som GPL giver brugerne. Bemærk, at betingelserne i GPL ikke medfører, at du er nødt til at udlevere programmet eller kildekoden til alle og enhver. Det er blevet almindelig praksis at lægge fri software på en offentligt tilgængelig side, f.eks. på Github, til ubegrænset download, men det er ikke obligatorisk. De fleste fri software-projekter ser det som en del af deres formål at stille deres arbejde til rådighed for offentligheden, men der er ikke nogen forpligtelse til at offentliggøre kildekoden. Licensbetingelserne sikrer, at enhver bruger af programmet har ret til at modtage kildekoden, men for at gøre krav på denne ret, må brugeren påberåbe sig det eksemplar af GPL, der fulgte med programmet. Det betyder, at de forpligtelser, der er indeholdt i GPL, kun omfatterne modtageren af et program – personer, der ikke allerede har modtaget det, har ikke krav på at få kildekoden udleveret.
Hvad sker der, hvis en virksomhed bliver en dag beslutter sig for at bygge et stykke software, der er omfattet af GPL, ind i sit eget system men “glemmer” at fortælle nogen om det? Rent juridisk er at computerprogrammers kildekode beskyttet af ophavsretten. Som modtager af et program har du ikke en ret til at udgive eller på anden måde videregive programmet, som du ikke eksplicit har fået af opretshaveren, det vil sige den oprindelige programmør eller dennes arbejdsgiver. GPL giver en sådan tilladelse, men kun på nogle nøje definerede betingelser, hvoraf den vigtigste er, at du skal oplyse brugerne om deres egne rettigheder under GPL, herunder til at få kildekoden udleveret.
Hvis du ikke vil acceptere disse betingelser, er der slet ikke nogen tilladelse til at videregive programmet, og den oprindelige programmør kan indbringe sagen for retten og kræve erstatning for krænkelse af sin ophavsret. Det særlige forhold, at proprietære systemer oftest distribueres uden kildekode, samtidig med at kildekoden til fri software under GPL næsten altid er gratis tilgængelig på nettet, har undertiden fristet enkelte firmaer, så de har valgt at “låne” programmer under GPL og bygge dem ind i deres egne systemer uden at gøre opmærksom på det. Det gælder ikke mindst producenter af routere og anden netværks-hardware, hvor de mest udbredte værktøjer til opsætning og kontrol er fri software, der er udgivet under GPL.
I USA er der siden 2007 rejst adskillige sager om mod en række store router-producenter(bl.a. Cisco og D-Link) om uberettiget anvendelse af sådanne værktøjerg anden hardware, men i de fleste tilfælde er sagerne endt med forlig, fordi GPL rent juridisk er så klart formuleret — producenternes advokater har ganske enkelt rådet dem til ikke at gå i retten med det.
En af de tidligste sager, som faktisk endte i retten, kan illustrere dette. Den tyske Linux-udvikler Harald Welte anlade sag ved retten i Frankfurt am Main, fordi producenten D-Link solgte en netværks-harddisk (en “Wireless G Network Media Storage DSM-G6000”) hvor der medfulgte en række værktøjer under GPL — herunder tre programmer, som Welte havde fået overdraget rettighederne til af deres oprindelige forfattere.
D-Link gjorde i deres forsvar blandt andet gældende, at den GPL-licens, der fulgte med de tre programmer, ikke udgjorde en forpligtende kontrakt mellem D-Link og softwarens producenter, og at GPL som kontrakt/licens slet ikke var gyldig, fordi den måtte opfattes som konkurrenceforvridende efter tysk lov. Derfor, mente de, var de ikke forpligtede til at overholde betingelserne i GPL.
Retten fandt til det første punkt, at licensen efter rettens mening godt kunne opfattes som en juridisk bindende kontrakt mellem D-Link og forfatterne af de tre programmer — men at det i modsat fald ikke ville have været til D-Links fordel, fordi der så slet ikke ville have været noget, der berettigede dem til at medtage de tre programmer i deres produkt.
Denne del af dommen lyder helt præcist:
In addition, if the GPL were not sufficient to form a legal relationship with Plaintiff, Defendant would not have any right to copy, distribute or modify the three programs, such that a copyright infringement by the Defendant would have taken place. In particular, the conditions of the GPL can in no case be interpreted to contain a waiver of legal positions afforded by copyright law. The GPL precisely stipulates that the freedom to use, modify and distribute the corresponding software initially afforded by way of a grant of a non-exclusive license to everyone is automatically terminated upon a violation of the GPL.
Til argumentet om at GPL ikke er gyldig som licens, fordi den kan virke konkurrenceforvridende, svarer retten i sin afgørelse, at det behøver den slet ikke at tage stilling til:
It need not be decided whether, as Defendant argues, the provisions of the GPL violate Article 81 EC and Section 1 of the German Antitrust Act (GWB), in particular the prohibition against price fixing and of predetermining the conditions of secondary contracts in the first contract. This would, according to Section 139 of the German Civil Code (BGB), result in the invalidity of the entire license agreement with the consequence that Defendant would not have a right of use in the software at all, so that Plaintiff could file a copyright infringement claim for that reason. If an agreement is partly invalid, the entire transaction is invalid pursuant to Section 139 of the German Civil Code (BGB), unless it can be assumed that the parties would carry out the transaction without the invalid part. This is not the case here. Since the parties agreed on the grant of the license being subject to the condition subsequent of compliance with the GPL, the possibly invalid part [of the GPL] (Sec. 2 of the GPL) is inseparably connected to the primary obligation, i.e. the grant of the license.
GPLs styrke er blandt andet, at den aldrig forbyder nogen at bruge de programmer, den omfatter. Det er først i det øjeblik, at brugeren selv videregiver programmet til andre, at GPLs licensbeskyttelse sætter ind. Ifølge lov om ophavsret har man ingen som helst ret til at distribuere et værk uden udtrykkelig tilladelse fra ophavsmanden. Den juridiske beskyttelse af et værk er altså meget stærk i alle lande med en retslig beskyttelse af ophavsretten. D-Links forsvar, at GPLs licensbetingelser var urimelige og kunne skade dem over for deres konkurrenter, gav dem ikke ret til at bryde betingelserne — det betød bare, at der ikke var noget, der gav dem ret til at bruge programmerne som en del af deres eget produkt.
GPL, hvis bestemmelser D-Link ikke ville acceptere, var det eneste, der i den situation kunne have givet dem ret til det. Dommeren afgjorde derfor, at firmaet skulle betale klagerne 2.080,50 euro i erstatning samt retsomkostninger og timeløn for den tid, Harald Welte brugte på at bevise, at D-Link faktisk havde overtrådt licensen.
Og det er netop, fordi betingelserne i en licens som GPL er så klare og udnytter principperne i ophavsretten, at den så effektivt kan sikre, at de programmer, den omfatter, både er og faktisk forbliver fri software, som alle har ret til at bruge, undersøge, forbedre og videregive.
Copyright 2025 Carsten Agger — CC-BY-SA
Follow me on Mastodon!.