Announcing macFUSE 4.0.0 Posted on 30 Oct 2020
Release Notes
-
FUSE for macOS is now macFUSE.
-
Add support for Apple Silicon. The new release supports macOS 10.9 to macOS 11 (Intel and Apple Silicon).
-
Drop binary compatiblity with Google MacFUSE. The Google MacFUSE project was abandoned in 2009. Legacy file systems need to be recompiled for the new macFUSE release.
-
The user space library and framework have been renamed to reflect the name change and can now be found at
/usr/local/lib/libfuse.2.dylib(headers in/usr/local/include/) and/Library/Frameworks/macFUSE.framework. -
Add support for
renamex_np(2)on macOS 10.12 and later (VOL_CAP_INT_RENAME_SWAPandVOL_CAP_INT_RENAME_EXCL).Add new callbacks to libfuse
void renamex(fuse_req_t req, fuse_ino_t parent, const char *name, fuse_ino_t newparent, const char *newname, unsigned int flags); int renamex(const char *from, const char *to, unsigned int flags);Add new callback to macFUSE.framework
typedef NS_OPTIONS(NSUInteger, GMUserFileSystemMoveOption) { GMUserFileSystemMoveOptionSwap = 1 << 0, GMUserFileSystemMoveOptionExclusive = 1 << 1 }; - (BOOL)moveItemAtPath:(NSString *)source toPath:(NSString *)destination options:(GMUserFileSystemMoveOption)options error:(NSError **)error; -
Drop support for
exchangedata(2)on macOS 11 (VOL_CAP_INT_EXCHANGEDATA). -
Add support for renaming mounted volumes (
VOL_CAP_INT_VOL_RENAME).Add new callbacks to libfuse
void setvolname(fuse_req_t req, const char *name); int setvolname(const char *name);Add new callback to macFUSE.framework
- (BOOL)setAttributes:(NSDictionary *)attributes ofFileSystemAtPath:(NSString *)path error:(NSError **)error; - Clean up libfuse
- Use DiskArbitration for unmounting volumes.
- Remove deprecated non-portable function.
-
Add support for volume UUIDs (
f_uuid). For each volume a UUID is generated at mount-time. -
Drop support for deprecated “old style” mount process. Opening a
/dev/macfusedevice and passing the file descriptor tomount_macfuseis no longer supported (“old style”).mount_macfusepasses the file descriptor to the calling library over a socket (“new style”, introduced in version 3.3.0). -
Version the
mount_macfusesocket interface used for returning the/dev/macfusefile descriptor to the calling library. When setting the environment variable_FUSE_COMMVERSto2, the mount tool will pass the status of themount(2)call back to the calling library over the_FUSE_COMMFDsocket, before exiting. -
Rename
mount_macfuseenvironment variables_FUSE_CALL_BY_LIB(beforeMOUNT_OSXFUSE_CALL_BY_LIB) and_FUSE_DAEMON_PATH(beforeMOUNT_OSXFUSE_DAEMON_PATH). -
Drop support for legacy ioctls
FUSEDEVIOCGETHANDSHAKECOMPLETE(use_FUSE_COMMVERS=2instead) andFUSEDEVIOCALTERVNODEFORINODE(use notification API instead). - The license has changed. Starting with the 4.0.0 release, redistributions bundled with commercial software are not allowed without specific prior written permission. This includes the automated download or installation in the context of commercial software. Please contact Benjamin Fleischer.



