Articles

FUSE per macOS: Perché una popolare libreria open source è diventato closed source e licenza commerciale

Intervista Nel maggio di quest’anno, gli utenti del popolare progetto open source FUSE per macOS notato il codice sorgente per l’ultimo aggiornamento mancava. Il progetto era diventato closed source e non era più gratuito per uso commerciale. Ma come il Reg ha scoperto quando abbiamo avuto un colloquio con il suo manutentore, c’era una buona ragione per questo – e non è un buon aspetto per le molte aziende che lo hanno utilizzato.

FUSE sta per File System nello spazio utente e consente agli sviluppatori di creare un filesystem personalizzato senza scrivere codice per il kernel. Se si dispone di un database o di un sistema di cloud storage, per esempio, e si desidera che appaia al sistema operativo come solo un altro insieme di file e cartelle, è possibile utilizzare FUSE.

FUSIBILE ha una lunga storia. È stato creato per Linux e portato su altri sistemi operativi Unix-like tra cui FreeBSD e OpenSolaris. Nel 2007, Google ha rilasciato una porta per Mac OS X come open source. Nel 2011 questo è stato biforcuto per diventare osxfuse, in seguito rinominato FUSE per macOS.

The Register Newsletter

Poi, sette mesi fa, gli utenti hanno osservato che il codice sorgente dell’ultimo aggiornamento mancava, anche se il binario compilato è stato pubblicato. “Questo è di proposito”, ha detto il manutentore Benjamin Fleischer. “Se si utilizza FUSE per macOS per un progetto software commerciale, non esitate a contattarmi.”

Un’ulteriore complicazione che gli sviluppatori pensano di biforcare l’ultima versione open source è che l’esecuzione di FUSE su macOS richiede un certificato di firma dell’estensione del kernel. “Questo non è il certificato ID sviluppatore standard che ogni sviluppatore registrato ottiene”, ha affermato Fleischer.

A tale of exposure bucks: How to lose a dev in 8 years

“Ho iniziato a lavorare su FUSE nel 2011. Stavo studiando informatica e lavorando su FUSE iniziato come un hobby. Mi affidavo a NTFS-3G, un popolare file system FUSE, e volevo usare il nuovo kernel a 64 bit di Mac OS X Snow Leopard. MacFUSE, come il progetto è stato originariamente chiamato, era già stato abbandonato per qualche tempo e non supportava i kernel a 64 bit, quindi ho iniziato ad armeggiare con il codice”, ha detto Fleischer a The Register.

The Register Newsletter

“Da allora è passato molto tempo e il numero di applicazioni che si affidano a FUSE per macOS è cresciuto rapidamente. Oggi FUSE per macOS è utilizzato da molte grandi aziende Internet, tra cui cloud storage e fornitori di infrastrutture-as-a-service e persino social network popolari.”

Il problema? Fleischer stava facendo la maggior parte del lavoro di sviluppo gratuitamente. A maggio 2016, ha chiesto supporto. “Per portare FUSE per OS X al livello successivo, vorrei dedicare più tempo a lavorarci, ma questo non sarà possibile senza essere compensato per il mio lavoro”, ha spiegato all’epoca.

“Il mio post non ha prodotto i risultati sperati”, ci ha detto Fleischer. “Poi ho modificato la mia strategia e ho provato a contattare direttamente le aziende, che utilizzano FUSE, e ho chiesto il loro supporto.

“Ho cercato di sostenere che avere un progetto, a cui tutti contribuiscono, invece di molti fork closed source senza spingere correzioni e miglioramenti a monte, avrebbe giovato a tutti. Sono stato in grado di convincere una o due aziende a sostenere finanziariamente il mio lavoro. Tuttavia la maggior parte delle aziende erano riluttanti a sostenere il progetto che il loro prodotto dipende perché è disponibile gratuitamente. Questo di per sé è un po ‘ ironico. Quasi come se qualcosa che è disponibile gratuitamente non ha alcun valore percepito.”

The Register Newsletter

Ha esaminato altre opzioni di finanziamento, dal momento che ” abbandonare il progetto non è mai stata un’opzione per me.”

Tra i problemi, ci ha detto, è che ” FUSE non è un prodotto per l’utente finale. Il più delle volte FUSE viene installato silenziosamente da applicazioni di terze parti che espongono un file system virtuale. Molti utenti finali non sono consapevoli di utilizzare FUSE o sanno quale servizio fornisce. Chiedere donazioni per un componente di un’applicazione che gli utenti hanno già pagato non è l’approccio giusto.”

Questo è stato il motivo per cui Fleischer ha smesso di rilasciare il codice sorgente e ha anche cambiato la licenza. “FUSE per macOS 3.9 può ancora essere liberamente fornito in bundle con software commerciale. Poi a luglio di 2019, ho rilasciato FUSE per macOS 3.10 con supporto per macOS Catalina sotto la nuova licenza meno permissiva, che richiede un’autorizzazione scritta specifica per raggruppare FUSE con software commerciale”, ha detto al Reg.

Come è possibile? “La maggior parte del codice sorgente di FUSE per macOS è rilasciato sotto la licenza BSD. Tuttavia, libfuse, ad esempio, viene rilasciato sotto LGPL. Ho fatto quello che altri sviluppatori di forcelle FUSE closed source hanno fatto per qualche tempo. La licenza BSD non ha copyleft, il che significa che nessuno è tenuto a spingere le modifiche a monte o renderle disponibili. Poiché libfuse è coperto dalla LGPL, le modifiche ad esso devono essere rese disponibili, mentre le modifiche al codice del kernel possono essere mantenute chiuse”, spiega Fleischer.

Il Registro Newsletter

Il risultato? “Dopo il cambio di licenza sono stato contattato da diverse società e ho negoziato alcuni accordi di licenza. A questo proposito chiudere il codice sorgente di FUSE è stato un successo. Per lo meno ha contribuito a sensibilizzare le difficoltà dello sviluppo sostenibile di software open source”, ha affermato.

Fleischer ha aggiunto che: “Non mi piace continuare a lavorare su FUSE come un progetto closed source. È stata una decisione difficile e ci ho pensato per molto tempo, ma la sostengo e sembrava essere l’unica opzione rimasta per aumentare la consapevolezza e garantire il futuro del progetto.”

Riconosce però che: “Non sono stato molto trasparente riguardo alla modifica della licenza.”

Una recente discussione su Hacker News mostra come” le opinioni sono ovviamente molto divise”, ha detto.

Detto questo, molte delle risposte sono comprensive. “Spero che vedremo di più in futuro: gli sviluppatori si rendono conto che il lavoro che fanno ha valore e che non sono tenuti a passare la loro vita a darlo via gratuitamente. Così prendono il controllo del loro prodotto di lavoro e iniziano a catturare parte di quel valore per se stessi”, ha detto uno.

Cosa succederà in futuro? “Finché sono il manutentore del progetto FUSE per macOS, FUSE sarà sempre gratuito per uso non commerciale”, ha detto a El Reg. “Se dovesse mai arrivare al punto in cui decido di smettere di mantenere FUSE, e dubito fortemente che arriverà a questo nel prossimo futuro, rilascerò il codice sorgente sotto la licenza BSD e mi farò da parte per lasciare che qualcun altro prenda il controllo dell’organizzazione osxfuse su GitHub.”

È anche possibile, naturalmente, che Apple potrebbe cambiare le sue regole – ha detto che le estensioni del kernel saranno limitate nelle versioni future di macOS – o che la società potrebbe costruire qualcosa di simile a FUSE nel kernel macOS stesso.