Skip to content

@bfleischer bfleischer released this Jan 2, 2021 · 484 commits to master since this release

  • Restore binary compatibility with file systems, that were built using version 3 of the high-level Objective-C framework. This improves compatibility with legacy file systems.

  • Add workaround for loading system extensions on macOS 11. The function KextManagerLoadKextWithURL() is broken on macOS 11 and might return an error even if the macFUSE system extension has been loaded successfully. We need to double-check if the extension has been loaded.

  • Add workaround for unloading system extensions on macOS 11. The function KextManagerUnloadKextWithIdentifier() is broken on macOS 11, claiming the load_macfuse process, that is running as root, does not have sufficient privileges to unload the extension.

  • Add Apple Silicon support to installer. The installer now runs natively on Apple Silicon.

  • Improve installer compatibility with macOS 11. On macOS 11 a restart is required before the macFUSE system extension can be loaded. There is no need to try loading the extension more than once in the context of the installer.

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

Assets 6

@bfleischer bfleischer released this Nov 30, 2020 · 484 commits to master since this release

  • Fix a renamex_np(2) issue when using the flag RENAME_SWAP. This improves the compatibility with Microsoft Office.

  • Add libosxfuse_i64.2.dylib symlink for legacy file systems that were build with version 2.

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

Assets 6
Pre-release
Pre-release

@bfleischer bfleischer released this Nov 18, 2020 · 484 commits to master since this release

  • Fix a bug in macFUSE.framework that can result in volumes falsely claiming to support renamex_np(2) (VOL_CAP_INT_RENAME_SWAP and VOL_CAP_INT_RENAME_EXCL) even though support for the file system feature has not been enabled. File systems that are based on libfuse are not affected by the issue.

  • Fix an upstream bug in libfuse 2.9.9, that can result in readdir(2) returning EIO. See #729 for details.

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

Assets 6
Pre-release
Pre-release

@bfleischer bfleischer released this Nov 8, 2020 · 484 commits to master since this release

  • Fix kernel extension ambiguity on macOS 11. The kernel extension version number now contains the version of the kernel that the particular extension was built for.

  • Remove KextManagerLoadKextWithURL() workaround, that was introduced in version 3.11.1. The issue has been resolved in macOS 11.0.1.

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

Assets 6
Pre-release
Pre-release

@bfleischer bfleischer released this Nov 1, 2020 · 484 commits to master since this release

  • Force installation of preference pane if a legacy version of the preference pane is currently installed.

  • Enable dark mode support for preference pane on macOS 10.14 and macOS 10.15. See #550 for details.

  • Fix English localization of installer. See #737 for details.

  • Fix a bug that resulted in the preinstall and postinstall scripts missing from the installer package. The preinstall script is responsible for removing legacy versions of the package before installing the new release. See #736 for details.

  • Fix a bug that resulted in some Info.plist placeholders not being resolved at build-time for macfuse.fs.

  • Fix bug in the uninstaller (preference pane) that resulted in not all components being removed.

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

Assets 6
Pre-release
Pre-release

