Macos big sur

129 views
Skip to first unread message

David Presotto

unread,
Dec 21, 2020, 5:32:15 PM12/21/20
to Upspin
Upgraded(?) to big sur.  Couldn't get osxfuse to work, hence no upspinfs.  Seems to be a number of fixes for this, part of the new macos security. These security upgrades are driving me bananas. I downgraded to catalina.  I'll try again after making sure I have a bootable backup.

Tom Lieber

unread,
Dec 26, 2020, 4:55:52 PM12/26/20
to David Presotto, Upspin
I hacked at it for a bit. Not sure how far you got, but OSX FUSE became macFUSE at version 4.0.0 and renamed a bunch of stuff, so cmd/upspinfs/fs.go requires an additional fuse.MountOption:

+ fuse.OSXFUSELocations(fuse.OSXFUSEPaths{
+ DevicePrefix: "/dev/macfuse",
+ Load:         "/Library/Filesystems/macfuse.fs/Contents/Resources/load_macfuse",
+ Mount:        "/Library/Filesystems/macfuse.fs/Contents/Resources/mount_macfuse",
+ DaemonVar:    "_FUSE_DAEMON_PATH",
+ }),

Somewhere along the line, mount_macfuse also renamed the 'subtype' option 'fssubtype', which requires patching Upspin's pinned version of bazil.org/fuse's options.go:

- conf.options["subtype"] = fstype
+ conf.options["fssubtype"] = fstype

Also, macFUSE 4.0.0 also deprecated the "old style" mount process that the pinned version of bazil.org/fuse uses in mount_darwin.go where it passes "3" and dir to mount_macfuse. The 4.0.0 release notes say: "Opening a /dev/macfuse device and passing the file descriptor to mount_macfuse is no longer supported ('old style'). mount_macfuse passes the file descriptor to the calling library over a socket ('new style', introduced in version 3.3.0)." The 3.3.0 release notes just say, "In order to decouple libosxfuse from the FUSE kernel extension the mount process has been revised to match FUSE on Linux. mount_osxfuse will locate a free FUSE device, open it, and then pass the file descriptor back to libosxfuse." That may be fixed in a later bazil.org/fuse, but for now, I must turn into a pumpkin.

On Mon, Dec 21, 2020 at 2:32 PM David Presotto <pres...@gmail.com> wrote:
Upgraded(?) to big sur.  Couldn't get osxfuse to work, hence no upspinfs.  Seems to be a number of fixes for this, part of the new macos security. These security upgrades are driving me bananas. I downgraded to catalina.  I'll try again after making sure I have a bootable backup.

--
You received this message because you are subscribed to the Google Groups "Upspin" group.
To unsubscribe from this group and stop receiving emails from it, send an email to upspin+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/upspin/CAC_Z_pSXodFgXEXcWoO0UqY2ZKE5iq2zXmF4hmXwTm_88b2KQw%40mail.gmail.com.

Tom Lieber

unread,
Dec 27, 2020, 1:56:42 PM12/27/20
to David Presotto, Upspin
I haven't tested this thoroughly, but these patches seem sufficient to mount Upspin on a M1 Mac running Big Sur using macFUSE. I probably broke it for older versions of macFUSE, and probably other platforms with the subtype → fssubtype rename. The changes to mount_darwin.go are mostly a copy of what mount_linux.go does.

I don't know how this could be rolled into Upspin proper anyway, though. Tv removed macOS support from bazil.org/fuse back in April, so there is no upstream.
upspin.patch
bazilfuse.patch

Rob Pike

unread,
Dec 27, 2020, 10:16:06 PM12/27/20
to Tom Lieber, David Presotto, Upspin
Nice work, thanks for this. I hope to test it out myself soon.

-rob


David Presotto

unread,
Dec 31, 2020, 8:29:54 AM12/31/20
to Tom Lieber, Upspin
Thanks Tom.  A question about the versions you are using.  Are you still using the old bazil fuse package: fu...@v0.0.0-20160811212531-371fbbdaa898 and apply the changes to that or did you copy all the darwin cruft into the current bazil fuse pkg and update that?  I just noticed that the new upspin go.mod is requiring the new version which may be a mistake.


Tom Lieber

unread,
Dec 31, 2020, 2:11:10 PM12/31/20
to David Presotto, Upspin
My patch applies to 371fbbd, the old one.

David Presotto

unread,
Dec 31, 2020, 2:45:53 PM12/31/20
to Tom Lieber, Upspin
Thanks Tom.

David Presotto

unread,
Dec 31, 2020, 3:13:09 PM12/31/20
to Tom Lieber, Upspin
Looks like I can move the upspinfs changes into bazil.org/fuse since it already has code to base its helpers etc by what it finds in the mac file system.  It picks the newest version there which is almost always the right decision.  Probably need a way to override that since someone may have installed a newer version and then backed out without removing the files.

Still not sure what to do about patching a no longer supported fuse branch though...  Upspinfs only uses a subset of its functionality so I can live with that for a long time but eventually we would probably have to merge changes if the other systems drastically changed something.  Looking at all of tv's changes, I can see why he was happy to dump macos support.

I guess one possibility is for me to write a much less functional fuse interface for upspinfs.  It would be shorter and easier to support.

Reply all
Reply to author
Forward
0 new messages