Mag je licentie-incompatibele dependencies meeleveren met je software?

Een lezer vroeg me:

Bij veel opensourcepakketten heb je allerlei extra software nodig, zogeheten dependencies. Soms is deze extra software meegeleverd met het pakket, maar vaak niet. Je moet dan maar hopen dat het via de repository van je Linux-distributie beschikbaar is. Ik had vernomen dat dat soms een juridische keuze is, hoe zit dat?

Het lijkt zo logisch om, als je eigen software afhankelijk is van andermans open source, die open source mee te leveren. Het is immers gewoon toegestaan om open source software te verspreiden, dat is het hele punt van open source. Het doet dus wat raar aan dat je bepaalde open source niet mee mag leveren.

De reden dat het soms toch niet kan, zit hem in de licentievoorwaarden. Sommige opensourcelicenties (met name de GNU GPL) eisen dat zogeheten afgeleide werken alleen mogen worden gedistribueerd onder die licentie. Als de licentie van het andere werk dit niet toestaat – zogeheten licentie-incompatibiliteit – dan is het dus niet mogelijk die twee samen te verspreiden.

Wat precies een afgeleid werk is, is al decennia een lange discussie, maar goed verdedigbaar is dat gebruik van een dependency daaronder valt. Heb je een specifiek ander stuk software nodig, dan bouw je voort op dat andere stuk software en dus ben je daar een afgeleide van. Hoewel ook goed verdedigbaar is dat je dan alleen functionaliteit aanroept, en dat valt buiten het auteursrecht en dus ook buiten de licentiescope. Maar als je dus zegt dat inroepen van dependencies jouw software een afgeleid werk daarvan maakt, dan moeten de licenties van de software en de dependencies allemaal compatibel met elkaar zijn.

Het gekke is dat het wél toegestaan is – ongeacht compatibiliteit – om te melden welke dependencies er gelden en de gebruiker die zelf te laten downloaden en installeren. Dat mag je zelfs automatiseren met een handig installatiescript of package manager-functionaliteit. Opensourcelicenties zijn namelijk distributielicenties, oftewel de voorwaarden gelden pas bij distributie. Wie alleen downloadt en gebruikt, heeft dus niets te maken met compatibiliteit van eventuele licenties.

Arnoud

Maakt linken van een GPL bibliotheek je software automatisch GPL?

Intrigerende discussie in de comments vorige week: als je programma linkt tegen een GPL open source library, is je programma dan alleen onder de GPL te verspreiden? Immers, de GPL zegt dat je afgeleide werken alleen onder de GPL mag verspreiden. En wat is er nu meer afgeleid dan een programma dat noodzakelijkerwijs een library gebruikt? Het programma wérkt niet zonder de library. Maar Europees auteursrechtelijk waag ik dat toch te betwijfelen.

De term ‘afgeleid werk’ is een tikje ongelukkig. De term komt uit het Amerikaans auteursrecht; in Europa kennen we alleen de ‘verveelvoudiging in gewijzigde vorm’, oftewel een kopie, al dan niet aangepast, van (een deel van) het werk. Dat klinkt inderdaad wat beperkter, en dat is het volgens mij ook.

In de SAS/WPL-uitspraak heeft het Hof van Justitie de grenzen getrokken van het software-auteursrecht. In die zaak beriep SAS zich op een auteursrecht voor haar programmeertaal en functionaliteit daarin, maar gedaagde WPL kreeg gelijk, zo’n auteursrecht bestaat niet.

Auteursrecht op software bestaat volgens de hoogste Europese rechter alleen op de broncode en de daarvan afgeleide uitvoerbare code. Men noemt dit de ‘uitdrukkingswijzen’ en daaronder wordt alleen datgeen verstaan dat tot “reproductie van het computerprogramma of tot het computerprogramma zelf kunnen leiden”. Je moet dus, kort gezegd, met wat er overgenomen of gebruikt is in het andere werk, het originele programma zelf althans gedeeltelijk kunnen terugvinden.

Bij het gebruik van een software library roep je in je eigen programma een functie aan, waarna de implementatie van de library wordt uitgevoerd om de betreffende functionaliteit te realiseren. In het SAS/WPL arrest ging het om functies uit een programmeertaal, maar ik zie het verschil niet met een API van een specifieke bibliotheek. In feite is de implementatie van een programmeertaal ook een library (of set libraries) die je middels een API aanroept. Wil je in C een tekst op het scherm, dan zeg je printf("Hello, world!");, waarna libc de implementatie daarvan uitvoert, en wil je bij GNU readline een regel invoer verkrijgen dan zeg je readline(my_prompt);, waarna readline de implementatie daarvan uitvoert. Dat is technisch volgens mij dus hetzelfde.

