Home / Nieuws & Blogs / Wanneer geldt de GPL bij open source webapplicaties?

Wanneer geldt de GPL bij open source webapplicaties?

| 5 april 2012

De GPL oftewel de General Public License is de bekendste en meest gebruikte opensourcelicentie. Kort gezegd komt de GPL  erop neer dat software onder deze licentie alleen mag worden verspreid inclusief broncode. Alle ontvangers mogen dan deze broncode aanpassen en verspreiden, mits zij dat ook weer onder de GPL doen. Zo ontstaat een steeds grotere bron van opensourcesoftware. Bij klassieke software gaat dat goed, maar bij webapplicaties kun je je afvragen wat "verspreiding" betekent.

De term "verspreiding" suggereert fysieke distributie, oftewel het verstrekken van een kopie aan een ander. Dat sluit ook aan bij hoe het auteursrecht werkt, er is pas sprake van inbreuk op het auteursrecht als je het werk "verveelvoudigt" (kopieert) of "openbaar maakt" (aan anderen beschikbaar stelt). Maar bij SaaS en webapplicaties is daar niet echt sprake van. De software verlaat de server niet, men ziet de uitvoer en kan interacteren via de geboden interface, en dat is het dan.

Dit betekent dus dat de GPL eigenlijk geen consequenties kent voor webapplicaties. Men mag deze software aanpassen en uitrollen naar klanten toe, zonder eigen aanpassingen te hoeven delen. Deze worden immers niet verspreid, en de GPL legt pas eisen op bij verspreiding.

Voor sommige SaaS- ontwikkelaars is dit een doorn in het oog, want zo kan iedereen profiteren van hun inspanningen zonder hun eigen bijdragen terug te hoeven geven. Je ziet dan ook soms wat creatieve lezingen van de GPL in deze context. Zo wordt er nog wel eens gezegd dat het "openbaar uitvoeren" van de software (dus als webapplciatie beschikbaar stellen) onder de term "beschikbaarstelling" valt.

Die lezing kán echter niet opgaan, want de GPL (versie 3) is daar heel duidelijk over:

Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

Wie dergelijke interactie toch wil koppelen aan de plicht om broncode beschikbaar te stellen, moet dan ook de aparte Affero GPL gebruiken. Deze vermeldt letterlijk:

if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.

En daar is geen woord onduidelijk aan. Wie de software aanpast, moet alle gebruikers een downloadlink geven naar de aangepaste broncode.

Soms kan het echter tóch zo uitpakken dat een GPL-gelicentieerde webapplicatie niet zomaar kan worden gebruikt. Een applicatie in Javascript die in de browser draait, wordt immers gewoon "verspreid" net zoals een klassieke download. We noemen zo'n applicatie wel een "webapplicatie" maar het is wezenlijk anders dan een op de server draaiende applicatie.

Een voorbeeld is het pakket Ext.JS van Sencha. Deze Javascriptlibrary wordt geïntegreerd met eigen Javascriptsoftware en verspreid naar gebruikers. Die software moet dus als geheel onder de GPL worden geplaatst.

Twijfelachtig is echter hoe het zit met eventuele serverside componenten die met die Javascriptsoftware samenwerken. Sencha zelf zegt dit hierover:

Even if only the front-end uses Ext JS code, you should consider that the combination of front and back ends constitutes the application, and the source code for both back and front end would need to be provided to the application’s end users under GPLv3 if the application is used by an end-user who is not part of the same legal entity that holds the GPLv3 license to the Ext JS code.

Het is echter algemeen aanvaard dat een serverprogramma geen afgeleid werk is van een clientprogramma, ook niet als ze speciaal ontworpen zijn om met elkaar samen te werken. Een applicatie die met een database samenwerkt, is geen afgeleid werk van de database (of omgekeerd). Het zijn samenwerkende applicaties, meer niet.