- Notifications
You must be signed in to change notification settings - Fork530
Releases: macfuse/macfuse
macFUSE 5.0.7
Compare
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
postinstall
scriptReplace
typeof
with the__typeof__
builtin inlibfuse3
headers. Thetypeof
keyword is part of the C23 ISO standard, but is not officially supported in older C ISO standards.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 Backend
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
FSKit Backend
Improve support for macOS 26.
FSClient
now 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
/Volumes
automatically when mounting a volumeIntroduce foundational changes in preparation for new FSKit features in macFUSE 5.1
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.6
Compare
Fix bug in
macFUSE.framework
that could result in the file system process crashing after a failed mount attempt. The bug was introduces in version 4.10.0.Update
libfuse3
to version 3.17.4Use macOS 26.0 SDK instead of macOS 15.5 SDK to build macFUSE
Introduced foundational changes in preparation for new FSKit features in macFUSE 5.1
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.5
Compare
- Fix crash in
macFUSE.framework
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.
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.4
Compare
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.
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.
Add support for updating the bundled Launch Services when mounting a volume.
Add
--force
option to re-install the bundled Launch Services even though they are already up to date.
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.3
Compare
Add support for macOS 26
Add support for Xcode 26
Fix Unicode normalization bug. Use
ICU
instead oficonv
to normalize file names. Usingiconv()
is not a viable option, as the version bundled with macOS lacks support for the full range of Unicode characters (emojis). For details, see#1077.
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.2
Compare
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
FSKit
backend for the first time.Address compatibility issue with
libfuse3
API extensions. Theino64_t
type may be unavailable when_POSIX_C_SOURCE
is defined. For details, see#1080.Drop support for macOS 11. macOS 12 is the first macOS release that supports Swift Concurrency natively.
Use macOS 15.5 SDK instead of macOS 15.4 SDK to build macFUSE
Update uninstaller to remove new Launch Services
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.1
Compare
Update
libfuse3
to version 3.17.2Fix an issue that could cause a crash of the file system process on failed mount attempts
When mounting a volume, the file system process expects to receive a socket handle for exchanging FUSE messages. Sending the mount status code without sending a socket handle first, can result in a crash. This issue only affected the
FSKit
backend. For details, see#1071.Address an issue that could result in the file system extension not being listed in System Settings
In some cases
PluginKit
fails to discover the file system extension automatically. As a workaround we register the extension explicitly. This issue only affected theFSKit
backend. For details, see#1071.Optimize the service that is responsible for brokering connections between the file system extension and file system processes
Update uninstaller for macFUSE 5
Update build script and add target build options
--no-default
and--no-inherit
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 5.0.0
Compare
Add experimental support for
FSKit
on macOS 15.4 and newer releases of macOSmacFUSE supports two backends for mounting file systems. By default, the legacy VFS kernel API is used to mount volumes. When specifying the mount-time option
-o backend=fskit
, macFUSE will useFSKit
to mount the file system. For more information, seeFUSE Backends.Drop support for macOS 10.9 to 10.15. macFUSE 5 supports macOS 11 and later versions of macOS.
Make
macFUSE.framework
swift-friendlier by adding generics and nullability annotationsAdd new
macFUSE.framework
delegate method for listing directories. The new delegate method supports returning directory entries including the name and the requested attributes of each entry. This is the first step in implementing support forFUSE_READDIRPLUS
.- (nullable NSArray<GMDirectoryEntry *> *) contentsOfDirectoryAtPath:(NSString *)path includingAttributesForKeys:(NSArray<NSString *> *)keys error:(NSError * _Nullable * _Nonnull)error
Update reference file systems for macFUSE 5. For more information, see thedemo repository.
Optimize build script
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 4.10.2
Compare
Invalidate a vnode's identity in case the corresponding file is removed.
When performing a remove operation, the file might not actually be removed by the user space code.
libfuse
renames open files, hides them and defers removing them until all open file handles have been closed (unlesshard_remove
is enabled). This means we might come across the vnode again, e.g. while performing areaddir(3)
operation. We need to invalidate the vnode's current identity to make sure Finder does not display any outdated information.Optimize build script
Assets6
Uh oh!
There was an error while loading.Please reload this page.
macFUSE 4.10.1
Compare
Update
libfuse3
to version 3.17.1Some macOS specific features require FUSE API extensions that break compatibility with the vanilla FUSE API. Setting the compile-time flag
FUSE_DARWIN_ENABLE_EXTENSIONS
to 0, when building a file system, disables those API extensions. By default, the macOS specific API extensions are enabled.Please note:
- The macOS specific
libfuse3
API extensions might not be stable, yet. This means thatlibfuse3
file systems that are built for macFUSE 4.10.1 might need to be updated to work with future macFUSE releases.
- The macOS specific
Add support for arbitrary file system block sizes
The macOS kernel imposes no restrictions on the block size of a file system, neither should we. macFUSE supports file system block sizes between 128 B and 1 MB. The specified I/O size (
-oiosize=...
) is rounded down to the next multiple of the file system block size, if necessary.The device block size (
-oblocksize=...
) needs to be a power of two and may not exceed 4 KB on Intel Macs and 16 KB Apple Silicon Macs.Address code signing issue. The bundled download helper
ksurl
needs to be code signed individually to make its origin transparent. In previous releases,ksurl
was only code signed indirectly as component of the update tool. For details, see#1062.Declare the maximum size of extended attributes.
pathconf(..., _PC_XATTR_SIZE_BITS)
returns the number of bits that are required to store the maximum extended attribute size in bytes, in our case 25, which equals a maximum extended attribute size of 33,554,431 bytes (~ 32 MB).
Assets6
Uh oh!
There was an error while loading.Please reload this page.