Meer algemeen, als het aanroepen van een functie van een bibliotheek zou meebrengen dat je het auteursrecht op die bibliotheek schendt, dan zou het auteursrecht dus in feite de functionaliteit beschermen die achter de functie zit. En dát is nadrukkelijk niet de bedoeling in het Europese auteursrecht.

Gelet op deze overwegingen moet worden geconstateerd dat, wat de elementen van een computerprogramma betreft (…), noch de functionaliteit van een computerprogramma, noch de programmeertaal en de indeling van gegevensbestanden die in het kader van een computerprogramma worden gebruikt teneinde de functies daarvan te benutten, een uitdrukkingswijze van dit programma vormen in de zin van [het auteursrecht].

Het opnemen van een functie-aanroep in je programma (zoals printf("Hello, world!"); of readline(my_prompt);) kan dus niet leiden tot een auteursrechtinbreuk op libc of GNU readline, omdat die functie-aanroep nog geen uitdrukkingswijze van het programma libc dan wel readline vormt. Pas als je code zou overnemen, ook in gedeelten, zou er inbreuk kunnen ontstaan.

Wat de GPL of de FSF zeggen over afgeleide werken, linken of Complete Corresponding Source doet er hierbij volstrekt niet toe: je komt pas aan terminologie uit een licentie toe als er sprake is van inbreuk. Pas dan zou de aanroeper van de software immers hoeven te zeggen “geen inbreuk, ik heb een licentie”.

Het argument uit Oracle/Google dat het maken van de API zélf creatief is, gaat hierbij niet op. In die zaak werd Google’s API-kloon van Java inbreukmakend geacht omdat Oracle creatieve arbeid had gestoken in het definiëren daarvan. Maar dat was natuurlijk ook het geval bij de SAS programmeertaal waarvoor WPL programma’s maakte. De functionaliteit, dus ook hoe de functies heten, wat ze doen en welke parameters en return values daarbij horen, is geen “uitdrukkingswijze” van het programma.

Een complete reproductie van de API zou mogelijk wél inbreuk kunnen zijn. In de SAS/WPL uitspraak stond ook de eigen handleiding van WPL ter discussie, waarin elke functie was opgenomen (maar volgens mij ook stukken tekst uit de documentatie van SAS). Dit is iets dat de rechter per geval moet onderzoeken: hoe veel is er overgenomen en hoe creatief is hetgeen overgenomen is? Mogelijk dat bij een handleiding het citaatrecht nog een verweer kan zijn, maar bij een volledige overname met als doel een interface-compatibele kloon te schrijven twijfel ik zeer of dat opgaat. Maar wellicht biedt dit dan een lichtpuntje:

In deze context moet worden gepreciseerd dat indien een derde een gedeelte van de bron- of doelcode betreffende een voor een computerprogramma gebruikte programmeertaal of indeling van gegevensbestanden zou aanschaffen en hij met behulp van deze code soortgelijke elementen in zijn eigen computerprogramma zou creëren, deze handeling mogelijkerwijs een gedeeltelijke reproductie in de zin van [het auteursrecht] zou opleveren.

Het lijkt dus echt nodig dat er ook broncodes worden overgenomen. En puur de definities van de functies voldoen niet snel aan die eis.

Wat vinden jullie? Is er een wezenlijk verschil tussen een API van een of andere bibliotheek aanroepen versus de functies uit een programmeertaal? Maakt het uit of er maar één implementatie van die API+bibliotheek is? Of zijn er andere redenen om een API-aanroep toch inbreuk op het auteursrecht te noemen?

Arnoud

After-dinner dip: mijn lezing over GPLv3, 13 november

vira.jpgOp 13 november organiseert de Vereniging Informaticarecht Advocaten een studiemiddag/avond over open source software (meelezende advocaten: 5 PO punten!). Drie keer raden wie er over GPLv2 versus GPLv3 mag komen vertellen.

De organisatie was zo vriendelijk mij na de borrel en het diner in te plannen, dus dat kan nog leuk worden.

Arnoud

Nederlandse vertaling van GPLv3

