Date: Sun, 8 Oct 2000 07:02:12 +0000 (GMT) From: attila! <attila@hun.org> To: freebsd-current@freebsd.org, freebsd-ports@freebsd.org Subject: POSTFIX-- Wietse: tweak and go! --pkg & port: both duds Message-ID: <20001008070212.04A381C2AB@hun.org>
next in thread | raw e-mail | index | archive | help
-----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: lists@hun.org' 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: lists@hun.org #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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001008070212.04A381C2AB>