Articles

FUSE dla macOS: dlaczego popularna biblioteka open source stała się zamknięta i licencjonowana komercyjnie

wywiad w maju tego roku użytkownicy popularnego projektu open source FUSE dla macOS zauważyli brak kodu źródłowego najnowszej aktualizacji. Projekt stał się zamkniętym źródłem i nie był już darmowy do użytku komercyjnego. Ale jak Reg odkrył, kiedy rozmawialiśmy z jego opiekunem, był bardzo dobry powód – i nie jest to dobry wygląd dla wielu firm, które go używały.

FUSE oznacza system plików w przestrzeni użytkownika i pozwala programistom stworzyć własny system plików bez pisania kodu dla jądra. Jeśli na przykład posiadasz bazę danych lub system pamięci masowej w chmurze i chcesz, aby system operacyjny wyglądał jak kolejny zestaw plików i folderów, możesz użyć FUSE.

bezpiecznik ma długą historię. Został stworzony dla Linuksa i przeniesiony na inne uniksowe systemy operacyjne, w tym FreeBSD i OpenSolaris. W 2007 roku Google udostępniło port Dla Mac OS X jako open source. W 2011 roku zmieniono nazwę na osxfuse, później zmieniono nazwę na FUSE for macOS.

Biuletyn rejestracyjny

siedem miesięcy temu użytkownicy zauważyli, że brakuje kodu źródłowego najnowszej aktualizacji, chociaż skompilowany plik binarny został opublikowany. „To celowo”, powiedział opiekun Benjamin Fleischer. „Jeśli używasz FUSE dla macOS do komercyjnego projektu oprogramowania, skontaktuj się ze mną.”

kolejną komplikacją stojącą przed programistami myślącymi o rozwidleniu ostatniej wersji open source jest to, że uruchamianie FUSE na macOS wymaga certyfikatu podpisywania rozszerzeń jądra. „To nie jest standardowy certyfikat Developer ID, który otrzymuje każdy zarejestrowany deweloper” – powiedział Fleischer.

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

„pracę nad FUSE zacząłem w 2011 roku. Studiowałem informatykę, a praca nad FUSE zaczęła się jako hobby. Polegałem na ntfs-3g, popularnym systemie plików FUSE i chciałem użyć nowego 64-bitowego jądra systemu Mac OS X Snow Leopard. MacFUSE, jak pierwotnie nazywał się projekt, był już porzucony przez jakiś czas i nie obsługiwał 64-bitowych jąder, więc zacząłem majstrować nad kodem” – powiedział Fleischer w rejestrze.

Biuletyn rejestracyjny

„od tego czasu minęło dużo czasu, a liczba aplikacji korzystających z FUSE dla macOS szybko wzrosła. Dziś FUSE dla macOS jest używany przez wiele dużych firm internetowych, wśród nich cloud storage i infrastructure-as-a-service providers, a nawet popularnych sieci społecznościowych.”

problem? Fleischer wykonywał większość prac rozwojowych za darmo. W maju 2016 poprosił o wsparcie. „Aby przenieść FUSE dla OS X na wyższy poziom, chciałbym poświęcić więcej czasu na pracę nad nim, ale nie będzie to możliwe bez rekompensaty za moją pracę”, wyjaśnił w tym czasie.

„mój post nie przyniósł oczekiwanych rezultatów”-powiedział Fleischer. „Następnie zmieniłem swoją strategię i próbowałem skontaktować się bezpośrednio z firmami, które używają FUSE, i poprosiłem o ich wsparcie.

„starałem się opowiadać, że posiadanie jednego projektu, do którego wszyscy się przyczyniają, zamiast wielu zamkniętych forków źródłowych bez popychania poprawek i ulepszeń w upstreamie, przyniosłoby korzyści wszystkim. Udało mi się przekonać jedną lub dwie firmy do finansowego wsparcia mojej pracy. Jednak większość firm niechętnie wspierała projekt, od którego zależy ich produkt, ponieważ jest on dostępny za darmo. To samo w sobie jest trochę ironiczne. Prawie tak, jakby coś, co jest dostępne za darmo, nie miało postrzeganej wartości.”

