I am implementing a safety net for incompatible Postfix configuration changes. After a Postfix upgrade, this will allow you to keep running Postfix with the historical default settings, during which time Postfix will log all uses of any old default value that will be affected by an incompatible change.
Examples: master.cf: line 72: using legacy default setting chroot=y using legacy default setting append_dot_mydomain=yes to rewrite "foo" to "foo.example.com" using legacy default setting smtputf8_enable=no to accept non-ASCII address "?@example.com" Once you have run Postfix for some time, you know if any main.cf or master.cf setting needs to be updated (set explicitly to old default value) before you can turn off these checks. More on that below. The safety net is controlled with one configuration parameter: name: compatibility_level default: 0 (zero) At this time, no Postfix system has a compatibility_level setting in main.cf, therefore it will be zero. There is also an internal compatibility level that increments by 1 with each incompatible change. With the next Postfix snapshot, this internal level will be 1. The next time you upgrade Postfix, the main.f compatibility level will be zero, which is smaller than the internal level of 1. This turns on a couple things: - Use backwards-compatible default settings so that Postfix keeps working as before. - Log the above messages when Postfix is actually using any of those backwards-compatible default settings. This will show whether your site depends on the old defaults. Finally, you set the parameters explicitly that must stay at their historical value, and configure "compatibility_level = 1" in main.cf. This turns off the checks and warnings. Wietse