commit 7d5a3e59d59235d74f95d41c8493ab8675307071 Author: Jacob Welsh AuthorDate: Sat Nov 26 19:39:09 2022 +0000 Commit: Jacob Welsh CommitDate: Sat Nov 26 19:39:09 2022 +0000 Type: documentation update Update NEWS and version strings for v2.4.0 release, rebranding to JWRD Dovecot. - Eliminate DOVECOT_VERSION by standardizing on PACKAGE_VERSION. - Drop now unused PACKAGE_TARNAME and VERSION. - Drop PACKAGE_BUGREPORT and with it the support-email key in IMAP ID command. (Support channels are blog comment, jwrd.net contact form, or in-WoT chat only.) - Bump minor version to reflect the deep rework of module and build systems and removal of some features. diff --git a/NEWS b/NEWS index 6712403b17..583af5ce78 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,42 @@ +v2.4.0 2022-11-26 Jacob Welsh < http://fixpoint.welshcomputing.com/ > + + * First release under new management by JWRD Computing. Rebrand, removing support-email key from IMAP ID command. (Support channels are blog comment, jwrd.net contact form, or in-WoT chat only.) + + * Remove dlopen-based plugin/module system, replacing the modules API with simplified, statically linkable code, based on build time fixed lists of the module entry points, one per module category. + * Drop unloved plugins with overly special loading mechanics (fs-compress, mail-crypt, var-expand-crypt, fts-lucene). + * auth, lib-dict-backend, lib-sql, master: Remove module mode for SQL drivers, Lua, GSSAPI and LDAP options so they're either builtin or absent. + * plugins/old-stats, doveadm: Remove stats based on unreliable /proc/self/io, which had brought in its own special undocumented "preinit" extension to the modules API. + + * Replace Autoconf-Automake build system with much simpler and faster GNU Makefiles and a hand-edited config.h. (Several following changes stem from a config.h audit and work to reduce the burdens of such editing.) + * lib: Improve mremap wrapper portability. + * Remove lib-dcrypt, lib-oauth2, and the features that used them: oauth2 userdb/passdb/SASL mechanism, "Google XOAUTH2 protocol", and doveadm dump subcommands dcrypt-key and dcrypt-file. + * lib: Drop unreliable detection of forward time jumps, which was used only for logging; preserve detection of the more problematic backward jumps. + * lib-imap, lib-mail, lib-storage, lib: Consistently reject negative time_t values (pre-1970) as underflow while tightening date/time parse error handling. May affect searches with invalid date parameter, by properly reporting the error. (Together, these two changes allow removal of the TIME_T_MAX_BITS magic number and resulting Y2038 complications.) + * Clarify or correct various config.h comments. + * Remove TLS Compression code, which used an API that was never standardized and is now long disabled for insecurity. + * Remove code for replacing libssl/libcrypto memory allocation routines, which is a no-op on LibreSSL and had function pointer types sneakily changed on OpenSSL. + * Prune unreferenced config.h macro definitions in bulk. + * Eliminate numerous other config.h macros, by: + Adjusting code to be more portable or consistent in the first place; + Disregarding recent OpenSSL API deprecation noisemaking while requiring a couple of its sufficiently mature functions; + Requiring va_copy (fitting with the overall C99 requirement); + Requiring timegm (non-POSIX but present in GNU, musl and BSDs). + * Initialize some type range and endian related config.h macros that couldn't be removed outright to values that should at least work for all musl/gcc platforms. + * Remove embedding of version control system hash/revision information into built programs. + * Close the remaining gap between VCS and released tarball by importing wiki docs and unicode data files previously downloaded at build or release time. There's no more pre-generating files at release time, so flex, bison and perl are now build requirements. + + * lib: De-obfuscate fallback and error cases in system RNG interface by separating getrandom from urandom code paths. + + * lib: Remove all but the simplest of the CPU limit tests as they were dreadfully slow and resource intensive. + * lib: Reduce iteration counts on randomized base64 codec tests, as they were fairly slow (and haven't found any problems yet). + + Enable full execution of the test suite rather than aborting after the first failed program, by adding src/run-tests.sh to handle the summary reporting logic (still invoked from "make check"). + - lib-program-client: Trim test that breaks on no-ipv6 kernels and fix function name (net_connect_ip) in error message. + - lib-charset: Drop iconv tests based on UTF-7 source encoding, which isn't implemented in musl and didn't turn up in a search of my own 12 year email collection. + - lib: Fix file_cache_errors test on musl by not demanding specific error strings. + + - lib-imap: imap_bodystructure_parse_full(): Reset parts.data on failure to prevent caller confusion (ported from release-2.3 branch). + Fixes: Panic: file message-part-data.c: line 579 (message_part_is_attachment): assertion failed: (data != NULL) + v2.3.19.1 2022-06-14 Aki Tuomi - doveadm deduplicate: Non-duplicate mails were deleted. diff --git a/config.h b/config.h index 635c243b8b..944cafebdb 100644 --- a/config.h +++ b/config.h @@ -1,5 +1,22 @@ /* Adapted from output of configure on Gales Linux, x86_64 */ +/* Name of package (for internal names such as config file) */ +#define PACKAGE "dovecot" + +/* Full name of package (for display in version information) */ +#define PACKAGE_NAME "JWRD Dovecot" + +/* Support URL */ +#define PACKAGE_WEBPAGE "http://jwrd.net/" + +#define PACKAGE_VERSION "2.4.0" +#define DOVECOT_VERSION_MAJOR 2 +#define DOVECOT_VERSION_MINOR 4 +#define DOVECOT_VERSION_MICRO 0 + +/* A possibly different version string is embedded in modules, originally used for checking binary compatibility after dlopen. */ +#define DOVECOT_ABI_VERSION "2.4.ABIv0(PhenomenallyImportantCosmicVersioning)" + /* Define if libbsd headers must be included (currently for arc4random_buf) */ /* #undef HAVE_LIBBSD */ @@ -60,21 +77,6 @@ /* Lua scripts will be able to yield */ /* #undef DLUA_WITH_YIELDS */ -/* Dovecot ABI version */ -#define DOVECOT_ABI_VERSION "2.3.ABIv19(2.3.19.1)" - -/* Dovecot version */ -#define DOVECOT_VERSION "2.3.19.1" - -/* Dovecot major version */ -#define DOVECOT_VERSION_MAJOR 2 - -/* Dovecot micro version */ -#define DOVECOT_VERSION_MICRO 19 - -/* Dovecot minor version */ -#define DOVECOT_VERSION_MINOR 3 - /* How to define flexible array members in structs */ #define FLEXIBLE_ARRAY_MEMBER @@ -567,24 +569,6 @@ /* Maximum value of off_t */ #define OFF_T_MAX INT64_MAX /* off_t is always 64-bit on musl */ -/* Name of package */ -#define PACKAGE "dovecot" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "dovecot@dovecot.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "Dovecot" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "dovecot" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "2.3.19.1" - -/* Support URL */ -#define PACKAGE_WEBPAGE "http://jwrd.net/" - /* Build with BSD authentication support */ /* #undef PASSDB_BSDAUTH */ @@ -681,9 +665,6 @@ /* Build with SQL support */ /* #undef USERDB_SQL */ -/* Version number of package */ -#define VERSION "2.3.19.1" - /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). (__BYTE_ORDER__ is a GNU C extension.) */ #ifndef __BYTE_ORDER__ # error Unknown endianness diff --git a/src/lib-imap/imap-id.c b/src/lib-imap/imap-id.c index 1318403780..800efe364e 100644 --- a/src/lib-imap/imap-id.c +++ b/src/lib-imap/imap-id.c @@ -42,8 +42,6 @@ static const char *imap_id_get_default(const char *key) return PACKAGE_VERSION; if (strcasecmp(key, "support-url") == 0) return PACKAGE_WEBPAGE; - if (strcasecmp(key, "support-email") == 0) - return PACKAGE_BUGREPORT; #ifdef HAVE_UNAME return imap_id_get_uname(key); #endif diff --git a/src/stats/stats-service-openmetrics.c b/src/stats/stats-service-openmetrics.c index 4847386526..320ddfaa23 100644 --- a/src/stats/stats-service-openmetrics.c +++ b/src/stats/stats-service-openmetrics.c @@ -16,7 +16,7 @@ #define OPENMETRICS_CONTENT_VERSION "0.0.1" #define OPENMETRICS_BUILD_INFO \ - "version=\""DOVECOT_VERSION"\"" + "version=\""PACKAGE_VERSION"\"" enum openmetrics_metric_type { OPENMETRICS_METRIC_TYPE_COUNT,