Netatalk 4.1.0
Netatalk 4.1.0 is available!
The Netatalk team is proud to announce the first release in the Netatalk 4.1 release series.
This version further improves interoperability on macOS hosts, makes the MacIP Gateway deamon more usable, and introduces a number of bugfixes and build system improvements.
All users of previous Netatalk versions are encouraged to upgrade to this version (with a few caveats; see Breaking Changes below.)
Major Improvements
macOS native metadata
When running on a macOS host, afpd can store/retrieve the resource fork of files natively on macOS hosts without the need of “._” AppleDouble files. Additionally, Netatalk will now natively read and sync any FinderInfo data (File Type/Creator data, labels, etc.) it finds on the host file system.
This enables seamless retrieval and storage of files with EA metadata onto a shared AFP volume. For instance, if you decompress a StuffIt archive with the Unarchiver on macOS onto a shared AFP volume, any Classic Mac OS file will get extracted with its resource fork data intact.
We have made a handful of additional improvements that enables correct EA metadata handling while protecting against tampering.
Homebrew compatibility
A handful of fixes to the Meson build system and launchd init script has now enabled netatalk to be packaged as a Homebrew formula.
Install netatalk with brew today: brew install netatalk
macipgw
Two major improvements to macipgw, the MacIP Gateway daemon:
- The introduction of a
macipgw.conf
configuration file. This makes it easy to run macipgw as a service with f.e. systemd. - Define default port for AppleTalk protocols that enables macipgw to run on musl based Linux systems, such as OpenWrt or Alpine Linux.
Meson build system
A few notable build system improvements:
- Proper iconv detection on OpenWrt
- Introduced
-Dwith-kerberos-path
option to build the krbV UAM with a custom dependency path. Handy with f.e. Heimdal on NetBSD. - All daemon lockfiles are now controlled through the build system, through
-Dwith-lockfile-path
Breaking Changes
Build system options
The -Dwith-lockfile-path
path previously defined the complete path to the netatalk lockfile / pid file. Now it defines the path to the directory that should house all lockfiles that is created by daemons in this package (netatalk, atalkd, papd).
macOS EA metadata
On macOS hosts with an existing Netatalk installation, existing “user” namespaced EA metadata will become orphaned on the shared volumes. To clean up the orphaned metadata, please run something like this on the root of the shared volume.
xattr -d -r user.org.netatalk.Metadata *
It is recommended to take a backup of your shared volume before running this command.
Removed afp.conf options
The following two afp.conf global options have been removed, with Spotlight now controlled by the spotlight
option alone.
start dbus
start tracker
The root AFP command options are removed. Use the non-root equivalents, and make sure that the commands can run in a sandbox.
root preexec
root postexec
root preexec close
Renamed binaries
The AppleDouble dump script previously known as apple_dump
has been renamed to addump
.
What’s Changed
- testsuite: Introduce -X option for running on big-endian systems by @rdmark in https://github.com/Netatalk/netatalk/pull/1817
- GitHub CI: Use FreeBSD 14.2 vmactions runner by @rdmark in https://github.com/Netatalk/netatalk/pull/1820
- GitHub CI: Always use latest NetBSD release in runner by @rdmark in https://github.com/Netatalk/netatalk/pull/1819
- GitHub CI: Don’t use absolute paths for netatalk binaries by @rdmark in https://github.com/Netatalk/netatalk/pull/1821
- Update atalkd.conf.5.xml by @thecloudexpanse in https://github.com/Netatalk/netatalk/pull/1818
- meson: Introduce with-kerberos-path option for Heimdal compatibility by @rdmark in https://github.com/Netatalk/netatalk/pull/1822
- testsuite: Cross-platform compatible file ID tests by @rdmark in https://github.com/Netatalk/netatalk/pull/1826
- GitHub CI: Bump to NetBSD 10.1 runner by @rdmark in https://github.com/Netatalk/netatalk/pull/1827
- testsuite: Don’t attempt unauthorized file renaming in Error tests by @rdmark in https://github.com/Netatalk/netatalk/pull/1828
- Loosen AppleDouble checks for macOS by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1829
- meson: Remove unused linker args for bdb binaries by @rdmark in https://github.com/Netatalk/netatalk/pull/1830
- testsuite: Restore file ID checks following fix for macOS AD validation by @rdmark in https://github.com/Netatalk/netatalk/pull/1831
- testsuite: Clean up test file after execution of encoding test by @rdmark in https://github.com/Netatalk/netatalk/pull/1832
- meson: Better detection of lib paths from Homebrew build system by @rdmark in https://github.com/Netatalk/netatalk/pull/1833
- macipgw: Default port value for zip/ddp service by @APCCV in https://github.com/Netatalk/netatalk/pull/1836
- GitHub CI: Build with berkeley-db v5 on macOS by @rdmark in https://github.com/Netatalk/netatalk/pull/1840
- initscripts: Disable fork safety workaround for macOS by @rdmark in https://github.com/Netatalk/netatalk/pull/1810
- Rename apple_dump script to addump by @rdmark in https://github.com/Netatalk/netatalk/pull/1811
- webmin: Split up index page into three tabs by @rdmark in https://github.com/Netatalk/netatalk/pull/1785
- Fix reported AFP versions when AppleTalk support is disabled. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1846
- Fix afppasswd utility by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1845
- Add native metadata storage for macOS hosts. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1813
- docker: Bump base image to Alpine 3.21 by @rdmark in https://github.com/Netatalk/netatalk/pull/1842
- GitHub CI: Use specific pkgsrc mirror for NetBSD package by @rdmark in https://github.com/Netatalk/netatalk/pull/1847
- Remove start tracker and start dbus afp.conf options by @rdmark in https://github.com/Netatalk/netatalk/pull/1848
- Remove the ability to run AFP commands with root privileges by @rdmark in https://github.com/Netatalk/netatalk/pull/1849
- Define all lockfiles through the Meson build system by @rdmark in https://github.com/Netatalk/netatalk/pull/1850
- GitHub CI: Run zypper update before new package on openSUSE by @rdmark in https://github.com/Netatalk/netatalk/pull/1854
- Protect Netatalk metadata EA by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1855
- docs: Fixes for spelling and grammar by @EricFromCanada in https://github.com/Netatalk/netatalk/pull/1856
- launchd item: Start netatalk in non-forking mode by @EricFromCanada in https://github.com/Netatalk/netatalk/pull/1859
- meson: fix iconv detection for OpenWrt by @APCCV in https://github.com/Netatalk/netatalk/pull/1857
- docs: Clarify the behavior of the -d option for daemons by @rdmark in https://github.com/Netatalk/netatalk/pull/1861
- meson: Link papd with cups only when cups is enabled by @rdmark in https://github.com/Netatalk/netatalk/pull/1862
- Refactor retreival of native FinderInfo EA on macOS hosts. by @NJRoadfan in https://github.com/Netatalk/netatalk/pull/1858
- GitHub CI: Bump to the latest BSD vmactions runners by @rdmark in https://github.com/Netatalk/netatalk/pull/1864
- testsuite: Free memory after running tests by @rdmark in https://github.com/Netatalk/netatalk/pull/1866
- testsuite: Improve memory management in lantest by @rdmark in https://github.com/Netatalk/netatalk/pull/1868
- macipgw: Introduce a configuration file by @rdmark in https://github.com/Netatalk/netatalk/pull/1852
- GitHub CI: Run lantest and speedtest jobs by @rdmark in https://github.com/Netatalk/netatalk/pull/1869
- GitHub CI: Build with mariadb on macOS by @rdmark in https://github.com/Netatalk/netatalk/pull/1872
- libatalk: Clean up the dalloc static library by @rdmark in https://github.com/Netatalk/netatalk/pull/1871
- Resolve macOS 15 clang compiler warnings by @rdmark in https://github.com/Netatalk/netatalk/pull/1873
New Contributors
- @thecloudexpanse made their first contribution in https://github.com/Netatalk/netatalk/pull/1818
- @APCCV made their first contribution in https://github.com/Netatalk/netatalk/pull/1836
- @EricFromCanada made their first contribution in https://github.com/Netatalk/netatalk/pull/1856
Full Changelog: https://github.com/Netatalk/netatalk/compare/netatalk-4-0-8…netatalk-4-1-0
Release published on 2025-01-11
Generated from GitHub Release Notes