From 125f9554125112f8318f5cc10d368a8d521a805a Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Mon, 22 Jul 2024 09:26:48 +0100 Subject: [PATCH 1/1] Docs: notes on DBM library changeovers --- doc/doc-docbook/spec.xfpt | 17 +++++++++++++++++ doc/doc-txt/dbm.discuss.txt | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 9a52502d2..8d61543cd 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -1764,6 +1764,12 @@ distributors have chosen to bundle different libraries with their packaged versions. However, the more recent releases seem to have standardized on the Berkeley DB library. +.new +Ownership of the Berkeley DB library has moved to a major corporation; +development seems to have stalled and documentation is not freely available. +This is probably not tenable for the long term use by Exim. +.wen + Different DBM libraries have different conventions for naming the files they use. When a program opens a file called &_dbmfile_&, there are several possibilities: @@ -1852,6 +1858,17 @@ DBMLIB=/usr/local/lib/db-4.1/libdb.a There is further detailed discussion about the various DBM libraries in the file &_doc/dbm.discuss.txt_& in the Exim distribution. +.new +When moving from one DBM library to another, +for the hints databases it suffices to just remove all the files in the +directory named &"db/"& under the spool directory. +This is because hints are only for optimisation and will be rebuilt +during normal operations. +Non-hints DBM databases (used by &"dbm"& lookups in the configuration) +will need individual rebuilds for the new DBM library. +This is not done automatically +.wen + .section "Pre-building configuration" "SECID25" diff --git a/doc/doc-txt/dbm.discuss.txt b/doc/doc-txt/dbm.discuss.txt index 50f068713..4f3622d69 100644 --- a/doc/doc-txt/dbm.discuss.txt +++ b/doc/doc-txt/dbm.discuss.txt @@ -153,6 +153,7 @@ Berkeley DB 1.8x 1.85 was the most widespread DB 1.x release; there is also a 1.86 bug-fix release, but the belief is that the bugs it fixes will not affect Exim. However, maintenance for 1.x releases has been phased out. +Exim no loger supports these releases for current builds. This dbm library can be called by Exim in one of two ways: via the ndbm compatibility interface, or via its own native interface. There are two @@ -206,6 +207,8 @@ the file name handed to it. DB 2.x does not do any automatic locking of its own; it does have a set of functions for various forms of locking, but Exim does not use them. +Exim no longer supports these releases for current builds. + Berkeley DB 3.x --------------- @@ -227,6 +230,20 @@ Berkeley DB 4.x The 4.x series is a development of the 2.x and 3.x series, and the above comments apply. +Berkeley DB 5.x +--------------- + +The 5.x versions seem to be current in several Linux disributions +as of writing (2024). Exim uses them under the assumption that the +API is the same as the version 4.1 library. + +Berkeley DB 6+ +--------------- + +These versions exist, but documentation does not seem to be available. +Exim does not support them. + + tdb --- @@ -319,3 +336,5 @@ exists, just in case. Proceed as follows: Philip Hazel Last update: June 2002 + +(+undates July 2024, jgh) -- 2.30.2