Releases: Netatalk/afpfs-ng
0.9.1
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 #27
- afpcmd: consistently use file descriptor to access file in com_get_file() by @rdmark in #31
- use specific base image semantic versions in CI workflow by @rdmark in #32
- Fix SonarQube reliability bugs by @rdmark in #33
- Fix buffer overflow in afp_getsrvrparms_reply volume parsing by @rdmark in #35
- libafpclient: fix static analyzer warning in string termination by @rdmark in #36
- Port downstream patches from the Fedora Project by @rdmark in #39
- Introduce code formatting rules and reformat the whole codebase by @rdmark in #37
- pull in the original GNU copyright notice from readline by @rdmark in #40
- Bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in #45
- Bump DavidAnson/markdownlint-cli2-action from 20.0.0 to 21.0.0 by @dependabot[bot] in #44
- Enable multi-threaded FUSE to avoid frequent deadlocks by @rdmark in #47
- remove unused and bitrotted C source files by @rdmark in #48
- afpcmd: more sturdy logic when moving files and dirs by @rdmark in #50
- afpcmd: enable dir/ls to take an argument for dir to list by @rdmark in #51
- afpcmd: show test menu when built with debug, plus cleanup by @rdmark in #54
- handle 8 char ClearTxt UAM passwords by @rdmark in #55
- afpcmd: introduce a copy/cp command by @rdmark in #56
- Bump vmactions/freebsd-vm from 1.2.4 to 1.2.8 by @dependabot[bot] in #58
- afpcmd: improve error reporting and handling by @rdmark in #57
- Fix race conditions and thread safety issues in DSI request handling by @rdmark in #59
- FreeBSD compatibility in start_afpfsd() by @rdmark in #60
- support for libedit as an alternative to readline by @rdmark in #61
- a grab bag of stability improvements by @rdmark in #62
- support fuse3 in the AFP FUSE client by @rdmark in #63
New Contributors
- @dependabot[bot] made their first contribution in #45
Full Changelog: 0.9.0...0.9.1
0.9.0
What is new in afpfs-ng-0.9.0, February 9, 2025
- FUSE client improvements
Support for FUSE 2.99 on Linux, and macFUSE on macOS.
Shore up error handling and memory synchronization to avoid deadlocks.
Rename mount_afp to mount_afpfs to avoid name conflict with the native
macOS AFP client.
The ability to pass mount options to FUSE with -O is now supported,
amongst other patches contributed by R.J.V. Bertin.
- afpgetstatus improvements
Support for IPv6 addresses. Print much more information on the AFP server.
Introduce a -i flag to print the server's icon and icon mask.
- Meson build system
Autotools has been replaced by Meson. Configure and builds are much faster.
Extra debug output is now controlled at compile time with -Dbuildtype=debug.
If you want to build without debug output, use -Dbuildtype=release.
- Code quality
Consolidation and refactoring of the code. Numerous bug fixes.
Code compiles cleanly without warnings on supported platforms now.
What's Changed
- modern IP interfaces on freebsd by @rdmark in #11
- Meson build system by @rdmark in #12
- Compiler warnings by @rdmark in #13
- Check for gmp dependency to build with encrypted UAM support by @rdmark in #15
- Remove the Autotools build system by @rdmark in #14
- Remove obsolete Linux compat code by @rdmark in #16
- initialize libgcrypt by @rdmark in #18
- build with c11 standard by @rdmark in #19
- enable extra debug logging at compile time by @rdmark in #21
- Stricter error handling in main loop, plus debug logging by @rdmark in #22
- define more magic numbers as global constants by @rdmark in #20
- Read version string from build system, and bump to 0.9.0 by @rdmark in #24
- Protect against race condition in main loop by @rdmark in #25
- Convert documentation to Markdown format by @rdmark in #26
New Contributors
Full Changelog: https://github.com/rdmark/afpfs-ng/commits/0.9.0