Skip to content

Releases: osxfuse/osxfuse

macFUSE 4.7.2

23 Apr 20:14
macfuse-4.7.2
Compare
Choose a tag to compare
macFUSE 4.7.2 Pre-release
Pre-release
  • Add support for volume names and volume icon paths (mount options volname and iconpath) 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

12 Apr 16:49
macfuse-4.7.1
Compare
Choose a tag to compare
  • 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

05 Apr 12:06
macfuse-4.7.0
Compare
Choose a tag to compare
macFUSE 4.7.0 Pre-release
Pre-release
  • 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. Returns ENOENT in case the kernel extension is not loaded and EINVAL 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. Returns EBUSY in case the kernel extension cannot be unloaded.
  • 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

16 Mar 01:27
macfuse-4.6.2
Compare
Choose a tag to compare
  • Perform FUSE_INIT handshake synchronously during mount(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

04 Mar 20:37
macfuse-4.6.1
Compare
Choose a tag to compare
  • 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 the extended_security option.

  • Remove unimplemented ioctl FUSEDEVGETMOUNTERPID from headers

  • Clean up kernel extension code

macFUSE 4.6.0

02 Jan 00:39
macfuse-4.6.0
Compare
Choose a tag to compare
  • 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 the access() callback in addition to the standard R_OK, W_OK and X_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. The fair_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

07 Jun 11:22
macfuse-4.5.0
Compare
Choose a tag to compare
  • 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

17 Apr 09:09
macfuse-4.4.3
Compare
Choose a tag to compare
  • 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

18 Feb 01:38
macfuse-4.4.2
Compare
Choose a tag to compare
  • 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

19 Aug 01:53
macfuse-4.4.1
Compare
Choose a tag to compare
  • 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.