Articles

FUSE pour macOS: Pourquoi une bibliothèque open source populaire est devenue source fermée et sous licence commerciale

Interview En mai de cette année, les utilisateurs du projet open source populaire FUSE pour macOS ont remarqué que le code source de la dernière mise à jour manquait. Le projet était devenu source fermée et n’était plus gratuit pour un usage commercial. Mais comme le Reg l’a découvert lorsque nous avons discuté avec son responsable, il y avait une très bonne raison à cela – et ce n’est pas un bon coup d’œil pour les nombreuses entreprises qui l’ont utilisé.

FUSE signifie File System in Userspace et permet aux développeurs de créer un système de fichiers personnalisé sans écrire de code pour le noyau. Si vous avez une base de données ou un système de stockage en nuage, par exemple, et que vous souhaitez qu’elle apparaisse au système d’exploitation comme un autre ensemble de fichiers et de dossiers, vous pouvez utiliser FUSE.

FUSE a une longue histoire. Il a été créé pour Linux et porté sur d’autres systèmes d’exploitation de type Unix, notamment FreeBSD et OpenSolaris. En 2007, Google a publié un port pour Mac OS X en open source. En 2011, cela a été bifurqué pour devenir osxfuse, plus tard renommé FUSE pour macOS.

La newsletter du registre

Ensuite, il y a sept mois, les utilisateurs ont observé que le code source de la dernière mise à jour manquait, bien que le binaire compilé ait été publié. « C’est exprès », a déclaré le mainteneur Benjamin Fleischer. « Si vous utilisez FUSE pour macOS pour un projet de logiciel commercial, n’hésitez pas à me contacter. »

Une autre complication pour les développeurs qui envisagent de forker la dernière version open source est que l’exécution de FUSE sur macOS nécessite un certificat de signature d’extension du noyau. « Ce n’est pas le certificat d’identification de développeur standard que tous les développeurs enregistrés obtiennent », a déclaré Fleischer.

A tale of exposure bucks:Comment perdre un dev en 8 ans

« J’ai commencé à travailler sur FUSE en 2011. J’étudiais l’informatique et je travaillais sur FUSE comme un passe-temps. Je comptais sur NTFS-3G, un système de fichiers FUSE populaire, et je voulais utiliser le nouveau noyau 64 bits de Mac OS X Snow Leopard. MacFUSE, comme le projet s’appelait à l’origine, avait déjà été abandonné depuis un certain temps et il ne prenait pas en charge les noyaux 64 bits, alors j’ai commencé à bricoler le code « , a déclaré Fleischer au Register.

La newsletter Register

 » Beaucoup de temps s’est écoulé depuis et le nombre d’applications utilisant FUSE pour macOS a rapidement augmenté. Aujourd’hui, FUSE pour macOS est utilisé par de nombreuses grandes entreprises Internet, parmi lesquelles des fournisseurs de stockage en nuage et d’infrastructure en tant que service et même des réseaux sociaux populaires. »

Le problème? Fleischer effectuait la majeure partie du travail de développement gratuitement. En mai 2016, il a demandé de l’aide. « Afin de faire passer FUSE pour OS X au niveau supérieur, j’aimerais passer plus de temps à y travailler, mais cela ne sera pas possible sans être rémunéré pour mon travail », expliquait-il à l’époque.

« Mon message n’a pas produit les résultats espérés », nous a déclaré Fleischer. « Ensuite, j’ai modifié ma stratégie et j’ai essayé de contacter directement les entreprises qui utilisent FUSE et j’ai demandé leur soutien.

« J’ai essayé de préconiser qu’avoir un projet, auquel tout le monde contribue, au lieu de nombreux forks à source fermée sans pousser les correctifs et les améliorations en amont, profiterait à tout le monde. J’ai pu convaincre une ou deux entreprises de soutenir financièrement mon travail. Cependant, la plupart des entreprises étaient réticentes à soutenir le projet dont dépend leur produit car il est disponible gratuitement. C’est en soi un peu ironique. Presque comme si quelque chose qui est disponible gratuitement n’avait aucune valeur perçue. »

