Skip to content
macfuse-4.3.1
Compare
Choose a tag to compare

macFUSE 4.3.1

Pre-release
Pre-release
  • Fix issue that can trigger a kernel panic when unmounting a volume with read/write node locking enabled. With read/write node locking disabled (default), the kernel extension does not panic.
macfuse-4.3.0
Compare
Choose a tag to compare

macFUSE 4.3.0

Pre-release
Pre-release
  • Improve performance by adding support for read/write node locking. File systems should declare this capability, if they are thread safe with respect to file system operations involving the same node. Otherwise, file system operations (involving the same node) are processed serially. See Declaring File System Capabilities for details.

  • Fix minor memory leak in kernel extension

  • Work around pointers being censored in kernel logs. By default, macOS removes all kernel memory addresses from logs. Unfortunately, this complicates debugging threading and locking issues.

  • Remove obsolete conditionals M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK and M_OSXFUSE_ENABLE_BIG_LOCK from the kernel extension and clean up code

  • Update build scripts for Xcode 13

macfuse-4.2.5
Compare
Choose a tag to compare
  • Fix race condition that can trigger a kernel panic in rare cases when using fuse_lowlevel_notify_inval_inode(), fuse_invalidate_path() or [GMUserFileSystem invalidateItemAtPath:error:]. See #878 for details.

  • Update build tools to use notarytool instead of altool for notarizing releases.

  • Use macOS 12.3 SDK to instead of macOS 12.1 SDK to build macFUSE.

macfuse-4.2.4
Compare
Choose a tag to compare
  • Improve support for macOS 12. Starting with macOS 12, the process diskimagesiod needs to be able to access disk images in order for them to be mounted. Allow diskimagesiod to access the volume even if the allow_other mount option has not been specified.

  • Use macOS 12.1 SDK instead of macOS 11.3 SDK to build macFUSE.

macfuse-4.2.3
Compare
Choose a tag to compare
  • Fix auto_cache mount option on Apple Silicon. When auto_cache is enabled, we try to detect remote file changes in the getattr callback and invalidate the file's cache. In previous releases local file system operations could mask remote writes, resulting in the local cache not being invalidated. On Apple Silicon this could result in subsequent writes of stale cache data.
macfuse-4.2.2
Compare
Choose a tag to compare

macFUSE 4.2.2

Pre-release
Pre-release
  • Add workaround to reduce unnecessary writes on Apple Silicon.

  • Declare support for 64-bit object IDs (VOL_CAP_FMT_64BIT_OBJECT_IDS)

macfuse-4.2.1
Compare
Choose a tag to compare
  • Fix race condition that can result in mkdir(2) returning EINVAL when creating multiple directories recursively. See #832 for details.

  • Fix race condition when removing a directory or creating a symlink. See #824 for details.

  • Add workaround for an infinite write loop when unmapping a file from memory on Apple Silicon.

    On Apple Silicon munmap(2) might trigger a write, regardless of whether the mapped file was modified or not. This unnecessary write would update the file's modification time, which in turn might cause security software to scan the file. If such a scanner maps the file to memory, the file's modification time will get updated again as soon as the scanner calls munmap(2). This triggers another scan cycle and so on.

  • Add workaround for a missing TARGET_OS_OSX macro in Xcode 13's sys/cdefs.h kernel header.

  • Improve support for non-latin languages by adding support for returning file names in the Unicode Normalization Form D (NFD) in the readdir callback.

    Finder and other macOS system tools expect file names to be in the D form. Using the C form can result in unexpected behavior, e.g. file names not being displayed in Finder under certain conditions. See Unicode Normalization Forms for details.

  • Improve detection of remote file changes and prevent unnecessary writes.

  • Set minimum I/O size value (iosize mount option) to the platform's page size. On Apple Silicon the minimum I/O size is 16,384 bytes. On Intel it is 4,096 bytes. Using an I/O size value less than the platform's page size can cause hangs.

  • Perform synchronous writes when unmapping a file from memory. When the last munmap(2) completes, the file will have been written to the backing storage.

macfuse-4.2.0
Compare
Choose a tag to compare

macFUSE 4.2.0

Pre-release
Pre-release
  • Add experimental support for macOS 12.

  • Restore support for macOS 10.9 to 10.11. In Xcode 12.5, Apple fixed an issue that caused macOS 10.11 and earlier versions of macOS to reject packages signed in macOS 11 or later. With this fix, support for macOS 10.9 to 10.11 could be restored. This release supports macOS 10.9 to macOS 12.

  • Add experimental support for Xcode 13.

  • Update build scripts to add support for newer macOS SDKs and use macOS 11.3 SDK instead of the macOS 11.1 SDK to build macFUSE.

  • Add mount option norm_insensitive. When using the norm_insensitive option with a high-level file system, file names are normalized before performing a lookup. File names using different normalization forms will be treated as equal.

  • Fix bug in libfuse when calling the filler function in the readdir callback with non-zero offsets. The bug occurred when a filesystem client read a directory until the end, seeked using seekdir() to some valid non-zero position and called readdir(). A valid directory entry is expected, but NULL was returned instead.

    Please note: On macOS, telldir() may return zero the first time it is called. This is the reason the readdir callback of the loopback reference file system used to call the filler function with a zero offset for the first directory entry and non-zero offsets for all subsequent directory entries. This is a bug. Starting with this release readdir will return an I/O error (EIO) in case filler is called with zero and non-zero offsets.

macfuse-4.1.2
Compare
Choose a tag to compare
  • Add native Apple Silicon support to updater.

  • 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.

macfuse-4.1.1
Compare
Choose a tag to compare
  • Fix an issue when mounting a volume that can, in rare cases, result in the file system process crashing. DADiskCreateFromVolumePath() might return NULL, so we need to make sure to guard against calling CFRelease()on NULL.

  • Fix "Double-quoted include in framework header" warning when using macFUSE.framework.

  • Fix race condition in preference pane that can result in the preference pane crashing when checking for available updates. This addresses issue #792.

  • Generate debug symbols for preference pane and add them to debug archive.

  • 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.