Commercieel gebruik van Open Source bibliotheken

Als Open Source dienstverlener kom je nog wel eens voor verrassingen te staan. Het merendeel van de commerciële software die wij maken leunt op Open Source bibliotheken. Dit stelt ons in staat om sneller en beter software te maken. Echter, Open Source is niet zonder verplichtingen. Bijna alle Open Source bibliotheken hebben een licentie in ??n of andere vorm. De voorwaarden in deze licentie moeten worden nagekomen anders is er kans op juridische problemen.


Laat ik een voorbeeld geven:

Meestal is het een resultaatgerichte ziel die ‘even’ een bibliotheek downloadt om snel een stuk functionaliteit te realiseren. Uiteraard wordt er op zo een moment niet gekeken naar de licentie. Dat komt pas véél later. De functionaliteit is gereed en geïntegreerd in het eind product, klaar voor oplevering. Pas dan ontdekt de projectverantwoordelijke dat deze bibliotheek de gebruiker verplicht om ook zijn source code vrij te geven. Dat is natuurlijk niet de bedoeling van duurbetaalde maatwerk software. De bibliotheek in kwestie wordt geschrapt en de functionaliteit moet opnieuw worden geïmplementeerd, uiteraard met de nodige vertraging tot gevolg.

In het bovenstaande scenario kwam men er net op tijd achter. Als dat niet was gebeurd had de eigenaar later voor verrassingen kunnen komen te staan. Bekende bedrijven die een soortgelijke situatie al een keer hebben meegemaakt zijn onder andere Asus, TomTom en D-Link.

Beter is het natuurlijk om al tijdens het bouwen van de software te weten welke bibliotheken en welke licenties er gebruikt worden. In onze ontwikkelstraat gebruiken we Apache Maven voor bibliotheek management. In Maven zitten verschillende rapportages waaronder het “project-info dependencies rapport”. Dit rapport heeft een aparte sectie waarin alle gebruikte licenties staan. Maar wat houden die licenties precies in?

 



De tekstuele inhoud van de licenties zijn vrij eenvoudig te vinden op internet. Echter, de inhoud is juridisch geformuleerd. Dat maakt het er niet eenvoudiger op. Globaal kan je de licenties indelen in twee soorten.
Ten eerste licenties die vereisen dat je eigen source code ook beschikbaar maakt voor iedereen die de software gebruikt of heeft. De term ?virale? licenties wordt wel eens gebruikt in deze context.
Ten tweede licenties die dit soort eisen niet stellen. Deze licenties worden de ‘permissive licenses’ genoemd.

De bekendste Open Source licentie, de GNU General Public License, kortweg GPL, is een voorbeeld van een licentie die vereist dat je eigen source ook beschikbaar maakt. Echter er zitten een paar interessante inhoudelijke details aan vast. In een volgende posting zal ik verder ingaan op die GPL en op een aantal andere licentievormen.