Articles

FUSE para macOS: Por qué una popular biblioteca de código abierto se convirtió en código cerrado y con licencia comercial

Entrevista En mayo de este año, los usuarios del popular proyecto de código abierto FUSE para macOS notaron que faltaba el código fuente de la última actualización. El proyecto había pasado a ser de código cerrado y ya no era gratuito para uso comercial. Pero como el Reg descubrió cuando hablamos con su mantenedor, había una muy buena razón para eso, y no es un buen aspecto para las muchas compañías que lo usaron.

FUSE significa Sistema de archivos en el espacio de usuario y permite a los desarrolladores crear un sistema de archivos personalizado sin escribir código para el núcleo. Si tiene una base de datos o un sistema de almacenamiento en la nube, por ejemplo, y desea que aparezca en el sistema operativo como otro conjunto de archivos y carpetas, puede usar FUSE.

FUSE tiene una larga historia. Fue creado para Linux y portado a otros sistemas operativos tipo Unix, incluyendo FreeBSD y OpenSolaris. En 2007, Google lanzó un puerto para Mac OS X como código abierto. En 2011 se bifurcó para convertirse en osxfuse, más tarde renombrado FUSE para macOS.

El Boletín de registro

Entonces, hace siete meses, los usuarios observaron que faltaba el código fuente de la última actualización, aunque se publicó el binario compilado. «Eso es a propósito», dijo el mantenedor Benjamin Fleischer. «Si está utilizando FUSE para macOS para un proyecto de software comercial, no dude en ponerse en contacto conmigo.»

Otra complicación a la que se enfrentan los desarrolladores que están pensando en bifurcar la última versión de código abierto es que ejecutar FUSE en macOS requiere un certificado de firma de extensión del núcleo. «Ese no es el certificado de ID de desarrollador estándar que recibe todo desarrollador registrado», dijo Fleischer.

A tale of exposure bucks: Cómo perder un desarrollador en 8 años

» Empecé a trabajar en FUSE en 2011. Estudiaba informática y empecé a trabajar en FUSE como un hobby. Confiaba en NTFS-3G, un popular sistema de archivos FUSE, y quería usar el nuevo núcleo de 64 bits de Mac OS X Snow Leopard. MacFUSE, como se llamaba originalmente al proyecto, ya había sido abandonado por algún tiempo y no soportaba núcleos de 64 bits, así que empecé a retocar el código», dijo Fleischer a The Register.

El boletín de registro

«Ha pasado mucho tiempo desde entonces y el número de aplicaciones que dependen de FUSE para macOS ha crecido rápidamente. Hoy en día, FUSE para macOS es utilizado por muchas grandes empresas de Internet, entre ellas, proveedores de almacenamiento en la nube e infraestructura como servicio e incluso redes sociales populares.»

El problema? Fleischer estaba haciendo la mayor parte del trabajo de desarrollo de forma gratuita. En Mayo de 2016, pidió apoyo. «Para llevar FUSE para OS X al siguiente nivel, me gustaría pasar más tiempo trabajando en él, pero esto no será posible sin recibir una compensación por mi trabajo», explicó en ese momento.

«Mi publicación no produjo los resultados esperados», nos dijo Fleischer. «Luego alteré mi estrategia e intenté contactar directamente con las empresas que utilizan FUSE, y les pedí su apoyo.

» Traté de abogar por que tener un proyecto, al que todos contribuyeran, en lugar de muchas bifurcaciones de código cerrado sin empujar correcciones y mejoras, beneficiaría a todos. Pude convencer a una o dos empresas para que apoyaran mi trabajo financieramente. Sin embargo, la mayoría de las empresas se mostraron reacias a apoyar el proyecto del que depende su producto porque está disponible de forma gratuita. Esto en sí mismo es un poco irónico. Casi como si algo que está disponible de forma gratuita no tuviera valor percibido.»

El Boletín de Registro

Buscó otras opciones de financiación, ya que » abandonar el proyecto nunca ha sido una opción para mí.»

Entre los problemas, nos dijo, está que » FUSE no es un producto para el usuario final. La mayoría de las veces, FUSE se instala silenciosamente en aplicaciones de terceros que exponen un sistema de archivos virtual. Muchos usuarios finales no son conscientes de que están utilizando FUSE o saben qué servicio ofrece. Pedir donaciones para un componente de una aplicación que los usuarios ya han pagado no es el enfoque correcto.»

Esta fue la razón por la que Fleischer dejó de publicar el código fuente y también cambió la licencia. «FUSE para macOS 3.9 todavía se puede combinar libremente con software comercial. Luego, en julio de 2019, lancé FUSE para macOS 3.10 con soporte para macOS Catalina bajo la nueva licencia menos permisiva, que requiere un permiso específico por escrito para combinar FUSE con software comercial», dijo al Reg.

¿Cómo es esto posible? «La mayor parte del código fuente de FUSE para macOS se publica bajo la licencia BSD. Sin embargo, libfuse, por ejemplo, se publica bajo la LGPL. Hice lo que otros desarrolladores de bifurcaciones de fusibles de código cerrado han estado haciendo durante algún tiempo. La licencia BSD no tiene copyleft, lo que significa que no se requiere que nadie impulse los cambios o los ponga a disposición. Como libfuse está cubierto por la LGPL, los cambios deben estar disponibles, mientras que los cambios en el código del núcleo se pueden mantener cerrados», explica Fleischer.

El Registro de Boletín de noticias

El resultado? «Después del cambio de licencia, varias empresas me contactaron y negociaron algunos acuerdos de licencia. En este mismo sentido, cerrar el código fuente de FUSE fue un éxito. Como mínimo, ayudó a crear conciencia sobre las dificultades del desarrollo sostenible de software de código abierto», dijo.

Fleischer agregó que: «No me gusta continuar trabajando en FUSE como un proyecto de código cerrado. Ha sido una decisión difícil y he estado pensando en ella durante mucho tiempo, pero la mantengo y parecía ser la única opción que quedaba para crear conciencia y asegurar el futuro del proyecto.»

Sin embargo, reconoce que: «No he sido muy transparente con el cambio de licencia.»

Una discusión reciente sobre Hacker News muestra cómo «la opinión está obviamente muy dividida», dijo.

Dicho esto, muchas de las respuestas son comprensivas. «Espero que veamos más de esto en el futuro: los desarrolladores se dan cuenta de que el trabajo que hacen tiene valor y que no están obligados a pasar sus vidas regalándolo. Así que toman el control de su producto de trabajo y comienzan a capturar parte de ese valor para sí mismos», dijo uno de ellos.

¿Qué pasará en el futuro? «Mientras sea el encargado del proyecto FUSE para macOS, FUSE siempre será gratuito para uso no comercial», dijo a El Reg. «Si llega el momento en que decido dejar de mantener FUSE, y dudo mucho que llegue a esto en un futuro previsible, liberaré el código fuente bajo la licencia BSD y me haré a un lado para dejar que alguien más tome el control de la organización osxfuse en GitHub.»

También es posible, por supuesto, que Apple pueda cambiar sus reglas, ya que ha dicho que las extensiones del núcleo se restringirán en futuras versiones de macOS, o que la compañía podría construir algo como FUSE en el propio núcleo de macOS.