osxfuse

FUSE extends macOS by adding support for user space file systems

OTHER License

Stars
8.7K

Bot releases are visible (Hide)

osxfuse - macFUSE 4.1.2

Published by bfleischer over 3 years ago

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

osxfuse - macFUSE 4.1.1

Published by bfleischer over 3 years ago

  • 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 osxfuse/osxfuse#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.

osxfuse - macFUSE 4.1.0

Published by bfleischer over 3 years ago

  • Add support for building macFUSE on Apple Silicon.

  • Add native Apple Silicon support to the downloader and uninstaller. macFUSE does no longer require Rosetta 2 on Apple Silicon Macs.

  • Drop support for macOS 10.9, 10.10 and 10.11. Installer packages that are built on Apple Silicon Macs do not work on macOS versions before 10.12 due to the use of SHA-256 signatures instead of SHA-1 signatures.

  • Fix auto_cache file modification detection. In case auto_cache is enabled the kernel extension watches out for remote modification time changes. If a remote change is detected, the file's cache is invalidated. We need to make sure not to invalidate the file's cache in case the modification time changes due to local writes.

  • Remove file name length check in lookup. This improves support for non-latin languages. File names are passed in NFD form and might therefore be longer than their NFC representation. The NFC representation must not be longer than 255 bytes.

  • Add support for dark mode to installer plugin.

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

osxfuse - macFUSE 4.0.5

Published by bfleischer almost 4 years ago

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

osxfuse - macFUSE 4.0.4

Published by bfleischer almost 4 years ago

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

osxfuse - macFUSE 4.0.3

Published by bfleischer almost 4 years ago

  • 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 osxfuse/osxfuse#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.

osxfuse - macFUSE 4.0.2

Published by bfleischer almost 4 years ago

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

osxfuse - macFUSE 4.0.1

Published by bfleischer almost 4 years ago

  • 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 osxfuse/osxfuse#550 for details.

  • Fix English localization of installer. See osxfuse/osxfuse#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 osxfuse/osxfuse#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.

osxfuse - macFUSE 4.0.0

Published by bfleischer almost 4 years ago

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

osxfuse - FUSE for macOS 3.11.2

Published by bfleischer about 4 years ago

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

osxfuse - FUSE for macOS 3.11.1

Published by bfleischer about 4 years ago

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

osxfuse - FUSE for macOS 3.11.0

Published by bfleischer over 4 years ago

  • 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 osxfuse/osxfuse#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.

osxfuse - FUSE for macOS 3.10.6

Published by bfleischer over 4 years ago

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

osxfuse - FUSE for macOS 3.10.5

Published by bfleischer over 4 years ago

  • Add support for Xcode 11.4 and 11.5

  • Delay ATTR_VOL_CAPABILITIES requests until the file system is fully initialized. This could lead to case-sensitive file systems being treated as case-insensitive, which in turn resulted in errors when changing the case of file names.

  • Fix a race condition when unmounting volumes. When mounting a volume the kernel issues a vfsop_getattr call to query the file system's attributes. At the same time the file system might be unmounted, causing the mount point data to be freed, although still being needed by the vfsop_getattr call.

  • Fix vnode lookup when invalidating cache. File IDs were cast to a 32 bit type in kernel space, which meant we lost the upper 32 bits of 64 bit file IDs. See osxfuse/osxfuse#664 for details.

  • Use _DARWIN_FEATURE_64_BIT_INODE instead of _DARWIN_USE_64_BIT_INODEto check if support for 64 bit file IDs is enabled.

  • Remove external includes from libfuse to make the library independent from the rest of the code base.

  • Fix an error in the libfuse API documentation.

  • Update build script to generate dSYM files for debug builds.

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

osxfuse - FUSE for macOS 3.10.4

Published by bfleischer almost 5 years ago

  • Fix an incompatibility with third party kernel extensions, that were built using legacy versions of the macOS SDK. The incompatibility could result in undefined behavior, including kernel panics. See osxfuse/osxfuse#652 for details.

  • Add support for installing FUSE for macOS without an active internet connection. When installing FUSE, Gatekeeper needs to verify the FUSE kernel extension is notarized. The notarization ticket is now stapled to the installer package. See osxfuse/osxfuse#617 for details.

  • Add secure timestamp when signing the FUSE kernel extension in order to address a notarization warning.

  • Sign the installer plugin, that is responsible for getting user consent for loading the FUSE kernel extension, to address a notarization warning.

  • Add support for build target variants to the build script. This allows building the same target, e.g. the kernel extension, multiple times during the overall build process without overwriting the previously built files.

  • Improve support for the asynchronous notarization workflow of the build script.

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

osxfuse - FUSE for macOS 3.10.3

Published by bfleischer about 5 years ago

  • Improve macOS 10.15 compatibility.

  • Fix an issue, that can trigger a kernel panic when mounting FUSE volumes with the local option and enabling Spotlight on the volume. For details see osxfuse/osxfuse#624.

  • Improve performance of GETATTR file system operation for file systems based on the Objective-C FUSE framework.

  • Add support for 64 bit file system IDs (va_fsid64) on macOS 10.11 and later.

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

osxfuse - FUSE for macOS 3.10.2

Published by bfleischer about 5 years ago

  • Fix a bug, that can, in rare cases, trigger a kernel panic when reusing vnodes after renaming files.

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

osxfuse - FUSE for macOS 3.10.0

Published by bfleischer over 5 years ago

  • Add experimental support for macOS 10.15

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

osxfuse - FUSE for macOS 3.9.2

Published by bfleischer over 5 years ago

  • Always set sysctl tunables_initializedafter initializing the kernel extension's tunables to prevent FUSE from resetting them when mounting another volume. This fixes a bug introduced in version 3.9.1.

  • Initialize struct stat buffer in the fuse_lib_setattr_x() handler of libosxfuse. For details see osxfuse/fuse#14.

osxfuse - FUSE for macOS 3.9.1

Published by bfleischer over 5 years ago

  • Ensure that the kernel extension's sysctl tunable, i.e. admin_group, are initialized before mounting the first file system. For details see osxfuse/osxfuse#589.

  • Update ksurl for future releases of macOS, that support only x68_64 binaries. For details see osxfuse/osxfuse#592.