From: Eray Aslan on
Berkeley DB 5.0 is out and provides an SQlite-compatible interface.
Having an alternative to SQLite is considered a good thing and there is
some interest in bringing db-5.0 into mainstream use.

Postfix fails to build against Berkeley-DB-5.0.21:
[...]
gcc -Wmissing-prototypes -Wformat -DHAS_PCRE -DSNAPSHOT -g -O -I.
-DLINUX2 -c dict_db.c
dict_db.c:685:2: error: #error "Unsupported Berkeley DB version"
make: *** [dict_db.o] Error 1

The following patch seems to work for me:

diff --git a/src/util/dict_db.c b/src/util/dict_db.c
index e4b301d..1decd62 100644
--- a/src/util/dict_db.c
+++ b/src/util/dict_db.c
@@ -675,7 +675,7 @@ static DICT *dict_db_open(const char *class, const char *path, int open_flags,
msg_fatal("set DB cache size %d: %m", dict_db_cache_size);
if (type == DB_HASH && db->set_h_nelem(db, DICT_DB_NELM) != 0)
msg_fatal("set DB hash element count %d: %m", DICT_DB_NELM);
-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0)
+#if (DB_VERSION_MAJOR == 5) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0)
if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0)
msg_fatal("open database %s: %m", db_path);
#elif (DB_VERSION_MAJOR == 3 || DB_VERSION_MAJOR == 4)

--
Eray