Articles

säkring för macOS: varför ett populärt open source-bibliotek blev stängd källa och kommersiellt licensierat

intervju i Maj i år märkte användare av populärt open source-projekt säkring för macOS källkoden för den senaste uppdateringen saknades. Projektet hade blivit stängd källa och var inte längre gratis för kommersiellt bruk. Men som Reg upptäckte när vi pratade med sin underhållare, fanns det en mycket bra anledning till det – och det är inte ett bra utseende för de många företag som använde det.

FUSE står för File System in Userspace och låter utvecklare skapa ett anpassat filsystem utan att skriva kod för kärnan. Om du till exempel har en databas eller ett molnlagringssystem och du vill att det ska visas för operativsystemet som bara en annan uppsättning filer och mappar kan du använda FUSE.

säkring har en lång historia. Den skapades för Linux och portades till andra Unix-liknande operativsystem inklusive FreeBSD och OpenSolaris. 2007 släppte Google en port för Mac OS X som öppen källkod. Under 2011 gafflades detta för att bli osxfuse, senare bytt namn till FUSE för macOS.

registret nyhetsbrev

för sju månader sedan observerade användarna att den senaste uppdateringens källkod saknades, även om den sammanställda binären publicerades. ”Det är med avsikt”, sade underhållaren Benjamin Fleischer. ”Om du använder FUSE för macOS för ett kommersiellt mjukvaruprojekt, kontakta mig gärna.”

en ytterligare komplikation som utvecklare tänker på att forking den senaste open source-versionen är att körning av säkring på macOS kräver ett kärnförlängningssigneringscertifikat. ”Det är inte standard Developer ID certifikat varje registrerad utvecklare får,” sade Fleischer.

A tale of exposure bucks: hur man förlorar en dev på 8 år

” jag började arbeta med FUSE 2011. Jag studerade datavetenskap och arbetade med FUSE började som en hobby. Jag förlitade mig på NTFS-3G, ett populärt SÄKRINGSFILSYSTEM, och ville använda Mac OS X Snow Leopards nya 64-bitars kärna. MacFUSE, som projektet ursprungligen kallades, hade redan övergivits under en tid och det stödde inte 64-bitars kärnor, så jag började tinka med koden,” berättade Fleischer för registret.

registret nyhetsbrev

”mycket tid har gått sedan dess och antalet applikationer som förlitar sig på säkring för macOS har ökat snabbt. Idag används FUSE för macOS av många stora Internetföretag, bland annat molnlagring och infrastruktur-as-a-tjänsteleverantörer och till och med populära sociala nätverk.”

problemet? Fleischer gjorde det mesta av utvecklingsarbetet gratis. I maj 2016 bad han om stöd. ”För att ta FUSE för OS X till nästa nivå skulle jag vilja spendera mer tid på att arbeta med det, men det kommer inte att vara möjligt utan att kompenseras för mitt arbete,” förklarade han vid den tiden.

”mitt inlägg gav inte de förväntade resultaten”, berättade Fleischer. ”Sedan ändrade jag min strategi och försökte kontakta företag direkt, som använder FUSE, och bad om deras stöd.

” Jag försökte förespråka att ha ett projekt, som alla bidrar till, istället för många slutna källgafflar utan att trycka på korrigeringar och förbättringar uppströms, skulle gynna alla. Jag kunde övertyga ett eller två företag att stödja mitt arbete ekonomiskt. Men de flesta företag var ovilliga att stödja projektet som deras produkt beror på eftersom det är tillgängligt gratis. Detta i sig är ganska ironiskt. Nästan som om något som är tillgängligt gratis inte har något uppfattat värde.”

registret nyhetsbrev

han tittade på andra alternativ för finansiering, eftersom ”överge projektet har aldrig varit ett alternativ för mig.”

bland de problem som han berättade för oss är att ” FUSE inte är en slutanvändarprodukt. För det mesta installeras FUSE tyst av program från tredje part som exponerar ett virtuellt filsystem. Många slutanvändare är inte medvetna om att de använder FUSE eller vet vilken tjänst den tillhandahåller. Att be om donationer för en komponent i en applikation som användare redan betalat för är inte rätt tillvägagångssätt.”

detta var anledningen till att Fleischer slutade släppa källkoden och också ändrade licensen. ”Säkring för macOS 3.9 kan fortfarande vara fritt buntad med kommersiell programvara. Sedan i juli 2019 släppte jag FUSE för macOS 3.10 med stöd för macOS Catalina under den nya, mindre tillåtna licensen, som kräver specifikt skriftligt tillstånd att bunta FUSE med kommersiell programvara,” berättade han för Reg.

hur är det möjligt? ”Det mesta av säkringen för macOS-källkoden släpps under BSD-licensen. Libfuse, till exempel, släpps under LGPL. Jag gjorde vad andra utvecklare av säkringsgafflar med sluten källa har gjort under en tid. BSD-licensen har ingen copyleft, vilket innebär att ingen är skyldig att driva ändringar uppströms eller göra dem tillgängliga. Eftersom libfuse omfattas av LGPL måste ändringar göras tillgängliga, medan ändringar i kärnkoden kan hållas stängda,” förklarar Fleischer.

registret nyhetsbrev

resultatet? ”Efter licensbytet har jag kontaktats av flera företag och förhandlat fram några licensavtal. I detta avseende var det en framgång att stänga källkoden för FUSE. Åtminstone bidrog det till att öka medvetenheten om svårigheterna med hållbar utveckling av öppen källkod,” sade han.

Fleischer tillade att: ”jag gillar inte att fortsätta arbeta med FUSE som ett projekt med sluten källa. Det har varit ett svårt beslut och jag har tänkt på det under mycket lång tid, men jag står fast vid det och det verkade vara det enda alternativet kvar att öka medvetenheten och säkerställa projektets framtid.”

han erkänner dock att: ”jag har inte varit mycket transparent om licensändringen.”

en ny diskussion om Hackernyheter visar hur ”åsikten är uppenbarligen mycket uppdelad”, sa han.

som sagt, många av svaren är sympatiska. ”Jag hoppas att vi ser mer av detta i framtiden: Utvecklare inser att det arbete de gör har värde och att de inte är skyldiga att spendera sina liv och ge bort det gratis. Så de tar kontroll över sin arbetsprodukt och börjar fånga något av det värdet för sig själva,” sa en.

vad kommer att hända i framtiden? ”Så länge jag är ansvarig för FUSE for macOS-projektet, kommer FUSE alltid att vara gratis för icke-kommersiellt bruk”, sa han till El Reg. ”Skulle det någonsin komma till den punkt som jag bestämmer mig för att sluta behålla FUSE, och jag tvivlar starkt på att det kommer till detta inom överskådlig framtid, kommer jag att släppa källkoden under BSD-licensen och gå åt sidan för att låta någon annan ta kontroll över osxfuse-organisationen på GitHub.”

det är naturligtvis också möjligt att Apple kan ändra sina regler – det har sagt att kärntillägg kommer att begränsas i framtida versioner av macOS – eller att företaget kan bygga något som säkring i själva macOS-kärnan.