Commercieel gebruik van Open Source bibliotheken, deel twee

In de vorige posting over dit onderwerp gaf ik aan dat bij bibliotheken die gepubliceerd zijn onder de GNU General Public License (GPL) de licentie afdwingt om van alle software die er gebruik van maakt ook de source code daarvan beschikbaar te maken voor een ieder die de software gebruikt.

Dat klinkt vrij drastisch en je zou bijna gaan denken dat het gebruik van GPL database drivers zoals die van MySQL in een private applicatie inhoudt dat ook daarvan de source code publiek gemaakt moet worden. Gelukkig is dat niet altijd zo. Deze blogposting vertelt over twee interessante uitzonderingen.


De eerste uitzondering betreft applicaties die privé of binnen een bedrijf worden gebruikt en niet daarbuiten. De applicatie wordt dus niet aan derden geleverd en dus is de verplichting om de source code ter beschikbaar te stellen niet van toepassing. Dit geldt ook voor publieke web-applicaties waarbij de uitvoerbare code privaat op de server blijft en alleen de gebruikersinterface door middel van HTML getoond wordt. Uiteraard blijft het onmogelijk om de software aan derden beschikbaar te stellen zonder de source code.



De tweede uitzondering kan gemaakt worden op het moment dat de applicatie in kwestie ook prima functioneert zonder de, of met een andere vergelijkbare, bibliotheek in kwestie en de gebruiker van de applicatie deze zelf moet installeren. In het voorbeeld van hiervoor communiceert de web applicatie zeer waarschijnlijk via de JDBC (Java Database Connectivity) API met de MySQL driver. JDBC maakt het mogelijk om op een uniforme manier met databases te communiceren zonder gebruik van bibliotheek specifieke functies. Op deze manier kan de applicatie dus onafhankelijk zijn van specifieke GPL bibliotheken en kan het als gesloten source product geleverd worden aan derden.



Als reactie op de eerste, door sommigen een gat in GPL genoemde, mogelijkheid is er een nieuwe licentie in het leven geroepen die voorkomt dat web applicaties hun source code voor zichzelf kunnen houden:



De GNU Affero GPL (AGPL) stelt wanneer de gebruikers interface of de resultaten van de bibliotheek publiekelijk toegankelijk zijn (zoals bijvoorbeeld bij een web-applicatie op het internet) diezelfde server ook de source code van de applicatie moet aanbieden als download. Een recent voorbeeld van een bibliotheek die deze licentie is gaan gebruiken is iText PDF. Sinds versie 5.0 valt deze bibliotheek onder de AGPL.



Deze licentievorm kan in een publieke commerciële omgeving niet gebruikt worden, tenzij er een commerciële licentie voor wordt aangeschaft. En dat brengt het onderwerp op meervoudig licentiëren van software, waar ik de volgende keer wat over zal bloggen.