What is new in afpfs-ng-0.9.2, January 14, 2026
FUSE Client Improvements
- Rearchitected to a one-afpfsd-process-per-mount model for better stability and performance: launch the manager afpfsd process with afpfsd –manager and mount daemons with afpfsd –socket-id \<path>. As before, mount_afpfs or afp_client will launch all daemons automatically. This also enables multiple mounts on macOS with macFUSE, which was not possible before.
- Server connection suspend and resume support in afp_client.
- Can now set log level and log type (syslog/stdout) for the FUSE client.
- macOS Finder xattr support for custom icons and other metadata (requires macFUSE v5.1.3 or later).
afpcmd Client Improvements
- Added a new exit command that detaches from the current volume and returns to the list of volumes.
- When in volume selection mode, use the ls command to list available volumes on the server.
- Made the chmod command work properly.
- Can now set log level for the afpcmd client (always logs to syslog).
AFP Protocol Compliance
- AFP 3.2 Extended Attributes (xattr) support.
- AFP 3.3 Replay Cache support.
- AFP 3.4 compliant xattr error handling.
- Implemented FPEnumerateExt (command 66) for AFP 3.0.
General Improvements
- Removed obsolete workarounds for 20-year-old netatalk bugs.
- Proper support for long UTF-8 volume names in all clients.
- Introduced UAM shorthands for easier use: clrtxt, randnum, dhx2, dhx, etc.
- Converted man pages to mdoc format.
- We now install development files (headers, pkg-config) for libafpclient with Meson.
What’s Changed
- build(deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/65
- build(deps): bump vmactions/netbsd-vm from 1.2.1 to 1.2.3 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/64
- build(deps): bump vmactions/openbsd-vm from 1.2.3 to 1.2.4 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/66
- Enable the mounting of multiple FUSE volumes simultaneously by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/68
- Client support for AFP 3.3 replay cache by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/69
- Use a per-mount afpfsd daemon process structure for all platforms by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/71
- implement log level for the FUSE client by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/72
- install development headers and pkgconfig file for libafpclient by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/74
- build(deps): bump vmactions/freebsd-vm from 1.2.9 to 1.3.0 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/77
- build(deps): bump DavidAnson/markdownlint-cli2-action from 21.0.0 to 22.0.0 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/78
- fix incorrect dsi_send() calls and shore up error handling by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/80
- Complete support for Extended Attribute reads and writes by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/81
- update the afp_client status command for multiple afpfsd by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/83
- build(deps): bump vmactions/openbsd-vm from 1.2.5 to 1.2.7 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/84
- Remove superfluous permissions declaration from test.yml by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/86
- enable xattr writes with macFUSE as the bug is fixed with v5.1.3 by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/87
- proper definition of AppleTalk Zone length by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/92
- afp_client: properly support all subcommands with manager daemon by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/91
- Improve AFP idle timeout and reconnection handling by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/93
- afpcmd: log to syslog, control log level, bugfixes by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/94
- convert man pages to roff with mdoc macros, drop cmark dependency by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/96
- overhaul logging fidelity, better FUSE error reporting by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/97
- build(deps): bump vmactions/netbsd-vm from 1.2.3 to 1.3.1 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/98
- build(deps): bump vmactions/openbsd-vm from 1.2.7 to 1.3.1 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/99
- build(deps): bump vmactions/freebsd-vm from 1.3.0 to 1.3.4 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/100
- Properly handle xattr errors for AFP 3.4 and enumerate for AFP 3.0 by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/102
- refactor FUSE unmount flow to use proper libfuse3 API by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/105
- introduce UAM shorhand names to be used when invoking the clients by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/106
- build(deps): bump vmactions/freebsd-vm from 1.3.4 to 1.3.6 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/108
- build(deps): bump vmactions/freebsd-vm from 1.3.6 to 1.3.7 by @dependabot[bot] in https://github.com/Netatalk/afpfs-ng/pull/110
- store meson logs as job artifacts for each build job by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/111
- print more information on afpfsd child status, and clean up logging routine by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/109
- improve volume selection, reconnection, UTF8 volnames, server type detection by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/112
- clean up obsolete netatalk workaround code by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/115
- afpcmd: introduce exit command for detaching from volume by @rdmark in https://github.com/Netatalk/afpfs-ng/pull/116
Full Changelog: https://github.com/Netatalk/afpfs-ng/compare/0.9.1…0.9.2
Downloads
- afpfs-ng-0.9.2.tar.xz (0.1 MB)
- afpfs-ng-0.9.2.tar.xz.sha256sum (0.0 MB)
Footnotes
Release published on 2026-01-13
Generated from GitHub Release Notes