diff --git a/postfix/HISTORY b/postfix/HISTORY index 95b6d9fda..ca551051e 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -20546,3 +20546,10 @@ Apologies for any names omitted. Bugfix: do not reset the mail transaction after receiving a non-ASCII recipient. File: smtpd/smtpd.c. + +20141002 + + Cleanup: moved the details of BC safety-net messages from + RELEASE_NOTES to postconf(5) manpage, and changed the wording + of the BC messages. Files: RELEASE_NOTES, proto/postconf.proto, + master/master_ent.c, smtpd/smtpd.c, trivial-rewrite/rewrite.c. diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index 8392b4ff6..a5d2e2bf6 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -61,65 +61,17 @@ about build options that are not described in the INSTALL instructions. Major changes with snapshot 20141001 ==================================== -A new backwards-compatibility safety net forces Postfix to keep -running with backwards-compatible main.cf and master.cf default -settings after an upgrade to a newer Postfix version. +A new backwards-compatibility safety net forces Postfix to run with +backwards-compatible main.cf and master.cf default settings after +an upgrade to a newer but incompatible Postfix version. -The following presents the messages that the backwards-compatibility -safety net will log, what the messages mean, and what action the -system adminstrator is expected to take. +While the backwards-compatible default settings are in effect, +Postfix logs what services or what email would be affected by the +incompatible change. Based on this the administrator can make some +backwards-compatibility settings permanent in main.cf or master.cf, +before turning off backwards compatibility. -1) postfix/master[27664]: /etc/postfix/master.cf: line 72: using - legacy default setting chroot=y - - chroot=n is the new default, but that may not always be disirable. - Postfix continues to use the backwards-compatible default, - chroot=y, until the system administrator has determined whether - or not the backwards-compatible chroot=y setting needs to be - made permanent in master.cf. - -2) postfix/trivial-rewrite[25835]: using legacy default setting - append_dot_mydomain=yes to rewrite "foo" to "foo.example.com" - - append_dot_mydomain=no is the new default, but that change may - affect email from ancient clients that cannot be updated. Postfix - continues to use the backwards-compatible default, - append_dot_mydomain=yes, until the system administrator has - determined whether or not the backwards-compatible - append_dot_mydomain=yes setting needs to be made permanent in - main.cf. - -3) postfix/smtpd[27560]: using legacy default setting smtputf8_enable=no - to accept non-ASCII sender address "??@example.org" from - localhost[127.0.0.1] - -4) postfix/smtpd[27560]: using legacy default setting smtputf8_enable=no - to accept non-ASCII recipient address "??@example.com" from - localhost[127.0.0.1] - - smtputf8_enable=yes is the new default, but that would break - existing email streams with non-ASCII localparts. Postfix continues - to use the backwards-compatible default, smtputf8_enable=no, - until the system administrator has determined whether or not the - backwards-compatible smtputf8_enable=no setting needs to be made - permanent in main.cf. - -It may take several weeks until all dependencies on backwards-compatible -default settings are identified. After the review is complete, and -no more backwards-compatible settings need to be made permanent. -the administrator should accept the remaining Postfix built-in -default settings by updating the compatibility_level setting in -main.cf. - -For the changes discussed above, the administrator should set: - -/etc/postfix/main.cf: - compatibility_level = 1 - -This will stop all the warning messages shown above. - -Future incompatible changes will require setting "compatibility_level -= 2", and so on. +See postconf.5.html#compatibility_level for details. Major changes with snapshot 20140928 ==================================== diff --git a/postfix/WISHLIST b/postfix/WISHLIST index 80637fd4b..f83de8edd 100644 --- a/postfix/WISHLIST +++ b/postfix/WISHLIST @@ -11,6 +11,8 @@ Wish list: Things to do after the stable release: + Update smtputf8_enable in postconf(5) + use "static const char myname[] ..." Add milter_mumble_macros to the list of per-macro features. diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index 1c58bea48..c395b5c39 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -1539,24 +1539,111 @@ global ipc_timeout parameter as well.
A safety net that forces Postfix to keep running with -backwards-compatible main.cf and master.cf default settings after -an upgrade to a newer but incompatible Postfix version.
+A safety net that forces Postfix to run with backwards-compatible +main.cf and master.cf default settings after an upgrade to a newer +but incompatible Postfix version.
-Depending on the compatibility_level parameter setting, Postfix -continues to use backwards-compatible default settings, and logs -the use of those backwards-compatible default settings with messages -that contain the string "using legacy default setting". Based on -this logging the system administrator can determine that a new -default setting breaks nothing or that a backwards-compatible -default setting needs to be made permanent in main.cf or master.cf. -
+While the backwards-compatible default settings are in effect, +Postfix logs what services or what email would be affected by +the incompatible change.
-After this review is complete, and no more backwards-compatible -settings need to be made permanent, the administrator should accept -the remaining Postfix built-in default settings by updating the -compatibility_level setting in main.cf as recommended in the Postfix -RELEASE_NOTES.
+Based on this logging the system administrator can determine +whether or not a backwards-compatible default setting needs to be +made permanent in main.cf or master.cf.
+ +Changes introduced with Postfix 2.12 (compatibility level 1):
+ +The master.cf chroot default value has changed from "y" +(yes) to "n" (no). As long as the backwards-compatible default +settings are turned on, Postfix logs a warning each time the master +daemon reads the master.cf file:
+ ++postfix/master[27664]: /etc/postfix/master.cf: line 72: using + backwards-compatible default setting chroot=y ++ +
If Postfix logs such messages for a service that should remain +chrooted, then the system administrator should make the +backwards-compatible setting "chroot = y" permanent in master.cf. +For example, to update the chroot setting for the "smtp inet" +service:
+ ++# postconf -F smtp/inet/chroot=y +# postfix reload ++ +
The append_dot_mydomain default value has changed from +"yes" to "no". As long as the backwards-compatible default settings +are turned on, Postfix logs a warning for each email address with +an incomplete domain:
+ ++postfix/trivial-rewrite[25835]: using backwards-compatible + default setting append_dot_mydomain=yes to rewrite "foo" to + "foo.example.com" ++ + +
The backwards-compatible setting prevents delivery errors for +email with an incomplete domain in an email address. If Postfix +logs the above message for addresses different from "user@localhost", +and the client cannot be changed to use complete domain names in +email addresses, then the system administrator should make the +backwards-compatible setting "append_dot_mydomain = yes" permanent +in main.cf:
+ ++# postconf append_dot_mydomain=yes +# postfix reload ++ +
The smtputf8_enable default value has changed from "no" +to "yes. As long as the backwards-compatible default settings are +turned on, Postfix logs a warning each time an SMTP command uses a +non-ASCII address localpart:
+ ++postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII sender address + "??@example.org" from localhost[127.0.0.1] ++ +
+postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII recipient address + "??@example.com" from localhost[127.0.0.1] ++ +
The backwards-compatible setting prevents Postfix from rejecting +non-SMTPUTF8 email from legacy clients that send email with a +non-ASCII sender or recipient address localpart. If Postfix logs +the above messages and the client cannot be updated to use SMTPUTF8, +then the system administrator should make the backwards-compatible +setting "smtputf8_enable = no" permanent in main.cf: + +
+# postconf smtputf8_enable=no +# postfix reload ++ +
When no more backwards-compatible settings need to be made +permanent, the administrator should turn off the backwards-compatible +default settings by updating the compatibility_level setting in +main.cf.
+ ++# postconf compatibility_level=1 +# postfix reload ++ +
Future incompatible changes will require setting "compatibility_level += 2", and so on.
This feature is available in Postfix 2.12 and later.
diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 86ebfd11b..87ba293d7 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -890,23 +890,139 @@ delivery by the \fBpipe\fR(8) delivery agent. Note: if you set this time limit to a large value you must update the global ipc_timeout parameter as well. .SH compatibility_level (default: 0) -A safety net that forces Postfix to keep running with -backwards-compatible main.cf and master.cf default settings after -an upgrade to a newer but incompatible Postfix version. +A safety net that forces Postfix to run with backwards-compatible +main.cf and master.cf default settings after an upgrade to a newer +but incompatible Postfix version. .PP -Depending on the compatibility_level parameter setting, Postfix -continues to use backwards-compatible default settings, and logs -the use of those backwards-compatible default settings with messages -that contain the string "using legacy default setting". Based on -this logging the system administrator can determine that a new -default setting breaks nothing or that a backwards-compatible -default setting needs to be made permanent in main.cf or master.cf. +While the backwards-compatible default settings are in effect, +Postfix logs what services or what email would be affected by +the incompatible change. .PP -After this review is complete, and no more backwards-compatible -settings need to be made permanent, the administrator should accept -the remaining Postfix built-in default settings by updating the -compatibility_level setting in main.cf as recommended in the Postfix -RELEASE_NOTES. +Based on this logging the system administrator can determine +whether or not a backwards-compatible default setting needs to be +made permanent in main.cf or master.cf. +.PP +Changes introduced with Postfix 2.12 (compatibility level 1): +.IP \(bu +The master.cf chroot default value has changed from "y" +(yes) to "n" (no). As long as the backwards-compatible default +settings are turned on, Postfix logs a warning each time the master +daemon reads the master.cf file: +.sp +.nf +.na +.ft C +postfix/master[27664]: /etc/postfix/master.cf: line 72: using + backwards-compatible default setting chroot=y +.fi +.ad +.ft R +.sp +If Postfix logs such messages for a service that should remain +chrooted, then the system administrator should make the +backwards-compatible setting "chroot = y" permanent in master.cf. +For example, to update the chroot setting for the "smtp inet" +service: +.sp +.nf +.na +.ft C +# \fBpostconf -F smtp/inet/chroot=y\fR +# \fBpostfix reload\fR +.fi +.ad +.ft R +.IP \(bu +The append_dot_mydomain default value has changed from +"yes" to "no". As long as the backwards-compatible default settings +are turned on, Postfix logs a warning for each email address with +an incomplete domain: +.sp +.nf +.na +.ft C +postfix/trivial-rewrite[25835]: using backwards-compatible + default setting append_dot_mydomain=yes to rewrite "foo" to + "foo.example.com" +.fi +.ad +.ft R +.sp +The backwards-compatible setting prevents delivery errors for +email with an incomplete domain in an email address. If Postfix +logs the above message for addresses different from "user@localhost", +and the client cannot be changed to use complete domain names in +email addresses, then the system administrator should make the +backwards-compatible setting "append_dot_mydomain = yes" permanent +in main.cf: +.sp +.nf +.na +.ft C +# \fBpostconf append_dot_mydomain=yes\fR +# \fBpostfix reload\fR +.fi +.ad +.ft R +.IP \(bu +The smtputf8_enable default value has changed from "no" +to "yes. As long as the backwards-compatible default settings are +turned on, Postfix logs a warning each time an SMTP command uses a +non-ASCII address localpart: +.sp +.nf +.na +.ft C +postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII sender address + "??@example.org" from localhost[127.0.0.1] +.fi +.ad +.ft R +.sp +.nf +.na +.ft C +postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII recipient address + "??@example.com" from localhost[127.0.0.1] +.fi +.ad +.ft R +.sp +The backwards-compatible setting prevents Postfix from rejecting +non-SMTPUTF8 email from legacy clients that send email with a +non-ASCII sender or recipient address localpart. If Postfix logs +the above messages and the client cannot be updated to use SMTPUTF8, +then the system administrator should make the backwards-compatible +setting "smtputf8_enable = no" permanent in main.cf: +.sp +.nf +.na +.ft C +# \fBpostconf smtputf8_enable=no\fR +# \fBpostfix reload\fR +.fi +.ad +.ft R +.br +.PP +When no more backwards-compatible settings need to be made +permanent, the administrator should turn off the backwards-compatible +default settings by updating the compatibility_level setting in +main.cf. +.PP +.nf +.na +.ft C +# \fBpostconf compatibility_level=1\fR +# \fBpostfix reload\fR +.fi +.ad +.ft R +.PP +Future incompatible changes will require setting "compatibility_level += 2", and so on. .PP This feature is available in Postfix 2.12 and later. .SH config_directory (default: see "postconf -d" output) diff --git a/postfix/mantools/postconf2html b/postfix/mantools/postconf2html index 0e0c9816c..5ad038f46 100755 --- a/postfix/mantools/postconf2html +++ b/postfix/mantools/postconf2html @@ -7,7 +7,10 @@ # - Process input as text blocks separated by one or more empty # (or all whitespace) lines. # -# - Skip text between ; each must be on a different line. +# - Remove text between ; each may be on a different line. +# +# - Optionally removetext. Instead, put those blank lines between @@ -16199,23 +16202,124 @@ mail.
A safety net that forces Postfix to keep running with -backwards-compatible main.cf and master.cf default settings after -an upgrade to a newer but incompatible Postfix version.
+A safety net that forces Postfix to run with backwards-compatible +main.cf and master.cf default settings after an upgrade to a newer +but incompatible Postfix version.
-Depending on the compatibility_level parameter setting, Postfix -continues to use backwards-compatible default settings, and logs -the use of those backwards-compatible default settings with messages -that contain the string "using legacy default setting". Based on -this logging the system administrator can determine that a new -default setting breaks nothing or that a backwards-compatible -default setting needs to be made permanent in main.cf or master.cf. +
While the backwards-compatible default settings are in effect, +Postfix logs what services or what email would be affected by +the incompatible change.
+ +Based on this logging the system administrator can determine +whether or not a backwards-compatible default setting needs to be +made permanent in main.cf or master.cf.
+ +Changes introduced with Postfix 2.12 (compatibility level 1):
+ +The master.cf chroot default value has changed from "y" +(yes) to "n" (no). As long as the backwards-compatible default +settings are turned on, Postfix logs a warning each time the master +daemon reads the master.cf file:
++postfix/master[27664]: /etc/postfix/master.cf: line 72: using + backwards-compatible default setting chroot=y ++
If Postfix logs such messages for a service that should remain +chrooted, then the system administrator should make the +backwards-compatible setting "chroot = y" permanent in master.cf. +For example, to update the chroot setting for the "smtp inet" +service:
++# postconf -F smtp/inet/chroot=y +# postfix reload ++ +
The append_dot_mydomain default value has changed from +"yes" to "no". As long as the backwards-compatible default settings +are turned on, Postfix logs a warning for each email address with +an incomplete domain:
++postfix/trivial-rewrite[25835]: using backwards-compatible + default setting append_dot_mydomain=yes to rewrite "foo" to + "foo.example.com" ++
The backwards-compatible setting prevents delivery errors for +email with an incomplete domain in an email address. If Postfix +logs the above message for addresses different from "user@localhost", +and the client cannot be changed to use complete domain names in +email addresses, then the system administrator should make the +backwards-compatible setting "append_dot_mydomain = yes" permanent +in main.cf:
++# postconf append_dot_mydomain=yes +# postfix reload +-
After this review is complete, and no more backwards-compatible -settings need to be made permanent, the administrator should accept -the remaining Postfix built-in default settings by updating the -compatibility_level setting in main.cf as recommended in the Postfix -RELEASE_NOTES.
+The smtputf8_enable default value has changed from "no" +to "yes. As long as the backwards-compatible default settings are +turned on, Postfix logs a warning each time an SMTP command uses a +non-ASCII address localpart:
++postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII sender address + "??@example.org" from localhost[127.0.0.1] ++
+postfix/smtpd[27560]: using backwards-compatible default setting + smtputf8_enable=no to accept non-ASCII recipient address + "??@example.com" from localhost[127.0.0.1] ++
The backwards-compatible setting prevents Postfix from rejecting
+non-SMTPUTF8 email from legacy clients that send email with a
+non-ASCII sender or recipient address localpart. If Postfix logs
+the above messages and the client cannot be updated to use SMTPUTF8,
+then the system administrator should make the backwards-compatible
+setting "smtputf8_enable = no" permanent in main.cf:
+
+# postconf smtputf8_enable=no
+# postfix reload
+
+
+
When no more backwards-compatible settings need to be made +permanent, the administrator should turn off the backwards-compatible +default settings by updating the compatibility_level setting in +main.cf.
+ ++# postconf compatibility_level=1 +# postfix reload ++ +
Future incompatible changes will require setting "compatibility_level += 2", and so on.
This feature is available in Postfix 2.12 and later.
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 464009f1f..66d55e7fc 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 "20141001" +#define MAIL_RELEASE_DATE "20141002" #define MAIL_VERSION_NUMBER "2.12" #ifdef SNAPSHOT diff --git a/postfix/src/master/master_ent.c b/postfix/src/master/master_ent.c index 3681e038d..25fa26823 100644 --- a/postfix/src/master/master_ent.c +++ b/postfix/src/master/master_ent.c @@ -203,9 +203,9 @@ static char *get_str_ent(char **bufp, char *name, char *def_val) if (def_val == 0) fatal_with_context("field \"%s\" has no default value", name); if (warn_compat_break_chroot && strcmp(name, "chroot") == 0) - msg_info("%s: line %d: using legacy default setting %s=%s (" - VAR_COMPAT_LEVEL "<1)", master_path, master_line, - name, def_val); + msg_info("%s: line %d: using backwards-compatible default setting " + "%s=%s (" VAR_COMPAT_LEVEL "<1)", master_path, + master_line, name, def_val); return (def_val); } else { return (value); diff --git a/postfix/src/postfix/postfix.c b/postfix/src/postfix/postfix.c index bada7b928..c9c0e435b 100644 --- a/postfix/src/postfix/postfix.c +++ b/postfix/src/postfix/postfix.c @@ -496,16 +496,16 @@ int main(int argc, char **argv) get_mail_conf_str_table(str_table); /* - * Alert the sysadmin that the backwards-compatible settings are still - * in effect. + * Alert the sysadmin that the backwards-compatible settings are still in + * effect. */ if (var_compat_level < CUR_COMPAT_LEVEL) { msg_warn("Postfix is running with backwards-compatible default " "settings"); msg_warn("See http://www.postfix.org/postconf.5.html#" VAR_COMPAT_LEVEL " for details"); - msg_warn("Use \"postconf " VAR_COMPAT_LEVEL "=%d\" to disable " - "the backwards-compatible default settings", + msg_warn("To disable backwards compatibility use \"postconf " + VAR_COMPAT_LEVEL "=%d\" and \"postfix reload\"", CUR_COMPAT_LEVEL); } diff --git a/postfix/src/smtpd/smtpd.c b/postfix/src/smtpd/smtpd.c index 8245db982..38b67a7c1 100644 --- a/postfix/src/smtpd/smtpd.c +++ b/postfix/src/smtpd/smtpd.c @@ -2492,10 +2492,10 @@ static int mail_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv) return (-1); } if (warn_compat_break_smtputf8_enable) - msg_info("using legacy default setting " VAR_SMTPUTF8_ENABLE - "=no to accept non-ASCII sender address \"%s\" from " - "%s (" VAR_COMPAT_LEVEL "<1)", STR(state->addr_buf), - state->namaddr); + msg_info("using backwards-compatible default setting " + VAR_SMTPUTF8_ENABLE "=no to accept non-ASCII sender " + "address \"%s\" from %s (" VAR_COMPAT_LEVEL "<1)", + STR(state->addr_buf), state->namaddr); } /* @@ -2750,10 +2750,10 @@ static int rcpt_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv) return (-1); } if (warn_compat_break_smtputf8_enable) - msg_info("using legacy default setting " VAR_SMTPUTF8_ENABLE - "=no to accept non-ASCII recipient address \"%s\" from" - " %s (" VAR_COMPAT_LEVEL "<1)", STR(state->addr_buf), - state->namaddr); + msg_info("using backwards-compatible default setting " + VAR_SMTPUTF8_ENABLE "=no to accept non-ASCII recipient " + "address \"%s\" from %s (" VAR_COMPAT_LEVEL "<1)", + STR(state->addr_buf), state->namaddr); } if (SMTPD_STAND_ALONE(state) == 0) { const char *verify_sender; diff --git a/postfix/src/trivial-rewrite/rewrite.c b/postfix/src/trivial-rewrite/rewrite.c index b09cc8cee..0aed10c7d 100644 --- a/postfix/src/trivial-rewrite/rewrite.c +++ b/postfix/src/trivial-rewrite/rewrite.c @@ -197,10 +197,11 @@ void rewrite_tree(RWR_CONTEXT *context, TOK822 *tree) && tok822_find_type(domain, '.') == 0) { if (warn_compat_break_app_dot_mydomain && (vstringval = domain->next->vstr) != 0) - msg_info("using legacy default setting " VAR_APP_DOT_MYDOMAIN - "=yes to rewrite \"%s\" to \"%s.%s\" (" VAR_COMPAT_LEVEL - " < 1)", vstring_str(vstringval), - vstring_str(vstringval), var_mydomain); + msg_info("using backwards-compatible default setting " + VAR_APP_DOT_MYDOMAIN "=yes to rewrite \"%s\" to " + "\"%s.%s\" (" VAR_COMPAT_LEVEL " < 1)", + vstring_str(vstringval), vstring_str(vstringval), + var_mydomain); tok822_sub_append(tree, tok822_alloc('.', (char *) 0)); tok822_sub_append(tree, tok822_scan(REW_PARAM_VALUE(context->domain), (TOK822 **) 0));