Skip to content

Netatalk 4.1.0

Compare
Choose a tag to compare
@rdmark rdmark released this 11 Jan 18:53
· 42 commits to main since this release
2b5871a

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 #1817
  • GitHub CI: Use FreeBSD 14.2 vmactions runner by @rdmark in #1820
  • GitHub CI: Always use latest NetBSD release in runner by @rdmark in #1819
  • GitHub CI: Don't use absolute paths for netatalk binaries by @rdmark in #1821
  • Update atalkd.conf.5.xml by @thecloudexpanse in #1818
  • meson: Introduce with-kerberos-path option for Heimdal compatibility by @rdmark in #1822
  • testsuite: Cross-platform compatible file ID tests by @rdmark in #1826
  • GitHub CI: Bump to NetBSD 10.1 runner by @rdmark in #1827
  • testsuite: Don't attempt unauthorized file renaming in Error tests by @rdmark in #1828
  • Loosen AppleDouble checks for macOS by @NJRoadfan in #1829
  • meson: Remove unused linker args for bdb binaries by @rdmark in #1830
  • testsuite: Restore file ID checks following fix for macOS AD validation by @rdmark in #1831
  • testsuite: Clean up test file after execution of encoding test by @rdmark in #1832
  • meson: Better detection of lib paths from Homebrew build system by @rdmark in #1833
  • macipgw: Default port value for zip/ddp service by @APCCV in #1836
  • GitHub CI: Build with berkeley-db v5 on macOS by @rdmark in #1840
  • initscripts: Disable fork safety workaround for macOS by @rdmark in #1810
  • Rename apple_dump script to addump by @rdmark in #1811
  • webmin: Split up index page into three tabs by @rdmark in #1785
  • Fix reported AFP versions when AppleTalk support is disabled. by @NJRoadfan in #1846
  • Fix afppasswd utility by @NJRoadfan in #1845
  • Add native metadata storage for macOS hosts. by @NJRoadfan in #1813
  • docker: Bump base image to Alpine 3.21 by @rdmark in #1842
  • GitHub CI: Use specific pkgsrc mirror for NetBSD package by @rdmark in #1847
  • Remove start tracker and start dbus afp.conf options by @rdmark in #1848
  • Remove the ability to run AFP commands with root privileges by @rdmark in #1849
  • Define all lockfiles through the Meson build system by @rdmark in #1850
  • GitHub CI: Run zypper update before new package on openSUSE by @rdmark in #1854
  • Protect Netatalk metadata EA by @NJRoadfan in #1855
  • docs: Fixes for spelling and grammar by @EricFromCanada in #1856
  • launchd item: Start netatalk in non-forking mode by @EricFromCanada in #1859
  • meson: fix iconv detection for OpenWrt by @APCCV in #1857
  • docs: Clarify the behavior of the -d option for daemons by @rdmark in #1861
  • meson: Link papd with cups only when cups is enabled by @rdmark in #1862
  • Refactor retreival of native FinderInfo EA on macOS hosts. by @NJRoadfan in #1858
  • GitHub CI: Bump to the latest BSD vmactions runners by @rdmark in #1864
  • testsuite: Free memory after running tests by @rdmark in #1866
  • testsuite: Improve memory management in lantest by @rdmark in #1868
  • macipgw: Introduce a configuration file by @rdmark in #1852
  • GitHub CI: Run lantest and speedtest jobs by @rdmark in #1869
  • GitHub CI: Build with mariadb on macOS by @rdmark in #1872
  • libatalk: Clean up the dalloc static library by @rdmark in #1871
  • Resolve macOS 15 clang compiler warnings by @rdmark in #1873

New Contributors

Full Changelog: netatalk-4-0-8...netatalk-4-1-0