-----BEGIN PGP SIGNED MESSAGE-----
*****************************************************
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 */
#endif
- -#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4)
+#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
+ || defined(FREEBSD5)
#define HAS_DUPLEX_PIPE
#endif
- -#if defined(OPENBSD2) || defined(FREEBSD3) || defined(FREEBSD4)
+#if defined(OPENBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
+ || defined(FREEBSD5)
#define HAS_ISSETUGID
#endif
(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
users
(g) add to /etc/groups:
postfix:*:70:
postdrop:*:72:
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
directories:
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
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
case ${postfix_enable} in
[Yy][Ee][Ss])
if [ -f /usr/sbin/postfix ]; then
echo -n ' postfix'; /usr/sbin/postfix ${postfix_flags}
fi
;;
esac
#
# ---- end rc.local ----
(l) disable sendmail in /etc/rc.conf
sendmail_enable="NO"
(m) enable postfix in /etc/rc.conf
postfix_enable="YES"
postfix_flags="start"
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:
www.postfix.org
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 =
PATH=/usr/bin:/usr/X11R6/bin
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
# IF YOU DO, YOU WILL NOT RECEIVE ANY MAIL (bummer)
# 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
call:
/usr/sbin/postmail
---- end ----
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: latin1
Comment: No safety this side of the grave; never was, never will be
iQBFAwUBOeAbia/ciqw+xvOFAQHCZgGAg2AMA/0WOrzbo8kOx6zERvBIgVtRahN2
YkWr4Q/oOgeQXmhi59hD1dAmEA1/f3iC
=87j0
-----END PGP SIGNATURE-----
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message