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:

    + +
  • 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:

    + +
  • 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);