From 2a3a64cd632032d723aa6ffe34c0dbb31cc02692 Mon Sep 17 00:00:00 2001 From: Dan Mahoney Date: Tue, 21 Jul 2026 20:35:45 -0700 Subject: [PATCH] README/CHANGES: document LMDB 1.0 on-disk format incompatibility LMDB 1.0 changed its on-disk file format in a way that is not compatible with 0.9.x, with no automatic detection or in-place upgrade of an existing database file. Document the dump/reload workaround (mdb_dump on the old version, mdb_load on the new one) for operators using the optional --with-lmdb backend. --- CHANGES-202605.md | 1 + README | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/CHANGES-202605.md b/CHANGES-202605.md index 8c4e34aa..a1a06e2e 100644 --- a/CHANGES-202605.md +++ b/CHANGES-202605.md @@ -161,6 +161,7 @@ A systematic audit of memory and resource leaks (issue #272) produced fixes acro - **Dual-algorithm signing example**: Added KeyTable example and caveats for signing with both RSA and ed25519. (#270) - **`HowToRelease` modernized**: Updated for GitHub workflow, consistent release asset naming. (#338) - **Spelling fixes**: Various typos in docs and code comments. (#347) +- **LMDB 1.0 file format incompatibility**: Documented in the README that LMDB 1.0 changed its on-disk file format incompatibly with 0.9.x, and that there is no automatic detection or upgrade of an existing database file. Operators upgrading the LMDB library on a system with an existing OpenDKIM LMDB database must dump with the old version's mdb_dump and reload with the new version's mdb_load. --- diff --git a/README b/README index fed9a469..c6509acd 100644 --- a/README +++ b/README @@ -109,6 +109,15 @@ o If you wish to interface the filter with LDAP servers, OpenLDAP v2.1.3 o For local hash or btree database support in either the filter or the library, Oracle's BerkeleyDB is required. All versions are supported. +o LMDB is an optional local key/data store backend (--with-lmdb). LMDB 1.0 + changed its on-disk file format in a way that is NOT compatible with 0.9.x, + and there is no automatic detection or in-place upgrade of an existing + database file: opening a 0.9.x data.mdb with a 1.0.x build (or vice versa) + will not work correctly. If you are upgrading the LMDB library on a system + where OpenDKIM already has an LMDB-backed database on disk, dump it with + the OLD version's mdb_dump before upgrading, then reload it with the NEW + version's mdb_load afterward. + o If you are interested in tinkering with the build and packaging structure, you may need to upgrade to these versions of GNU's "autotools" components: autoconf (GNU Autoconf) 2.61