github macfuse/macfuse macfuse-4.9.0
macFUSE 4.9.0

pre-release2 days ago
  • This release lays foundational groundwork for macFUSE 5.0

  • Decouple kernel extension version from release version. In future macFUSE releases, the kernel extension will only be updated in case there have been code changes of the macFUSE kernel code. This avoids prompting users to allow loading a new kernel extension build.

  • Address a race condition in the libfuse mount process. On macOS, the mount process is asynchronous. This means that mount(2) will not have returned when fuse_mount() returns, but we are interested in the mount(2) return code. Therefore, we spin up a separate thread that waits for mount(2) to return.

  • Use dispatch source to handle signals in libfuse. Mounted volumes are unmounted on SIGHUP, SIGINT and SIGTERM. We should not assume that unmounting a volume is async-signal safe. This means we should not rely on sigaction(2) handlers to perform the unmount operation.

  • Add support for using Grand Central Dispatch to process file system requests in libfuse. See fuse_loop_dispatch() for details. This reduces the number of threads being created and destroyed and cuts down on resource usage. fuse_session_loop_dispatch() is a drop-in replacement for fuse_session_loop_mt().

  • Add high-level libfuse mount-time option loop. The loop option can be used to select the file system request processing loop implementation. Supported values are:

    • single_threaded: Process requests serially
    • multi_threaded: Process requests in parallel on worker threads managed by libfuse
    • dispatch: Process requests in parallel using Grand Central Dispatch

    The default implementation is multi_threaded. When mount option -s (single threaded) is present, option loop is ignored.

  • Use dispatch semaphores as fallback for unnamed POSIX semaphores in libfuse. Unnamed POSIX semaphores are not supported by macOS. Therefore, we have been using a custom fallback implementation based on POSIX threads, which is now replaced by dispatch semaphores.

  • Silence pthread_setugid_np() deprecation warnings in libfuse

  • Modernize build script

    • The build script requires Bash 4.1 or a later Bash release
    • Improve support for incremental builds by adding support for caching build artifacts in a global cache.
    • Improve build performance.
  • Clean up code and improve readability

  • Archive loader and mounter debug symbols

  • Update links in release disk image

  • Complete move of all project resources from the osxfuse organization to the macfuse organization. See History for details.

Don't miss a new macfuse release

NewReleases is sending notifications on new releases.