# opendkim-ng 3.0.0-beta3 (project renamed to PhoenixDKIM on 21 May 2026)

11 May 2026

Autotools is gone. This release also removes the last of the FFR preprocessor guards; fixes a batch of buffer-handling and DNSSEC defects found during audits, and rounds out the build and packaging.

## Build system

- Removed the Autotools build system. The CMake transition is complete; all tests pass on Debian 12 and Arch Linux. The upstream Autotools source is preserved at trusteddomainproject/OpenDKIM for reference.

- miltertest, `opendkim.pc`, and `opendkim-lua(3)` added to the CMake and Debian builds.

- Various CMake housekeeping.

## Dead-code removal

- Stripped all remaining `#ifdef _FFR_*` preprocessor guards across seven source files, keeping the feature branches.

- Removed the final FFR guards from `opendkim-db`.

## Security and correctness

- A code audit of buffer management (conducted with Claude AI) identified a class of `snprintf` misuse throughout the daemon and library: missing return-value checks, incorrect size arguments, and truncated strings silently used as if complete. These were fixed across the affected files.

- A separate audit of the DNSSEC implementation (also conducted with Claude AI) identified five defects, including incorrect error propagation on validation failure, missing checks on DNS response fields, and gaps in DNSSEC status handling. All five were fixed.

- Fixed `assert()` misuse in the test suite that caused silent test failures when built with `-DNDEBUG`.

- Fixed a malformed Debian changelog from the previous release.

- Added a refile type-check for the sign-table validation walk, which only works on flat files.

## Documentation

- The pre-existing `opendkim-lua(3)` man page was added to the CMake build — it had been inadvertently omitted when the build system was ported from Autotools.

- Updated project documentation and sample configuration to reflect changes since the fork. Added a README for miltertest.

Back to announcements