Collega-blogger en advocaat Bart Beuving heeft samen met kantoorgenoot Maurits Westerik een inofficiële vertaling van GPL versie 3 gemaakt. Deze vertaling kan niet worden gebruikt als vervanging van de Engelstalige GPLv3, maar is erg nuttig voor wie moeite heeft met de vaak cryptische Engelse terminologie in de open source licentie.

Mijn complimenten voor Bart en Maurits voor het uitstekende stuk werk dat ze hier hebben afgeleverd.

Wie na het lezen van de vertaling nog steeds worstelt met GPLv3, heeft wellicht wat aan mijn artikel Uit principe: de GNU General Public License (GPL) versie 3.

Arnoud

Nieuw op Iusmentis: Uit principe: de GNU General Public License (GPL) versie 3 (in Software > Open source software @ iusmentis.com)

Versie 3 van populairste open source licentie introduceert vérgaande verboden op octrooien, technische voorzieningen en beperkt toegankelijke hardware.

Na vijftien jaar is er dan eindelijk een derde versie van de GNU General Public License. De reden: onvrede over bepaalde praktijken in de open source wereld. In dit artikel, gepubliceerd in het juridisch tijdschrift Computerrecht bespreekt ICT-jurist en octrooigemachtigde Arnoud Engelfriet de nieuwe bepalingen in GPL versie 3. Download het artikel (PDF, 1.7 MB).

Lees verder in Uit principe: de GNU General Public License (GPL) versie 3 (in Software > Open source software @ iusmentis.com).

Arnoud

The Jem Report: The real heart of the GPLv3 rift

Alweer een zeer juiste observatie over GPL versie 3 in The Jem Report:

With events like Eben Moglen’s bizarre tirade against Tim O’Reilly, the FSF leadership (even though Moglen is no longer officially a leader, he still acts as a spokesperson) is appearing more like a group of religious extremists, and less like programmers intent on creating free replacements for proprietary programs. The FSF’s focus is increasingly to protest, boycott, censure, and exclude all things it does not find morally agreeable. By contrast, it is the open source community that is doing all the real work — the coding, the documentation requesting, and the reverse-engineering. The rift is forming primarily between the people who do the talking, and the people who do the actual software development. This has come to mean a rift between free software, which for all its bluster and bombast has failed miserably to produce a complete GNU operating system; and open source, which has produced many financially and/or technologically successful operating systems over virtually the same period of time.

Inderdaad. Open source is een ontwikkelmodel. Vrije software is een sociale beweging.

Alleen die laatste opmerking over “complete GNU operating system” is niet helemaal terecht. De Hurd kan na vijftien jaar ontwikkelen echt wel opstarten. Die oude grap

Q: What’s the difference between GNU and Linux?
A: Linux has a kernel that boots.

is dus echt achterhaald.

Lees verder in The real heart of the GPLv3 rift.

Arnoud

CIER lezing: Uit principe – de GNU General Public License versie 3

Gisteren gaf ik een lezing over GPL versie 3: Uit principe – de GNU General Public License versie 3. De bijbehorende tekst staat nu via CIER online en verschijnt ook in het eerstvolgende nummer van Computerrecht (2007/5).

Het was een grote uitdaging om deze complexe licentie op een duidelijke manier toe te lichten, maar ik heb wel het gevoel dat het een eind gelukt is.

Een aantal mensen had me nog gevraagd om de sheets, maar die verspreid ik normaal niet. Sheets gebruik ik alleen ter ondersteuning van mijn verhaal, en ze zijn dan ook nauwelijks op zichzelf te begrijpen. Een voorbeeldje:

driesheets1.PNG

Dat doet me er aan denken dat ik al een tijd weinig over presenteren heb geblogd. Het ligt ook een beetje buiten het onderwerp internetrecht. Desondanks: zou u, beste lezer, hier meer over willen zien?

Arnoud

Niet vergeten: mijn lezing over GPL versie 3 bij het CIER in Utrecht

Voor wie wil horen waar GPL versie 3 nu eigenlijk over gaat: komt allen volgende week -3 oktober dus- naar het Molengraaff Instituut voor Privaatrecht, Drift 9 te Utrecht. Wel even opgeven bij CIER.

GPLv3 is tegen. Tegen DRM, tegen software-octrooien en vooral tegen bedrijven die hun hardware beperkt toegankelijk maken. En dat is een slechte zaak voor open source. Waar versie 2 een goede, pragmatische basis voor samenwerking bood, dringt versie 3 van de populairste open source licentie een rigide ‘vrije software’ regime op. Dit regime verstoort de balans die ten grondslag ligt aan het zo succesvolle model van open source. En daarmee is GPL versie 3 in feite tegen open source.

