Bugfix (defect introduced: Postfix 2.9, date: 20120307):
segfault with duplicate parameter name in "postconf -X" or
"postconf -#'. File: postconf/postconf_edit.c.
+
+20251205
+
+ Compatibility: recent Linux distributions have C compilers
+ with a built-in 'bool' type (size=1) that conflicts with
+ Postfix's bool (an alias for int, typically size=4). Postfix
+ 3.11 adopts the built-in bool type, but that change is too
+ large for the stable releases. Instead, the command "make
+ makefiles" will figure out how to make the compiler
+ backwards-compatible. File: makedefs.
-Wparentheses -Wstrict-prototypes -Wswitch -Wuninitialized \
-Wunused -Wno-missing-braces -fno-common'}
+# C23 introduces a built-in type 'bool' (size 1) which breaks past Postfix
+# practice where 'bool' is an alias for 'int' (typically, size 4).
+# Fortunately, -std=gnu17 works with both gcc and clang.
+cat >makedefs.test.c <<'EOF'
+/* This appears in mail_params.h */
+typedef int bool;
+EOF
+
+if eval ${CC} ${CCARGS} -c makedefs.test.c >/dev/null 2>&1
+then
+ : No further action needed.
+elif eval ${CC} -std=gnu17 ${CCARGS} -c makedefs.test.c >/dev/null 2>&1
+then
+ CCARGS="-std=gnu17 $CCARGS"
+else
+ error 'Please specify "CC=..." or "CCARGS=..." option to disable C23 bool'
+fi
+rm -f makedefs.test.[co]
+
# Extract map type names from -DHAS_XXX compiler options. We avoid
# problems with tr(1) range syntax by using enumerations instead,
# and we don't try to figure out which awk versions have tolower().
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20251125"
-#define MAIL_VERSION_NUMBER "3.8.13"
+#define MAIL_RELEASE_DATE "20251205"
+#define MAIL_VERSION_NUMBER "3.8.14"
#ifdef SNAPSHOT
#define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE