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.