POSTFIX should be included in /usr/src/contrib
    freebsd.org and freefall use it...
    time for an easy choice

(1) 28 Sep: tried installing postfix-current 'pkg' --nogo!
    Blew sendmail out of the water --repaired....

(2) 28 Sep: tried installing postfix-current 'port' -nogo!
    Blew sendmail out of the water --repaired...  again.

(3) 01 Oct: go for good ol' manual compile, from Wietse's tar file!

    BINGO!      (see 'by the numbers' following)

    However, being of the suspicious type, before compiling, I
    did grep for possible missing FREEBSD5 definitions --there
    were two in the util/sys_defs.h file.

    Having suffered through close to 20 years of configuring
    sendmail.cf since BSD4.2 first released, I promptly deleted
    sendmail from my systems.... sorry Eric;  m4 has its place,
    but .cf is not one of them; the syntax sucks, and the
    whole thing is an unnecessary, condescending mindfsck(1).

    Fryin' the egg, or doin' the deal by the numbers:

        Poor man's guide to installing 'Postfix'

(a) pick a directory and 'tar -zxf snapshot-20000531.tar.gz'

(b) 'cd snapshot-20000531'

(c) 'grep FREEBSD */[ch]' showed util/sys_defs.h was missing
    two FREEBSD5 declarations --modify accordingly.

    patch for util/sys_defs.h

+++ sys_defs.h  Fri Oct  6 13:13:16 2000
@@ -47,11 +47,13 @@
 #define HAS_ST_GEN     /* struct stat contains inode generation number */

- -#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4)
+#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
+    || defined(FREEBSD5)

- -#if defined(OPENBSD2) || defined(FREEBSD3) || defined(FREEBSD4)
+#if defined(OPENBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
+    || defined(FREEBSD5)

(d) make  (do config and create all makefiles)

(e) make  (again, do the big number)

(f) add to /etc/master.passwd (with 'vi_pwd' or execute
    'pwd_mkdb' after editing):

postfix:*:70:70::0:0:Postfix Owner:/nonexistent:/sbin/nologin

    check that uid/gid numbers do not conflict with other

(g) add to /etc/groups:


    Check that gid numbers do not conflict. postfix gid
    must match postfix gid in master.passwd entry. The
    separate 'postdrop' group is required for the maildrop
    directory which must not be group owned by postfix itself.

 -rwxr-sr-x  1 root  postdrop  223526 Oct  1 00:35 /usr/sbin/postdrop
 drwx-wx--T  2 postfix  postdrop  512 Oct  6 17:31 /var/spool/postfix/maildrop

(h) /usr/tmpdir is required for linking. so as 'root', do

        'mkdir /usr/tmpdir && make install'

    Most questions can be defaulted although I did elect to
    use the SETUGID maildrop file. I chose/accepted

    configuration:              /etc/postfix/
    user programs:              /usr/sbin/
    daemons:                    /usr/libexec/postfix/
    queue:                      /var/spool/postfix/
    mans:                       /usr/local/man/

    which keeps the concept of mail uniform. Then, as 'root':

        cd /etc/postfix
        rm -f aliases*
        ln -s /etc/aliases aliases
        ln -s /etc/aliases.db aliases.db

    I had done the same in /etc/mail for the latest version
    of sendmail to leave 'aliases' in its historical location
    as '/etc/aliases'

(i) As 'root', execute

        postfix start

    which creates the necessary spool directories and behaves
    like a default sendmail system.

    The standard '/etc/postfix/main.cf' will use 'gethostname(3)'
    'and getdomainname(3)'.

    Once it starts, check directory permissions, files, etc.

        postfix check

    Fix whatever is called out (if anything); then, although I
    did not find it necessary, it is recommended to:

        postfix stop
        postfix start

    to make sure everything is cleared and updated.

(j) Leave sendmail running to flush its queue, or if
    '/var/spool/mqueue' is empty, kill 'sendmail'. After postfix
    is installed, 'mailq' only looks at the postfix queue; so:

        /usr/libexec/sendmail/sendmail -bp

    will show the old sendmail queue; the original sendmail at
    this point is only monitoring its own queue.

(k) Create or add to file /etc/rc.local

# ---- /etc/rc.local ----
# 0a04 1650 attila      create file and add postfix start

if [ -r /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
elif [ -r /etc/rc.conf ]; then
        . /etc/rc.conf

case ${postfix_enable} in
        if [ -f /usr/sbin/postfix ]; then
                echo -n ' postfix'; /usr/sbin/postfix ${postfix_flags}
# ---- end rc.local ----

(l) disable sendmail in /etc/rc.conf


(m) enable postfix in /etc/rc.conf


    When you reboot, postfix, not sendmail, will be active.

(n) If your machine is the end destination with a single
    name where gethostname(3) == getdomainname(3), the
    installed /etc/postfix/main.cf file is all you need to run
    in basic mode.

    I trimmed /etc/postfix/main.cf to the essentials and added
    local machine destinations handled on the server. If you
    are running the machine as the final destination, the
    defaults basically do it all until you start playing with
    the filters and the rest of the special goodies in the
    collection of /etc/postfix/sample.------.cf files plus
    user contributed code which can be found on:


    I changed the 'undisclosed_recipients_header' since the
    default 'To: undisclosed recipients:;' format is obnoxious
    and is not accepted by some mail transport agents. The
    modification does not create a 'To: ' line, but the
    'X-Listmgr: [EMAIL PROTECTED]' is included in the header.

# ---- /etc/postfix/main.cf ----
# Global Postfix configuration file: main.cf
# derived from main.cf-original
# 0a02 0400 attila      initialize

# variables set by INSTALL.sh --also see, but do not change main.cf.default

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debugger_command =
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

# variables set by attila (none required for default operation)
# indent continuing lines, do not use '\'
# OBVIOUS: DO NOT USE MY mydestination LINES
# but don't worry, it will not be sent to me either,
# just bounce, messing up your mailing list subscriptions!

debug_peer_level = 1
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
#undisclosed_recipients_header = X-Listmgr: [EMAIL PROTECTED]
#mydestination = hun.org, localhost.hun.org, hun.net, attila.org,
#       mail.hun.org, www.hun.org, ftp.hun.org, hun10.hun.org,
#       hun11.hun.org, hun12.hun.org, hun13.hun.org, hun14.hun.org

# ---- end main.cf ----

(o) CAUTION: 'make world' reinstalls 'sendmail' even when

NO_SENDMAIL=YES         # do not build sendmail and related programs

    is included in '/etc/make.conf'; 'make world' may not
    compile sendmail, but it restores the symbolic link during
    'make installworld':

        /usr/sbin/sendmail -> /usr/sbin/mailcap

    which blows away postfix' 'sendmail' interface.

    My alternative was:

        'cp /usr/sbin/sendmail /usr/sbin/postmail'

    I had written a two step intermediate mail interface some
    time ago to eliminate the wait for sendmail to do its
    thing; so, all that was necessary was to change its
    target and all user mail programs on this network followed
    right along.

    otherwise, modify mail, Mail, Emacs, Pine, whatever to


                ---- end ----

Version: 2.6.3ia
Charset: latin1
Comment: No safety this side of the grave; never was, never will be


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to