Articles

FUSE für macOS: Warum eine beliebte Open-Source-Bibliothek Closed Source und kommerziell lizenziert wurde

Interview Im Mai dieses Jahres bemerkten Benutzer des beliebten Open-Source-Projekts FUSE für macOS, dass der Quellcode für das neueste Update fehlte. Das Projekt war Closed Source geworden und war nicht mehr frei für kommerzielle Zwecke. Aber wie die Reg entdeckte, als wir ein Gespräch mit ihrem Betreuer hatten, gab es einen sehr guten Grund dafür – und es ist kein guter Blick für die vielen Unternehmen, die es verwendet haben.

FUSE steht für File System in Userspace und ermöglicht es Entwicklern, ein benutzerdefiniertes Dateisystem zu erstellen, ohne Code für den Kernel zu schreiben. Wenn Sie beispielsweise über eine Datenbank oder ein Cloud-Speichersystem verfügen und möchten, dass es dem Betriebssystem nur als ein weiterer Satz von Dateien und Ordnern angezeigt wird, können Sie FUSE verwenden.

FUSE hat eine lange Geschichte. Es wurde für Linux entwickelt und auf andere Unix-ähnliche Betriebssysteme wie FreeBSD und OpenSolaris portiert. Im Jahr 2007 veröffentlichte Google einen Port für Mac OS X als Open Source. Im Jahr 2011 wurde daraus osxfuse, später umbenannt in FUSE für macOS.

The Register Newsletter

Vor sieben Monaten stellten Benutzer fest, dass der Quellcode des neuesten Updates fehlte, obwohl die kompilierte Binärdatei veröffentlicht wurde. „Das ist Absicht“, sagte Betreuer Benjamin Fleischer. „Wenn Sie FUSE für macOS für ein kommerzielles Softwareprojekt verwenden, können Sie sich gerne an mich wenden.“

Eine weitere Komplikation für Entwickler, die daran denken, die letzte Open-Source-Version zu forken, ist, dass die Ausführung von FUSE unter macOS ein Signaturzertifikat für Kernelerweiterungen erfordert. „Das ist nicht das standardmäßige Entwickler-ID-Zertifikat, das jeder registrierte Entwickler erhält“, sagte Fleischer.

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

„Ich habe 2011 angefangen, an FUSE zu arbeiten. Ich studierte Informatik und die Arbeit an FUSE begann als Hobby. Ich verließ mich auf NTFS-3G, ein beliebtes FUSE-Dateisystem, und wollte den neuen 64-Bit-Kernel von Mac OS X Snow Leopard verwenden. MacFUSE, wie das Projekt ursprünglich genannt wurde, war bereits seit einiger Zeit aufgegeben worden und es unterstützte keine 64-Bit-Kernel, also begann ich mit dem Code zu basteln „, sagte Fleischer dem Register.

Der Newsletter registrieren

„Seitdem ist viel Zeit vergangen und die Anzahl der Anwendungen, die auf FUSE für macOS angewiesen sind, ist rasant gewachsen. Heute wird FUSE für macOS von vielen großen Internetunternehmen verwendet, darunter Cloud-Speicher- und Infrastructure-as-a-Service-Anbieter und sogar beliebte soziale Netzwerke.“

Das Problem? Fleischer machte den größten Teil der Entwicklungsarbeit kostenlos. Im Mai 2016 bat er um Unterstützung. „Um FUSE für OS X auf die nächste Stufe zu heben, würde ich gerne mehr Zeit damit verbringen, daran zu arbeiten, aber das wird nicht möglich sein, ohne für meine Arbeit entschädigt zu werden“, erklärte er damals.

„Mein Beitrag hat nicht die erhofften Ergebnisse gebracht“, sagte Fleischer. „Dann änderte ich meine Strategie und versuchte, Unternehmen direkt zu kontaktieren, die FUSE verwenden, und bat um ihre Unterstützung.

„Ich habe versucht, dafür einzutreten, dass ein Projekt, zu dem jeder beiträgt, anstelle vieler Closed-Source-Forks, ohne Korrekturen und Verbesserungen stromaufwärts voranzutreiben, allen zugute kommen würde. Ich konnte das eine oder andere Unternehmen davon überzeugen, meine Arbeit finanziell zu unterstützen. Die meisten Unternehmen zögerten jedoch, das Projekt zu unterstützen, von dem ihr Produkt abhängt, da es kostenlos verfügbar ist. Das an sich ist irgendwie ironisch. Fast so, als ob etwas, das kostenlos zur Verfügung steht, keinen wahrgenommenen Wert hat.“