La newsletter Register

Il a étudié d’autres options de financement, car « abandonner le projet n’a jamais été une option pour moi. »

Parmi les problèmes, nous a-t-il dit, il y a le fait que  » FUSE n’est pas un produit d’utilisateur final. La plupart du temps, FUSE est installé silencieusement par des applications tierces qui exposent un système de fichiers virtuel. De nombreux utilisateurs finaux ne savent pas qu’ils utilisent FUSE ou ne savent pas quel service il fournit. Demander des dons pour un composant d’une application pour lequel les utilisateurs ont déjà payé n’est pas la bonne approche. »

C’est la raison pour laquelle Fleischer a cessé de publier le code source et a également changé la licence. « FUSE pour macOS 3.9 peut toujours être fourni librement avec un logiciel commercial. Puis en juillet de 2019, j’ai publié FUSE pour macOS 3.10 avec la prise en charge de macOS Catalina sous la nouvelle licence moins permissive, qui nécessite une autorisation écrite spécifique pour regrouper FUSE avec un logiciel commercial « , a-t-il déclaré au Reg.

Comment est-ce possible? « La plupart du code source de FUSE pour macOS est publié sous la licence BSD. Cependant, libfuse, par exemple, est publié sous le LGPL. J’ai fait ce que d’autres développeurs de fourches à fusibles à source fermée font depuis un certain temps. La licence BSD n’a pas de copyleft, ce qui signifie que personne n’est tenu de pousser les modifications en amont ou de les rendre disponibles. Comme libfuse est couvert par la LGPL, des modifications doivent être apportées, tandis que les modifications du code du noyau peuvent être maintenues fermées « , explique Fleischer.

La newsletter du registre

Le résultat? « Après le changement de licence, j’ai été contacté par plusieurs entreprises et j’ai négocié des accords de licence. À cet égard, la fermeture du code source de FUSE a été un succès. À tout le moins, cela a contribué à sensibiliser aux difficultés du développement durable de logiciels open source « , a-t-il déclaré.

Fleischer a ajouté: « Je n’aime pas continuer à travailler sur FUSE en tant que projet à source fermée. Cela a été une décision difficile et j’y réfléchis depuis très longtemps, mais je la maintiens et cela semblait être la seule option qui restait pour sensibiliser et assurer l’avenir du projet. »

Il reconnaît cependant que :  » Je n’ai pas été très transparent sur le changement de licence. »

Une discussion récente sur Hacker News montre à quel point « les opinions sont évidemment très divisées », a-t-il déclaré.

Cela dit, beaucoup de réponses sont sympathiques. « J’espère que nous en verrons plus à l’avenir: les développeurs se rendent compte que le travail qu’ils font a de la valeur et qu’ils ne sont pas obligés de passer leur vie à le donner gratuitement. Ils prennent donc le contrôle de leur produit de travail et commencent à capturer une partie de cette valeur pour eux-mêmes « , a déclaré l’un d’eux.

Que se passera-t-il à l’avenir ? « Tant que je serai le responsable du projet FUSE pour macOS, FUSE sera toujours gratuit pour une utilisation non commerciale », a-t-il déclaré à El Reg. « Si jamais je décide d’arrêter de maintenir FUSE, et je doute fortement qu’il en arrive là dans un avenir prévisible, je publierai le code source sous la licence BSD et je me retirerai pour laisser quelqu’un d’autre prendre le contrôle de l’organisation osxfuse sur GitHub. »

Il est également possible bien sûr qu’Apple change ses règles – il a dit que les extensions du noyau seront limitées dans les futures versions de macOS – ou que la société puisse créer quelque chose comme FUSE dans le noyau macOS lui-même.