opendkim-ng 3.0.0-beta2 (project renamed to PhoenixDKIM on 21 May 2026)
9 May 2026
A large release covering dead-code removal, documentation rewriting, security hardening, and completing the CMake transition.
Build system
-
Completed the CMake transition. Autotools files are still present in this release but are no longer used; they will be removed in the next release.
-
Ported all integration tests (Lua-based) to CMake.
-
miltertest: CMake build and Lua 5.4 compatibility.
Dead-code removal
-
Removed dead subsystems: ATPS, flowrate, libar (abandoned since 2012).
-
Stripped all #ifdef _FFR_RESIGN, _FFR_IDENTITY_HEADER, and _FFR_SENDER_MACRO preprocessor guards, keeping the feature branches throughout.
-
Removed deprecated functions and obsolete documentation from the OpenDKIM 2.x era.
Key management
-
opendkim-genkey: added Ed25519 key generation.
-
dkim_privkey_load: infer the signing algorithm from the key type rather than requiring explicit configuration.
Configuration
-
TrustedHostsFile is now disabled by default. Administrators who use DNSSEC can re-enable it explicitly.
Security and correctness
-
Hardened snprintf usage across the codebase: added return-value checks, corrected buffer-size arguments, and fixed several unsafe constructions in the daemon, library, and opendkim-genzone.
-
Fixed five DNSSEC defects identified during a code audit.
-
Added /etc/opendkim.conf as a Debian conffile so that dpkg does not overwrite local configuration on upgrade.
Documentation
-
Rewrote the README for the new fork and the 3.0.0 release.
-
Rewrote opendkim.conf(5) for opendkim-ng 3.0.0, removing all 2.x-era configuration options that have been dropped.
-
New plain-text man pages, replacing the Autotools-generated .in variants.
-
Updated the opendkim-lua(3) man page to reflect the functions that remain after subsystem removal.