| CARVIEW |
Navigation Menu
-
-
Notifications
You must be signed in to change notification settings - Fork 535
Releases: macfuse/macfuse
macFUSE 5.1.3
General
- Update build process to use Xcode 26.2 (macOS 26.2 SDK)
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.1.3
-
Add special handling for the
O_EXECopen flag to prevent a kernel panic. Internally,O_EXECis treated asO_RDONLY, meaning a readable file descriptor will be requested from the file system server. For details, see #1130.
FSModule (FSKit Backend)
- Introduce foundational changes in preparation for new features in macFUSE 5.2
libfuse3
- Fix an issue that resulted in the extended attribute name passed to the
setxattrhandler always being an empty string. On macOS,FUSE_COMPAT_SETXATTR_IN_SIZEneeds to account for the additionalpositionfield and its associated padding. For details, see #1134.
Assets 6
macFUSE 5.1.2
FSModule (FSKit Backend)
-
Improve automatic file system extension registration
The file system extensions are registered automatically before mounting a volume and can be registered manually using the
installsubcommand. The--forceflag removes any duplicate extensions before registering the current set./Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse install --force -
Add support for streaming logs using the
logsubcommand/Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse log stream -
Resolve compatibility issues with legacy versions of macOS
Previous releases installed the
io.macfuse.app.launchservice.brokerlaunch service on unsupported versions of macOS, which could result in the service crashing and the installer hanging. This release removes the service on unsupported versions of macOS.
Assets 6
macFUSE 5.1.1
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.1.1
-
Disable
VNOP_MONITORsupport on macOS 15.VNOP_MONITORwas introduced in macOS 15.4. Disable the feature on macOS 15 to maintain compatibility with macOS versions before 15.4.
Assets 6
macFUSE 5.1.0
General
-
Update build process to use Xcode 26.1 (macOS 26.1 SDK)
-
Update demo file systems
- Update
LoopbackFSdemo file systems and add alibfuse3variant (LoopbackFS-libfuse3-C) - Add new
HelloFSdemo file system (HelloFS-Framework-Swift). It serves as a minimal "Hello World" example β in just 40 lines of code. - For more information, see the demo repository.
- Update
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.1.0
-
Add support for the
VNOP_MONITORfile system callbackThe
VNOP_MONITORcallback is available since macOS 15 and notifies file systems when the number of watchers for a file system item changes. This allows distributed file systems to subscribe only to events for items that are actively being watched, improving efficiency and reducing unnecessary event handling.- When the
VNOP_MONITORcallback is invoked, the kernel extension sends aFUSE_MONITORmessage (struct fuse_monitor_in) to the file system server running in user space - The
FUSE_MONITOR_BEGINflag is set when a new watcher starts monitoring the item - The
FUSE_MONITOR_ENDflag is set when a watcher stops monitoring the item
- When the
-
Fix a bug in
VNOP_LINKthat can cause a deadlock in case a file system uses the samenodeidto represent both the original file system item and its link. In this case, trying to lock the link inVNOP_LINKresulted in a deadlock. For more information, see #1120. -
Fix a bug in
VNOP_MNOMAPthat can cause a deadlock. TheVNOP_WRITEcallback might end up calling theVNOP_MNOMAPcallback. Attempting to lock the already locked file system item in theVNOP_MNOMAPcallback caused the deadlock. -
Fix
f_mntfromname(fsnamemount option) being truncated at 90 bytes.f_mntfromnamesupports names of up to 1024 bytes (including the terminating\0character). For more information, see #1123.
FSModule (FSKit Backend)
-
Add support for mounting "non-local" volumes (typically distributed file systems) on macOS 26. Mounting "local" volumes (typically physically attached storage) is supported on macOS 15.4 and later macOS versions.
-
Add support for mount option
local. macOS is more aggressive in dealing with "local" volumes. Treat this option as experimental. -
Add support for mount option
volname=NAME, whereNAMEis a string. You can use thevolnameoption to specify a name for the volume being mounted.
libfuse
- Add new
monitorcallback handler and implement support for the newFUSE_MONITORmessage. For more information, see "Kernel Extension".
libfuse3
-
Add support for mounting file systems using the
FSKitbackend. By default, the kernel backend is used to mount volumes. When specifying the mount option-o backend=fskit,libfuse3will use theFSKitbackend to mount the file system. For more information, see FUSE Backends. -
Add new
monitorcallback handler and implement support for the newFUSE_MONITORmessage. For more information, see "Kernel Extension". -
Add
utimensAPI extension for macOS. WhenFUSE_DARWIN_ENABLE_EXTENSIONSis set to 1 , theutimenshandler is called with three time stamps β the file's access, modification, and backup time stamps. By default, the handler is called with the file's access and modification time stamps. -
Fix a bug in the
statfsAPI extension for macOS and add missingfuse_lib_statfs$DARWIN()handler -
Fix a bug in the
threadidmodule that prevented several file system callback handlers from being invoked when using the module -
Adapt
fuse_clone_chan_fd_default()for macOS. On macOS, there is no need to associate new FUSE device file descriptors with the original ones. -
Rename
crtime(creation time)btime(birth time). This change does not affect ABI stability, but it requires code updates when compiling a file system with this release and the macOS API extensions being enabled.
Framework
-
Improve Swift support
- Enable Clang module support to improve interoperability with Swift
- Drop the
GMtype name prefix in Swift - Make
UserFileSystem.MoveOptionsmore idiomatic for Swift - Add
FileAttributeKeyextension defining additional framework-specific attribute keys - These changes have no affect on ABI stability, but they require code updates when compiling a file system with this release
-
Turn
NSObjectcategoriesUserFileSystemLifecycle,UserFileSystemOperations, andUserFileSystemResourceForksinto actual protocols -
Remove unsupported
exchangedata()callback handler.exchangedata()has been superseded byrenamex_np()and has been unsupported since macOS 11. This change deprecates the corresponding delegate method.- (BOOL)exchangeDataOfItemAtPath:(NSString *)path withItemAtPath:(NSString *)otherPath error:(NSError * _Nullable * _Nonnull)error
System Settings
- Fix a layout bug on macOS 26 and modernize layout
Assets 6
macFUSE 5.0.7
General
-
Update build process to use Xcode 26.0.1 (macOS 26.0 SDK)
-
Update Installer package to use absolute paths when invoking command line tools in the
postinstallscript -
Drop compatibility code for macOS 11 and earlier. macFUSE 5 supports macOS 12 through macOS 26.
-
Fix license file formatting. On macOS 26, QuickLook fails to render lists correctly if they are placed inside table cells in rich text documents.
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.0.7
-
Preserve a vnode's identity when marking it as dangling. Resetting the identity causes the
fchmod(2)system call to fail. This addresses #1112. -
Resolve symbolic links in the kernel extension path before attempting to load the kernel extension
FSModule (FSKit Backend)
-
Improve support for macOS 26.
FSClientnow provides information about installed third party file system extensions, enabling more reliable detection of whether a file system extension has been enabled by the user. -
Add support for creating a mount point in
/Volumesautomatically when mounting a volume -
Introduce foundational changes in preparation for new FSKit features in macFUSE 5.1
libfuse3
- Replace
typeofwith the__typeof__builtin in headers. Thetypeofkeyword is part of the C23 ISO standard, but is not officially supported in older C ISO standards.
Assets 6
macFUSE 5.0.6
General
-
Use macOS 26.0 SDK instead of macOS 15.5 SDK to build macFUSE
-
Introduce foundational changes in preparation for new
FSKitfeatures in macFUSE 5.1
libfuse3
- Update
libfuse3to version 3.17.4
Framework
- Fix a bug that could result in the file system process crashing after a failed mount attempt. The bug was introduces in version 4.10.0.
Assets 6
macFUSE 5.0.5
Framework
- Fix crash in after unmounting a volume. The bug has been introduced in version 5.0.0 and was caused by over-releasing an object on the mount thread. For details, see #1086.
Assets 6
macFUSE 5.0.4
General
-
Improve compatibility with macOS 26. macOS 26 reports itself as macOS 16 for binaries that were built using the macOS 15 SDK. This affected the updater.
-
Add support for updating the bundled Launch Services when mounting a volume.
-
Add
--forceoption to re-install the bundled Launch Services even though they are already up to date.
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.0.4
-
Fix rare kernel panic when re-parenting "dangling" vnodes. Dangling vnodes were removed from the file hierarchy, but each retained a reference to its previous parent directory. This could trigger a kernel panic under certain conditions. For details, see #1085.
Assets 6
macFUSE 5.0.3
General
-
Add support for macOS 26
-
Add support for Xcode 26
libfuse
- Fix a Unicode normalization bug by using
ICUinstead oficonvto normalize file names. Theiconvrelease bundled with macOS lacks full Unicode coverage (e.g., emojis). For details, see #1077.
libfuse3
- Fix a Unicode normalization bug by using
ICUinstead oficonvto normalize file names. Theiconvrelease bundled with macOS lacks full Unicode coverage (e.g., emojis). For details, see #1077.
Assets 6
macFUSE 5.0.2
General
-
Use macOS 15.5 SDK instead of macOS 15.4 SDK to build macFUSE
-
Switch from App Services to Launch Services. This change streamlines the installation process and eliminates the need for users to authenticate as admin when using the
FSKitbackend for the first time. -
Drop support for macOS 11. macOS 12 is the first macOS release that supports Swift Concurrency natively.
-
Update uninstaller to remove new Launch Services
libfuse3
- Address compatibility issue with Darwin API extensions. The
ino64_ttype may be unavailable when_POSIX_C_SOURCEis defined. For more information, see #1080.