Thoroughly Postfix Upgrade Compatibility

Here is a rather good idea to help with what should be a rare update to the structure or syntax of system config files. Read on!

 

A Postfix Config Upgrade

Software upgrades and updates are far too often a bane for unexpectedly changing long used settings, or even completely breaking old configs or previous ways of working…

That problem is reduced somewhat (or perhaps just smeared into multiple smaller incremental bites) with “rolling release” updates. These make small incremental updates/changes and hence greatly reduces the pain when compared to a “big bang” update-everything to new versions as would be done when installing a new distro release. However, changes to the default settings in config files or changes to their structure/syntax will always make for a surprise… Perhaps Linus needs to shout louder yet about “Do Not Break Userspace” so that the userspace developers themselves take heed?… 😉

And then, very thoughtfully, we have the latest version of Postfix that looks to have greatly eased the pain of config changes:

Postfix Backwards-Compatibility Safety Net

Postfix 3.0 introduces a safety net that runs Postfix programs with backwards-compatible default settings after an upgrade. The safety net will log a warning whenever a “new” default setting could have an negative effect on your mail flow.

This document provides information on the following topics:

  • Detailed descriptions of Postfix backwards-compatibility warnings.
  • What backwards-compatible settings you may have to make permanent in main.cf or master.cf.
  • How to turn off Postfix backwards-compatibility warnings.

 

In brief, for Postfix version 3.0 and onwards, there is an integer version number for each change to the structure or for any change of the defaults for the Postfix config files. The “compatibility_level” parameter counts up from 0 and sets what configs version level Postfix will log for any outdated parameters that are being automatically fixed or worked around. For the gazillions of parameters shaping the wonderful flexibility of Postfix, this is all very excellently thorough! 🙂

To quote the Postfix Backwards-Compatibility page for how to turn this feature off once you are sure about your updated settings:

Backwards compatibility is turned off by updating the compatibility_level setting in main.cf.

  • # postconf compatibility_level=N
  • # postfix reload

For N specify the number that is logged in your postfix(1) warning message:

  • warning: To disable backwards compatibility use “postconf compatibility_level=N” and “postfix reload”

Sites that don’t care about backwards compatibility may set “compatibility_level = 9999” at their own risk.

 

In summary:

This latest example of a very good update, along with the good clear documentation, thoughtful features, and dependable reliability, all backed up by beautifully sane defaults, makes Postfix a pleasure to work with.

Leave a Reply