Netatalk 4.3.0 is available!
The Netatalk team is proud to announce the first version in the Netatalk 4.3 release series.
A major addition in this version is the inclusion of an experimental CNID backend that uses a SQLite database.
We have also added a brand new CLI tool for AppleTalk network inspection, called rtmpqry
.
One major breaking change in this version, is that we now rely on a shared Better String library (bstring). In previous versions we statically linked libatalk with a vendored version of bstring. Since bstring is not widely packaged (yet) we pull in the library as a Meson subproject when building.
Berkeley DB is now effectively an optional dependency. It is possible to build netatalk without dbd support, and rely entirely on f.e. the mysql (or experimental sqlite) backend.
Early adopters are encouraged to try out this new version. We are looking forward to getting feedback and bug reports from you!
CNID backends
sqlite
This new CNID backend depends on a sqlite v3 library on the host system.
Akin to the dbd
backend, it requires no configuration or database administration.
At the time of release, it has been tested in smaller deployments with a small number concurrent users. It is considered experimental, as it is presently unknown how it performs in a large deployment.
mysql
The mysql backend will now create a volume’s CNID dir automatically on startup, which aligns behavior with the other backends.
While the mysql backend doesn’t need to store a database file in this directory, it also houses AFP metadata files for the volume.
dbd
Netatalk can now be built without the Database Daemon (dbd) CNID backend. When dbd support is not built into netatalk, it will no longer launch the cnid_metad or cnid_dbd support daemons either.
AppleTalk tooling
New and improved tools for AppleTalk network inspection and manipulation.
The brand new rtmpqry CLI tool will query RTMP (Routing Table Maintenance Protocol) for routes and network metadata in an AppleTalk network.
nbplkup has gotten a few new features, notably -s for script-friendly output, -D to specify DDP address, and -f | -l to select the NBP op to use.
Special thanks to @cheesestraws (Rob Mitchelmore) for the improvements!
Build system and dependencies
bstring
The bstring shared library and headers are required to build and run netatalk. This was previously a statically linked library inside libatalk, but the vendored code has been removed in this version.
In the absence of a shared library, the Meson build system will compile and install bstring as a subproject.
CNID backends
A new Meson option of the array type has been introduced to select and build one or more of the available CNID backends. The default is to build all for which the dependencies are satisfied.
- -Dwith-cnid-backends=dbd,last,mysql,sqlite
At the same time, the following obsolete options have been removed.
- -Dwith-cnid-dbd-backend
- -Dwith-cnid-last-backend
- -Dwith-cnid-mysql-backend
LocalSearch / Tracker
We now require v3 or later of LocalSearch or Tracker. Support for v0.x ~ v2 has been dropped.
Consequently, the following obsolete options have been removed.
- -Dwith-tracker-install-prefix
- -Dwith-tracker-prefix
Containers
The base image has been bumped from Alpine Linux v3.21 to v3.22
We no longer build support for ACLs and Spotlight in the Netatalk container. These features did not work properly in a containerized environment. With improvements, they may be enabled again in the future.
Tests
The afp_lantest test tool has been fleshed out with tests that thoroughly examines afpd cashing scenarios. Special thanks to @andylemin for the contribution!
The afp_speedtest test tool got a number of bugfixes and improvements. Notably, it is now possible to run batches of multiple tests in multiple iterations.
At the same time, each of the test tools have gotten their own man page, while the monolithic afptest.1 man page has been removed.
New Contributors
- @dependabot[bot] made their first contribution in https://github.com/Netatalk/netatalk/pull/2235
- @andylemin made their first contribution in https://github.com/Netatalk/netatalk/pull/2322
Full Changelog: https://github.com/Netatalk/netatalk/compare/netatalk-4-2-4…netatalk-4-3-0
Footnotes
Release published on 2025-08-05
Generated from GitHub Release Notes