La version 0.8 de ZFS sur Linux est disponible depuis le mois de mai de l’année précédente avec beaucoup de promesses : prise en charge de la suppression de périphériques, possibilité d’exploiter l’interface d’entrée/sortie directe du noyau, suppression de TRIM/DISCARD pour les disques SSD, etc. Parmi les plus remarquées, le support natif du chiffrement et celui d’envoi/réception chiffré censés apporter un plus en matière de confidentialité. ZFS sur Linux est l’un des moyens dont les utilisateurs de distributions basées sur le célèbre noyau open source usent pour pouvoir tirer parti du système de fichiers mis sur pied par Sun Microsystems (devenu propriété d’Oracle en 2009). En effet, ZFS ne peut être inclus dans le noyau Linux pour raison d’incompatibilité de licences logicielles.
Détails du rappel d’histoire : le système de fichiers ZFS est le produit de Matthew Ahrens et Jeff Bonwick qui l’ont lancé en 2001. ZFS était premièrement destiné à OpenSolaris de Sun Microsystems comme système de fichiers de prochaine génération. En 2008, ZFS a fait l’objet de portage sous FreeBSD. La même année, un projet a été lancé pour porter ZFS sur Linux. Cependant, puisque ZFS est sous licence CDDL (Common Development and Distribution License) incompatible avec la GNU GPL (General Public License), il ne peut pas être inclus dans le noyau Linux.
Peu de temps après qu’Oracle ait acheté Sun Microsystems, OpenSolaris est devenu un logiciel à code source fermé. Tous les développements ultérieurs de ZFS sont également devenus des logiciels à code source fermé. Beaucoup de développeurs de ZFS étaient mécontents de cette tournure des événements. Deux tiers des principaux développeurs de ZFS (dont Ahrens et Bonwick) ont quitté Oracle à cause de cette décision. Ils ont rejoint d’autres sociétés et ont créé le projet OpenZFS en septembre 2013. OpenZFS et ZFS s’appuient sur la même licence open source (CDDL), ce qui fait que la plupart des distributions Linux usent de méthodes alternatives pour installer ZFS.
Dans une publication parue il y a peu, Linus Torvalds attire l’attention sur le système de fichiers qu’il classe comme étant à problèmes pour plusieurs raisons. Torvalds formulait son opinion sur la question en réponse à une préoccupation d’un développeur liée au système de fichiers ZFS.
Le créateur du noyau Linux dit qu’il refuse d’intégrer le module ZFS au noyau parce qu’il ne peut pas risquer un procès de la part d’Oracle – qui a traîné Google devant les tribunaux pour violation de copyright sur son utilisation des API Java dans Android – et Torvalds ne le fera pas tant que le fondateur d’Oracle, Larry Ellison, n’aura pas approuvé son utilisation dans le noyau Linux.
« Si quelqu’un ajoute un module du noyau comme ZFS, qu’il sache qu’il ne bénéficie d’aucun soutien. Je ne peux pas le maintenir et je ne peux pas être lié par les changements apportés au noyau par d’autres. Et honnêtement, il n’est pas envisageable d’intégrer ZFS avant d’avoir reçu une lettre officielle d’Oracle (signée par leur principal conseiller juridique ou de préférence par Larry Ellison lui-même) qui nous y autorise et qui stipule que le produit final sera sous licence GPL. Certaines personnes pensent qu’il est envisageable d’intégrer ZFS au noyau et que l’interface du module fait l’affaire. C’est leur décision, mais étant donné la nature litigieuse d’Oracle et les questions de licence, je ne me sentirais pas en sécurité si je le faisais », déclare-t-il.
Sur la foire aux questions du projet ZFS sur Linux, les développeurs expliquent le problème de licence : « Bien que les deux soient des licences libres et open sources, ce sont des licences restrictives. Leur combinaison pose des problèmes, car elle empêche d’utiliser des morceaux de code exclusivement disponibles sous une licence avec des morceaux de code exclusivement disponibles sous l’autre dans le même binaire. Dans le cas du noyau, cela nous empêche de distribuer ZFS sur Linux comme partie du binaire du noyau. Cependant, il n’y a rien dans les deux licences qui empêche de le distribuer sous la forme d’un module binaire ou sous la forme de code source. »
Linus va même plus loin : il écarte toute proposition qui vise à combiner les deux projets aux licences incompatibles via des mécanismes d’interception d’API, car là encore, le procès des API Java donne matière à réfléchir.
« N’utilisez pas ZFS. C’est aussi simple que ça. C’est, de mon point de vue, plus un mot à la mode qu’autre chose, et les problèmes de licence me positionnent en mode non-partant », a-t-il conclu.