The Register Newsletter

Er prüfte andere Finanzierungsmöglichkeiten, da „der Verzicht auf das Projekt für mich nie eine Option war.“

Zu den Problemen, sagte er uns, gehört, dass „FUSE kein Endbenutzerprodukt ist. Die meiste Zeit wird FUSE unbeaufsichtigt von Anwendungen von Drittanbietern installiert, die ein virtuelles Dateisystem verfügbar machen. Viele Endbenutzer sind sich nicht bewusst, dass sie FUSE verwenden oder wissen, welchen Service es bietet. Es ist nicht der richtige Ansatz, um Spenden für eine Komponente einer Anwendung zu bitten, für die Benutzer bereits bezahlt haben.“

Aus diesem Grund hat Fleischer die Freigabe des Quellcodes eingestellt und auch die Lizenz geändert. „FUSE für macOS 3.9 kann weiterhin frei mit kommerzieller Software gebündelt werden. Dann habe ich im Juli 2019 FUSE für macOS 3.10 mit Unterstützung für macOS Catalina unter der neuen, weniger freizügigen Lizenz veröffentlicht, die eine spezifische schriftliche Genehmigung erfordert, um FUSE mit kommerzieller Software zu bündeln „, sagte er der Reg.

Wie ist das möglich? „Der größte Teil des FUSE für macOS-Quellcodes wird unter der BSD-Lizenz veröffentlicht. Libfuse zum Beispiel wird jedoch unter der LGPL veröffentlicht. Ich habe getan, was andere Entwickler von Closed Source FUSE Forks seit einiger Zeit tun. Die BSD-Lizenz hat kein Copyleft, was bedeutet, dass niemand verpflichtet ist, Änderungen Upstream zu pushen oder verfügbar zu machen. Da libfuse unter die LGPL fällt, müssen Änderungen daran zur Verfügung gestellt werden, während Änderungen am Kernel-Code geschlossen bleiben können „, erklärt Fleischer.

Das Register Newsletter

Das Ergebnis? „Nach dem Lizenzwechsel bin ich von mehreren Firmen kontaktiert worden und habe einige Lizenzverträge ausgehandelt. In dieser Hinsicht war das Schließen des Quellcodes von FUSE ein Erfolg. Zumindest hat es dazu beigetragen, das Bewusstsein für die Schwierigkeiten einer nachhaltigen Open-Source-Softwareentwicklung zu schärfen „, sagte er.

Fleischer fügte hinzu: „Ich mag es nicht, weiter an FUSE als Closed-Source-Projekt zu arbeiten. Es war eine schwere Entscheidung und ich habe sehr lange darüber nachgedacht, aber ich stehe dazu und es schien die einzige Option zu sein, die noch übrig war, um das Bewusstsein zu schärfen und die Zukunft des Projekts zu sichern.“

Er räumt jedoch ein, dass: „Ich war nicht sehr transparent über die Lizenzänderung.Eine aktuelle Diskussion über Hacker News zeigt, wie „die Meinungen offensichtlich sehr geteilt sind“, sagte er.

Trotzdem sind viele der Antworten sympathisch. „Ich hoffe, wir sehen in Zukunft mehr davon: Entwickler erkennen, dass die Arbeit, die sie leisten, einen Wert hat und dass sie nicht ihr Leben damit verbringen müssen, sie kostenlos zu verschenken. So übernehmen sie die Kontrolle über ihr Arbeitsprodukt und fangen an, einen Teil dieses Wertes für sich selbst zu erfassen „, sagte einer.

Was wird in Zukunft passieren? „Solange ich der Betreuer des FUSE for macOS-Projekts bin, wird FUSE immer für nichtkommerzielle Zwecke kostenlos sein“, sagte er El Reg. „Sollte es jemals zu dem Punkt kommen, an dem ich mich entscheide, die Wartung von FUSE einzustellen, und ich bezweifle sehr, dass es in absehbarer Zeit dazu kommen wird, werde ich den Quellcode unter der BSD-Lizenz veröffentlichen und beiseite treten, damit jemand anderes die Kontrolle über die osxfuse-Organisation auf GitHub übernimmt.“Es ist natürlich auch möglich, dass Apple seine Regeln ändert – es heißt, dass Kernel-Erweiterungen in zukünftigen Versionen von macOS eingeschränkt werden – oder dass das Unternehmen so etwas wie FUSE in den macOS-Kernel selbst integriert.