Arnoud

Linus: Liever GPL versie 2

Linus Torvalds spreekt: liever GPL versie 2 dan versie 3, zo meldt Tweakers.

‘Ik vind niet dat het een ‘verschrikkelijke’ licentie is,’ antwoordde Torvalds op de vraag van EFYTimes onder welke omstandigheden hij het onder de gplv3-licentie uitbrengen van de Linux-kernel zou steunen, ‘Ik vind alleen niet dat het eenzelfde soort ‘geweldige’ licentie is als gplv2.’ Alleen als de tweede versie van gpl er niet zou zijn, zou Torvalds overwegen van versie drie gebruik te maken: ‘Maar aangezien ik een betere keuze heb, waarom zou ik?’

In eerste instantie was Torvalds een van de grootste critici van GPL versie 3.

Hij noemt verder GPL versie 3 ‘egoïstisch’: waar versie 2 slechts eiste dat uitbreidingen werden gedeeld, wil versie 3 ook nog eens bepalen hoe iemand de code mag gebruiken. Iets waar ik het helemaal mee eens ben.

Arnoud

Zit Microsoft aan GPLv3 vast?

GPL versie 3 is tegen Microsoft. En helemaal tegen die man die die creatieve deal met Novell bedacht heeft, waarbij Microsoft tegen betaling octrooilicenties geeft aan klanten van Novell voor het gebruik van SuSE Linux. Dus liep GPLv3 acht maanden achterstand op met als doel een constructie te verzinnen waardoor Microsoft nu aan GPL versie 3 hangt.

Op het eerste gezicht lijkt dat raar. Microsoft verspreidt geen GPL versie 3 software, en heeft dus geen GPL licentie nodig zou je zeggen. Bovendien, alleen de licentietekst aanpassen is niet genoeg. Microsoft moet ook iets doen waaruit blijkt dat ze akkoord zijn met de licentie. Zo meldde Slashdot onlangs dat een advocaat heeft gezegd (jaja, betrouwbare bronnen) dat Microsoft niet aan GPL versie 3 vastzit. Want, zo vertelt ze:

The strategy, Lam-Beattie said, will ultimately fail because parties have to willingly enter contracts, and contracts can’t be retrospective.

In this case, she said, Microsoft never acted – never ‘entered’ into the agreement, and the terms and conditions can only apply to new actions by Microsoft, not older ones. She said: “Their actions so far are not enough to say that they are bound.”

Maar het gaat niet om het feit dat Novell en Microsoft ooit een overeenkomst sloten en dat daardoor Microsoft nu aan GPL versie 3 vastzit. Dat kan inderdaad niet. “Iedereen die vorig jaar een contract sloot met Novell, verklaart zich daarmee nu alsnog akkoord met mijn licentie.”

Dat stukje “willingly” is gedeeltelijk waar. Je kunt in principe niet aan een contract gebonden worden tegen je wil. Maar als jij doet alsof je het wel wilt, kun je achteraf niet zeggen dat je het eigenlijk stiekem toch niet wilde. Als je iets doet waaruit blijkt dat je akkoord bent met de licentie, kun je daarna niet meer roepen dat je dat eigenlijk niet wilde. Zeker bij auteursrecht. Stel je verspreidt software. Dan ben je of akkoord met de licentie, of je bent auteursrecht aan het schenden. Wat is nu het meest logisch? Ik zou zeggen dat je akkoord bent met de licentie.

Nee, het plan is anders. En het gaat wel degelijk over toekomstige activiteiten. Zoals ik al schreef op Livre: Novell gaat straks GPL versie 3 software verspreiden, en Microsoft geeft Novell-klanten daar een octrooilicentie op. Maar GPL versie 3 eist dat Novell zo’n licentie voor de hele wereld had moeten afsluiten. Dus Novell schendt de GPL door toch te verspreiden met zo’n beperkte licentie.

Microsoft zet Novell daartoe aan. We weten uit de Amerikaanse Grokster-uitspraak dat “aanzetten tot inbreuk” ook inbreuk op het auteursrecht is (wat laatst nog bij een pornozaak aan de orde was). En de GPL zegt dat je je akkoord verklaart met de GPL door iets te doen dat normaal inbreuk is. Dus Microsoft zit nu vast aan GPL versie 3 en licentieert daarmee al haar octrooien gratis aan de hele open source gemeenschap. Pardon, vrije software gemeenschap.

Arnoud