Biuletyn rejestracyjny

przyjrzał się innym opcjom finansowania, ponieważ ” porzucenie projektu nigdy nie było dla mnie opcją.”

wśród problemów, powiedział nam, że ” FUSE nie jest produktem końcowym Użytkownika. Przez większość czasu FUSE jest instalowany po cichu przez aplikacje innych firm, które ujawniają wirtualny system plików. Wielu użytkowników końcowych nie jest świadomych, że używają bezpiecznika lub wiedzą, którą usługę zapewnia. Prośba o darowizny na komponent aplikacji, za który użytkownicy już zapłacili, nie jest właściwym podejściem.”

To było powodem, dla którego Fleischer przestał wypuszczać kod źródłowy, a także zmienił licencję. „FUSE dla macOS 3.9 nadal może być swobodnie dołączony do komercyjnego oprogramowania. Następnie w lipcu 2019 roku wydałem FUSE dla macOS 3.10 z obsługą macOS Catalina na nowej, mniej liberalnej licencji, która wymaga specjalnej pisemnej zgody na łączenie FUSE z komercyjnym oprogramowaniem”, powiedział Reg.

Jak to możliwe? „Większość kodu źródłowego FUSE for macOS jest wydana na licencji BSD. Jednak na przykład libfuse jest wydawane na licencji LGPL. Zrobiłem to, co inni twórcy forków bezpieczników z zamkniętymi źródłami robili od jakiegoś czasu. Licencja BSD nie posiada copyleft, co oznacza, że nikt nie jest zobowiązany do wypychania zmian upstream lub udostępniania ich. Ponieważ libfuse jest objęte LGPL, zmiany w nim muszą być udostępniane, podczas gdy zmiany w kodzie jądra mogą być zamknięte”, wyjaśnia Fleischer.

Zapisz się do newslettera

wynik? „Po zmianie licencji skontaktowało się ze mną kilka firm i wynegocjowało niektóre umowy licencyjne. Pod tym względem zamknięcie kodu źródłowego FUSE było sukcesem. W najmniejszym stopniu przyczyniło się to do podniesienia świadomości na temat trudności związanych ze zrównoważonym rozwojem oprogramowania open source” – powiedział.

Fleischer dodał, że: „nie lubię kontynuować pracy nad FUSE jako projektem o zamkniętym kodzie źródłowym. To była trudna decyzja i myślałem o niej od bardzo dawna, ale trzymam się jej i wydawało się, że jest to jedyna opcja, która została, aby podnieść świadomość i zapewnić przyszłość projektu.”

przyznaje jednak, że: „nie byłem zbyt przejrzysty w kwestii zmiany licencji.”

niedawna dyskusja na temat Hacker News pokazuje, że „opinie są oczywiście bardzo podzielone”.

wiele odpowiedzi jest sympatycznych. „Mam nadzieję, że zobaczymy więcej tego w przyszłości: deweloperzy zdają sobie sprawę, że praca, którą wykonują, ma wartość i że nie są zobowiązani do spędzenia swojego życia rozdając ją za darmo. Przejmują więc kontrolę nad swoim produktem pracy i zaczynają wychwytywać część tej wartości dla siebie ” – powiedział jeden z nich.

Co się stanie w przyszłości? „Dopóki jestem opiekunem projektu Fuse for macOS, FUSE zawsze będzie wolny do użytku niekomercyjnego”, powiedział El Reg. „Jeśli kiedykolwiek dojdzie do punktu, w którym zdecyduję się przestać utrzymywać FUSE, i bardzo wątpię, że dojdzie do tego w dającej się przewidzieć przyszłości, udostępnię kod źródłowy na licencji BSD i odejdę na bok, aby pozwolić komuś innemu przejąć kontrolę nad organizacją osxfuse na Githubie.”

możliwe jest również oczywiście, że Apple może zmienić swoje zasady – powiedział, że rozszerzenia jądra będą ograniczone w przyszłych wydaniach macOS – lub że firma może zbudować coś takiego jak FUSE w samym jądrze macOS.