@bfleischer bfleischer released this Oct 30, 2020 · 484 commits to master since this release

  • FUSE for macOS is now macFUSE.

  • Add support for Apple Silicon. The new release supports macOS 10.9 to macOS 11 (Intel and Apple Silicon).

  • Drop binary compatiblity with Google MacFUSE. The Google MacFUSE project was abandoned in 2009. Legacy file systems need to be recompiled for the new macFUSE release.

  • The user space library and framework have been renamed to reflect the name change and can now be found at /usr/local/lib/libfuse.2.dylib (headers in /usr/local/include/) and /Library/Frameworks/macFUSE.framework.

  • Add support for renamex_np(2) on macOS 10.12 and later (VOL_CAP_INT_RENAME_SWAP and VOL_CAP_INT_RENAME_EXCL).

    Add new callbacks to libfuse

    void renamex(fuse_req_t req, fuse_ino_t parent, const char *name, fuse_ino_t newparent, const char *newname, unsigned int flags);
    int renamex(const char *from, const char *to, unsigned int flags);
    

    Add new callback to macFUSE.framework

    typedef NS_OPTIONS(NSUInteger, GMUserFileSystemMoveOption) {
        GMUserFileSystemMoveOptionSwap      = 1 << 0,
        GMUserFileSystemMoveOptionExclusive = 1 << 1
    };
    
    - (BOOL)moveItemAtPath:(NSString *)source toPath:(NSString *)destination options:(GMUserFileSystemMoveOption)options error:(NSError **)error;
    
  • Drop support for exchangedata(2) on macOS 11 (VOL_CAP_INT_EXCHANGEDATA).

  • Add support for renaming mounted volumes (VOL_CAP_INT_VOL_RENAME).

    Add new callbacks to libfuse

    void setvolname(fuse_req_t req, const char *name);
    int setvolname(const char *name);
    

    Add new callback to macFUSE.framework

    - (BOOL)setAttributes:(NSDictionary *)attributes ofFileSystemAtPath:(NSString *)path error:(NSError **)error;
    
  • Clean up libfuse

    • Use DiskArbitration for unmounting volumes.
    • Remove deprecated non-portable function.
  • Add support for volume UUIDs (f_uuid). For each volume a UUID is generated at mount-time.

  • Drop support for deprecated "old style" mount process. Opening a /dev/macfuse device and passing the file descriptor to mount_macfuse is no longer supported ("old style"). mount_macfuse passes the file descriptor to the calling library over a socket ("new style", introduced in version 3.3.0).

  • Version the mount_macfuse socket interface used for returning the /dev/macfuse file descriptor to the calling library. When setting the environment variable _FUSE_COMMVERS to 2, the mount tool will pass the status of the mount(2) call back to the calling library over the _FUSE_COMMFD socket, before exiting.

  • Rename mount_macfuse environment variables _FUSE_CALL_BY_LIB (before MOUNT_OSXFUSE_CALL_BY_LIB) and _FUSE_DAEMON_PATH (before MOUNT_OSXFUSE_DAEMON_PATH).

  • Drop support for legacy ioctls FUSEDEVIOCGETHANDSHAKECOMPLETE (use _FUSE_COMMVERS=2 instead) and FUSEDEVIOCALTERVNODEFORINODE (use notification API instead).

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

Assets 6

@bfleischer bfleischer released this Oct 5, 2020 · 484 commits to master since this release

  • Improve macOS 11 compatibility by adding workaround for displaying user notifications. The function CFUserNotificationDisplayAlert() returns undocumented, backwards compatibility breaking response flags on macOS 11.

  • The license has changed. Starting with the 3.10.0 release, redistributions bundled with commercial software are not allowed without specific prior written permission. Please contact Benjamin Fleischer.

Assets 6

@bfleischer bfleischer released this Oct 2, 2020 · 484 commits to master since this release

  • Fix an issue on macOS 11, that can result in file system operations not being interruptible.

  • Improve macOS 11 compatibility by adding support for the new macOS version numbering scheme.

  • Improve macOS 11 compatibility by adding workarounds for the new KextManager implementation. The function KextManagerLoadKextWithURL() returns undocumented, backwards compatibility breaking status codes on macOS 11.

  • Improve macOS 11 compatibility by enabling the "Continue" button in the post install plugin, even if the kernel extension has not been loaded. On macOS 11 a restart might be required before the kernel extension can be loaded.

  • The license has changed. Starting with the 3.10.0 release, redistributions bundled with commercial software are not allowed without specific prior written permission. Please contact Benjamin Fleischer.

Assets 6

@bfleischer bfleischer released this Jul 4, 2020 · 484 commits to master since this release

  • Add experimental support for macOS 11.0 (Intel)

  • Fix an issue with the volicon module, that was introduced in version 3.10.4 and results in the volume icon not being visible. For details see #701.

  • The license has changed. Starting with the 3.10.0 release, redistributions bundled with commercial software are not allowed without specific prior written permission. Please contact Benjamin Fleischer.

Assets 6

@bfleischer bfleischer released this Jun 8, 2020 · 484 commits to master since this release

  • Fix an issue on macOS 10.15 that can result in terminated processes to turn into zombies, that still hold a lock to a file on the FUSE volume. As a result the volume cannot be unmounted.

  • Minor build script optimizations

  • The license has changed. Starting with the 3.10.0 release, redistributions bundled with commercial software are not allowed without specific prior written permission. Please contact Benjamin Fleischer.

Assets 6
You can’t perform that action at this time.