exim_id_update8
One-time down/upgrade of exim message-id formats
Usage
exim_id_update [{-d | -u | -h | -v}]
[spooldir]
Overview
Utility for one-time down/upgrade of Exim message-id formats in spool files between format used in 4.96 and earlier and 4.97 and later versions. Only the filenames and the first-line ID tag values are affected; not message content such as Message-ID fields. Only -H, -D and -J files are handled.
Options
-
-d -
Downgrade mode
-
-h -
This help message
-
-u -
Upgrade mode
-
-v -
Version
Exactly one of -d or -u must be given. The spool directory defaults to the build-time value, or can be given as a command-line argument.
Background
The internal exim message ID format changed in 4.97:
Change format of the internal ID used for message identification. The old version only supported 31 bits for a PID element; the new 64 (on systems which can use Base-62 encoding, which is all currently supported ones but not Darwin (MacOS) or Cygwin, which have case-insensitive filesystems and must use Base-36). The new ID is 23 characters rather than 16, and is visible in various places - notably logs, message headers, and spool file names. Various of the ancillary utilities also have to know the format.
As well as the expanded PID portion, the sub-second part of the time recorded in the ID is expanded to support finer precision. Theoretically this permits a receive rate from a single comms channel of better than the previous 2000/sec.
The major timestamp part of the ID is not changed; at 6 characters it is usable until about year 3700.
Updating from previously releases is fully supported: old-format spool files are still usable, and the utilities support both formats. New message will use the new format. The one hints-DB file type which uses message-IDs (the transport wait- DB) will be discarded if an old-format ID is seen; new ones will be built with only new-format IDs.
Optionally, a utility can be used to convert spool files from old to new, but this is only an efficiency measure not a requirement for operation.
Downgrading from new to old requires running a provided utility, having first stopped all operations. This will convert any spool files from new back to old (losing time-precision and PID information) and remove any wait- hints databases.