What is new in afpfs-ng-0.9.1, December 7, 2025
FUSE Client Improvements
- Support for FUSE 3.0+ on Linux and FreeBSD, and macFUSE on macOS, while maintaining compatibility with FUSE 2.9.9.
- Implemented FUSE commands for create, flush, chown, truncate, and rename.
- Enabled multi-threaded FUSE operation handling for better performance and stability, while introducing better thread safety across the board.
- Volume name labels and proper volume creation time support in macFUSE.
- On FreeBSD, afpfsd can now be started on the fly by the mount_afpfs tool.
- Numerous bug fixes and stability improvements.
afpcmd Client Improvements
- Introduced a new copy (cp) command for file transfers on the AFP volume.
- Shored up error handling for the cd, mv, put, and touch commands.
- Now mapping error codes to human-readable strings for better user feedback.
- Fixed bug with 8-char passwords when using Cleartxt Password UAM.
- The dir/ls command now takes an optional dir to list instead of the current directory.
Meson Build System Enhancements
- Support for libedit alongside readline for afpcmd builds, commonly used on Alpine Linux and elsewhere.
- Always build afpgetstatus tool even without ncurses/readline.
- Fail the build if neither afpcmd nor the FUSE client can be built.
Miscellaneous Improvements
- Introduced stylistic coding standards for C, Meson, Markdown, YAML, and shell script code. The new codefmt.sh script can be used to automatically format code.
- Fix all security and reliability bugs reported by SonarQube static analysis.
- Now also compiling and running on NetBSD (FUSE only) and OpenBSD (afpcmd only).
What’s Changed
- use libbsd for BSD extensions to glibc by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/27
- afpcmd: consistently use file descriptor to access file in com_get_file() by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/31
- use specific base image semantic versions in CI workflow by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/32
- Fix SonarQube reliability bugs by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/33
- Fix buffer overflow in afp_getsrvrparms_reply volume parsing by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/35
- libafpclient: fix static analyzer warning in string termination by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/36
- Port downstream patches from the Fedora Project by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/39
- Introduce code formatting rules and reformat the whole codebase by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/37
- pull in the original GNU copyright notice from readline by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/40
- Bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/45
- Bump DavidAnson/markdownlint-cli2-action from 20.0.0 to 21.0.0 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/44
- Enable multi-threaded FUSE to avoid frequent deadlocks by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/47
- remove unused and bitrotted C source files by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/48
- afpcmd: more sturdy logic when moving files and dirs by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/50
- afpcmd: enable dir/ls to take an argument for dir to list by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/51
- afpcmd: show test menu when built with debug, plus cleanup by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/54
- handle 8 char ClearTxt UAM passwords by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/55
- afpcmd: introduce a copy/cp command by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/56
- Bump vmactions/freebsd-vm from 1.2.4 to 1.2.8 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/58
- afpcmd: improve error reporting and handling by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/57
- Fix race conditions and thread safety issues in DSI request handling by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/59
- FreeBSD compatibility in start_afpfsd() by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/60
- support for libedit as an alternative to readline by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/61
- a grab bag of stability improvements by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/62
- support fuse3 in the AFP FUSE client by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/63
New Contributors
- @dependabot[bot] made their first contribution in https://github.com/Netatalk/afpfs-ng/pull/45
Full Changelog: https://github.com/Netatalk/afpfs-ng/compare/0.9.0…0.9.1
Downloads
- afpfs-ng-0.9.1.tar.xz (0.1 MB)
- afpfs-ng-0.9.1.tar.xz.sha256sum (0.0 MB)
Footnotes
Release published on 2025-12-07
Generated from GitHub Release Notes