From: Wietse Venema
Date: Tue, 21 Apr 2015 05:00:00 +0000 (-0500)
Subject: postfix-3.1-20150421
X-Git-Tag: v3.1.0-RC1~23
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd2344a07bfe542274dd6a996c033fdd0f2db21b;p=thirdparty%2Fpostfix.git
postfix-3.1-20150421
---
diff --git a/postfix/HISTORY b/postfix/HISTORY
index d14bd2a49..8271d81c8 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -21611,8 +21611,9 @@ Apologies for any names omitted.
20150214
- Bugfix: missing #ifdef USE_TLS inside #ifdef USE_SASL_AUTH
- broke the build. Viktor Dukhovni. File: smtpd/smtpd.c.
+ Bugfix (introduced: Postfix 3.0): missing #ifdef USE_TLS
+ inside #ifdef USE_SASL_AUTH broke the build. Viktor Dukhovni.
+ File: smtpd/smtpd.c.
Cleanup: missing errno logging in bounce daemon clients.
This made troubleshooting significantly more difficult.
@@ -21647,9 +21648,10 @@ Apologies for any names omitted.
20150221
- Bugfix: don't append '.' to the DNS resource record value,
- when converting TXT records to the string form that is used
- used by xxx_dns_reply_filter. File: dns/dns_strrecord.c.
+ Bugfix (introduced: Postfix 3.0): don't append '.' to the
+ DNS resource record value, when converting TXT records to
+ the string form that is used used by xxx_dns_reply_filter.
+ File: dns/dns_strrecord.c.
20150313
@@ -21690,15 +21692,38 @@ Apologies for any names omitted.
Bugfix (introduced: Postfix 1.1.0): post-install expanded
macros in parameter values when trying to detect parameter
- overrides. Julian Reich, Viktor Dukhovni, and Wietse. File:
+ overrides, causing unnecessary main.cf updates during Postfix
+ start-up. Julian Reich, Viktor Dukhovni, and Wietse. File:
conf/post-install.
20150330
- Bitrot: prepare for future changes in OpenSSL. Viktor
- Dukhovni. File: tlstls_dane.c.
+ Bitrot: prepare for future changes in OpenSSL API. Viktor
+ Dukhovni. File: tls_dane.c.
Safety: instead of bouncing mail, report a soft error when
SASL infrastucture breaks. Viktor Dukhovni, Emmanuel Fuste.
Files: smtpd/smtpd_sasl_glue.c, xsasl/xsasl.h,
xsasl/xsasl_cyrus_server.c, xsasl/xsasl_dovecot_server.c.
+
+20150401
+
+ Documentation: update the mydestination default value in
+ the stock main.cf file. File: conf/main.cf.
+
+20150404
+
+ Documentation: add "postconf -m" output to problem reports. File:
+ proto/DEBUG_README.html.
+
+20150418
+
+ Portability: use the icu-config utility to locate the ICU
+ include and library files. With this, Postfix builds out
+ of the box on MacOS X. File: makedefs.
+
+20150421
+
+ Bugfix (introduced: 19970309): reset errno before calling
+ readdir(), in order to distinguish between end-of-directory and
+ an error condition. File: scandir,c,
diff --git a/postfix/README_FILES/DEBUG_README b/postfix/README_FILES/DEBUG_README
index 6e041d733..589036fa0 100644
--- a/postfix/README_FILES/DEBUG_README
+++ b/postfix/README_FILES/DEBUG_README
@@ -373,8 +373,12 @@ When reporting a problem, be sure to include the following information.
host names consistently. Replace each letter by "A", each digit by "D" so
that the helpers can still recognize syntactical errors.
- * Output from "ppoossttccoonnff --nn". Please do not send your main.cf file, or 500+
- lines of ppoossttccoonnff output.
+ * Command output from:
+
+ o "ppoossttccoonnff --nn". Please do not send your main.cf file, or 1000+ lines of
+ ppoossttccoonnff command output.
+
+ o "ppoossttccoonnff --MMff" (Postfix 2.9 or later).
* Better, provide output from the ppoossttffiinnggeerr tool. This can be found at http:
//ftp.wl0.org/SOURCES/postfinger.
diff --git a/postfix/WISHLIST b/postfix/WISHLIST
index 52791c9fe..e347e2d3d 100644
--- a/postfix/WISHLIST
+++ b/postfix/WISHLIST
@@ -24,11 +24,17 @@ Wish list:
installation/upgrade/packaging? postfix-install for early
warning, and post-install as a safety net?
- Automatically do the equivalent of syslog_name=postfix/mumble
- when basename(mumble) differs from basename(program file).
- This is especially desirable for mail delivery transports
- (smtp versus relay) as it identifies what scheduler parameters
- are in effect.
+ When the service basename differs from the program file
+ basename, either prepend the service name to the syslogname (as
+ if syslog_name=postfix/service/program), or prepend the service
+ name to the process name (perhaps too confusing). The service
+ indication is desirable for mail delivery transports (smtp
+ versus relay) as it identifies what scheduler parameters are
+ in effect, but it is also desirable for mail receiving services
+ (smtp versus submission verus smtps as configured in the stock
+ master.cf file). This requires exceptions for some program names
+ (exclude smtpd to avoid logging postfix/smtp/smtpd which could
+ result in more confusion, and maybe other program names).
UTF8 DNS[BW]L domain name.
@@ -38,8 +44,8 @@ Wish list:
Try to allow UTF-8 myhostname/mydomain, at least in bounce
template expansion.
- No enhanced status code when rejecting connection before
- the HELO handshake is completed.
+ In the SMTP server, do not issue an enhanced status code when
+ rejecting a connection before the HELO handshake is completed.
Maybe don't whitelist a client that has maxed out its
per-MTA connection count limit.
diff --git a/postfix/conf/main.cf b/postfix/conf/main.cf
index 1fc886b82..0c36e3ac7 100644
--- a/postfix/conf/main.cf
+++ b/postfix/conf/main.cf
@@ -153,8 +153,8 @@ mail_owner = postfix
# compatible delivery agent that lookups all recipients in /etc/passwd
# and /etc/aliases or their equivalent.
#
-# The default is $myhostname + localhost.$mydomain. On a mail domain
-# gateway, you should also include $mydomain.
+# The default is $myhostname + localhost.$mydomain + localhost. On
+# a mail domain gateway, you should also include $mydomain.
#
# Do not specify the names of virtual domains - those domains are
# specified elsewhere (see VIRTUAL_README).
diff --git a/postfix/html/DEBUG_README.html b/postfix/html/DEBUG_README.html
index 708290b0a..30a06285a 100644
--- a/postfix/html/DEBUG_README.html
+++ b/postfix/html/DEBUG_README.html
@@ -554,8 +554,16 @@ by "A", each digit
by "D" so that the helpers can still recognize syntactical errors.
- Output from "postconf -n". Please do not send your
-main.cf file, or 500+ lines of postconf output.
+ Command output from:
+
+
+
+-
"postconf -n". Please do not send your main.cf file,
+or 1000+ lines of postconf command output.
+
+ -
"postconf -Mf" (Postfix 2.9 or later).
+
+
Better, provide output from the postfinger tool.
This can be found at http://ftp.wl0.org/SOURCES/postfinger.
diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html
index 5895cd82a..5c31ff7d2 100644
--- a/postfix/html/postconf.5.html
+++ b/postfix/html/postconf.5.html
@@ -9872,8 +9872,11 @@ This feature is available in Postfix 2.0 and later.
The address type ("ipv6", "ipv4" or "any") that the Postfix
SMTP client will try first, when a destination has IPv6 and IPv4
addresses with equal MX preference. This feature has no effect
-unless the inet_protocols setting enables both IPv4 and IPv6.
-With Postfix 2.8 the default is "ipv6".
+unless the inet_protocols setting enables both IPv4 and IPv6.
+
+ Postfix SMTP client address preference has evolved. With Postfix
+2.8 the default is "ipv6"; earlier implementations are hard-coded
+to prefer IPv6 over IPv4.
Notes for mail delivery between sites that have both IPv4 and
IPv6 connectivity:
diff --git a/postfix/makedefs b/postfix/makedefs
index 18719720c..11698444e 100644
--- a/postfix/makedefs
+++ b/postfix/makedefs
@@ -731,9 +731,11 @@ esac
# Look for the ICU library and enable unicode email if available.
#
case "$CCARGS" in
- *-DNO_EAI*) ;;
- *) trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
- cat >makedefs.test.c <<'EOF'
+*-DNO_EAI*) ;;
+ *) icu_cppflags=`(icu-config --cppflags) 2>/dev/null` && {
+ icu_ldflags=`(icu-config --ldflags) 2>/dev/null` && {
+ trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
+ cat >makedefs.test.c <<'EOF'
#include
#include
@@ -753,14 +755,17 @@ int main(int argc, char **argv)
&error) != 14);
}
EOF
- ${CC-gcc} -o makedefs.test makedefs.test.c -I/usr/local/include \
- -L/usr/local/lib -licuuc >/dev/null 2>&1
- if ./makedefs.test 2>/dev/null ; then
- SYSLIBS="$SYSLIBS -L/usr/local/lib -licuuc"
- else
- CCARGS="$CCARGS -DNO_EAI"
- fi
- rm -f makedefs.test makedefs.test.[co]
+ ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ $icu_ldflags >/dev/null 2>&1
+ if ./makedefs.test 2>/dev/null ; then
+ CCARGS="$CCARGS $icu_cppflags"
+ SYSLIBS="$SYSLIBS $icu_ldflags"
+ else
+ CCARGS="$CCARGS -DNO_EAI"
+ fi
+ rm -f makedefs.test makedefs.test.[co]
+ }
+ } || CCARGS="$CCARGS -DNO_EAI"
esac
#
diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5
index 18f2eb083..f58853c76 100644
--- a/postfix/man/man5/postconf.5
+++ b/postfix/man/man5/postconf.5
@@ -6092,7 +6092,10 @@ The address type ("ipv6", "ipv4" or "any") that the Postfix
SMTP client will try first, when a destination has IPv6 and IPv4
addresses with equal MX preference. This feature has no effect
unless the inet_protocols setting enables both IPv4 and IPv6.
-With Postfix 2.8 the default is "ipv6".
+.PP
+Postfix SMTP client address preference has evolved. With Postfix
+2.8 the default is "ipv6"; earlier implementations are hard\-coded
+to prefer IPv6 over IPv4.
.PP
Notes for mail delivery between sites that have both IPv4 and
IPv6 connectivity:
diff --git a/postfix/proto/DEBUG_README.html b/postfix/proto/DEBUG_README.html
index a65e42a1a..4c1877c9c 100644
--- a/postfix/proto/DEBUG_README.html
+++ b/postfix/proto/DEBUG_README.html
@@ -554,8 +554,16 @@ by "A", each digit
by "D" so that the helpers can still recognize syntactical errors.
- Output from "postconf -n". Please do not send your
-main.cf file, or 500+ lines of postconf output.
+ Command output from:
+
+
+
+-
"postconf -n". Please do not send your main.cf file,
+or 1000+ lines of postconf command output.
+
+ -
"postconf -Mf" (Postfix 2.9 or later).
+
+
Better, provide output from the postfinger tool.
This can be found at http://ftp.wl0.org/SOURCES/postfinger.
diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto
index c9de2433f..edb85cf2d 100644
--- a/postfix/proto/postconf.proto
+++ b/postfix/proto/postconf.proto
@@ -14186,8 +14186,11 @@ destination with each content_filter value or FILTER action.
The address type ("ipv6", "ipv4" or "any") that the Postfix
SMTP client will try first, when a destination has IPv6 and IPv4
addresses with equal MX preference. This feature has no effect
-unless the inet_protocols setting enables both IPv4 and IPv6.
-With Postfix 2.8 the default is "ipv6".
+unless the inet_protocols setting enables both IPv4 and IPv6.
+
+ Postfix SMTP client address preference has evolved. With Postfix
+2.8 the default is "ipv6"; earlier implementations are hard-coded
+to prefer IPv6 over IPv4.
Notes for mail delivery between sites that have both IPv4 and
IPv6 connectivity:
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 6fab99f44..0ed0e08c5 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20150330"
+#define MAIL_RELEASE_DATE "20150421"
#define MAIL_VERSION_NUMBER "3.1"
#ifdef SNAPSHOT
diff --git a/postfix/src/util/scan_dir.c b/postfix/src/util/scan_dir.c
index d8c76cfce..432c9f4f6 100644
--- a/postfix/src/util/scan_dir.c
+++ b/postfix/src/util/scan_dir.c
@@ -78,6 +78,7 @@
#endif
#endif
#include
+#include
/* Utility library. */
@@ -177,6 +178,13 @@ char *scan_dir_next(SCAN_DIR *scan)
#define STREQ(x,y) (strcmp((x),(y)) == 0)
if (info) {
+
+ /*
+ * Fix 20150421: readdir() does not reset errno after reaching the
+ * end-of-directory. This dates back all the way to the initial
+ * implementation of 19970309.
+ */
+ errno = 0;
while ((dp = readdir(info->dir)) != 0) {
if (STREQ(dp->d_name, ".") || STREQ(dp->d_name, "..")) {
if (msg_verbose > 1)
diff --git a/postfix/src/util/strcasecmp_utf8.c b/postfix/src/util/strcasecmp_utf8.c
index 22ed43478..07e576a55 100644
--- a/postfix/src/util/strcasecmp_utf8.c
+++ b/postfix/src/util/strcasecmp_utf8.c
@@ -137,7 +137,7 @@ int strncasecmp_utf8x(int flags, const char *s1, const char *s2,
/*
* Caution: casefolding may change the number of bytes. See comments
- * above for concerns about strcpy().
+ * above for concerns about strcmp().
*/
flags &= CASEF_FLAG_UTF8;
casefoldx(flags, f1, s1, len);