Guidelines for Package Builders

Purpose of this document

This document has hints and tips for those who manage their
own Postfix distribution for internal use, and for those who maintain
Postfix distributions for general use.

General distributions: please provide a small default main.cf
file

The installed main.cf file must be small. PLEASE resist the
temptation to list all 300+ parameters in the main.cf file. Postfix
is supposed to be easy to configure. Listing all 300+ in main.cf
defeats the purpose. It is an invitation for hobbyists to make
random changes without understanding what they do, and gets them
into endless trouble.

General distributions: please include README or HTML files

Please provide the applicable README or HTML files. They are
referenced by the Postfix manual pages and by other files. Without
README or HTML files, Postfix will be difficult if not impossible
to configure.

Postfix Installation parameters

Postfix installation is controlled by a dozen installation
parameters. See the postfix-install and post-install files for
details. Most parameters have system-dependent default settings
that are configurable at compile time, as described in the INSTALL
file.

Preparing a pre-built package for distribution to other
systems

You can build a Postfix package on a machine that does not have
Postfix installed on it. All you need is Postfix source code and
a compilation environment that is compatible with the target system.

You can build a pre-built Postfix package as an unprivileged
user.

First compile Postfix. After successful compilation, execute:

% sh postfix-install

You will be prompted for installation parameters. Specify an
install_root directory other than /. The mail_owner and setgid_group
installation parameter settings will be recorded in the main.cf
file, but they won't take effect until the package is unpacked and
installed on the destination machine.

If you want to fully automate this process, specify all the
non-default installation parameters on the command line:

% sh postfix-install -non-interactive
install_root=/some/where ...

Begin Security Alert

When building an archive for distribution, be sure to
archive only files and symbolic links, not their parent directories.
Otherwise, unpacking a pre-built Postfix package may mess up
permission and/or ownership of system directories such as / /etc
/usr /usr/bin /var /var/spool and so on. This is especially an
issue if you executed postfix-install (see above) as an unprivileged
user.

Execute the postfix command to set ownership and permission
of Postfix files and directories, and to update Postfix configuration
files. If necessary, specify any non-default settings for mail_owner
or setgid_group on the postfix command line: