Releases: osxfuse/osxfuse
macFUSE 4.7.2
-
Add support for volume names and volume icon paths (mount options
volname
andiconpath
) that contain commas or backslashes. Commas and backslashes need to be escaped by a preceding backslash character. -
Improve
volicon
mount option shortcut handling -
Add rudimentary support for incremental builds and clean up build scripts
macFUSE 4.7.1
-
Work around "Allow loading system extension" loop
To support new macOS features, macFUSE includes multiple variants of the macFUSE kernel extension. In some cases, the macOS kernel manager tries to load the wrong variant and prompts the user to allow loading it. Then after the necessary restart, the user is prompted again, for a different variant. This continues forever.
Starting with this release, all kernel extension variants use unique bundle identifiers. Addresses #1011.
-
Revert to semantic version number for kernel extension variants
-
Enable support for non-blocking I/O for FUSE file descriptor. For details see #536.
-
Use macOS 14.4 SDK instead of macOS 14.2 SDK to build macOS 14 kernel extension
macFUSE 4.7.0
-
Be more verbose about error conditions when trying to load the macFUSE kernel extension at the end of the installation process.
In case a different version of the kernel extension is currently in use, display an "Unmount" button to unmount FUSE volumes right from the installer, so that the newly installed version of the kernel extension can be loaded.
-
Add kernel extension loader actions "check" and "unload".
- Call
load_macfuse
with the-c
or--check
option to check whether the installed kernel extension is currently loaded. ReturnsENOENT
in case the kernel extension is not loaded andEINVAL
in case a different version of the kernel extension is currently loaded. - To unload the kernel extension call
load_macfuse
with the-u
or--unload
option. ReturnsEBUSY
in case the kernel extension cannot be unloaded.
- Call
-
Wake up all threads waiting for new FUSE messages when the volume is unmounted or marked as dead. For details see #974.
macFUSE 4.6.2
-
Perform
FUSE_INIT
handshake synchronously duringmount(2)
operation. When performing the handshake synchronously, we avoid hangs and we are able to error out of the mount process in case the handshake fails.We used to perform the handshake asynchronously. This has drawbacks and introduced several challenges. Most importantly, there is no guarantee the handshake will ever be completed by the file system daemon. This could result in lingering mount points.
Performing the handshake synchronously makes initialization more robust. This addresses #653, #668, #793, #826, #856, #874 and #1003.
-
Clean up kernel extension code
macFUSE 4.6.1
-
Work around unintended modification time updates on Apple Silicon Macs running macOS 12 and later
When mapping I/O buffers to memory in the kernel extension, the desired memory protection level needs to be specified on Apple Silicon Macs. Mapping the buffer with the default protection level results in unnecessary writes and unintended modification time updates in the future. However, there is no public API for specifying the desired memory protection level on macOS 11.
As a result of this change, macFUSE ships with dedicated kernel extensions for macOS 12 and macOS 14 in addition to the macOS 11 kernel extension.
-
Add "Open Getting Started" button to the "System Extension Blocked" alert that is displayed when the user is prompted to allow loading the kernel extension. Clicking on "Open Getting Started" opens the Getting Started wiki document.
-
Remove ioctl
FSCTLSETACLSTATE
(extended security). Extended security (including support for ACLs) can be enabled at mount time by using theextended_security
option. -
Remove unimplemented ioctl
FUSEDEVGETMOUNTERPID
from headers -
Clean up kernel extension code
macFUSE 4.6.0
-
Add support for extended access modes. When the
FUSE_CAP_ACCESS_EXTENDED
capability bit is set, the following more granular access modes are passed to theaccess()
callback in addition to the standardR_OK
,W_OK
andX_OK
modes._READ_OK read file data / read directory _WRITE_OK write file data / add file to directory _EXECUTE_OK execute file / search in directory _DELETE_OK delete file / delete directory _APPEND_OK append to file / add subdirectory to directory _RMFILE_OK remove file from directory _RATTR_OK read basic attributes _WATTR_OK write basic attributes _REXT_OK read extended attributes _WEXT_OK write extended attributes _RPERM_OK read permissions _WPERM_OK write permissions _CHOWN_OK change ownership
-
Add
fair_locking
mount option. By default, macFUSE uses an unfair locking mechanism to ensure file system consistency. This can lead to issues when the file system is processing an extreme amount of operations in parallel. In this case, some file system operations might be delayed too long for real-time tasks. Thefair_locking
option ensures that file system operations are processed fairly. Fair locking comes a little performance overhead compared to unfair locking, but it might be the better option when dealing with high pressure situations. -
Address kernel panic on macOS 14 when a macFUSE volume is shared over SMB. For details see #982.
macFUSE 4.5.0
-
Add support for macOS 14
-
Add support for Xcode 15
-
Add Getting Started link to "Completion" installer phase. The document contains detailed instructions on how to enable macFUSE on newer versions of macOS.
macFUSE 4.4.3
- Work around unavailable VFS plugin. Starting with macOS 12, some users have been reporting that the VFS plugin is not available when they are trying to mount a volume, although the kernel extension is loaded. Starting with this release, the kernel extension loader works around this issue by trying to reload the kernel extension, in case the VFS plugin is not available.
macFUSE 4.4.2
-
Work around installer issue on macOS 13. macOS 13.2 seems to be unable to open the installer package soft link in the root of the distribution disk image. Using a hard link instead of a soft link resolves this issue. For details see #932.
-
Use macOS 13.1 SDK instead of macOS 12.3 SDK to build macFUSE.
macFUSE 4.4.1
- Fix issue that can render macFUSE volume unresponsive. In case a paging operation is triggered during a file system operation, macFUSE tries to acquire the node lock a second time which leads to a deadlock. The bug was introduced in version 4.3.1.