Netatalk 3.2.0
REDISTRIBUTION LICENSING ALERT
If you redistribute binary Netatalk packages, please be advised that there may be incompatible licensing terms in this source package. To avoid potential issues when redistributing, it is strongly recommended to build this package with -Dwith-embedded-ssl=false
when using the Meson build system. The Autotools build system is not affected. Alternatively, upgrade to Netatalk 3.2.2 or later.
DOCKER COMPATIBILITY ALERT
If you previously used the Netatalk 3.1.18 Docker image for making Time Machine backups in macOS, you may run into errors after upgrading to the Netatalk 3.2.0 image or later. It is recommended to discard the backup sparsebundle and redo the backup. If you absolutely must access the older backup sparsebundle, downgrading to the 3.1.18 image should restore access.
Netatalk 3.2.0 is available!
The Netatalk team is proud to announce the first release in the Netatalk 3.2 release series.
This release contains a number of breaking changes compared to Netatalk 3.1, and is recommended for early adopters. It is highly recommended that you take a backup of your production environment before attempting to upgrade an existing Netatalk deployment to 3.2.0.
A companion release of the Webmin Module (v1.1) is also available, with support for the new and updated features in Netatalk 3.2.0, as well as a range of improvements and bugfixes.
Please see NEWS for the full changelog.
New Features
Meson build system
The Meson build system has been introduced, and exists in parallel with the traditional GNU Autotools build system. We plan to remove Autotools in a future feature release version of Netatalk.
Please see INSTALL for instructions how to use the new build system. The online manual also has a new appendix with build instructions for specific operating systems.
Consequently, starting with this release, we no longer distribute tarballs that were bootstrapped by autoconf. We still ship the bootstrap script and all the macros required so that you can bootstrap it yourself if needed.
Bundled wolfSSL
OpenSSL 3.0 has deprecated the DHCAST128 and DES encryption algorithms used by Apple’s DHX and Random Number UAMs, respectively. These UAMs are used for (somewhat) secure authentication with very old Apple clients (early Mac OS X, Classic Mac OS, Macintosh System Software, and Apple IIGS.)
We are now bundling a subset of wolfSSL with Netatalk, as the default encryption provider for these UAMs. Building Netatalk with bundled wolfSSL requires the use of the Meson build system.
Init Scripts
New init scripts have been added: FreeBSD, OpenBSD, and OpenRC (previously: Gentoo).
Additionally, the macOS launchd init script plist has been renamed to io.netatalk.*
(from com.netatalk.*
)
Added compile time options
-Dwith-embedded-ssl
– Enable or disable the bundled SSL provider (currently: wolfSSL).-Dwith-init-style=
/--with-init-style=
freebsd
|openbsd
|openrc
-Ddisable-init-hooks
/--disable-init-hooks
– Ask the build system to skip a any install or uninstall hooks that may require heightened privileges. This enables distribution scripts or installation in certain non-privileged chroot environments. Recommended for downstream packaging.
Added runtime options
ldap uri
– URI of the LDAP directory serverlog microseconds
– When set tono
and used together withlog file
, the resulting logs will have timestamps with whole second accuracy, rather than the default microsecond.fce sendwait
– In milliseconds, set a delay for the emission of FCE events.
Dependency Changes
LDAP API
We have bumped the LDAP API version, and now require OpenLDAP v2.3 or later.
As a result, a new afp.conf option ldap uri
has been introduced, while the old ldap server
has been retired. The new option has a different syntax. See the manual for more information.
Spotlight toolchain
The bundled talloc
library, as well as pre-generated SPARQL parser code, have been removed from distribution. These are key parts of the Spotlight tech stack, and must now be supplied by the user or packager for Spotlight functionality.
This introduces a compile- and runtime dependency on a system-supplied shared talloc
library, which most contemporary operating systems have at the time of writing.
Additionally, a yacc parser (e.g. bison
) and lexer (e.g. flex
) are now compile time dependencies for building with Spotlight support.
Perl
The Perl runtime is now an optional dependency for Netatalk (it was previously mandatory.) Only when Perl is detected at compile time, the administrative CLI utilities that use the Perl runtime are installed.
At the same time, the afpstats
CLI utility has been rewritten in Perl to remove the runtime dependency on Python.
Deprecated Features
Andrew File System
Andrew File System is a historical distributed file system with limited adoption at the time of writing. The AFS integration layer in Netatalk has not been functional for years, and was removed in this version.
CNID backends
The Concurrent Database (cdb) and Trivial Database (tdb) CNID backends have been removed in this version. The former was previously the default backend (v2.0 and earlier), but is prone to data loss and corruption. The latter was considered an incomplete implementation.
In Netatalk 3.2.0, Database Daemon (dbd) is the default and recommended backend, while the MySQL (mysql) backend is considered experimental but reportedly used in production environments with success.
What’s Changed
- Remove unused pap directory in libatalk by @dgsga in https://github.com/Netatalk/netatalk/pull/490
- Remove trailing whitespace from codebase by @dgsga in https://github.com/Netatalk/netatalk/pull/495
- Fix libevent2 linking on OpenIndiana by @dgsga in https://github.com/Netatalk/netatalk/pull/512
- libatalk: Restore invalid metadata cleanup in ad_open.c by @rdmark in https://github.com/Netatalk/netatalk/pull/513
- Remove substitutions for configurable file paths in man pages by @rdmark in https://github.com/Netatalk/netatalk/pull/514
- add return 0 into become_user_permanently() by @pgajdos in https://github.com/Netatalk/netatalk/pull/524
- Deprecate legacy cnid backends by @dgsga in https://github.com/Netatalk/netatalk/pull/528
- Remove redundant AUTHORS file by @rdmark in https://github.com/Netatalk/netatalk/pull/538
- Remove code for obsolete host operating systems by @dgsga in https://github.com/Netatalk/netatalk/pull/530
- Better default Homes basedir regex example by @rdmark in https://github.com/Netatalk/netatalk/pull/547
- Validate size of ace_count in FPSetACL request by @rdmark in https://github.com/Netatalk/netatalk/pull/546
- Update comments in configure.ac and netatalk macro by @dgsga in https://github.com/Netatalk/netatalk/pull/568
- pam_conv: Only Solarish seems to use non-const struct type. by @rdmark in https://github.com/Netatalk/netatalk/pull/563
- Remove bundled talloc and only build libatalk/libtalloc when needed by @dgsga in https://github.com/Netatalk/netatalk/pull/565
- Delete obsolete locking directory in libatalk by @dgsga in https://github.com/Netatalk/netatalk/pull/570
- Enable / disable the entire spotlight support toolchain at configure time by @dgsga in https://github.com/Netatalk/netatalk/pull/572
- libatalk: fix parsing of macOS created AppleDouble files by @rdmark in https://github.com/Netatalk/netatalk/pull/575
- Compile spotlight.h only when Spotlight is enabled by @rdmark in https://github.com/Netatalk/netatalk/pull/578
- Introduce option to control the format of file log timestamp by @rdmark in https://github.com/Netatalk/netatalk/pull/583
- Standardize man page heading case by @rdmark in https://github.com/Netatalk/netatalk/pull/598
- Deprecate AFS (Andrew File System) support in Netatalk 3 by @dgsga in https://github.com/Netatalk/netatalk/pull/594
- Fix Spotlight support detection and compilation on Fedora by @dgsga in https://github.com/Netatalk/netatalk/pull/600
- Update summary macro to check for all three Spotlight requirements by @dgsga in https://github.com/Netatalk/netatalk/pull/604
- uams: Link PGP UAM with CRYPT_LIBS by @rdmark in https://github.com/Netatalk/netatalk/pull/608
- Improve logger_test and remove outdated comments by @rdmark in https://github.com/Netatalk/netatalk/pull/601
- afpd: Prevent a potential buffer overflow when changing password by @neko-hat in https://github.com/Netatalk/netatalk/pull/628
- afpd: Remove tdb fallback mechanism, and other remnants of tdb and cdb by @rdmark in https://github.com/Netatalk/netatalk/pull/612
- Check for attr.h before using (Solaris 10 compat) by @rdmark in https://github.com/Netatalk/netatalk/pull/622
- libatalk: Use portable fcntl() instead of flock() by @rdmark in https://github.com/Netatalk/netatalk/pull/624
- test program should only be compiled and run on make check/distcheck by @dgsga in https://github.com/Netatalk/netatalk/pull/637
- Refresh docs and adjust for the upcoming 3.2 release by @rdmark in https://github.com/Netatalk/netatalk/pull/638
- Fix Zeroconf support on *BSD platforms by @dgsga in https://github.com/Netatalk/netatalk/pull/640
- Remove unneeded HAVE_TRACKER conditional by @dgsga in https://github.com/Netatalk/netatalk/pull/664
- manual: Link to custom download and wiki mirrors in navbar by @rdmark in https://github.com/Netatalk/netatalk/pull/669
- manual: Link to docs landing page by @rdmark in https://github.com/Netatalk/netatalk/pull/687
- Clean up obsoleted man pages by @rdmark in https://github.com/Netatalk/netatalk/pull/691
- Cleanup of obsolete gitignore filters by @rdmark in https://github.com/Netatalk/netatalk/pull/692
- Clean up remainders of SourgeForge hosting by @rdmark in https://github.com/Netatalk/netatalk/pull/703
- Fix ‘MAXPHYS’ macro redefinition warning in macOS by @dgsga in https://github.com/Netatalk/netatalk/pull/706
- Remove binary files and logo images from revision control by @rdmark in https://github.com/Netatalk/netatalk/pull/716
- Docker configuration for netatalk v3 by @rdmark in https://github.com/Netatalk/netatalk/pull/713
- Remove residual code for discontinued oses by @rdmark in https://github.com/Netatalk/netatalk/pull/723
- Make macOS initscripts prefix sensitive by @dgsga in https://github.com/Netatalk/netatalk/pull/730
- spotlight: Remove generated parser/lexer code from revision control by @rdmark in https://github.com/Netatalk/netatalk/pull/736
- docs: Improve docbook templates, man page summaries, GPL text by @rdmark in https://github.com/Netatalk/netatalk/pull/744
- docs: Limit max TOC depth to 2 in html manual; use DocBook 4.5 DTD by @rdmark in https://github.com/Netatalk/netatalk/pull/747
- Detect system docbook stylesheets at configure time by @dgsga in https://github.com/Netatalk/netatalk/pull/748
- Create meson build system by @dgsga in https://github.com/Netatalk/netatalk/pull/750
- Swap out the old ldap_init for the wonderful ldap_initialize by @rdmark in https://github.com/Netatalk/netatalk/pull/768
- Rename launchd plist to io.netatalk* and sort file names by @rdmark in https://github.com/Netatalk/netatalk/pull/778
- Revert to using launchd startup script on macOS hosts by @dgsga in https://github.com/Netatalk/netatalk/pull/789
- meson: Add init-style to configuration summary and fix missing gentoo-systemd style by @dgsga in https://github.com/Netatalk/netatalk/pull/785
- docs: Update the git instructions in the Install chapter by @rdmark in https://github.com/Netatalk/netatalk/pull/786
- docs: Generate compilation manual page from build.yml by @rdmark in https://github.com/Netatalk/netatalk/pull/792
- docs: Japanese localization of the manual by @rdmark in https://github.com/Netatalk/netatalk/pull/809
- meson: Ensure mysql backend is only enabled when mysqlclient library and headers are present by @dgsga in https://github.com/Netatalk/netatalk/pull/822
- docker: Build with Meson by @rdmark in https://github.com/Netatalk/netatalk/pull/821
- Spelling fix in dsi_tcp.c log message by @rdmark in https://github.com/Netatalk/netatalk/pull/834
- docs: improve description of mimic model option by @rdmark in https://github.com/Netatalk/netatalk/pull/837
- docs: Simplify the DEVELOPER readme by @rdmark in https://github.com/Netatalk/netatalk/pull/844
- afpd: Deal better with large numbers of FCE events by @rdmark in https://github.com/Netatalk/netatalk/pull/849
- Build system improvements for initscripts by @rdmark in https://github.com/Netatalk/netatalk/pull/854
- docs: Overhaul the install and configuration chapters by @rdmark in https://github.com/Netatalk/netatalk/pull/855
- Adopt rc script from FreeBSD ports. by @rdmark in https://github.com/Netatalk/netatalk/pull/877
- Remove hard dependency on perl and grep by @rdmark in https://github.com/Netatalk/netatalk/pull/892
- Rewrite afpstats in Perl by @rdmark in https://github.com/Netatalk/netatalk/pull/895
- docker: Alpine based container by @rdmark in https://github.com/Netatalk/netatalk/pull/889
- Pretty formatting of afpstats output by @rdmark in https://github.com/Netatalk/netatalk/pull/910
- afppasswd: Check for valid password length by @rdmark in https://github.com/Netatalk/netatalk/pull/934
- afppasswd: Introduce -w option for password string by @rdmark in https://github.com/Netatalk/netatalk/pull/941
- Fix broken cracklib macro in autotools and meson by @dgsga in https://github.com/Netatalk/netatalk/pull/940
- Forward-port netatalk-classic patches by @rdmark in https://github.com/Netatalk/netatalk/pull/952
- netatalkd: Netatalk service can only be stopped if it is already running by @dgsga in https://github.com/Netatalk/netatalk/pull/966
- meson: Add WolfSSL as DHX provider by @dgsga in https://github.com/Netatalk/netatalk/pull/965
- spotlight: Use https URLs for sparql type mapping references by @rdmark in https://github.com/Netatalk/netatalk/pull/973
- Document the netatalk -d option by @rdmark in https://github.com/Netatalk/netatalk/pull/979
- Optimize sort order of all headers by @dgsga in https://github.com/Netatalk/netatalk/pull/984
- docs: Update manual for 3.2.0 release by @rdmark in https://github.com/Netatalk/netatalk/pull/987
- docs: Update Japanese manual for 3.2.0 by @rdmark in https://github.com/Netatalk/netatalk/pull/991
- Remove superfluous extern variable declarations by @rdmark in https://github.com/Netatalk/netatalk/pull/1023
- Reintroduce quota support, modernized with meson build system by @rdmark in https://github.com/Netatalk/netatalk/pull/1034
- Enable building with quota and libtirpc on Fedora 40 by @rdmark in https://github.com/Netatalk/netatalk/pull/1040
New Contributors
- @pgajdos made their first contribution in https://github.com/Netatalk/netatalk/pull/524
- @neko-hat made their first contribution in https://github.com/Netatalk/netatalk/pull/628
Full Changelog: https://github.com/Netatalk/netatalk/compare/netatalk-3-1-18…netatalk-3-2-0
Note: The Debian deb package distributed with this release is built for Debian 12 Bookworm.
Release published on 2024-06-01
Generated from GitHub Release Notes