Home | History | Annotate | Line # | Download | only in proto
PACKAGE_README.html revision 1.1.1.1.2.2
      1 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
      2         "http://www.w3.org/TR/html4/loose.dtd">
      3 
      4 <html>
      5 
      6 <head>
      7 
      8 <title>Guidelines for Package Builders</title>
      9 
     10 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
     11 
     12 </head>
     13 
     14 <body>
     15 
     16 <h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Guidelines for Package Builders</h1>
     17 
     18 <hr>
     19 
     20 <h2>Purpose of this document</h2>
     21 
     22 <p> This document has hints and tips for those who manage their
     23 own Postfix distribution for internal use, and for those who maintain
     24 Postfix distributions for general use.  </p>
     25 
     26 <h2>General distributions: please provide a small default main.cf
     27 file</h2>
     28 
     29 <p> The installed main.cf file must be small. PLEASE resist the
     30 temptation to list all parameters in the main.cf file.  Postfix
     31 is supposed to be easy to configure. Listing all parameters in main.cf
     32 defeats the purpose. It is an invitation for hobbyists to make
     33 random changes without understanding what they do, and gets them
     34 into endless trouble.  </p>
     35 
     36 <h2>General distributions: please include README or HTML files</h2>
     37 
     38 <p> Please provide the applicable README or HTML files. They are
     39 referenced by the Postfix manual pages and by other files.  Without
     40 README or HTML files, Postfix will be difficult if not impossible
     41 to configure. </p>
     42 
     43 <h2>Postfix Installation parameters</h2>
     44 
     45 <p> Postfix installation is controlled by a dozen installation
     46 parameters.  See the postfix-install and post-install files for
     47 details.  Most parameters have system-dependent default settings
     48 that are configurable at compile time, as described in the INSTALL
     49 file. </p>
     50 
     51 <h2>Preparing a pre-built package for distribution to other
     52 systems</h2>
     53 
     54 <p> You can build a Postfix package on a machine that does not have
     55 Postfix installed on it. All you need is Postfix source code and
     56 a compilation environment that is compatible with the target system.
     57 </p>
     58 
     59 <p> You can build a pre-built Postfix package as an unprivileged
     60 user. </p>
     61 
     62 <p> First compile Postfix. After successful compilation, execute:
     63 </p>
     64 
     65 <blockquote> <pre> % <b>make package</b> </pre>
     66 </blockquote>
     67 
     68 <p> With Postfix versions before 2.2 you must invoke the post-install
     69 script directly (<tt>% <b>sh post-install</b></tt>). </p>
     70 
     71 <p> You will be prompted for installation parameters.  Specify an
     72 install_root directory other than /.  The mail_owner and setgid_group
     73 installation parameter settings will be recorded in the main.cf
     74 file, but they won't take effect until the package is unpacked and
     75 installed on the destination machine. </p>
     76 
     77 <p> If you want to fully automate this process, specify all the
     78 non-default installation parameters on the command line: </p>
     79 
     80 <blockquote> 
     81 <pre> % <b>make non-interactive-package install_root=/some/where</b>...  
     82 </pre> </blockquote>
     83 
     84 <p> With Postfix versions before 2.2 you must invoke the post-install
     85 script directly (<tt>% <b>sh post-install -non-interactive
     86 install_root...</b></tt>). </p>
     87 
     88 <h2>Begin Security Alert</h2>
     89 
     90 <p> <b> When building an archive for distribution, be sure to
     91 archive only files and symbolic links, not their parent directories.
     92 Otherwise, unpacking a pre-built Postfix package may mess up
     93 permission and/or ownership of system directories such as / /etc
     94 /usr /usr/bin /var /var/spool and so on. This is especially an
     95 issue if you executed postfix-install (see above) as an unprivileged
     96 user. </b> </p>
     97 
     98 <h2>End Security Alert</h2>
     99 
    100 <p> Thus, to tar up the pre-built package, take the following steps:
    101 </p>
    102 
    103 <blockquote> <pre>
    104 % cd INSTALL_ROOT
    105 % rm -f SOMEWHERE/outputfile
    106 % find . \! -type d -print | xargs tar rf SOMEWHERE/outputfile
    107 % gzip SOMEWHERE/outputfile </pre> </blockquote>
    108 
    109 <p>This way you will not include any directories that might cause
    110 trouble upon extraction. </p>
    111 
    112 <h2>Installing a pre-built Postfix package</h2>
    113 
    114 <ul>
    115 
    116 <li> <p> To unpack a pre-built Postfix package, execute the equivalent
    117 of: </p>
    118 
    119 <pre>
    120 # umask 022
    121 # gzip -d &lt;outputfile.tar.gz | (cd / ; tar xvpf -) </pre>
    122 
    123 <p> The umask command is necessary for getting the correct permissions
    124 on non-Postfix directories that need to be created in the process.
    125 </p>
    126 
    127 <li> <p> Create the necessary mail_owner account and setgid_group
    128 group for exclusive use by Postfix. </p>
    129 
    130 <li> <p> Execute the postfix command to set ownership and permission
    131 of Postfix files and directories, and to update Postfix configuration
    132 files. If necessary, specify any non-default settings for mail_owner
    133 or setgid_group on the postfix command line: </p>
    134 
    135 <pre>
    136 # postfix set-permissions upgrade-configuration \
    137        setgid_group=xxx mail_owner=yyy
    138 </pre>
    139 
    140 <p> With Postfix versions before 2.1 you achieve the same result
    141 by invoking the post-install script directly. </p>
    142 
    143 </ul>
    144 
    145 </body>
    146 
    147 </html>
    148