Articles

FUSE for macOS: Why a popular open source library became closed source and commercial licensed

Interview in Mei van dit jaar merkten gebruikers van het populaire open source project FUSE for macOS dat de broncode voor de laatste update ontbrak. Het project was gesloten bron geworden en was niet langer gratis voor commercieel gebruik. Maar zoals de Reg ontdekte toen we een gesprek hadden met de onderhouder, was er een zeer goede reden voor – en het is niet een goede look voor de vele bedrijven die het gebruikten.

FUSE staat voor File System in Userspace en laat ontwikkelaars een aangepast bestandssysteem maken zonder code voor de kernel te schrijven. Als u bijvoorbeeld een database of een cloudopslagsysteem hebt en u wilt dat het voor het besturingssysteem verschijnt als een andere set bestanden en mappen, kunt u FUSE gebruiken.

FUSE heeft een lange geschiedenis. Het is gemaakt voor Linux en geporteerd naar andere Unix-achtige besturingssystemen, waaronder FreeBSD en OpenSolaris. In 2007 bracht Google een port voor Mac OS X uit als open source. In 2011 werd dit gevorkt tot osxfuse, later hernoemd tot FUSE voor macOS.

The Register Newsletter

toen, zeven maanden geleden, merkten gebruikers dat de broncode van de laatste update ontbrak, hoewel het gecompileerde binaire bestand werd geplaatst. “Dat is met opzet”, zei onderhouder Benjamin Fleischer. “Als je FUSE voor macOS gebruikt voor een commercieel softwareproject, neem dan gerust contact met me op.”

een andere complicatie voor ontwikkelaars die denken aan het afsplitsen van de laatste open source versie is dat het uitvoeren van FUSE op macOS een kernel extension signing certificate vereist. “Dat is niet de standaard Ontwikkelaar ID certificaat elke geregistreerde ontwikkelaar krijgt,” zei Fleischer.

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

” I started working on FUSE in 2011. Ik studeerde informatica en werkte aan FUSE begon als een hobby. Ik vertrouwde op NTFS-3G, een populair FUSE-bestandssysteem, en wilde Mac OS X Snow Leopard ‘ s nieuwe 64-bit kernel gebruiken. MacFUSE, zoals het project oorspronkelijk werd genoemd, was al enige tijd verlaten en het ondersteunt geen 64-bit kernels, dus ik begon te sleutelen aan de code,” Fleischer vertelde het Register.

The Register Newsletter

” sindsdien is er veel tijd verstreken en is het aantal toepassingen dat op FUSE voor macOS vertrouwt snel gegroeid. Vandaag FUSE voor macOS wordt gebruikt door veel grote internetbedrijven, waaronder cloudopslag en infrastructure-as-a-service providers en zelfs populaire sociale netwerken.”

het probleem? Fleischer deed het meeste ontwikkelingswerk gratis. In mei 2016 vroeg hij om steun. “Om FUSE voor OS X naar het volgende niveau te brengen, wil ik graag meer tijd besteden aan het werken, maar dit zal niet mogelijk zijn zonder gecompenseerd te worden voor mijn werk,” legde hij uit op het moment.

“mijn bericht heeft niet de verwachte resultaten opgeleverd,” vertelde Fleischer ons. “Toen veranderde ik mijn strategie en probeerde rechtstreeks contact op te nemen met bedrijven die FUSE gebruiken, en vroeg om hun steun.

“Ik probeerde te pleiten dat het hebben van één project, waar iedereen aan bijdraagt, in plaats van veel gesloten bronvorken zonder upstream fixes en verbeteringen te pushen, iedereen ten goede zou komen. Ik was in staat om een of twee bedrijven te overtuigen om mijn werk financieel te ondersteunen. De meeste bedrijven waren echter terughoudend om het project te steunen waarvan hun product afhankelijk is, omdat het gratis beschikbaar is. Dit op zich is nogal ironisch. Bijna alsof iets dat gratis beschikbaar is geen waargenomen waarde heeft.”

The Register Newsletter

hij keek naar andere opties voor financiering, omdat “het opgeven van het project nooit een optie voor mij was.”

een van de problemen, vertelde hij ons, is dat “FUSE is geen eindgebruiker product. Meestal FUSE wordt in stilte geïnstalleerd door toepassingen van derden die een virtueel bestandssysteem blootstellen. Veel eindgebruikers zijn zich niet bewust dat ze gebruik maken van FUSE of weten welke service het biedt. Donaties vragen voor een onderdeel van een applicatie waarvoor gebruikers al hebben betaald, is niet de juiste aanpak.”

Dit was de reden waarom Fleischer stopte met het vrijgeven van de broncode en ook de licentie veranderde. “FUSE voor macOS 3.9 kan nog steeds vrij worden gebundeld met commerciële software. Vervolgens heb ik in Juli 2019 FUSE voor macOS 3.10 uitgebracht met ondersteuning voor macOS Catalina onder de nieuwe, Minder tolerante licentie, die specifieke schriftelijke toestemming vereist om FUSE te bundelen met commerciële software,” vertelde hij aan de Reg.

Hoe is dit mogelijk? “Het grootste deel van de FUSE voor macOS broncode is vrijgegeven onder de BSD-licentie. Echter, libfuse, bijvoorbeeld, wordt vrijgegeven onder de LGPL. Ik deed wat andere ontwikkelaars van closed source FUSE forks hebben gedaan voor enige tijd. De BSD-licentie heeft geen auteursplicht, wat betekent dat niemand verplicht is om wijzigingen stroomopwaarts te pushen of beschikbaar te maken. Omdat libfuse onder de LGPL valt, moeten er wijzigingen in beschikbaar worden gesteld, terwijl wijzigingen in de kernelcode gesloten kunnen worden gehouden”, legt Fleischer uit.

The Register Newsletter

het resultaat? “Na de licentiewijziging ben ik door verschillende bedrijven gecontacteerd en heb ik over een aantal licentieovereenkomsten onderhandeld. In dit opzicht was het sluiten van de broncode van FUSE een succes. Op zijn minst hielp het om het bewustzijn van de problemen van duurzame open source software ontwikkeling te verhogen, ” zei hij.

Fleischer voegde toe dat: “ik hou er niet van om verder te werken aan FUSE als een gesloten bronproject. Het is een moeilijke beslissing geweest en ik heb er heel lang over nagedacht, maar ik blijf erbij en het leek de enige optie om het bewustzijn te vergroten en de toekomst van het project veilig te stellen.”

hij erkent echter dat: “ik ben niet erg transparant geweest over de licentiewijziging.”

Een recente discussie over Hacker News laat zien hoe “mening zijn uiteraard zeer verdeeld,” zei hij.

Dat gezegd hebbende, zijn veel van de reacties sympathiek. “Ik hoop dat we hier in de toekomst meer van zien: ontwikkelaars beseffen dat het werk dat ze doen waarde heeft en dat ze niet verplicht zijn om hun leven te besteden aan het gratis weggeven. Dus ze nemen de controle over hun werk product en beginnen het vastleggen van een deel van die waarde voor zichzelf,” zei een.

wat zal er in de toekomst gebeuren? “Zolang ik de beheerder ben van het FUSE for macOS-project, zal FUSE altijd gratis zijn voor niet-commercieel gebruik,” vertelde hij aan El Reg. “Mocht het ooit komen tot het punt dat ik besluit om te stoppen met het handhaven van FUSE, en ik betwijfel ten zeerste dat het zal komen tot dit in de nabije toekomst, zal ik de broncode vrij te geven onder de BSD-licentie en stap opzij om iemand anders de controle over de osxfuse organisatie op GitHub.”

Het is natuurlijk ook mogelijk dat Apple zijn regels zou kunnen veranderen – het heeft gezegd dat kernelextensies beperkt zullen zijn in toekomstige versies van macOS – of dat het bedrijf zoiets als FUSE zou kunnen bouwen in de macOS kernel zelf.