summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2004-05-30 09:20:40 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2004-05-30 09:20:40 +0000
commitb7d6d9d08526f5d5da277b98e816aecdcc1c4fe6 (patch)
tree2cf3b63eaa9071ef84755d1583b50ed35f47470d /mail-mta/sendmail
parentMoving to mail-mta/sendmail (diff)
downloadgentoo-2-b7d6d9d08526f5d5da277b98e816aecdcc1c4fe6.tar.gz
gentoo-2-b7d6d9d08526f5d5da277b98e816aecdcc1c4fe6.tar.bz2
gentoo-2-b7d6d9d08526f5d5da277b98e816aecdcc1c4fe6.zip
Moved from net-mail/sendmail to mail-mta/sendmail.
Diffstat (limited to 'mail-mta/sendmail')
-rw-r--r--mail-mta/sendmail/ChangeLog202
-rw-r--r--mail-mta/sendmail/Manifest21
-rw-r--r--mail-mta/sendmail/files/digest-sendmail-8.12.101
-rw-r--r--mail-mta/sendmail/files/digest-sendmail-8.12.111
-rw-r--r--mail-mta/sendmail/files/digest-sendmail-8.12.11-r11
-rw-r--r--mail-mta/sendmail/files/digest-sendmail-8.12.11-r21
-rw-r--r--mail-mta/sendmail/files/mailer.conf36
-rw-r--r--mail-mta/sendmail/files/sendmail25
-rw-r--r--mail-mta/sendmail/files/sendmail-8.12.2-makemapman.patch67
-rw-r--r--mail-mta/sendmail/files/sendmail-8.12.2-smrsh-paths.patch171
-rw-r--r--mail-mta/sendmail/files/sendmail-8.12.2-unix.patch11
-rw-r--r--mail-mta/sendmail/files/sendmail-8.12.6-r1-gentoo.diff63
-rw-r--r--mail-mta/sendmail/files/sendmail-procmail.cf1397
-rw-r--r--mail-mta/sendmail/files/sendmail-procmail.mc32
-rw-r--r--mail-mta/sendmail/files/sendmail.cf1382
-rw-r--r--mail-mta/sendmail/files/sendmail.mc30
-rw-r--r--mail-mta/sendmail/files/site.config.m415
-rw-r--r--mail-mta/sendmail/metadata.xml6
-rw-r--r--mail-mta/sendmail/sendmail-8.12.10.ebuild163
-rw-r--r--mail-mta/sendmail/sendmail-8.12.11-r1.ebuild161
-rw-r--r--mail-mta/sendmail/sendmail-8.12.11-r2.ebuild164
-rw-r--r--mail-mta/sendmail/sendmail-8.12.11.ebuild163
22 files changed, 4113 insertions, 0 deletions
diff --git a/mail-mta/sendmail/ChangeLog b/mail-mta/sendmail/ChangeLog
new file mode 100644
index 000000000000..f799c8a2a0b8
--- /dev/null
+++ b/mail-mta/sendmail/ChangeLog
@@ -0,0 +1,202 @@
+# ChangeLog for net-mail/sendmail
+# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/ChangeLog,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+*sendmail-8.12.11-r2 (30 May 2004)
+
+ 30 May 2004; Robin H. Johnson <robbat2@gentoo.org> metadata.xml,
+ sendmail-8.12.10.ebuild, sendmail-8.12.11-r1.ebuild,
+ sendmail-8.12.11-r2.ebuild, sendmail-8.12.11.ebuild, files/mailer.conf,
+ files/sendmail, files/sendmail-8.12.2-makemapman.patch,
+ files/sendmail-8.12.2-smrsh-paths.patch, files/sendmail-8.12.2-unix.patch,
+ files/sendmail-8.12.6-r1-gentoo.diff, files/sendmail-procmail.cf,
+ files/sendmail-procmail.mc, files/sendmail.cf, files/sendmail.mc,
+ files/site.config.m4:
+ Moved from net-mail/sendmail to mail-mta/sendmail.
+
+ 12 May 2004; Michael McCabe <randy@gentoo.org> sendmail-8.12.11-r2.ebuild:
+ Added s390 keywords
+
+*sendmail-8.12.11-r2 (21 Apr 2004)
+
+ 21 Apr 2004; Grant Goodyear <g2boojum@gentoo.org>
+ sendmail-8.12.11-r2.ebuild, files/site.config.m4:
+ New version thanks to lcars!
+
+*sendmail-8.12.11-r1 (24 Mar 2004)
+
+ 24 Mar 2004; Grant Goodyear <g2boojum@gentoo.org>
+ sendmail-8.12.11-r1.ebuild, files/mailer.conf:
+ New revision that adds mailwrapper support
+
+ 19 Mar 2004; Aron Griffis <agriffis@gentoo.org> sendmail-8.12.10.ebuild,
+ sendmail-8.12.11.ebuild:
+ add alpha/ia64 keywords
+
+*sendmail-8.12.11 (06 Feb 2004)
+
+ 06 Feb 2004; Greg Fitzgerald <gregf@gentoo.org> sendmail-8.12.11.ebuild:
+ Version Bump.
+
+*sendmail-8.12.10 (17 Sep 2003)
+
+ 17 Sep 2003; Greg Fitzgerald <gregf@gentoo.org> sendmail-8.12.10.ebuild:
+ Version bump / fixes security issue.
+
+ 13 Jul 2003; Christian Birchinger <joker@gentoo.org>
+ sendmail-8.12.9-r2.ebuild:
+ Added sparc stable keyword
+
+ 24 May 2003; Todd Berman <tberman@gentoo.org> sendmail-8.12.9-r2.ebuild:
+ closed bug #21354
+
+ 23 May 2003; Todd Berman <tberman@gentoo.org> sendmail-8.12.9-r1.ebuild,
+ sendmail-8.12.9-r2.ebuild:
+ Closed bug 21521.
+
+ 12 May 2003; Todd Berman <tberman@gentoo.org> files/sendmail-r5:
+ Fixed up the sendmail init file some.
+
+ 11 May 2003; <tberman@gentoo.org> sendmail-8.12.8.ebuild,
+ sendmail-8.12.9-r1.ebuild, sendmail-8.12.9-r2.ebuild,
+ sendmail-8.12.9.ebuild:
+ Fixed bug #20792
+
+*sendmail-8.12.9-r2 (26 Apr 2003)
+
+ 15 Jun 2003; Guy Martin <gmsoft@gentoo.org> sendmail-8.12.9-r2.ebuild:
+ Added hppa to KEYWORDS.
+
+ 26 Apr 2003; <tberman@gentoo.org> sendmail-8.12.9-r2.ebuild:
+ Added NIS database support. Closes bug #18578.
+
+*sendmail-8.12.9-r1 (24 Apr 2003)
+
+ 24 Apr 2003; Jon Portnoy <avenj@gentoo.org> sendmail-8.12.9-r1.ebuild :
+ Incorporates Todd Berman's work on integrating procmail for
+ people who aren't using mbox. Fixes bug #19893. Thanks, Todd!
+
+*sendmail-8.12.9 (30 Mar 2003)
+
+ 30 Mar 2003; Daniel Ahlberg <aliz@gentoo.org> sendmail-8.12.9.ebuild :
+ Security update.
+
+*sendmail-8.12.8 (03 Mar 2003)
+
+ 03 Mar 2003; Grant Goodyear <g2boojum@gentoo.org> sendmail-8.12.8.ebuild:
+ security update to 8.12.8. Closes bugs 16755 and 16766.
+
+*sendmail-8.12.7-r5 (03 Feb 20003)
+
+ 03 Feb 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7-r5.ebuild,
+ files/digest-sendmail-8.12.7-r5, files/sendmail-r5 :
+ Changed /usr/sbin/sendmail to sendmail in the stop portion of the
+ script and added some changes for proper SASL2 usage as suggested
+ by Alessandro Pisani on bug #14411.
+
+*sendmail-8.12.7-r4 (26 Jan 2003)
+
+ 26 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7-r4.ebuild,
+ files/digest-sendmail-8.12.7-r4, files/sendmail-r4 :
+ Now the init script sends 'killall ${KILL_OPTS} /usr/sbin/sendmail'
+ This should stop all running instances?
+
+*sendmail-8.12.7-r3 (23 Jan 2003)
+
+ 23 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7-r3.ebuild,
+ files/digest-sendmail-8.12.7-r3, files/sendmail-r3 :
+ Changed init to incorporate KILL_OPTS so people can choose their level
+ of daemon shutdown forcefulness.
+
+*sendmail-8.12.7-r2 (23 Jan 2003)
+
+ 23 Jan 2003; Nick Hadaway <raker@gentoo.org> files/sendmail-r2,
+ files/digest-sendmail-8.12.7-r2, sendmail-8.12.7-r2.ebuild :
+ Version bump to catch new init.d file
+
+ 23 Jan 2003; Nick Hadaway <raker@gentoo.org> files/sendmail-r1 :
+ Added -9 to the kill statement as suggested on bug #14411
+
+*sendmail-8.12.7-r1 (20 Jan 2003)
+
+ 20 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7-r1.ebuild,
+ files/digest-sendmail-8.12.7-r1 files/sendmail-r1 :
+ Updated init.d script and conf file so the clientmqueue flushing
+ daemon shuts down as well as the main mta daemon.
+
+*sendmail-8.12.7 (02 Jan 2003)
+
+ 19 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7.ebuild :
+ Marked stable for x86. Many important fixes in the source and in
+ the ebuild.
+
+ 19 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7.ebuild,
+ files/sendmail :
+ Added the clientmqueue daemon as suggested by Andrea Barisani on
+ bug #13836. Log files are now tagged by sm-mta or sm-cm. Added
+ an extra check to clear xf* from /var/spool/mqueue on start.
+
+ 02 Jan 2003; Nick Hadaway <raker@gentoo.org> sendmail-8.12.7.ebuild,
+ files/digest-sendmail-8.12.7 :
+ Version bump.
+
+ 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
+
+*sendmail-8.12.6-r1 (13 Oct 2002)
+
+ 13 Oct 2002; Daniel Ahlberg <aliz@gentoo.org> :
+ Security update. Added patch from sendmail to fix smrsh.
+
+*sendmail-8.12.6 (03 Sep 2002)
+
+ 03 Sep 2002; Nick Hadaway <raker@gentoo.org> sendmail-8.12.6.ebuild,
+ files/digest-sendmail-8.12.6.ebuild :
+ Version bump.
+
+*sendmail-8.12.5 (19 Jul 2002)
+
+ 19 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog :
+ new version; fixes buffer overflow; thanks to raker!
+
+*sendmail-8.12.4-r5 (13 Jul 2002)
+
+ 13 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog :
+ sasl fixes; thanks to Jay 'Eraserhead' Felice
+
+*sendmail-8.12.4-r4 (12 Jul 2002)
+
+ 12 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog :
+ fixed permissions (thanks to Harald Kubota for catching the problem),
+ moved group/passwd stuff to pkg_preinst
+
+*sendmail-8.12.4-r3 (04 Jul 2002)
+
+ 04 Jul 2002; Grant Goodyear <g2boojum@gentoo.org> ChangeLog :
+ Some useful fixes; thanks to Alessandro Pisani
+
+ 29 Jun 2002; Seemant Kulleen <seemant@gentoo.org> sendmail-8.12.4-r2.ebuild:
+ Changed net-misc/hesiod to net-dns/hesiod per bug #4321 by
+ simons+gentoo@cryp.to (Peter Simons)
+
+ 27 Jun 2002; Grant Goodyear <g2boojum@gentoo.org> sendmail-8.12.4-r2.ebuild:
+ Make sure that queue directories don't get cleaned away.
+
+ 24 Jun 2002; Thilo Bangert <bangert@gentoo.org> sendmail-8.12.4-r1.ebuild:
+ added symlink /usr/sbin/sendmail -> /usr/lib/sendmail
+
+ 22 Jun 2002; William McArthur <sandymac@gentoo.org> sendmail-8.12.4-r1.ebuild:
+ Fixed a type in the use ssl section, "-ssl" should have been "-lssl"
+
+*sendmail-8.12.4-r1 (12 June 2002)
+
+ 12 June 2002; Grant Goodyear <g2boojum@gentoo.org> :
+ Added an init script and fixed permissions. It now
+ works out-of-the-box, at least for sending mail and
+ locally receiving mail. Currently set up to use it's
+ own local mailer.
+
+*sendmail-8.12.4 (10 June 2002)
+
+ 10 June 2002; Grant Goodyear <g2boojum@gentoo.org> :
+ New package.
+
diff --git a/mail-mta/sendmail/Manifest b/mail-mta/sendmail/Manifest
new file mode 100644
index 000000000000..4a8b8a4ef598
--- /dev/null
+++ b/mail-mta/sendmail/Manifest
@@ -0,0 +1,21 @@
+MD5 3af9618801cc2a40c05bf7fe7d32dd55 ChangeLog 6607
+MD5 07aa1897fda73805b9d68a2b82090e5f metadata.xml 218
+MD5 7be45ed7ccd3bcede41ca6ca58ae025d sendmail-8.12.10.ebuild 5458
+MD5 bde4378ef82c234b36af06da9cf22aa9 sendmail-8.12.11-r1.ebuild 5481
+MD5 a358bb35f98aa2d7ba3712daedd08621 sendmail-8.12.11.ebuild 5446
+MD5 a7db919664170ceeffbdc766bfc30024 sendmail-8.12.11-r2.ebuild 5451
+MD5 d80daec431bd383e452e69f1f82dbff5 files/digest-sendmail-8.12.10 69
+MD5 cf0c79a7387b7d83db30abc68269f467 files/digest-sendmail-8.12.11 69
+MD5 cf0c79a7387b7d83db30abc68269f467 files/digest-sendmail-8.12.11-r1 69
+MD5 bddac02de95e12dcef98e718ddb5151b files/mailer.conf 999
+MD5 66e8128c1f0dd987c0a78f1ca61ec79d files/sendmail 606
+MD5 074c1f0534fd3bf4e541a70e001bc533 files/sendmail-8.12.2-makemapman.patch 2089
+MD5 4b37f61de2fd8de372a4bd8ab6f92edf files/sendmail-8.12.2-smrsh-paths.patch 5625
+MD5 b412547381b852586d5d4d6ffcd80b4a files/sendmail-8.12.2-unix.patch 395
+MD5 95d58f15432e44c91f8018839f65327c files/sendmail-8.12.6-r1-gentoo.diff 1701
+MD5 6faca1941f582ad8a893b0e4fa4dd757 files/sendmail-procmail.cf 39867
+MD5 03494c29693bd3ceb921bbc398be4cda files/sendmail-procmail.mc 985
+MD5 5476fde164f12162d60ed3cffb0a41e3 files/sendmail.cf 39325
+MD5 57c515d75ee6bcb32fc673141ebc41fa files/sendmail.mc 930
+MD5 bae92533adb7471b10497848f1d32bd9 files/site.config.m4 543
+MD5 cf0c79a7387b7d83db30abc68269f467 files/digest-sendmail-8.12.11-r2 69
diff --git a/mail-mta/sendmail/files/digest-sendmail-8.12.10 b/mail-mta/sendmail/files/digest-sendmail-8.12.10
new file mode 100644
index 000000000000..df52133e1c8f
--- /dev/null
+++ b/mail-mta/sendmail/files/digest-sendmail-8.12.10
@@ -0,0 +1 @@
+MD5 393f5d09d462f522c8288363870b2b42 sendmail.8.12.10.tar.gz 1892497
diff --git a/mail-mta/sendmail/files/digest-sendmail-8.12.11 b/mail-mta/sendmail/files/digest-sendmail-8.12.11
new file mode 100644
index 000000000000..a08afe72d5e8
--- /dev/null
+++ b/mail-mta/sendmail/files/digest-sendmail-8.12.11
@@ -0,0 +1 @@
+MD5 fafda7f8043f0c34b9aa295618aa598c sendmail.8.12.11.tar.gz 1899112
diff --git a/mail-mta/sendmail/files/digest-sendmail-8.12.11-r1 b/mail-mta/sendmail/files/digest-sendmail-8.12.11-r1
new file mode 100644
index 000000000000..a08afe72d5e8
--- /dev/null
+++ b/mail-mta/sendmail/files/digest-sendmail-8.12.11-r1
@@ -0,0 +1 @@
+MD5 fafda7f8043f0c34b9aa295618aa598c sendmail.8.12.11.tar.gz 1899112
diff --git a/mail-mta/sendmail/files/digest-sendmail-8.12.11-r2 b/mail-mta/sendmail/files/digest-sendmail-8.12.11-r2
new file mode 100644
index 000000000000..a08afe72d5e8
--- /dev/null
+++ b/mail-mta/sendmail/files/digest-sendmail-8.12.11-r2
@@ -0,0 +1 @@
+MD5 fafda7f8043f0c34b9aa295618aa598c sendmail.8.12.11.tar.gz 1899112
diff --git a/mail-mta/sendmail/files/mailer.conf b/mail-mta/sendmail/files/mailer.conf
new file mode 100644
index 000000000000..c269540d914c
--- /dev/null
+++ b/mail-mta/sendmail/files/mailer.conf
@@ -0,0 +1,36 @@
+# $OpenBSD: mailer.conf,v 1.3 2000/04/06 18:24:19 millert Exp $
+#
+# Execute the "real" sendmail program, named /usr/sbin/sendmail
+#
+sendmail /usr/sbin/sendmail.sendmail
+send-mail /usr/sbin/sendmail.sendmail
+mailq /usr/sbin/sendmail.sendmail
+newaliases /usr/sbin/sendmail.sendmail
+hoststat /usr/sbin/sendmail.sendmail
+purgestat /usr/sbin/sendmail.sendmail
+#
+# Execute the "real" sendmail program from exim,
+# named /usr/sbin/exim
+#
+#sendmail /usr/sbin/exim
+#send-mail /usr/sbin/exim
+#mailq /usr/sbin/exim
+#newaliases /usr/sbin/exim
+#rsmtp /usr/sbin/exim
+#rmail /usr/sbin/exim
+#mail /usr/sbin/exim
+#
+# Execute the "real" sendmail program from postfix,
+# named /usr/sbin/sendmail.postfix
+#
+#sendmail /usr/sbin/sendmail.postfix
+#send-mail /usr/sbin/sendmail.postfix
+#mailq /usr/sbin/sendmail.postfix
+#newaliases /usr/sbin/sendmail.postfix
+
+# Execute the "real" sendmail program from ssmtp,
+# named /usr/sbin/ssmtp
+#
+#sendmail /usr/sbin/ssmtp
+#mailq /usr/sbin/ssmtp
+#newaliases /usr/sbin/ssmtp
diff --git a/mail-mta/sendmail/files/sendmail b/mail-mta/sendmail/files/sendmail
new file mode 100644
index 000000000000..4ee7cfb9e4af
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail
@@ -0,0 +1,25 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/files/sendmail,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+depend() {
+ need net
+ use logger
+ provide mta
+}
+
+start() {
+ ebegin "Starting sendmail"
+ /usr/bin/newaliases > /dev/null 2>&1
+ (cd /var/spool/mqueue; rm -f xf*)
+ /usr/sbin/sendmail ${SENDMAIL_OPTS} > /dev/null 2>&1
+ /usr/sbin/sendmail ${CLIENTMQUEUE_OPTS} > /dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping sendmail"
+ killall ${KILL_OPTS} sendmail
+ eend $?
+}
diff --git a/mail-mta/sendmail/files/sendmail-8.12.2-makemapman.patch b/mail-mta/sendmail/files/sendmail-8.12.2-makemapman.patch
new file mode 100644
index 000000000000..b796f795084e
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-8.12.2-makemapman.patch
@@ -0,0 +1,67 @@
+--- sendmail-8.12.2/devtools/OS/Linux Tue Feb 19 15:23:34 2002
++++ sendmail-8.12.2/devtools/OS/Linux Tue Feb 19 15:24:05 2002
+@@ -1,7 +1,7 @@
+ # $Id: sendmail-8.12.2-makemapman.patch,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+ define(`confDEPEND_TYPE', `CC-M')
+ define(`confSM_OS_HEADER', `sm_os_linux')
+-define(`confMANROOT', `/usr/man/man')
++define(`confMANROOT', `/usr/share/man/man')
+ define(`confLIBS', `-ldl')
+ define(`confEBINDIR', `/usr/sbin')
+ APPENDDEF(`confLIBSEARCH', `crypt nsl')
+@@ -11,6 +11,8 @@
+ define(`confMTLDOPTS', `-lpthread')
+ define(`confLDOPTS_SO', `-shared')
+ define(`confSONAME',`-soname')
++define('confSBINGRP', 'mail')
++define('confSBINMODE', '6755')
+
+ ifelse(confBLDVARIANT, `DEBUG',
+ dnl Debug build
+--- sendmail-8.12.2/makemap/makemap.8 Tue Oct 9 23:23:02 2001
++++ sendmail-8.12.2/makemap/makemap.8 Tue Feb 19 15:23:34 2002
+@@ -50,12 +50,6 @@
+ parameter.
+ They may be
+ .TP
+-dbm
+-DBM format maps.
+-This requires the
+-ndbm(3)
+-library.
+-.TP
+ btree
+ B-Tree format maps.
+ This requires the new Berkeley DB
+--- sendmail-8.12.2/sendmail/daemon.c Mon Dec 31 14:46:38 2001
++++ sendmail-8.12.2/sendmail/daemon.c Tue Feb 19 15:23:34 2002
+@@ -3418,7 +3418,7 @@
+
+ /* get result */
+ p = &ibuf[0];
+- nleft = sizeof ibuf - 1;
++ nleft = sizeof(ibuf) - 1;
+ while ((i = read(s, p, nleft)) > 0)
+ {
+ p += i;
+--- sendmail-8.12.2/cf/cf/Build Mon Mar 1 21:37:12 1999
++++ sendmail-8.12.2/cf/cf/Build Tue Feb 19 15:23:34 2002
+@@ -18,7 +18,7 @@
+ SMROOT=${SMROOT-../..}
+ BUILDTOOLS=${BUILDTOOLS-$SMROOT/devtools}
+
+-M4=`sh $BUILDTOOLS/bin/find_m4.sh`
++M4=/usr/bin/m4
+ ret=$?
+ if [ $ret -ne 0 ]
+ then
+--- sendmail-8.12.2/rmail/rmail.c Tue Sep 18 17:45:29 2001
++++ sendmail-8.12.2/rmail/rmail.c Tue Feb 19 15:23:34 2002
+@@ -276,7 +276,6 @@
+ args[i++] = _PATH_SENDMAIL; /* Build sendmail's argument list. */
+ args[i++] = "-G"; /* relay submission */
+ args[i++] = "-oee"; /* No errors, just status. */
+- args[i++] = "-odq"; /* Queue it, don't try to deliver. */
+ args[i++] = "-oi"; /* Ignore '.' on a line by itself. */
+
+ /* set from system and protocol used */
diff --git a/mail-mta/sendmail/files/sendmail-8.12.2-smrsh-paths.patch b/mail-mta/sendmail/files/sendmail-8.12.2-smrsh-paths.patch
new file mode 100644
index 000000000000..f24f7c9bb151
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-8.12.2-smrsh-paths.patch
@@ -0,0 +1,171 @@
+--- sendmail-8.12.2/smrsh/README Tue Jan 23 19:05:58 2001
++++ sendmail-8.12.2/smrsh/README Tue Feb 19 16:49:44 2002
+@@ -6,7 +6,7 @@
+ intended as a supplement to the CERT advisory CA-93:16.sendmail.vulnerability,
+ and to the software, smrsh.c, written by Eric Allman.
+
+-
++* Modified by Red Hat, Inc., to reflect different paths. *
+
+ The smrsh(8) program is intended as a replacement for /bin/sh in the
+ program mailer definition of sendmail(8). This README file describes
+@@ -46,15 +46,15 @@
+
+
+
+-As root, install smrsh in /usr/libexec. Using the Build script:
++As root, install smrsh in /usr/sbin. Using the Build script:
+
+ host.domain# sh Build install
+
+-For manual installation: install smrsh in the /usr/libexec
++For manual installation: install smrsh in the /usr/sbin
+ directory, with mode 511.
+
+- host.domain# mv smrsh /usr/libexec
+- host.domain# chmod 511 /usr/libexec/smrsh
++ host.domain# mv smrsh /usr/sbin
++ host.domain# chmod 511 /usr/sbin/smrsh
+
+
+
+@@ -76,7 +76,7 @@
+ acceptable commands.
+
+ If your platform doesn't have a default SMRSH_CMDDIR setting, you will
+-next need to create the directory /usr/adm/sm.bin and populate
++next need to create the directory /etc/smrsh and populate
+ it with the programs that your site feels are allowable for sendmail
+ to execute. This directory is explicitly specified in the source
+ code for smrsh, so changing this directory must be accompanied with
+@@ -85,22 +85,22 @@
+
+ You will have to be root to make these modifications.
+
+-After creating the /usr/adm/sm.bin directory, either copy the programs
++After creating the /etc/smrsh directory, either copy the programs
+ to the directory, or establish links to the allowable programs from
+-/usr/adm/sm.bin. Change the file permissions, so that these programs
++/etc/smrsh. Change the file permissions, so that these programs
+ can not be modified by non-root users. If you use links, you should
+ ensure that the target programs are not modifiable.
+
+ To allow the popular vacation(1) program by creating a link in the
+-/usr/adm/sm.bin directory, you should:
++/etc/smrsh directory, you should:
+
+- host.domain# cd /usr/adm/sm.bin
++ host.domain# cd /etc/smrsh
+ host.domain# ln -s /usr/ucb/vacation vacation
+
+
+
+
+-After populating the /usr/adm/sm.bin directory, you can now configure
++After populating the /etc/smrsh directory, you can now configure
+ sendmail to use the restricted shell. Save the current sendmail.cf
+ file prior to modifying it, as a prudent precaution.
+
+@@ -115,7 +115,7 @@
+
+ In order to configure sendmail to use smrsh, you must modify the Mprog
+ definition in the sendmail.cf file, by replacing the /bin/sh specification
+-with /usr/libexec/smrsh.
++with /usr/sbin/smrsh.
+
+ As an example:
+
+@@ -123,14 +123,14 @@
+ Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
+
+ which should be changed to:
+-Mprog, P=/usr/libexec/smrsh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
+- ^^^^^^^^^^^^^^^^^^
++Mprog, P=/usr/sbin/smrsh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
++ ^^^^^^^^^^^^^^^^
+
+ A more generic line may be:
+ Mprog, P=/bin/sh, F=lsDFM, A=sh -c $u
+
+ and should be changed to;
+-Mprog, P=/usr/libexec/smrsh, F=lsDFM, A=sh -c $u
++Mprog, P=/usr/sbin/smrsh, F=lsDFM, A=sh -c $u
+
+
+ After modifying the Mprog definition in the sendmail.cf file, if a frozen
+@@ -141,7 +141,7 @@
+ a search of the strings(1) output of the sendmail binary.
+
+ In order to create a new frozen configuration, if it is required:
+- host.domain# /usr/lib/sendmail -bz
++ host.domain# /usr/sbin/sendmail -bz
+
+ Now re-start the sendmail process. An example of how to do this on
+ a typical system follows:
+--- sendmail-8.12.2/smrsh/smrsh.8 Tue Jan 23 19:40:47 2001
++++ sendmail-8.12.2/smrsh/smrsh.8 Tue Feb 19 16:50:25 2002
+@@ -39,7 +39,7 @@
+ .I smrsh
+ limits programs to be in a single directory,
+ by default
+-/usr/adm/sm.bin,
++/etc/smrsh,
+ allowing the system administrator to choose the set of acceptable commands,
+ and to the shell builtin commands ``exec'', ``exit'', and ``echo''.
+ It also rejects any commands with the characters
+@@ -56,10 +56,10 @@
+ and
+ ``vacation''
+ all actually forward to
+-``/usr/adm/sm.bin/vacation''.
++``/etc/smrsh/vacation''.
+ .PP
+ System administrators should be conservative about populating
+-the sm.bin directory.
++the /etc/smrsh directory.
+ Reasonable additions are
+ .IR vacation (1),
+ .IR procmail (1),
+@@ -69,20 +69,12 @@
+ (such as
+ .IR perl (1))
+ in the
+-sm.bin
++/etc/smrsh
+ directory.
+ Note that this does not restrict the use of shell or perl scripts
+ in the sm.bin directory (using the ``#!'' syntax);
+ it simply disallows execution of arbitrary programs.
+-.SH COMPILATION
+-Compilation should be trivial on most systems.
+-You may need to use \-DSMRSH_PATH=\e"\fIpath\fP\e"
+-to adjust the default search path
+-(defaults to ``/bin:/usr/bin:/usr/ucb'')
+-and/or \-DSMRSH_CMDDIR=\e"\fIdir\fP\e"
+-to change the default program directory
+-(defaults to ``/usr/adm/sm.bin'').
+ .SH FILES
+-/usr/adm/sm.bin \- directory for restricted programs
++/etc/smrsh \- directory for restricted programs
+ .SH SEE ALSO
+ sendmail(8)
+--- sendmail-8.12.2/smrsh/smrsh.c Tue Sep 11 00:05:22 2001
++++ sendmail-8.12.2/smrsh/smrsh.c Tue Feb 19 16:51:05 2002
+@@ -74,7 +74,7 @@
+ # ifdef SMRSH_CMDDIR
+ # define CMDDIR SMRSH_CMDDIR
+ # else /* SMRSH_CMDDIR */
+-# define CMDDIR "/usr/adm/sm.bin"
++# define CMDDIR "/etc/smrsh"
+ # endif /* SMRSH_CMDDIR */
+ #endif /* ! CMDDIR */
+
+@@ -86,7 +86,7 @@
+ # ifdef SMRSH_PATH
+ # define PATH SMRSH_PATH
+ # else /* SMRSH_PATH */
+-# define PATH "/bin:/usr/bin:/usr/ucb"
++# define PATH "/bin:/usr/bin"
+ # endif /* SMRSH_PATH */
+ #endif /* ! PATH */
+
diff --git a/mail-mta/sendmail/files/sendmail-8.12.2-unix.patch b/mail-mta/sendmail/files/sendmail-8.12.2-unix.patch
new file mode 100644
index 000000000000..654cf8486b48
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-8.12.2-unix.patch
@@ -0,0 +1,11 @@
+--- sendmail-8.12.2/cf/m4/cfhead.m4.unix Sun Mar 10 08:29:37 2002
++++ sendmail-8.12.2/cf/m4/cfhead.m4 Sun Mar 10 08:29:48 2002
+@@ -16,7 +16,7 @@
+ #####
+ ##### SENDMAIL CONFIGURATION FILE
+ #####
+-ifdef(`unix', `dnl
++ifdef(`__unix__', `dnl
+ ifdef(`TEMPFILE', `dnl', `define(`TEMPFILE', maketemp(/tmp/cfXXXXXX))dnl
+ syscmd(sh _CF_DIR_`'sh/makeinfo.sh _CF_DIR_ > TEMPFILE)dnl
+ include(TEMPFILE)dnl
diff --git a/mail-mta/sendmail/files/sendmail-8.12.6-r1-gentoo.diff b/mail-mta/sendmail/files/sendmail-8.12.6-r1-gentoo.diff
new file mode 100644
index 000000000000..ae6f94c8570e
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-8.12.6-r1-gentoo.diff
@@ -0,0 +1,63 @@
+Index: smrsh.c
+===================================================================
+RCS file: /cvs/smrsh/smrsh.c,v
+retrieving revision 8.58
+diff -u -r8.58 smrsh.c
+--- smrsh.c 25 May 2002 02:41:31 -0000 8.58
++++ smrsh.c 24 Sep 2002 23:58:16 -0000
+@@ -57,6 +57,8 @@
+ #include <sm/limits.h>
+ #include <sm/string.h>
+ #include <sys/file.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <errno.h>
+@@ -145,6 +147,7 @@
+ char *newenv[2];
+ char pathbuf[1000];
+ char specialbuf[32];
++ struct stat st;
+
+ #ifndef DEBUG
+ # ifndef LOG_MAIL
+@@ -302,6 +305,38 @@
+ (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
+ "Trying %s\n", cmdbuf);
+ #endif /* DEBUG */
++ if (stat(cmdbuf, &st) < 0)
++ {
++ /* can't stat it */
++ (void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
++ "%s: %s not available for sendmail programs (stat failed)\n",
++ prg, cmd);
++ if (p != NULL)
++ *p = ' ';
++#ifndef DEBUG
++ syslog(LOG_CRIT, "uid %d: attempt to use %s (stat failed)",
++ (int) getuid(), cmd);
++#endif /* ! DEBUG */
++ exit(EX_UNAVAILABLE);
++ }
++ if (!S_ISREG(st.st_mode)
++#ifdef S_ISLNK
++ && !S_ISLNK(st.st_mode)
++#endif /* S_ISLNK */
++ )
++ {
++ /* can't stat it */
++ (void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
++ "%s: %s not available for sendmail programs (not a file)\n",
++ prg, cmd);
++ if (p != NULL)
++ *p = ' ';
++#ifndef DEBUG
++ syslog(LOG_CRIT, "uid %d: attempt to use %s (not a file)",
++ (int) getuid(), cmd);
++#endif /* ! DEBUG */
++ exit(EX_UNAVAILABLE);
++ }
+ if (access(cmdbuf, X_OK) < 0)
+ {
+ /* oops.... crack attack possiblity */
diff --git a/mail-mta/sendmail/files/sendmail-procmail.cf b/mail-mta/sendmail/files/sendmail-procmail.cf
new file mode 100644
index 000000000000..e5f2ebd7bf91
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-procmail.cf
@@ -0,0 +1,1397 @@
+#
+# Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
+# Copyright (c) 1988, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+
+######################################################################
+######################################################################
+#####
+##### SENDMAIL CONFIGURATION FILE
+#####
+##### built by root@phaze on Thu Apr 24 15:55:06 EDT 2003
+##### in /usr/share/sendmail-cf/cf
+##### using ../ as configuration include directory
+#####
+######################################################################
+#####
+##### DO NOT EDIT THIS FILE! Only edit the source .mc file.
+#####
+######################################################################
+######################################################################
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+# level 10 config file format
+V10/Berkeley
+
+# override file safeties - setting this option compromises system security,
+# addressing the actual file configuration problem is preferred
+# need to set this before any file actions are encountered in the cf file
+#O DontBlameSendmail=safe
+
+# default LDAP map specification
+# need to set this now before any LDAP maps are defined
+#O LDAPDefaultSpec=-h localhost
+
+##################
+# local info #
+##################
+
+# my LDAP cluster
+# need to set this before any LDAP lookups are done (including classes)
+#D{sendmailMTACluster}$m
+
+Cwlocalhost
+# file containing names of hosts for which we receive email
+Fw/etc/mail/local-host-names
+
+# my official domain name
+# ... define this only if sendmail cannot automatically determine your domain
+#Dj$w.Foo.COM
+
+CP.
+
+# "Smart" relay host (may be null)
+DS
+
+
+# operators that cannot be in local usernames (i.e., network indicators)
+CO @ % !
+
+# a class with just dot (for identifying canonical names)
+C..
+
+# a class with just a left bracket (for identifying domain literals)
+C[[
+
+
+# Resolve map (to check if a host exists in check_mail)
+Kresolve host -a<OKR> -T<TEMP>
+C{ResOk}OKR
+
+
+# Hosts for which relaying is permitted ($=R)
+FR-o /etc/mail/relay-domains
+
+# arithmetic map
+Karith arith
+
+
+
+
+
+# dequoting map
+Kdequote dequote
+
+# class E: names that should be exposed as from this host, even if we masquerade
+# class L: names that should be delivered locally, even if we have a relay
+# class M: domains that should be converted to $M
+# class N: domains that should not be converted to $M
+#CL root
+C{E}root
+
+
+
+# my name for error messages
+DnMAILER-DAEMON
+
+
+CPREDIRECT
+
+# Configuration version number
+DZ8.12.9
+
+
+###############
+# Options #
+###############
+
+# strip message body to 7 bits on input?
+O SevenBitInput=False
+
+# 8-bit data handling
+#O EightBitMode=pass8
+
+# wait for alias file rebuild (default units: minutes)
+O AliasWait=10
+
+# location of alias file
+O AliasFile=/etc/mail/aliases
+
+# minimum number of free blocks on filesystem
+O MinFreeBlocks=100
+
+# maximum message size
+#O MaxMessageSize=1000000
+
+# substitution for space (blank) characters
+O BlankSub=.
+
+# avoid connecting to "expensive" mailers on initial submission?
+O HoldExpensive=False
+
+# checkpoint queue runs after every N successful deliveries
+#O CheckpointInterval=10
+
+# default delivery mode
+O DeliveryMode=background
+
+# error message header/file
+#O ErrorHeader=/etc/mail/error-header
+
+# error mode
+#O ErrorMode=print
+
+# save Unix-style "From_" lines at top of header?
+#O SaveFromLine=False
+
+# queue file mode (qf files)
+#O QueueFileMode=0600
+
+# temporary file mode
+O TempFileMode=0600
+
+# match recipients against GECOS field?
+#O MatchGECOS=False
+
+# maximum hop count
+#O MaxHopCount=25
+
+# location of help file
+O HelpFile=/etc/mail/helpfile
+
+# ignore dots as terminators in incoming messages?
+#O IgnoreDots=False
+
+# name resolver options
+#O ResolverOptions=+AAONLY
+
+# deliver MIME-encapsulated error messages?
+O SendMimeErrors=True
+
+# Forward file search path
+O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
+
+# open connection cache size
+O ConnectionCacheSize=2
+
+# open connection cache timeout
+O ConnectionCacheTimeout=5m
+
+# persistent host status directory
+#O HostStatusDirectory=.hoststat
+
+# single thread deliveries (requires HostStatusDirectory)?
+#O SingleThreadDelivery=False
+
+# use Errors-To: header?
+O UseErrorsTo=False
+
+# log level
+O LogLevel=9
+
+# send to me too, even in an alias expansion?
+#O MeToo=True
+
+# verify RHS in newaliases?
+O CheckAliases=False
+
+# default messages to old style headers if no special punctuation?
+O OldStyleHeaders=True
+
+# SMTP daemon options
+O DaemonPortOptions=Name=MTA
+O DaemonPortOptions=Port=587, Name=MSA, M=E
+
+# SMTP client options
+#O ClientPortOptions=Family=inet, Address=0.0.0.0
+
+# Modifiers to define {daemon_flags} for direct submissions
+#O DirectSubmissionModifiers
+
+# Use as mail submission program? See sendmail/SECURITY
+#O UseMSP
+
+# privacy flags
+O PrivacyOptions=authwarnings
+
+# who (if anyone) should get extra copies of error messages
+#O PostmasterCopy=Postmaster
+
+# slope of queue-only function
+#O QueueFactor=600000
+
+# limit on number of concurrent queue runners
+#O MaxQueueChildren
+
+# maximum number of queue-runners per queue-grouping with multiple queues
+#O MaxRunnersPerQueue=1
+
+# priority of queue runners (nice(3))
+#O NiceQueueRun
+
+# shall we sort the queue by hostname first?
+#O QueueSortOrder=priority
+
+# minimum time in queue before retry
+#O MinQueueAge=30m
+
+# how many jobs can you process in the queue?
+#O MaxQueueRunSize=10000
+
+# perform initial split of envelope without checking MX records
+#O FastSplit=1
+
+# queue directory
+O QueueDirectory=/var/spool/mqueue
+
+# key for shared memory; 0 to turn off
+#O SharedMemoryKey=0
+
+
+
+# timeouts (many of these)
+#O Timeout.initial=5m
+#O Timeout.connect=5m
+#O Timeout.aconnect=0s
+#O Timeout.iconnect=5m
+#O Timeout.helo=5m
+#O Timeout.mail=10m
+#O Timeout.rcpt=1h
+#O Timeout.datainit=5m
+#O Timeout.datablock=1h
+#O Timeout.datafinal=1h
+#O Timeout.rset=5m
+#O Timeout.quit=2m
+#O Timeout.misc=2m
+#O Timeout.command=1h
+#O Timeout.ident=5s
+#O Timeout.fileopen=60s
+#O Timeout.control=2m
+O Timeout.queuereturn=5d
+#O Timeout.queuereturn.normal=5d
+#O Timeout.queuereturn.urgent=2d
+#O Timeout.queuereturn.non-urgent=7d
+
+O Timeout.queuewarn=4h
+#O Timeout.queuewarn.normal=4h
+#O Timeout.queuewarn.urgent=1h
+#O Timeout.queuewarn.non-urgent=12h
+
+#O Timeout.hoststatus=30m
+#O Timeout.resolver.retrans=5s
+#O Timeout.resolver.retrans.first=5s
+#O Timeout.resolver.retrans.normal=5s
+#O Timeout.resolver.retry=4
+#O Timeout.resolver.retry.first=4
+#O Timeout.resolver.retry.normal=4
+#O Timeout.lhlo=2m
+#O Timeout.auth=10m
+#O Timeout.starttls=1h
+
+# time for DeliverBy; extension disabled if less than 0
+#O DeliverByMin=0
+
+# should we not prune routes in route-addr syntax addresses?
+#O DontPruneRoutes=False
+
+# queue up everything before forking?
+O SuperSafe=True
+
+# status file
+O StatusFile=/etc/mail/statistics
+
+# time zone handling:
+# if undefined, use system default
+# if defined but null, use TZ envariable passed in
+# if defined and non-null, use that info
+#O TimeZoneSpec=
+
+# default UID (can be username or userid:groupid)
+#O DefaultUser=mailnull
+
+# list of locations of user database file (null means no lookup)
+#O UserDatabaseSpec=/etc/mail/userdb
+
+# fallback MX host
+#O FallbackMXhost=fall.back.host.net
+
+# if we are the best MX host for a site, try it directly instead of config err
+#O TryNullMXList=False
+
+# load average at which we just queue messages
+#O QueueLA=8
+
+# load average at which we refuse connections
+#O RefuseLA=12
+
+# load average at which we delay connections; 0 means no limit
+#O DelayLA=0
+
+# maximum number of children we allow at one time
+#O MaxDaemonChildren=0
+
+# maximum number of new connections per second
+#O ConnectionRateThrottle=0
+
+# work recipient factor
+#O RecipientFactor=30000
+
+# deliver each queued job in a separate process?
+#O ForkEachJob=False
+
+# work class factor
+#O ClassFactor=1800
+
+# work time factor
+#O RetryFactor=90000
+
+# default character set
+#O DefaultCharSet=iso-8859-1
+
+# service switch file (name hardwired on Solaris, Ultrix, OSF/1, others)
+#O ServiceSwitchFile=/etc/mail/service.switch
+
+# hosts file (normally /etc/hosts)
+#O HostsFile=/etc/hosts
+
+# dialup line delay on connection failure
+#O DialDelay=10s
+
+# action to take if there are no recipients in the message
+#O NoRecipientAction=add-to-undisclosed
+
+# chrooted environment for writing to files
+#O SafeFileEnvironment=/arch
+
+# are colons OK in addresses?
+#O ColonOkInAddr=True
+
+# shall I avoid expanding CNAMEs (violates protocols)?
+#O DontExpandCnames=False
+
+# SMTP initial login message (old $e macro)
+O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
+
+# UNIX initial From header format (old $l macro)
+O UnixFromLine=From $g $d
+
+# From: lines that have embedded newlines are unwrapped onto one line
+#O SingleLineFromHeader=False
+
+# Allow HELO SMTP command that does not include a host name
+#O AllowBogusHELO=False
+
+# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
+#O MustQuoteChars=.
+
+# delimiter (operator) characters (old $o macro)
+O OperatorChars=.:%@!^/[]+
+
+# shall I avoid calling initgroups(3) because of high NIS costs?
+#O DontInitGroups=False
+
+# are group-writable :include: and .forward files (un)trustworthy?
+# True (the default) means they are not trustworthy.
+#O UnsafeGroupWrites=True
+
+
+# where do errors that occur when sending errors get sent?
+#O DoubleBounceAddress=postmaster
+
+# where to save bounces if all else fails
+#O DeadLetterDrop=/var/tmp/dead.letter
+
+# what user id do we assume for the majority of the processing?
+#O RunAsUser=sendmail
+
+# maximum number of recipients per SMTP envelope
+#O MaxRecipientsPerMessage=100
+
+# limit the rate recipients per SMTP envelope are accepted
+# once the threshold number of recipients have been rejected
+#O BadRcptThrottle=20
+
+# shall we get local names from our installed interfaces?
+#O DontProbeInterfaces=False
+
+# Return-Receipt-To: header implies DSN request
+#O RrtImpliesDsn=False
+
+# override connection address (for testing)
+#O ConnectOnlyTo=0.0.0.0
+
+# Trusted user for file ownership and starting the daemon
+#O TrustedUser=root
+
+# Control socket for daemon management
+#O ControlSocketName=/var/spool/mqueue/.control
+
+# Maximum MIME header length to protect MUAs
+#O MaxMimeHeaderLength=2048/1024
+
+# Maximum length of the sum of all headers
+O MaxHeadersLength=32768
+
+# Maximum depth of alias recursion
+#O MaxAliasRecursion=10
+
+# location of pid file
+#O PidFile=/var/run/sendmail.pid
+
+# Prefix string for the process title shown on 'ps' listings
+#O ProcessTitlePrefix=prefix
+
+# Data file (df) memory-buffer file maximum size
+#O DataFileBufferSize=4096
+
+# Transcript file (xf) memory-buffer file maximum size
+#O XscriptFileBufferSize=4096
+
+# lookup type to find information about local mailboxes
+#O MailboxDatabase=pw
+
+# list of authentication mechanisms
+#O AuthMechanisms=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
+
+# default authentication information for outgoing connections
+#O DefaultAuthInfo=/etc/mail/default-auth-info
+
+# SMTP AUTH flags
+#O AuthOptions
+
+# SMTP AUTH maximum encryption strength
+#O AuthMaxBits
+
+# SMTP STARTTLS server options
+#O TLSSrvOptions
+
+# Input mail filters
+#O InputMailFilters
+
+
+# CA directory
+#O CACertPath
+# CA file
+#O CACertFile
+# Server Cert
+#O ServerCertFile
+# Server private key
+#O ServerKeyFile
+# Client Cert
+#O ClientCertFile
+# Client private key
+#O ClientKeyFile
+# DHParameters (only required if DSA/DH is used)
+#O DHParameters
+# Random data source (required for systems without /dev/urandom under OpenSSL)
+#O RandFile
+
+############################
+# QUEUE GROUP DEFINITIONS #
+############################
+
+
+###########################
+# Message precedences #
+###########################
+
+Pfirst-class=0
+Pspecial-delivery=100
+Plist=-30
+Pbulk=-60
+Pjunk=-100
+
+#####################
+# Trusted users #
+#####################
+
+# this is equivalent to setting class "t"
+#Ft/etc/mail/trusted-users
+Troot
+Tdaemon
+Tuucp
+
+#########################
+# Format of headers #
+#########################
+
+H?P?Return-Path: <$g>
+HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
+ $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
+ $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
+ (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
+ for $u; $|;
+ $.$b
+H?D?Resent-Date: $a
+H?D?Date: $a
+H?F?Resent-From: $?x$x <$g>$|$g$.
+H?F?From: $?x$x <$g>$|$g$.
+H?x?Full-Name: $x
+# HPosted-Date: $a
+# H?l?Received-Date: $b
+H?M?Resent-Message-Id: <$t.$i@$j>
+H?M?Message-Id: <$t.$i@$j>
+
+#
+######################################################################
+######################################################################
+#####
+##### REWRITING RULES
+#####
+######################################################################
+######################################################################
+
+############################################
+### Ruleset 3 -- Name Canonicalization ###
+############################################
+Scanonify=3
+
+# handle null input (translate to <@> special case)
+R$@ $@ <@>
+
+# strip group: syntax (not inside angle brackets!) and trailing semicolon
+R$* $: $1 <@> mark addresses
+R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
+R@ $* <@> $: @ $1 unmark @host:...
+R$* [ IPv6 : $+ ] <@> $: $1 [ IPv6 : $2 ] unmark IPv6 addr
+R$* :: $* <@> $: $1 :: $2 unmark node::addr
+R:include: $* <@> $: :include: $1 unmark :include:...
+R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
+R$* : $* <@> $: $2 strip colon if marked
+R$* <@> $: $1 unmark
+R$* ; $1 strip trailing semi
+R$* < $+ :; > $* $@ $2 :; <@> catch <list:;>
+R$* < $* ; > $1 < $2 > bogus bracketed semi
+
+# null input now results from list:; syntax
+R$@ $@ :; <@>
+
+# strip angle brackets -- note RFC733 heuristic to get innermost item
+R$* $: < $1 > housekeeping <>
+R$+ < $* > < $2 > strip excess on left
+R< $* > $+ < $1 > strip excess on right
+R<> $@ < @ > MAIL FROM:<> case
+R< $+ > $: $1 remove housekeeping <>
+
+# strip route address <@a,@b,@c:user@d> -> <user@d>
+R@ $+ , $+ $2
+R@ [ $* ] : $+ $2
+R@ $+ : $+ $2
+
+# find focus for list syntax
+R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
+R $+ : $* ; $@ $1 : $2; list syntax
+
+# find focus for @ syntax addresses
+R$+ @ $+ $: $1 < @ $2 > focus on domain
+R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
+R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
+
+
+# convert old-style addresses to a domain-based address
+R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
+R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
+R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
+
+# if we have % signs, take the rightmost one
+R$* % $* $1 @ $2 First make them all @s.
+R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
+R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
+
+# else we must be a local name
+R$* $@ $>Canonify2 $1
+
+
+################################################
+### Ruleset 96 -- bottom half of ruleset 3 ###
+################################################
+
+SCanonify2=96
+
+# handle special cases for local names
+R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
+R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
+R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
+
+# check for IPv4/IPv6 domain literal
+R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [addr]
+R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
+R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
+
+
+
+
+
+# if really UUCP, handle it immediately
+
+# try UUCP traffic as a local address
+R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
+R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
+
+# hostnames ending in class P are always canonical
+R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
+R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
+R$* CC $* $| $* < @ $+.$+ > $* $: $3 < @ $4.$5 . > $6
+R$* CC $* $| $* $: $3
+# pass to name server to make hostname canonical
+R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
+R$* $| $* $: $2
+
+# local host aliases and pseudo-domains are always canonical
+R$* < @ $=w > $* $: $1 < @ $2 . > $3
+R$* < @ $=M > $* $: $1 < @ $2 . > $3
+R$* < @ $* . . > $* $1 < @ $2 . > $3
+
+
+##################################################
+### Ruleset 4 -- Final Output Post-rewriting ###
+##################################################
+Sfinal=4
+
+R$+ :; <@> $@ $1 : handle <list:;>
+R$* <@> $@ handle <> and list:;
+
+# strip trailing dot off possibly canonical name
+R$* < @ $+ . > $* $1 < @ $2 > $3
+
+# eliminate internal code
+R$* < @ *LOCAL* > $* $1 < @ $j > $2
+
+# externalize local domain info
+R$* < $+ > $* $1 $2 $3 defocus
+R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
+R@ $* $@ @ $1 ... and exit
+
+# UUCP must always be presented in old form
+R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u
+
+# delete duplicate local names
+R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host
+
+
+
+##############################################################
+### Ruleset 97 -- recanonicalize and call ruleset zero ###
+### (used for recursive calls) ###
+##############################################################
+
+SRecurse=97
+R$* $: $>canonify $1
+R$* $@ $>parse $1
+
+
+######################################
+### Ruleset 0 -- Parse Address ###
+######################################
+
+Sparse=0
+
+R$* $: $>Parse0 $1 initial parsing
+R<@> $#local $: <@> special case error msgs
+R$* $: $>ParseLocal $1 handle local hacks
+R$* $: $>Parse1 $1 final parsing
+
+#
+# Parse0 -- do initial syntax checking and eliminate local addresses.
+# This should either return with the (possibly modified) input
+# or return with a #error mailer. It should not return with a
+# #mailer other than the #error mailer.
+#
+
+SParse0
+R<@> $@ <@> special case error msgs
+R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
+R@ <@ $* > < @ $1 > catch "@@host" bogosity
+R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
+R$+ <@> $#error $@ 5.1.3 $: "553 Hostname required"
+R$* $: <> $1
+R<> $* < @ [ $* ] : $+ > $* $1 < @ [ $2 ] : $3 > $4
+R<> $* < @ [ $* ] , $+ > $* $1 < @ [ $2 ] , $3 > $4
+R<> $* < @ [ $* ] $+ > $* $#error $@ 5.1.2 $: "553 Invalid address"
+R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
+R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
+R<> $* $1
+R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
+R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
+R$* < @ $* @ > $* $#error $@ 5.1.2 $: "553 Invalid route address"
+R$* @ $* < @ $* > $* $#error $@ 5.1.3 $: "553 Invalid route address"
+R$* , $~O $* $#error $@ 5.1.3 $: "553 Invalid route address"
+
+
+# now delete the local info -- note $=O to find characters that cause forwarding
+R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
+R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
+R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
+R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
+R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
+R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
+R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
+R$* $=O $* < @ *LOCAL* >
+ $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
+R$* < @ *LOCAL* > $: $1
+
+#
+# Parse1 -- the bottom half of ruleset 0.
+#
+
+SParse1
+
+# handle numeric address spec
+R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
+R$* < @ [ $+ ] > $* $: $1 < @ [ $2 ] : $S > $3 Add smart host to path
+R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
+R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
+R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
+
+
+# short circuit local delivery so forwarded email works
+
+
+R$=L < @ $=w . > $#local $: @ $1 special local names
+R$+ < @ $=w . > $#local $: $1 regular local name
+
+
+# resolve remotely connected UUCP links (if any)
+
+# resolve fake top level domains by forwarding to other hosts
+
+
+
+# pass names that still have a host to a smarthost (if defined)
+R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
+
+# deal with other remote names
+R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
+
+# handle locally delivered names
+R$=L $#local $: @ $1 special local names
+R$+ $#local $: $1 regular local names
+
+###########################################################################
+### Ruleset 5 -- special rewriting after aliases have been expanded ###
+###########################################################################
+
+SLocal_localaddr
+Slocaladdr=5
+R$+ $: $1 $| $>"Local_localaddr" $1
+R$+ $| $#ok $@ $1 no change
+R$+ $| $#$* $#$2
+R$+ $| $* $: $1
+
+
+
+
+# deal with plussed users so aliases work nicely
+R$+ + * $#local $@ $&h $: $1
+R$+ + $* $#local $@ + $2 $: $1 + *
+
+# prepend an empty "forward host" on the front
+R$+ $: <> $1
+
+
+
+R< > $+ $: < > < $1 <> $&h > nope, restore +detail
+
+R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
+R< > < $+ <> $* > $: < > < $1 > else discard
+R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
+R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
+R< > < $+ > $@ $1 no +detail
+R$+ $: $1 <> $&h add +detail back in
+
+R$+ <> + $* $: $1 + $2 check whether +detail
+R$+ <> $* $: $1 else discard
+R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
+R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
+
+R< $~[ : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
+
+R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
+
+
+###################################################################
+### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
+###################################################################
+
+SMailerToTriple=95
+R< > $* $@ $1 strip off null relay
+R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
+R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
+R< local : $* > $* $>CanonLocal < $1 > $2
+R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
+R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
+R< $=w > $* $@ $2 delete local host
+R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
+
+###################################################################
+### Ruleset CanonLocal -- canonify local: syntax ###
+###################################################################
+
+SCanonLocal
+# strip local host from routed addresses
+R< $* > < @ $+ > : $+ $@ $>Recurse $3
+R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
+
+# strip trailing dot from any host name that may appear
+R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
+
+# handle local: syntax -- use old user, either with or without host
+R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
+R< > $+ $#local $@ $1 $: $1
+
+# handle local:user@host syntax -- ignore host part
+R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
+
+# handle local:user syntax
+R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
+R< $+ > $* $#local $@ $2 $: $1
+
+###################################################################
+### Ruleset 93 -- convert header names to masqueraded form ###
+###################################################################
+
+SMasqHdr=93
+
+
+# do not masquerade anything in class N
+R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
+
+R$* < @ *LOCAL* > $@ $1 < @ $j . >
+
+###################################################################
+### Ruleset 94 -- convert envelope names to masqueraded form ###
+###################################################################
+
+SMasqEnv=94
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+###################################################################
+### Ruleset 98 -- local part of ruleset zero (can be null) ###
+###################################################################
+
+SParseLocal=98
+
+# addresses sent to foo@host.REDIRECT will give a 551 error code
+R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
+R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
+R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
+
+
+
+
+
+######################################################################
+### CanonAddr -- Convert an address into a standard form for
+### relay checking. Route address syntax is
+### crudely converted into a %-hack address.
+###
+### Parameters:
+### $1 -- full recipient address
+###
+### Returns:
+### parsed address, not in source route form
+######################################################################
+
+SCanonAddr
+R$* $: $>Parse0 $>canonify $1 make domain canonical
+
+
+######################################################################
+### ParseRecipient -- Strip off hosts in $=R as well as possibly
+### $* $=m or the access database.
+### Check user portion for host separators.
+###
+### Parameters:
+### $1 -- full recipient address
+###
+### Returns:
+### parsed, non-local-relaying address
+######################################################################
+
+SParseRecipient
+R$* $: <?> $>CanonAddr $1
+R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
+R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
+
+# if no $=O character, no host in the user portion, we are done
+R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
+R<?> $* $@ $1
+
+
+R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
+
+
+
+R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
+R<$+> $* $@ $2
+
+
+######################################################################
+### check_relay -- check hostname/address on SMTP startup
+######################################################################
+
+SLocal_check_relay
+Scheck_relay
+R$* $: $1 $| $>"Local_check_relay" $1
+R$* $| $* $| $#$* $#$3
+R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
+
+SBasic_check_relay
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+
+
+
+######################################################################
+### check_mail -- check SMTP `MAIL FROM:' command argument
+######################################################################
+
+SLocal_check_mail
+Scheck_mail
+R$* $: $1 $| $>"Local_check_mail" $1
+R$* $| $#$* $#$2
+R$* $| $* $@ $>"Basic_check_mail" $1
+
+SBasic_check_mail
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+# authenticated?
+R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL
+R$* $| $#$+ $#$2
+R$* $| $* $: $1
+
+R<> $@ <OK> we MUST accept <> (RFC 1123)
+R$+ $: <?> $1
+R<?><$+> $: <@> <$1>
+R<?>$+ $: <@> <$1>
+R$* $: $&{daemon_flags} $| $1
+R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
+R$* u $* $| <@> < $* > $: <?> < $3 >
+R$* $| $* $: $2
+# handle case of @localhost on address
+R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
+R<@> < $* @ [127.0.0.1] >
+ $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
+R<@> < $* @ localhost.$m >
+ $: < ? $&{client_name} > < $1 @ localhost.$m >
+R<@> < $* @ localhost.UUCP >
+ $: < ? $&{client_name} > < $1 @ localhost.UUCP >
+R<@> $* $: $1 no localhost as domain
+R<? $=w> $* $: $2 local client: ok
+R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required for sender address"
+R<?> $* $: $1
+R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
+R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
+# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
+R<?> $* < @ $* $=P > $: <OKR> $1 < @ $2 $3 >
+R<?> $* < @ $j > $: <OKR> $1 < @ $j >
+R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
+R<? $* <$->> $* < @ $+ >
+ $: <$2> $3 < @ $4 >
+
+
+# handle case of no @domain on address
+R<?> $* $: $&{daemon_flags} $| <?> $1
+R$* u $* $| <?> $* $: <OKR> $3
+R$* $| $* $: $2
+R<?> $* $: < ? $&{client_addr} > $1
+R<?> $* $@ <OKR> ...local unqualed ok
+R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required for sender address " $&f
+ ...remote is not
+# check results
+R<?> $* $: @ $1 mark address: nothing known about it
+R<$={ResOk}> $* $@ <OKR> domain ok: stop
+R<TEMP> $* $#error $@ 4.1.8 $: "451 Domain of sender address " $&f " does not resolve"
+R<PERM> $* $#error $@ 5.1.8 $: "553 Domain of sender address " $&f " does not exist"
+
+######################################################################
+### check_rcpt -- check SMTP `RCPT TO:' command argument
+######################################################################
+
+SLocal_check_rcpt
+Scheck_rcpt
+R$* $: $1 $| $>"Local_check_rcpt" $1
+R$* $| $#$* $#$2
+R$* $| $* $@ $>"Basic_check_rcpt" $1
+
+SBasic_check_rcpt
+# empty address?
+R<> $#error $@ nouser $: "553 User address required"
+R$@ $#error $@ nouser $: "553 User address required"
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+
+######################################################################
+R$* $: $1 $| @ $>"Rcpt_ok" $1
+R$* $| @ $#TEMP $+ $: $1 $| T $2
+R$* $| @ $#$* $#$2
+R$* $| @ RELAY $@ RELAY
+R$* $| @ $* $: O $| $>"Relay_ok" $1
+R$* $| T $+ $: T $2 $| $>"Relay_ok" $1
+R$* $| $#TEMP $+ $#error $2
+R$* $| $#$* $#$2
+R$* $| RELAY $@ RELAY
+R T $+ $| $* $#error $1
+# anything else is bogus
+R$* $#error $@ 5.7.1 $: "550 Relaying denied"
+
+
+######################################################################
+### Rcpt_ok: is the recipient ok?
+######################################################################
+SRcpt_ok
+R$* $: $>ParseRecipient $1 strip relayable hosts
+
+
+
+
+# authenticated via TLS?
+R$* $: $1 $| $>RelayTLS client authenticated?
+R$* $| $# $+ $# $2 error/ok?
+R$* $| $* $: $1 no
+
+R$* $: $1 $| $>"Local_Relay_Auth" $&{auth_type}
+R$* $| $# $* $# $2
+R$* $| NO $: $1
+R$* $| $* $: $1 $| $&{auth_type}
+R$* $| $: $1
+R$* $| $={TrustAuthMech} $# RELAY
+R$* $| $* $: $1
+# anything terminating locally is ok
+R$+ < @ $=w > $@ RELAY
+R$+ < @ $* $=R > $@ RELAY
+
+
+
+# check for local user (i.e. unqualified address)
+R$* $: <?> $1
+R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
+# local user is ok
+R<?> $+ $@ RELAY
+R<$+> $* $: $2
+
+######################################################################
+### Relay_ok: is the relay/sender ok?
+######################################################################
+SRelay_ok
+# anything originating locally is ok
+# check IP address
+R$* $: $&{client_addr}
+R$@ $@ RELAY originated locally
+R0 $@ RELAY originated locally
+R127.0.0.1 $@ RELAY originated locally
+RIPv6:::1 $@ RELAY originated locally
+R$=R $* $@ RELAY relayable IP address
+R$* $: [ $1 ] put brackets around it...
+R$=w $@ RELAY ... and see if it is local
+
+
+# check client name: first: did it resolve?
+R$* $: < $&{client_resolve} >
+R<TEMP> $#TEMP $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
+R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
+R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
+R$* $: <@> $&{client_name}
+# pass to name server to make hostname canonical
+R<@> $* $=P $:<?> $1 $2
+R<@> $+ $:<?> $[ $1 $]
+R$* . $1 strip trailing dots
+R<?> $=w $@ RELAY
+R<?> $* $=R $@ RELAY
+
+
+
+
+######################################################################
+### trust_auth: is user trusted to authenticate as someone else?
+###
+### Parameters:
+### $1: AUTH= parameter from MAIL command
+######################################################################
+
+SLocal_trust_auth
+Strust_auth
+R$* $: $&{auth_type} $| $1
+# required by RFC 2554 section 4.
+R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
+R$* $| $&{auth_authen} $@ identical
+R$* $| <$&{auth_authen}> $@ identical
+R$* $| $* $: $1 $| $>"Local_trust_auth" $1
+R$* $| $#$* $#$2
+R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
+
+######################################################################
+### Relay_Auth: allow relaying based on authentication?
+###
+### Parameters:
+### $1: ${auth_type}
+######################################################################
+SLocal_Relay_Auth
+
+
+
+######################################################################
+### tls_client: is connection with client "good" enough?
+### (done in server)
+###
+### Parameters:
+### ${verify} $| (MAIL|STARTTLS)
+######################################################################
+Stls_client
+R$* $| $* $@ $>"TLS_connection" $1
+
+######################################################################
+### tls_server: is connection with server "good" enough?
+### (done in client)
+###
+### Parameter:
+### ${verify}
+######################################################################
+Stls_server
+R$* $@ $>"TLS_connection" $1
+
+######################################################################
+### TLS_connection: is TLS connection "good" enough?
+###
+### Parameters:
+### ${verify}
+### Requirement: RHS from access map, may be ? for none.
+######################################################################
+STLS_connection
+RSOFTWARE $#error $@ 4.7.0 $: "403 TLS handshake."
+
+
+######################################################################
+### RelayTLS: allow relaying based on TLS authentication
+###
+### Parameters:
+### none
+######################################################################
+SRelayTLS
+# authenticated?
+
+######################################################################
+### authinfo: lookup authinfo in the access map
+###
+### Parameters:
+### $1: {server_name}
+### $2: {server_addr}
+######################################################################
+Sauthinfo
+
+#
+######################################################################
+######################################################################
+#####
+##### MAIL FILTER DEFINITIONS
+#####
+######################################################################
+######################################################################
+
+#
+######################################################################
+######################################################################
+#####
+##### MAILER DEFINITIONS
+#####
+######################################################################
+######################################################################
+
+
+##################################################
+### Local and Program Mailer specification ###
+##################################################
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+#
+# Envelope sender rewriting
+#
+SEnvFromL
+R<@> $n errors to mailer-daemon
+R@ <@ $*> $n temporarily bypass Sun bogosity
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* $: $>MasqEnv $1 do masquerading
+
+#
+# Envelope recipient rewriting
+#
+SEnvToL
+R$+ < @ $* > $: $1 strip host part
+R$+ + $* $: < $&{addr_type} > $1 + $2 mark with addr type
+R<e s> $+ + $* $: $1 remove +detail for sender
+R< $* > $+ $: $2 else remove mark
+
+#
+# Header sender rewriting
+#
+SHdrFromL
+R<@> $n errors to mailer-daemon
+R@ <@ $*> $n temporarily bypass Sun bogosity
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* $: $>MasqHdr $1 do masquerading
+
+#
+# Header recipient rewriting
+#
+SHdrToL
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+#
+# Common code to add local domain name (only if always-add-domain)
+#
+SAddDomain
+
+Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
+ T=DNS/RFC822/X-Unix,
+ A=procmail -Y -a $h -d $u
+Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
+ T=X-Unix/X-Unix/X-Unix,
+ A=smrsh -c $u
+
+#####################################
+### SMTP Mailer specification ###
+#####################################
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+#
+# common sender and masquerading recipient rewriting
+#
+SMasqSMTP
+R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
+R$+ $@ $1 < @ *LOCAL* > add local qualification
+
+#
+# convert pseudo-domain addresses to real domain addresses
+#
+SPseudoToReal
+
+# pass <route-addr>s through
+R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
+
+# output fake domains as user%fake@relay
+
+# do UUCP heuristics; note that these are shared with UUCP mailers
+R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
+R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
+
+# leave these in .UUCP form to avoid further tampering
+R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
+R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
+R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
+R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
+R$+ < @ $~[ $* : $+ > $@ $1 < @ $4 > strip mailer: part
+R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
+
+
+#
+# envelope sender rewriting
+#
+SEnvFromSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R$* :; <@> $@ list:; special case
+R$* $: $>MasqSMTP $1 qualify unqual'ed names
+R$+ $: $>MasqEnv $1 do masquerading
+
+
+#
+# envelope recipient rewriting --
+# also header recipient if not masquerading recipients
+#
+SEnvToSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R$+ $: $>MasqSMTP $1 qualify unqual'ed names
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+#
+# header sender and masquerading header recipient rewriting
+#
+SHdrFromSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R:; <@> $@ list:; special case
+
+# do special header rewriting
+R$* <@> $* $@ $1 <@> $2 pass null host through
+R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
+R$* $: $>MasqSMTP $1 qualify unqual'ed names
+R$+ $: $>MasqHdr $1 do masquerading
+
+
+#
+# relay mailer header masquerading recipient rewriting
+#
+SMasqRelay
+R$+ $: $>MasqSMTP $1
+R$+ $: $>MasqHdr $1
+
+Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+
+
+######################*****##############
+### PROCMAIL Mailer specification ###
+##################*****##################
+
+##### $Id: sendmail-procmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+Mprocmail, P=/usr/bin/procmail, F=DFMSPhnu9, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
+ T=DNS/RFC822/X-Unix,
+ A=procmail -Y -m $h $f $u
+
diff --git a/mail-mta/sendmail/files/sendmail-procmail.mc b/mail-mta/sendmail/files/sendmail-procmail.mc
new file mode 100644
index 000000000000..e578f8c5d0ed
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-procmail.mc
@@ -0,0 +1,32 @@
+divert(-1)
+#
+# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+# Copyright (c) 1983 Eric P. Allman. All rights reserved.
+# Copyright (c) 1988, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+
+#
+# This is a generic configuration file for Linux.
+# It has support for local and SMTP mail only. If you want to
+# customize it, copy it to a name appropriate for your environment
+# and do the modifications there.
+#
+
+divert(0)dnl
+include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
+VERSIONID(`$Id: sendmail-procmail.mc,v 1.1 2004/05/30 09:20:40 robbat2 Exp $')dnl
+OSTYPE(linux)dnl
+DOMAIN(generic)dnl
+FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
+FEATURE(`local_lmtp',`/usr/sbin/mail.local')dnl
+FEATURE(`local_procmail')dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
+MAILER(procmail)dnl
diff --git a/mail-mta/sendmail/files/sendmail.cf b/mail-mta/sendmail/files/sendmail.cf
new file mode 100644
index 000000000000..b8d5106fbead
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail.cf
@@ -0,0 +1,1382 @@
+#
+# Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
+# Copyright (c) 1988, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+
+######################################################################
+######################################################################
+#####
+##### SENDMAIL CONFIGURATION FILE
+#####
+##### built by root@orange-pc.ces.clemson.edu on Thu Jul 4 00:56:51 EDT 2002
+##### in /usr/portage/net-mail/sendmail/files
+##### using /usr/share/sendmail-cf/ as configuration include directory
+#####
+######################################################################
+#####
+##### DO NOT EDIT THIS FILE! Only edit the source .mc file.
+#####
+######################################################################
+######################################################################
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+# level 10 config file format
+V10/Berkeley
+
+# override file safeties - setting this option compromises system security,
+# addressing the actual file configuration problem is preferred
+# need to set this before any file actions are encountered in the cf file
+#O DontBlameSendmail=safe
+
+# default LDAP map specification
+# need to set this now before any LDAP maps are defined
+#O LDAPDefaultSpec=-h localhost
+
+##################
+# local info #
+##################
+
+# my LDAP cluster
+# need to set this before any LDAP lookups are done (including classes)
+#D{sendmailMTACluster}$m
+
+Cwlocalhost
+# file containing names of hosts for which we receive email
+Fw/etc/mail/local-host-names
+
+# my official domain name
+# ... define this only if sendmail cannot automatically determine your domain
+#Dj$w.Foo.COM
+
+CP.
+
+# "Smart" relay host (may be null)
+DS
+
+
+# operators that cannot be in local usernames (i.e., network indicators)
+CO @ % !
+
+# a class with just dot (for identifying canonical names)
+C..
+
+# a class with just a left bracket (for identifying domain literals)
+C[[
+
+
+# Resolve map (to check if a host exists in check_mail)
+Kresolve host -a<OKR> -T<TEMP>
+C{ResOk}OKR
+
+
+# Hosts for which relaying is permitted ($=R)
+FR-o /etc/mail/relay-domains
+
+# arithmetic map
+Karith arith
+
+
+
+
+
+# dequoting map
+Kdequote dequote
+
+# class E: names that should be exposed as from this host, even if we masquerade
+# class L: names that should be delivered locally, even if we have a relay
+# class M: domains that should be converted to $M
+# class N: domains that should not be converted to $M
+#CL root
+C{E}root
+
+
+
+# my name for error messages
+DnMAILER-DAEMON
+
+
+CPREDIRECT
+
+# Configuration version number
+DZ8.12.4
+
+
+###############
+# Options #
+###############
+
+# strip message body to 7 bits on input?
+O SevenBitInput=False
+
+# 8-bit data handling
+#O EightBitMode=pass8
+
+# wait for alias file rebuild (default units: minutes)
+O AliasWait=10
+
+# location of alias file
+O AliasFile=/etc/mail/aliases
+
+# minimum number of free blocks on filesystem
+O MinFreeBlocks=100
+
+# maximum message size
+#O MaxMessageSize=1000000
+
+# substitution for space (blank) characters
+O BlankSub=.
+
+# avoid connecting to "expensive" mailers on initial submission?
+O HoldExpensive=False
+
+# checkpoint queue runs after every N successful deliveries
+#O CheckpointInterval=10
+
+# default delivery mode
+O DeliveryMode=background
+
+# error message header/file
+#O ErrorHeader=/etc/mail/error-header
+
+# error mode
+#O ErrorMode=print
+
+# save Unix-style "From_" lines at top of header?
+#O SaveFromLine=False
+
+# queue file mode (qf files)
+#O QueueFileMode=0600
+
+# temporary file mode
+O TempFileMode=0600
+
+# match recipients against GECOS field?
+#O MatchGECOS=False
+
+# maximum hop count
+#O MaxHopCount=25
+
+# location of help file
+O HelpFile=/etc/mail/helpfile
+
+# ignore dots as terminators in incoming messages?
+#O IgnoreDots=False
+
+# name resolver options
+#O ResolverOptions=+AAONLY
+
+# deliver MIME-encapsulated error messages?
+O SendMimeErrors=True
+
+# Forward file search path
+O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
+
+# open connection cache size
+O ConnectionCacheSize=2
+
+# open connection cache timeout
+O ConnectionCacheTimeout=5m
+
+# persistent host status directory
+#O HostStatusDirectory=.hoststat
+
+# single thread deliveries (requires HostStatusDirectory)?
+#O SingleThreadDelivery=False
+
+# use Errors-To: header?
+O UseErrorsTo=False
+
+# log level
+O LogLevel=9
+
+# send to me too, even in an alias expansion?
+#O MeToo=True
+
+# verify RHS in newaliases?
+O CheckAliases=False
+
+# default messages to old style headers if no special punctuation?
+O OldStyleHeaders=True
+
+# SMTP daemon options
+O DaemonPortOptions=Name=MTA
+O DaemonPortOptions=Port=587, Name=MSA, M=E
+
+# SMTP client options
+#O ClientPortOptions=Family=inet, Address=0.0.0.0
+
+# Modifiers to define {daemon_flags} for direct submissions
+#O DirectSubmissionModifiers
+
+# Use as mail submission program? See sendmail/SECURITY
+#O UseMSP
+
+# privacy flags
+O PrivacyOptions=authwarnings
+
+# who (if anyone) should get extra copies of error messages
+#O PostmasterCopy=Postmaster
+
+# slope of queue-only function
+#O QueueFactor=600000
+
+# limit on number of concurrent queue runners
+#O MaxQueueChildren
+
+# maximum number of queue-runners per queue-grouping with multiple queues
+#O MaxRunnersPerQueue=1
+
+# priority of queue runners (nice(3))
+#O NiceQueueRun
+
+# shall we sort the queue by hostname first?
+#O QueueSortOrder=priority
+
+# minimum time in queue before retry
+#O MinQueueAge=30m
+
+# how many jobs can you process in the queue?
+#O MaxQueueRunSize=10000
+
+# perform initial split of envelope without checking MX records
+#O FastSplit=1
+
+# queue directory
+O QueueDirectory=/var/spool/mqueue
+
+# key for shared memory; 0 to turn off
+#O SharedMemoryKey=0
+
+
+
+# timeouts (many of these)
+#O Timeout.initial=5m
+#O Timeout.connect=5m
+#O Timeout.aconnect=0s
+#O Timeout.iconnect=5m
+#O Timeout.helo=5m
+#O Timeout.mail=10m
+#O Timeout.rcpt=1h
+#O Timeout.datainit=5m
+#O Timeout.datablock=1h
+#O Timeout.datafinal=1h
+#O Timeout.rset=5m
+#O Timeout.quit=2m
+#O Timeout.misc=2m
+#O Timeout.command=1h
+#O Timeout.ident=5s
+#O Timeout.fileopen=60s
+#O Timeout.control=2m
+O Timeout.queuereturn=5d
+#O Timeout.queuereturn.normal=5d
+#O Timeout.queuereturn.urgent=2d
+#O Timeout.queuereturn.non-urgent=7d
+O Timeout.queuewarn=4h
+#O Timeout.queuewarn.normal=4h
+#O Timeout.queuewarn.urgent=1h
+#O Timeout.queuewarn.non-urgent=12h
+#O Timeout.hoststatus=30m
+#O Timeout.resolver.retrans=5s
+#O Timeout.resolver.retrans.first=5s
+#O Timeout.resolver.retrans.normal=5s
+#O Timeout.resolver.retry=4
+#O Timeout.resolver.retry.first=4
+#O Timeout.resolver.retry.normal=4
+#O Timeout.lhlo=2m
+#O Timeout.auth=10m
+#O Timeout.starttls=1h
+
+# time for DeliverBy; extension disabled if less than 0
+#O DeliverByMin=0
+
+# should we not prune routes in route-addr syntax addresses?
+#O DontPruneRoutes=False
+
+# queue up everything before forking?
+O SuperSafe=True
+
+# status file
+O StatusFile=/etc/mail/statistics
+
+# time zone handling:
+# if undefined, use system default
+# if defined but null, use TZ envariable passed in
+# if defined and non-null, use that info
+#O TimeZoneSpec=
+
+# default UID (can be username or userid:groupid)
+#O DefaultUser=mailnull
+
+# list of locations of user database file (null means no lookup)
+#O UserDatabaseSpec=/etc/mail/userdb
+
+# fallback MX host
+#O FallbackMXhost=fall.back.host.net
+
+# if we are the best MX host for a site, try it directly instead of config err
+#O TryNullMXList=False
+
+# load average at which we just queue messages
+#O QueueLA=8
+
+# load average at which we refuse connections
+#O RefuseLA=12
+
+# load average at which we delay connections; 0 means no limit
+#O DelayLA=0
+
+# maximum number of children we allow at one time
+#O MaxDaemonChildren=12
+
+# maximum number of new connections per second
+#O ConnectionRateThrottle=0
+
+# work recipient factor
+#O RecipientFactor=30000
+
+# deliver each queued job in a separate process?
+#O ForkEachJob=False
+
+# work class factor
+#O ClassFactor=1800
+
+# work time factor
+#O RetryFactor=90000
+
+# default character set
+#O DefaultCharSet=iso-8859-1
+
+# service switch file (name hardwired on Solaris, Ultrix, OSF/1, others)
+#O ServiceSwitchFile=/etc/mail/service.switch
+
+# hosts file (normally /etc/hosts)
+#O HostsFile=/etc/hosts
+
+# dialup line delay on connection failure
+#O DialDelay=10s
+
+# action to take if there are no recipients in the message
+#O NoRecipientAction=add-to-undisclosed
+
+# chrooted environment for writing to files
+#O SafeFileEnvironment=/arch
+
+# are colons OK in addresses?
+#O ColonOkInAddr=True
+
+# shall I avoid expanding CNAMEs (violates protocols)?
+#O DontExpandCnames=False
+
+# SMTP initial login message (old $e macro)
+O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
+
+# UNIX initial From header format (old $l macro)
+O UnixFromLine=From $g $d
+
+# From: lines that have embedded newlines are unwrapped onto one line
+#O SingleLineFromHeader=False
+
+# Allow HELO SMTP command that does not include a host name
+#O AllowBogusHELO=False
+
+# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
+#O MustQuoteChars=.
+
+# delimiter (operator) characters (old $o macro)
+O OperatorChars=.:%@!^/[]+
+
+# shall I avoid calling initgroups(3) because of high NIS costs?
+#O DontInitGroups=False
+
+# are group-writable :include: and .forward files (un)trustworthy?
+# True (the default) means they are not trustworthy.
+#O UnsafeGroupWrites=True
+
+
+# where do errors that occur when sending errors get sent?
+#O DoubleBounceAddress=postmaster
+
+# where to save bounces if all else fails
+#O DeadLetterDrop=/var/tmp/dead.letter
+
+# what user id do we assume for the majority of the processing?
+#O RunAsUser=sendmail
+
+# maximum number of recipients per SMTP envelope
+#O MaxRecipientsPerMessage=100
+
+# limit the rate recipients per SMTP envelope are accepted
+# once the threshold number of recipients have been rejected
+#O BadRcptThrottle=20
+
+# shall we get local names from our installed interfaces?
+#O DontProbeInterfaces=False
+
+# Return-Receipt-To: header implies DSN request
+#O RrtImpliesDsn=False
+
+# override connection address (for testing)
+#O ConnectOnlyTo=0.0.0.0
+
+# Trusted user for file ownership and starting the daemon
+#O TrustedUser=root
+
+# Control socket for daemon management
+#O ControlSocketName=/var/spool/mqueue/.control
+
+# Maximum MIME header length to protect MUAs
+#O MaxMimeHeaderLength=0/0
+
+# Maximum length of the sum of all headers
+O MaxHeadersLength=32768
+
+# Maximum depth of alias recursion
+#O MaxAliasRecursion=10
+
+# location of pid file
+#O PidFile=/var/run/sendmail.pid
+
+# Prefix string for the process title shown on 'ps' listings
+#O ProcessTitlePrefix=prefix
+
+# Data file (df) memory-buffer file maximum size
+#O DataFileBufferSize=4096
+
+# Transcript file (xf) memory-buffer file maximum size
+#O XscriptFileBufferSize=4096
+
+# lookup type to find information about local mailboxes
+#O MailboxDatabase=pw
+
+# list of authentication mechanisms
+#O AuthMechanisms=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
+
+# default authentication information for outgoing connections
+#O DefaultAuthInfo=/etc/mail/default-auth-info
+
+# SMTP AUTH flags
+#O AuthOptions
+
+# SMTP AUTH maximum encryption strength
+#O AuthMaxBits
+
+# SMTP STARTTLS server options
+#O TLSSrvOptions
+
+# Input mail filters
+#O InputMailFilters
+
+
+
+# CA directory
+#O CACERTPath
+# CA file
+#O CACERTFile
+# Server Cert
+#O ServerCertFile
+# Server private key
+#O ServerKeyFile
+# Client Cert
+#O ClientCertFile
+# Client private key
+#O ClientKeyFile
+# DHParameters (only required if DSA/DH is used)
+#O DHParameters
+# Random data source (required for systems without /dev/urandom under OpenSSL)
+#O RandFile
+
+############################
+# QUEUE GROUP DEFINITIONS #
+############################
+
+
+###########################
+# Message precedences #
+###########################
+
+Pfirst-class=0
+Pspecial-delivery=100
+Plist=-30
+Pbulk=-60
+Pjunk=-100
+
+#####################
+# Trusted users #
+#####################
+
+# this is equivalent to setting class "t"
+#Ft/etc/mail/trusted-users
+Troot
+Tdaemon
+Tuucp
+
+#########################
+# Format of headers #
+#########################
+
+H?P?Return-Path: <$g>
+HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
+ $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
+ $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
+ (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
+ for $u; $|;
+ $.$b
+H?D?Resent-Date: $a
+H?D?Date: $a
+H?F?Resent-From: $?x$x <$g>$|$g$.
+H?F?From: $?x$x <$g>$|$g$.
+H?x?Full-Name: $x
+# HPosted-Date: $a
+# H?l?Received-Date: $b
+H?M?Resent-Message-Id: <$t.$i@$j>
+H?M?Message-Id: <$t.$i@$j>
+
+#
+######################################################################
+######################################################################
+#####
+##### REWRITING RULES
+#####
+######################################################################
+######################################################################
+
+############################################
+### Ruleset 3 -- Name Canonicalization ###
+############################################
+Scanonify=3
+
+# handle null input (translate to <@> special case)
+R$@ $@ <@>
+
+# strip group: syntax (not inside angle brackets!) and trailing semicolon
+R$* $: $1 <@> mark addresses
+R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
+R@ $* <@> $: @ $1 unmark @host:...
+R$* [ IPv6 : $+ ] <@> $: $1 [ IPv6 : $2 ] unmark IPv6 addr
+R$* :: $* <@> $: $1 :: $2 unmark node::addr
+R:include: $* <@> $: :include: $1 unmark :include:...
+R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
+R$* : $* <@> $: $2 strip colon if marked
+R$* <@> $: $1 unmark
+R$* ; $1 strip trailing semi
+R$* < $+ :; > $* $@ $2 :; <@> catch <list:;>
+R$* < $* ; > $1 < $2 > bogus bracketed semi
+
+# null input now results from list:; syntax
+R$@ $@ :; <@>
+
+# strip angle brackets -- note RFC733 heuristic to get innermost item
+R$* $: < $1 > housekeeping <>
+R$+ < $* > < $2 > strip excess on left
+R< $* > $+ < $1 > strip excess on right
+R<> $@ < @ > MAIL FROM:<> case
+R< $+ > $: $1 remove housekeeping <>
+
+# strip route address <@a,@b,@c:user@d> -> <user@d>
+R@ $+ , $+ $2
+R@ [ $* ] : $+ $2
+R@ $+ : $+ $2
+
+# find focus for list syntax
+R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
+R $+ : $* ; $@ $1 : $2; list syntax
+
+# find focus for @ syntax addresses
+R$+ @ $+ $: $1 < @ $2 > focus on domain
+R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
+R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
+
+
+# convert old-style addresses to a domain-based address
+R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
+R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
+R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
+
+# if we have % signs, take the rightmost one
+R$* % $* $1 @ $2 First make them all @s.
+R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
+R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
+
+# else we must be a local name
+R$* $@ $>Canonify2 $1
+
+
+################################################
+### Ruleset 96 -- bottom half of ruleset 3 ###
+################################################
+
+SCanonify2=96
+
+# handle special cases for local names
+R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
+R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
+R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
+
+# check for IPv4/IPv6 domain literal
+R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [addr]
+R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
+R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
+
+
+
+
+
+# if really UUCP, handle it immediately
+
+# try UUCP traffic as a local address
+R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
+R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
+
+# hostnames ending in class P are always canonical
+R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
+R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
+R$* CC $* $| $* < @ $+.$+ > $* $: $3 < @ $4.$5 . > $6
+R$* CC $* $| $* $: $3
+# pass to name server to make hostname canonical
+R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
+R$* $| $* $: $2
+
+# local host aliases and pseudo-domains are always canonical
+R$* < @ $=w > $* $: $1 < @ $2 . > $3
+R$* < @ $=M > $* $: $1 < @ $2 . > $3
+R$* < @ $* . . > $* $1 < @ $2 . > $3
+
+
+##################################################
+### Ruleset 4 -- Final Output Post-rewriting ###
+##################################################
+Sfinal=4
+
+R$+ :; <@> $@ $1 : handle <list:;>
+R$* <@> $@ handle <> and list:;
+
+# strip trailing dot off possibly canonical name
+R$* < @ $+ . > $* $1 < @ $2 > $3
+
+# eliminate internal code
+R$* < @ *LOCAL* > $* $1 < @ $j > $2
+
+# externalize local domain info
+R$* < $+ > $* $1 $2 $3 defocus
+R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
+R@ $* $@ @ $1 ... and exit
+
+# UUCP must always be presented in old form
+R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u
+
+# delete duplicate local names
+R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host
+
+
+
+##############################################################
+### Ruleset 97 -- recanonicalize and call ruleset zero ###
+### (used for recursive calls) ###
+##############################################################
+
+SRecurse=97
+R$* $: $>canonify $1
+R$* $@ $>parse $1
+
+
+######################################
+### Ruleset 0 -- Parse Address ###
+######################################
+
+Sparse=0
+
+R$* $: $>Parse0 $1 initial parsing
+R<@> $#local $: <@> special case error msgs
+R$* $: $>ParseLocal $1 handle local hacks
+R$* $: $>Parse1 $1 final parsing
+
+#
+# Parse0 -- do initial syntax checking and eliminate local addresses.
+# This should either return with the (possibly modified) input
+# or return with a #error mailer. It should not return with a
+# #mailer other than the #error mailer.
+#
+
+SParse0
+R<@> $@ <@> special case error msgs
+R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
+R@ <@ $* > < @ $1 > catch "@@host" bogosity
+R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
+R$+ <@> $#error $@ 5.1.3 $: "553 Hostname required"
+R$* $: <> $1
+R<> $* < @ [ $* ] : $+ > $* $1 < @ [ $2 ] : $3 > $4
+R<> $* < @ [ $* ] , $+ > $* $1 < @ [ $2 ] , $3 > $4
+R<> $* < @ [ $* ] $+ > $* $#error $@ 5.1.2 $: "553 Invalid address"
+R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
+R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
+R<> $* $1
+R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
+R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
+R$* < @ $* @ > $* $#error $@ 5.1.2 $: "553 Invalid route address"
+R$* @ $* < @ $* > $* $#error $@ 5.1.3 $: "553 Invalid route address"
+R$* , $~O $* $#error $@ 5.1.3 $: "553 Invalid route address"
+
+
+# now delete the local info -- note $=O to find characters that cause forwarding
+R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
+R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
+R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
+R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
+R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
+R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
+R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
+R$* $=O $* < @ *LOCAL* >
+ $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
+R$* < @ *LOCAL* > $: $1
+
+#
+# Parse1 -- the bottom half of ruleset 0.
+#
+
+SParse1
+
+# handle numeric address spec
+R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
+R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
+R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
+R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
+R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
+
+
+# short circuit local delivery so forwarded email works
+
+
+R$=L < @ $=w . > $#local $: @ $1 special local names
+R$+ < @ $=w . > $#local $: $1 regular local name
+
+
+# resolve remotely connected UUCP links (if any)
+
+# resolve fake top level domains by forwarding to other hosts
+
+
+
+# pass names that still have a host to a smarthost (if defined)
+R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
+
+# deal with other remote names
+R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
+
+# handle locally delivered names
+R$=L $#local $: @ $1 special local names
+R$+ $#local $: $1 regular local names
+
+###########################################################################
+### Ruleset 5 -- special rewriting after aliases have been expanded ###
+###########################################################################
+
+SLocal_localaddr
+Slocaladdr=5
+R$+ $: $1 $| $>"Local_localaddr" $1
+R$+ $| $#ok $@ $1 no change
+R$+ $| $#$* $#$2
+R$+ $| $* $: $1
+
+
+
+
+# deal with plussed users so aliases work nicely
+R$+ + * $#local $@ $&h $: $1
+R$+ + $* $#local $@ + $2 $: $1 + *
+
+# prepend an empty "forward host" on the front
+R$+ $: <> $1
+
+
+
+R< > $+ $: < > < $1 <> $&h > nope, restore +detail
+
+R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
+R< > < $+ <> $* > $: < > < $1 > else discard
+R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
+R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
+R< > < $+ > $@ $1 no +detail
+R$+ $: $1 <> $&h add +detail back in
+
+R$+ <> + $* $: $1 + $2 check whether +detail
+R$+ <> $* $: $1 else discard
+R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
+R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
+
+R< $~[ : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
+
+R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
+
+
+###################################################################
+### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
+###################################################################
+
+SMailerToTriple=95
+R< > $* $@ $1 strip off null relay
+R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
+R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
+R< local : $* > $* $>CanonLocal < $1 > $2
+R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
+R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
+R< $=w > $* $@ $2 delete local host
+R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
+
+###################################################################
+### Ruleset CanonLocal -- canonify local: syntax ###
+###################################################################
+
+SCanonLocal
+# strip local host from routed addresses
+R< $* > < @ $+ > : $+ $@ $>Recurse $3
+R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
+
+# strip trailing dot from any host name that may appear
+R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
+
+# handle local: syntax -- use old user, either with or without host
+R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
+R< > $+ $#local $@ $1 $: $1
+
+# handle local:user@host syntax -- ignore host part
+R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
+
+# handle local:user syntax
+R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
+R< $+ > $* $#local $@ $2 $: $1
+
+###################################################################
+### Ruleset 93 -- convert header names to masqueraded form ###
+###################################################################
+
+SMasqHdr=93
+
+
+# do not masquerade anything in class N
+R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
+
+R$* < @ *LOCAL* > $@ $1 < @ $j . >
+
+###################################################################
+### Ruleset 94 -- convert envelope names to masqueraded form ###
+###################################################################
+
+SMasqEnv=94
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+###################################################################
+### Ruleset 98 -- local part of ruleset zero (can be null) ###
+###################################################################
+
+SParseLocal=98
+
+# addresses sent to foo@host.REDIRECT will give a 551 error code
+R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
+R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
+R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
+
+
+
+
+
+######################################################################
+### CanonAddr -- Convert an address into a standard form for
+### relay checking. Route address syntax is
+### crudely converted into a %-hack address.
+###
+### Parameters:
+### $1 -- full recipient address
+###
+### Returns:
+### parsed address, not in source route form
+######################################################################
+
+SCanonAddr
+R$* $: $>Parse0 $>canonify $1 make domain canonical
+
+
+######################################################################
+### ParseRecipient -- Strip off hosts in $=R as well as possibly
+### $* $=m or the access database.
+### Check user portion for host separators.
+###
+### Parameters:
+### $1 -- full recipient address
+###
+### Returns:
+### parsed, non-local-relaying address
+######################################################################
+
+SParseRecipient
+R$* $: <?> $>CanonAddr $1
+R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
+R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
+
+# if no $=O character, no host in the user portion, we are done
+R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
+R<?> $* $@ $1
+
+
+R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
+
+
+
+R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
+R<$+> $* $@ $2
+
+
+######################################################################
+### check_relay -- check hostname/address on SMTP startup
+######################################################################
+
+SLocal_check_relay
+Scheck_relay
+R$* $: $1 $| $>"Local_check_relay" $1
+R$* $| $* $| $#$* $#$3
+R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
+
+SBasic_check_relay
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+
+
+
+######################################################################
+### check_mail -- check SMTP `MAIL FROM:' command argument
+######################################################################
+
+SLocal_check_mail
+Scheck_mail
+R$* $: $1 $| $>"Local_check_mail" $1
+R$* $| $#$* $#$2
+R$* $| $* $@ $>"Basic_check_mail" $1
+
+SBasic_check_mail
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+# authenticated?
+R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL
+R$* $| $#$+ $#$2
+R$* $| $* $: $1
+
+R<> $@ <OK> we MUST accept <> (RFC 1123)
+R$+ $: <?> $1
+R<?><$+> $: <@> <$1>
+R<?>$+ $: <@> <$1>
+R$* $: $&{daemon_flags} $| $1
+R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
+R$* u $* $| <@> < $* > $: <?> < $3 >
+R$* $| $* $: $2
+# handle case of @localhost on address
+R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
+R<@> < $* @ [127.0.0.1] >
+ $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
+R<@> < $* @ localhost.$m >
+ $: < ? $&{client_name} > < $1 @ localhost.$m >
+R<@> < $* @ localhost.UUCP >
+ $: < ? $&{client_name} > < $1 @ localhost.UUCP >
+R<@> $* $: $1 no localhost as domain
+R<? $=w> $* $: $2 local client: ok
+R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required for sender address"
+R<?> $* $: $1
+R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
+R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
+# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
+R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
+R<?> $* < @ $j > $: <OK> $1 < @ $j >
+R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
+R<? $* <$->> $* < @ $+ >
+ $: <$2> $3 < @ $4 >
+
+
+# handle case of no @domain on address
+R<?> $* $: $&{daemon_flags} $| <?> $1
+R$* u $* $| <?> $* $: <OKR> $3
+R$* $| $* $: $2
+R<?> $* $: < ? $&{client_name} > $1
+R<?> $* $@ <OK> ...local unqualed ok
+R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required for sender address " $&f
+ ...remote is not
+# check results
+R<?> $* $: @ $1 mark address: nothing known about it
+R<$={ResOk}> $* $@ <OKR> domain ok: stop
+R<TEMP> $* $#error $@ 4.1.8 $: "451 Domain of sender address " $&f " does not resolve"
+R<PERM> $* $#error $@ 5.1.8 $: "553 Domain of sender address " $&f " does not exist"
+
+######################################################################
+### check_rcpt -- check SMTP `RCPT TO:' command argument
+######################################################################
+
+SLocal_check_rcpt
+Scheck_rcpt
+R$* $: $1 $| $>"Local_check_rcpt" $1
+R$* $| $#$* $#$2
+R$* $| $* $@ $>"Basic_check_rcpt" $1
+
+SBasic_check_rcpt
+# empty address?
+R<> $#error $@ nouser $: "553 User address required"
+R$@ $#error $@ nouser $: "553 User address required"
+# check for deferred delivery mode
+R$* $: < $&{deliveryMode} > $1
+R< d > $* $@ deferred
+R< $* > $* $: $2
+
+
+######################################################################
+R$* $: $1 $| @ $>"Rcpt_ok" $1
+R$* $| @ $#TEMP $+ $: $1 $| T $2
+R$* $| @ $#$* $#$2
+R$* $| @ RELAY $@ RELAY
+R$* $| @ $* $: O $| $>"Relay_ok" $1
+R$* $| T $+ $: T $2 $| $>"Relay_ok" $1
+R$* $| $#TEMP $+ $#error $2
+R$* $| $#$* $#$2
+R$* $| RELAY $@ RELAY
+R T $+ $| $* $#error $1
+# anything else is bogus
+R$* $#error $@ 5.7.1 $: "550 Relaying denied"
+
+
+######################################################################
+### Rcpt_ok: is the recipient ok?
+######################################################################
+SRcpt_ok
+R$* $: $>ParseRecipient $1 strip relayable hosts
+
+
+
+
+# authenticated via TLS?
+R$* $: $1 $| $>RelayTLS client authenticated?
+R$* $| $# $+ $# $2 error/ok?
+R$* $| $* $: $1 no
+
+R$* $: $1 $| $>"Local_Relay_Auth" $&{auth_type}
+R$* $| $# $* $# $2
+R$* $| NO $: $1
+R$* $| $* $: $1 $| $&{auth_type}
+R$* $| $: $1
+R$* $| $={TrustAuthMech} $# RELAY
+R$* $| $* $: $1
+# anything terminating locally is ok
+R$+ < @ $=w > $@ RELAY
+R$+ < @ $* $=R > $@ RELAY
+
+
+
+# check for local user (i.e. unqualified address)
+R$* $: <?> $1
+R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
+# local user is ok
+R<?> $+ $@ RELAY
+R<$+> $* $: $2
+
+######################################################################
+### Relay_ok: is the relay/sender ok?
+######################################################################
+SRelay_ok
+# anything originating locally is ok
+# check IP address
+R$* $: $&{client_addr}
+R$@ $@ RELAY originated locally
+R0 $@ RELAY originated locally
+R$=R $* $@ RELAY relayable IP address
+R$* $: [ $1 ] put brackets around it...
+R$=w $@ RELAY ... and see if it is local
+
+
+# check client name: first: did it resolve?
+R$* $: < $&{client_resolve} >
+R<TEMP> $#TEMP $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
+R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
+R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
+R$* $: <@> $&{client_name}
+R<@> $@ RELAY
+# pass to name server to make hostname canonical
+R<@> $* $=P $:<?> $1 $2
+R<@> $+ $:<?> $[ $1 $]
+R$* . $1 strip trailing dots
+R<?> $=w $@ RELAY
+R<?> $* $=R $@ RELAY
+
+
+
+
+######################################################################
+### trust_auth: is user trusted to authenticate as someone else?
+###
+### Parameters:
+### $1: AUTH= parameter from MAIL command
+######################################################################
+
+SLocal_trust_auth
+Strust_auth
+R$* $: $&{auth_type} $| $1
+# required by RFC 2554 section 4.
+R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
+R$* $| $&{auth_authen} $@ identical
+R$* $| <$&{auth_authen}> $@ identical
+R$* $| $* $: $1 $| $>"Local_trust_auth" $1
+R$* $| $#$* $#$2
+R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
+
+######################################################################
+### Relay_Auth: allow relaying based on authentication?
+###
+### Parameters:
+### $1: ${auth_type}
+######################################################################
+SLocal_Relay_Auth
+
+
+
+######################################################################
+### tls_client: is connection with client "good" enough?
+### (done in server)
+###
+### Parameters:
+### ${verify} $| (MAIL|STARTTLS)
+######################################################################
+Stls_client
+R$* $| $* $@ $>"TLS_connection" $1
+
+######################################################################
+### tls_server: is connection with server "good" enough?
+### (done in client)
+###
+### Parameter:
+### ${verify}
+######################################################################
+Stls_server
+R$* $@ $>"TLS_connection" $1
+
+######################################################################
+### TLS_connection: is TLS connection "good" enough?
+###
+### Parameters:
+### ${verify}
+### Requirement: RHS from access map, may be ? for none.
+######################################################################
+STLS_connection
+RSOFTWARE $#error $@ 4.7.0 $: "403 TLS handshake."
+
+
+######################################################################
+### RelayTLS: allow relaying based on TLS authentication
+###
+### Parameters:
+### none
+######################################################################
+SRelayTLS
+# authenticated?
+
+######################################################################
+### authinfo: lookup authinfo in the access map
+###
+### Parameters:
+### $1: {server_name}
+### $2: {server_addr}
+######################################################################
+Sauthinfo
+
+#
+######################################################################
+######################################################################
+#####
+##### MAIL FILTER DEFINITIONS
+#####
+######################################################################
+######################################################################
+
+#
+######################################################################
+######################################################################
+#####
+##### MAILER DEFINITIONS
+#####
+######################################################################
+######################################################################
+
+
+##################################################
+### Local and Program Mailer specification ###
+##################################################
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+#
+# Envelope sender rewriting
+#
+SEnvFromL
+R<@> $n errors to mailer-daemon
+R@ <@ $*> $n temporarily bypass Sun bogosity
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* $: $>MasqEnv $1 do masquerading
+
+#
+# Envelope recipient rewriting
+#
+SEnvToL
+R$+ < @ $* > $: $1 strip host part
+R$+ + $* $: < $&{addr_type} > $1 + $2 mark with addr type
+R<e s> $+ + $* $: $1 remove +detail for sender
+R< $* > $+ $: $2 else remove mark
+
+#
+# Header sender rewriting
+#
+SHdrFromL
+R<@> $n errors to mailer-daemon
+R@ <@ $*> $n temporarily bypass Sun bogosity
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* $: $>MasqHdr $1 do masquerading
+
+#
+# Header recipient rewriting
+#
+SHdrToL
+R$+ $: $>AddDomain $1 add local domain if needed
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+#
+# Common code to add local domain name (only if always-add-domain)
+#
+SAddDomain
+
+Mlocal, P=/usr/sbin/mail.local, F=lsDFMAw5:/|@qPSXfmnz9, S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL,
+ T=DNS/RFC822/SMTP,
+ A=mail.local -l
+Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
+ T=X-Unix/X-Unix/X-Unix,
+ A=smrsh -c $u
+
+#####################################
+### SMTP Mailer specification ###
+#####################################
+
+##### $Id: sendmail.cf,v 1.1 2004/05/30 09:20:40 robbat2 Exp $ #####
+
+#
+# common sender and masquerading recipient rewriting
+#
+SMasqSMTP
+R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
+R$+ $@ $1 < @ *LOCAL* > add local qualification
+
+#
+# convert pseudo-domain addresses to real domain addresses
+#
+SPseudoToReal
+
+# pass <route-addr>s through
+R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
+
+# output fake domains as user%fake@relay
+
+# do UUCP heuristics; note that these are shared with UUCP mailers
+R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
+R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
+
+# leave these in .UUCP form to avoid further tampering
+R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
+R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
+R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
+R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
+R$+ < @ $~[ $* : $+ > $@ $1 < @ $4 > strip mailer: part
+R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
+
+
+#
+# envelope sender rewriting
+#
+SEnvFromSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R$* :; <@> $@ list:; special case
+R$* $: $>MasqSMTP $1 qualify unqual'ed names
+R$+ $: $>MasqEnv $1 do masquerading
+
+
+#
+# envelope recipient rewriting --
+# also header recipient if not masquerading recipients
+#
+SEnvToSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R$+ $: $>MasqSMTP $1 qualify unqual'ed names
+R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
+
+#
+# header sender and masquerading header recipient rewriting
+#
+SHdrFromSMTP
+R$+ $: $>PseudoToReal $1 sender/recipient common
+R:; <@> $@ list:; special case
+
+# do special header rewriting
+R$* <@> $* $@ $1 <@> $2 pass null host through
+R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
+R$* $: $>MasqSMTP $1 qualify unqual'ed names
+R$+ $: $>MasqHdr $1 do masquerading
+
+
+#
+# relay mailer header masquerading recipient rewriting
+#
+SMasqRelay
+R$+ $: $>MasqSMTP $1
+R$+ $: $>MasqHdr $1
+
+Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
+ T=DNS/RFC822/SMTP,
+ A=TCP $h
+
diff --git a/mail-mta/sendmail/files/sendmail.mc b/mail-mta/sendmail/files/sendmail.mc
new file mode 100644
index 000000000000..c351d4bcd20a
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail.mc
@@ -0,0 +1,30 @@
+divert(-1)
+#
+# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+# Copyright (c) 1983 Eric P. Allman. All rights reserved.
+# Copyright (c) 1988, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+
+#
+# This is a generic configuration file for Linux.
+# It has support for local and SMTP mail only. If you want to
+# customize it, copy it to a name appropriate for your environment
+# and do the modifications there.
+#
+
+divert(0)dnl
+include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
+VERSIONID(`$Id: sendmail.mc,v 1.1 2004/05/30 09:20:40 robbat2 Exp $')dnl
+OSTYPE(linux)dnl
+DOMAIN(generic)dnl
+FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
+FEATURE(`local_lmtp',`/usr/sbin/mail.local')dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
diff --git a/mail-mta/sendmail/files/site.config.m4 b/mail-mta/sendmail/files/site.config.m4
new file mode 100644
index 000000000000..f95857391f1c
--- /dev/null
+++ b/mail-mta/sendmail/files/site.config.m4
@@ -0,0 +1,15 @@
+define(`confCCOPTS', `@@confCCOPTS@@')
+define(`confMAPDEF', `@@confMAPDEF@@')
+define(`confENVDEF', `@@confENVDEF@@')
+define(`confLIBS', `@@confLIBS@@')
+define(`confSTDIO_TYPE', `portable')
+define(`confLDOPTS', `-s')
+define(`confMANOWN', `root')
+define(`confMANGRP', `root')
+define(`confMANMODE', `644')
+define(`confMAN1SRC', `1')
+define(`confMAN5SRC', `5')
+define(`confMAN8SRC', `8')
+define(`confLDOPTS_SO', `-shared -Wl')
+APPENDDEF(`conf_sendmail_ENVDEF', `@@conf_sendmail_ENVDEF@@')
+APPENDDEF(`conf_sendmail_LIBS', `@@conf_sendmail_LIBS@@')
diff --git a/mail-mta/sendmail/metadata.xml b/mail-mta/sendmail/metadata.xml
new file mode 100644
index 000000000000..7f0c39af38e6
--- /dev/null
+++ b/mail-mta/sendmail/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>net-mail</herd>
+<maintainer><email>gregf@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/mail-mta/sendmail/sendmail-8.12.10.ebuild b/mail-mta/sendmail/sendmail-8.12.10.ebuild
new file mode 100644
index 000000000000..fadbdf0ce4e1
--- /dev/null
+++ b/mail-mta/sendmail/sendmail-8.12.10.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/sendmail-8.12.10.ebuild,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+DESCRIPTION="Widely-used Mail Transport Agent (MTA)"
+HOMEPAGE="http://www.sendmail.org/"
+SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz"
+
+LICENSE="Sendmail"
+SLOT="0"
+KEYWORDS="x86 ppc sparc hppa amd64 alpha ia64"
+IUSE="ssl ldap sasl berkdb tcpd gdbm mbox"
+
+DEPEND="!amd64? ( net-dns/hesiod )
+ net-mail/mailbase
+ sys-libs/gdbm
+ sys-devel/m4
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.10 )
+ tcpd? ( sys-apps/tcp-wrappers )
+ ssl? ( dev-libs/openssl )
+ ldap? ( net-nds/openldap )
+ || (
+ gdbm? ( sys-libs/gdbm )
+ berkdb? ( >=sys-libs/db-3.2 )
+ sys-libs/gdbm
+ )"
+RDEPEND="${DEPEND}
+ >=net-mail/mailbase-0.00
+ !virtual/mta"
+PDEPEND="!mbox? ( net-mail/procmail )"
+PROVIDE="virtual/mta"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ confCCOPTS="${CFLAGS}"
+ confMAPDEF="-DNEWDB -DNIS -DMAP_REGEX"
+ confENVDEF="-DXDEBUG=0"
+ confLIBS="-lnsl -lcrypt"
+ conf_sendmail_ENVDEF="-DFALSE=0 -DTRUE=1"
+ conf_sendmail_LIBS=""
+ use sasl && confLIBS="${confLIBS} -lsasl2" \
+ && confENVDEF="${confENVDEF} -DSASL=2" \
+ && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSASL=2" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2"
+ use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \
+ && confLIBS="${confLIBS} -lwrap"
+ use ssl && confENVDEF="${confENVDEF} -DSTARTTLS" \
+ && confLIBS="${confLIBS} -lssl -lcrypto" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSTARTTLS" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto"
+ use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \
+ && confLIBS="${confLIBS} -lldap -llber"
+ if use gdbm || ! use berkdb ; then
+ confLIBS="${confLIBS} -lgdbm"
+ fi
+ sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \
+ -e "s/@@confMAPDEF@@/${confMAPDEF}/" \
+ -e "s/@@confENVDEF@@/${confENVDEF}/" \
+ -e "s/@@confLIBS@@/${confLIBS}/" \
+ -e "s/@@conf_sendmail_ENVDEF@@/${conf_sendmail_ENVDEF}/" \
+ -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \
+ ${FILESDIR}/site.config.m4 > ${S}/devtools/Site/site.config.m4
+}
+
+src_compile() {
+ for x in libmilter libsmutil sendmail mailstats rmail praliases smrsh makemap vacation mail.local
+ do
+ pushd ${x}
+ sh Build
+ popd
+ done
+}
+
+src_install () {
+ OBJDIR="obj.`uname -s`.`uname -r`.`arch`"
+ dodir /etc/pam.d /usr/bin /usr/include/libmilter /usr/lib
+ dodir /usr/share/man/man{1,5,8} /usr/sbin /var/log /usr/share/sendmail-cf
+ dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d
+ keepdir /var/spool/{clientmqueue,mqueue}
+ for dir in libmilter libsmutil sendmail mailstats praliases smrsh makemap vacation
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ for dir in rmail mail.local
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ force-install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ fowners root.smmsp /usr/sbin/sendmail
+ fowners smmsp.smmsp /var/spool/clientmqueue
+ fperms 770 /var/spool/clientmqueue
+ fperms 700 /var/spool/mqueue
+ dosym /usr/sbin/sendmail /usr/lib/sendmail
+ dosym /usr/sbin/makemap /usr/bin/makemap
+ dodoc FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc/op/op.ps
+ newdoc sendmail/README README.sendmail
+ newdoc sendmail/SECURITY SECURITY
+ newdoc sendmail/TUNING TUNING
+ newdoc smrsh/README README.smrsh
+ newdoc libmilter/README README.libmilter
+ newdoc cf/README README.cf
+ newdoc cf/cf/README README.install-cf
+ cp -a cf/* ${D}/usr/share/sendmail-cf
+ insinto /etc/mail
+ if [ -n "` use mbox `" ]
+ then
+ doins ${FILESDIR}/{sendmail.cf,sendmail.mc}
+ else
+ newins ${FILESDIR}/sendmail-procmail.cf sendmail.cf
+ newins ${FILESDIR}/sendmail-procmail.mc sendmail.mc
+ fi
+ echo "# local-host-names - include all aliases for your machine here" \
+ > ${D}/etc/mail/local-host-names
+ cat << EOF > ${D}/etc/mail/trusted-users
+# trusted-users - users that can send mail as others without a warning
+# apache, mailman, majordomo, uucp are good candidates
+EOF
+ cat << EOF > ${D}/etc/mail/access
+# Check the /usr/share/doc/sendmail/README.cf file for a description
+# of the format of this file. (search for access_db in that file)
+# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
+# package.
+#
+# by default we allow relaying from localhost...
+localhost.localdomain RELAY
+localhost RELAY
+127.0.0.1 RELAY
+
+EOF
+cat << EOF > ${D}/etc/conf.d/sendmail
+# Config file for /etc/init.d/sendmail
+# add start-up options here
+SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode
+CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue
+KILL_OPTS="" # add -9/-15/your favorite evil SIG level here
+
+EOF
+ exeinto /etc/init.d
+ doexe ${FILESDIR}/sendmail
+ mkdir -p ${D}/usr/adm/sm.bin/
+ touch ${D}/usr/adm/sm.bin/.keep
+}
+
+pkg_postinst() {
+
+ einfo "This ebuild uses mbox support by default. If you are"
+ einfo "looking for maildir support put -mbox into your USE variables."
+
+}
diff --git a/mail-mta/sendmail/sendmail-8.12.11-r1.ebuild b/mail-mta/sendmail/sendmail-8.12.11-r1.ebuild
new file mode 100644
index 000000000000..3808ba72c302
--- /dev/null
+++ b/mail-mta/sendmail/sendmail-8.12.11-r1.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/sendmail-8.12.11-r1.ebuild,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+DESCRIPTION="Widely-used Mail Transport Agent (MTA)"
+HOMEPAGE="http://www.sendmail.org/"
+SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz"
+
+LICENSE="Sendmail"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~hppa ~alpha ~ia64"
+IUSE="ssl ldap sasl berkdb tcpd gdbm mbox"
+
+DEPEND="net-dns/hesiod
+ net-mail/mailbase
+ sys-libs/gdbm
+ sys-devel/m4
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.10 )
+ tcpd? ( sys-apps/tcp-wrappers )
+ ssl? ( dev-libs/openssl )
+ ldap? ( net-nds/openldap )
+ || (
+ gdbm? ( sys-libs/gdbm )
+ berkdb? ( >=sys-libs/db-3.2 )
+ sys-libs/gdbm
+ )"
+RDEPEND="${DEPEND}
+ >=net-mail/mailbase-0.00
+ net-mail/mailwrapper"
+PDEPEND="!mbox? ( net-mail/procmail )"
+PROVIDE="virtual/mta"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ confCCOPTS="${CFLAGS}"
+ confMAPDEF="-DNEWDB -DNIS -DMAP_REGEX"
+ confENVDEF="-DXDEBUG=0"
+ confLIBS="-lnsl -lcrypt"
+ conf_sendmail_ENVDEF="-DFALSE=0 -DTRUE=1"
+ conf_sendmail_LIBS=""
+ use sasl && confLIBS="${confLIBS} -lsasl2" \
+ && confENVDEF="${confENVDEF} -DSASL=2" \
+ && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSASL=2" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2"
+ use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \
+ && confLIBS="${confLIBS} -lwrap"
+ use ssl && confENVDEF="${confENVDEF} -DSTARTTLS" \
+ && confLIBS="${confLIBS} -lssl -lcrypto" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSTARTTLS" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto"
+ use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \
+ && confLIBS="${confLIBS} -lldap -llber"
+ if use gdbm || ! use berkdb ; then
+ confLIBS="${confLIBS} -lgdbm"
+ fi
+ sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \
+ -e "s/@@confMAPDEF@@/${confMAPDEF}/" \
+ -e "s/@@confENVDEF@@/${confENVDEF}/" \
+ -e "s/@@confLIBS@@/${confLIBS}/" \
+ -e "s/@@conf_sendmail_ENVDEF@@/${conf_sendmail_ENVDEF}/" \
+ -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \
+ ${FILESDIR}/site.config.m4 > ${S}/devtools/Site/site.config.m4
+}
+
+src_compile() {
+ for x in libmilter libsmutil sendmail mailstats rmail praliases smrsh makemap vacation mail.local
+ do
+ pushd ${x}
+ sh Build
+ popd
+ done
+}
+
+src_install () {
+ OBJDIR="obj.`uname -s`.`uname -r`.`arch`"
+ dodir /etc/pam.d /usr/bin /usr/include/libmilter /usr/lib
+ dodir /usr/share/man/man{1,5,8} /usr/sbin /var/log /usr/share/sendmail-cf
+ dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d
+ keepdir /var/spool/{clientmqueue,mqueue}
+ for dir in libmilter libsmutil sendmail mailstats praliases smrsh makemap vacation
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ for dir in rmail mail.local
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ force-install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ mv ${D}/usr/sbin/sendmail ${D}/usr/sbin/sendmail.sendmail
+ fowners root:smmsp /usr/sbin/sendmail.sendmail
+ fowners smmsp:smmsp /var/spool/clientmqueue
+ fperms 2555 /usr/sbin/sendmail.sendmail
+ fperms 770 /var/spool/clientmqueue
+ fperms 700 /var/spool/mqueue
+ dosym /usr/sbin/sendmail /usr/lib/sendmail
+ dosym /usr/sbin/makemap /usr/bin/makemap
+ dodoc FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc/op/op.ps
+ newdoc sendmail/README README.sendmail
+ newdoc sendmail/SECURITY SECURITY
+ newdoc sendmail/TUNING TUNING
+ newdoc smrsh/README README.smrsh
+ newdoc libmilter/README README.libmilter
+ newdoc cf/README README.cf
+ newdoc cf/cf/README README.install-cf
+ cp -a cf/* ${D}/usr/share/sendmail-cf
+ insinto /etc
+ doins ${FILESDIR}/mailer.conf
+ insinto /etc/mail
+ if [ -n "` use mbox `" ]
+ then
+ doins ${FILESDIR}/{sendmail.cf,sendmail.mc}
+ else
+ newins ${FILESDIR}/sendmail-procmail.cf sendmail.cf
+ newins ${FILESDIR}/sendmail-procmail.mc sendmail.mc
+ fi
+ echo "# local-host-names - include all aliases for your machine here" \
+ > ${D}/etc/mail/local-host-names
+ cat << EOF > ${D}/etc/mail/trusted-users
+# trusted-users - users that can send mail as others without a warning
+# apache, mailman, majordomo, uucp are good candidates
+EOF
+ cat << EOF > ${D}/etc/mail/access
+# Check the /usr/share/doc/sendmail/README.cf file for a description
+# of the format of this file. (search for access_db in that file)
+# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
+# package.
+#
+# by default we allow relaying from localhost...
+localhost.localdomain RELAY
+localhost RELAY
+127.0.0.1 RELAY
+
+EOF
+cat << EOF > ${D}/etc/conf.d/sendmail
+# Config file for /etc/init.d/sendmail
+# add start-up options here
+SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode
+CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue
+KILL_OPTS="" # add -9/-15/your favorite evil SIG level here
+
+EOF
+ exeinto /etc/init.d
+ doexe ${FILESDIR}/sendmail
+ dosed 's/} sendmail/} sendmail.sendmail/' /etc/init.d/sendmail
+ keepdir /usr/adm/sm.bin
+}
+
diff --git a/mail-mta/sendmail/sendmail-8.12.11-r2.ebuild b/mail-mta/sendmail/sendmail-8.12.11-r2.ebuild
new file mode 100644
index 000000000000..ee788fdebec2
--- /dev/null
+++ b/mail-mta/sendmail/sendmail-8.12.11-r2.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/sendmail-8.12.11-r2.ebuild,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+DESCRIPTION="Widely-used Mail Transport Agent (MTA)"
+HOMEPAGE="http://www.sendmail.org/"
+SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz"
+
+LICENSE="Sendmail"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~hppa ~alpha ~ia64 s390"
+IUSE="ssl ldap sasl tcpd mbox milter"
+
+DEPEND="net-mail/mailbase
+ sys-devel/m4
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.10 )
+ tcpd? ( sys-apps/tcp-wrappers )
+ ssl? ( dev-libs/openssl )
+ ldap? ( net-nds/openldap )
+ >=sys-libs/db-3.2
+ "
+RDEPEND="${DEPEND}
+ >=net-mail/mailbase-0.00
+ net-mail/mailwrapper"
+PDEPEND="!mbox? ( net-mail/procmail )"
+PROVIDE="virtual/mta"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ confCCOPTS="${CFLAGS}"
+ confMAPDEF="-DMAP_REGEX"
+ conf_sendmail_LIBS=""
+ use sasl && confLIBS="${confLIBS} -lsasl2" \
+ && confENVDEF="${confENVDEF} -DSASL=2" \
+ && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSASL=2" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2"
+ use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \
+ && confLIBS="${confLIBS} -lwrap"
+ use ssl && confENVDEF="${confENVDEF} -DSTARTTLS" \
+ && confLIBS="${confLIBS} -lssl -lcrypto" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSTARTTLS" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto"
+ use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \
+ && confLIBS="${confLIBS} -lldap -llber"
+ use milter && confENVDEF="${confENVDEF} -DMILTER"
+ sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \
+ -e "s/@@confMAPDEF@@/${confMAPDEF}/" \
+ -e "s/@@confENVDEF@@/${confENVDEF}/" \
+ -e "s/@@confLIBS@@/${confLIBS}/" \
+ -e "s/@@conf_sendmail_ENVDEF@@/${conf_sendmail_ENVDEF}/" \
+ -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \
+ ${FILESDIR}/site.config.m4 > ${S}/devtools/Site/site.config.m4
+}
+
+src_compile() {
+ sh Build
+
+ if [ -n "` use milter `" ]
+ then
+ pushd libmilter
+ sh Build
+ popd
+ fi
+}
+
+src_install () {
+ OBJDIR="obj.`uname -s`.`uname -r`.`arch`"
+ dodir /etc/pam.d /usr/bin /usr/lib
+ dodir /usr/share/man/man{1,5,8} /usr/sbin /var/log /usr/share/sendmail-cf
+ dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d
+ keepdir /var/spool/{clientmqueue,mqueue}
+ for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ for dir in rmail mail.local
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ force-install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+
+ if [ -n "` use milter `" ]
+ then
+ dodir /usr/include/libmilter
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ install -C ${OBJDIR}/libmilter \
+ || die "install failed"
+ fi
+
+ mv ${D}/usr/sbin/sendmail ${D}/usr/sbin/sendmail.sendmail
+ fowners root:smmsp /usr/sbin/sendmail.sendmail
+ fowners smmsp:smmsp /var/spool/clientmqueue
+ fperms 2555 /usr/sbin/sendmail.sendmail
+ fperms 770 /var/spool/clientmqueue
+ fperms 700 /var/spool/mqueue
+ dosym /usr/sbin/sendmail /usr/lib/sendmail
+ dosym /usr/sbin/makemap /usr/bin/makemap
+ dodoc FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc/op/op.ps
+ newdoc sendmail/README README.sendmail
+ newdoc sendmail/SECURITY SECURITY
+ newdoc sendmail/TUNING TUNING
+ newdoc smrsh/README README.smrsh
+
+ if [ -n "` use milter `" ]
+ then
+ newdoc libmilter/README README.libmilter
+ fi
+
+ newdoc cf/README README.cf
+ newdoc cf/cf/README README.install-cf
+ cp -a cf/* ${D}/usr/share/sendmail-cf
+ insinto /etc/mail
+ if [ -n "` use mbox `" ]
+ then
+ doins ${FILESDIR}/{sendmail.cf,sendmail.mc}
+ else
+ newins ${FILESDIR}/sendmail-procmail.cf sendmail.cf
+ newins ${FILESDIR}/sendmail-procmail.mc sendmail.mc
+ fi
+ echo "# local-host-names - include all aliases for your machine here" \
+ > ${D}/etc/mail/local-host-names
+ cat << EOF > ${D}/etc/mail/trusted-users
+# trusted-users - users that can send mail as others without a warning
+# apache, mailman, majordomo, uucp are good candidates
+EOF
+ cat << EOF > ${D}/etc/mail/access
+# Check the /usr/share/doc/sendmail/README.cf file for a description
+# of the format of this file. (search for access_db in that file)
+# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
+# package.
+#
+
+EOF
+cat << EOF > ${D}/etc/conf.d/sendmail
+# Config file for /etc/init.d/sendmail
+# add start-up options here
+SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode
+CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue
+KILL_OPTS="" # add -9/-15/your favorite evil SIG level here
+
+EOF
+ exeinto /etc/init.d
+ doexe ${FILESDIR}/sendmail
+ dosed 's/} sendmail/} sendmail.sendmail/' /etc/init.d/sendmail
+ keepdir /usr/adm/sm.bin
+}
diff --git a/mail-mta/sendmail/sendmail-8.12.11.ebuild b/mail-mta/sendmail/sendmail-8.12.11.ebuild
new file mode 100644
index 000000000000..5864189e4ecd
--- /dev/null
+++ b/mail-mta/sendmail/sendmail-8.12.11.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/sendmail/sendmail-8.12.11.ebuild,v 1.1 2004/05/30 09:20:40 robbat2 Exp $
+
+DESCRIPTION="Widely-used Mail Transport Agent (MTA)"
+HOMEPAGE="http://www.sendmail.org/"
+SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz"
+
+LICENSE="Sendmail"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~hppa ~alpha ~ia64"
+IUSE="ssl ldap sasl berkdb tcpd gdbm mbox"
+
+DEPEND="net-dns/hesiod
+ net-mail/mailbase
+ sys-libs/gdbm
+ sys-devel/m4
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.10 )
+ tcpd? ( sys-apps/tcp-wrappers )
+ ssl? ( dev-libs/openssl )
+ ldap? ( net-nds/openldap )
+ || (
+ gdbm? ( sys-libs/gdbm )
+ berkdb? ( >=sys-libs/db-3.2 )
+ sys-libs/gdbm
+ )"
+RDEPEND="${DEPEND}
+ >=net-mail/mailbase-0.00
+ !virtual/mta"
+PDEPEND="!mbox? ( net-mail/procmail )"
+PROVIDE="virtual/mta"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ confCCOPTS="${CFLAGS}"
+ confMAPDEF="-DNEWDB -DNIS -DMAP_REGEX"
+ confENVDEF="-DXDEBUG=0"
+ confLIBS="-lnsl -lcrypt"
+ conf_sendmail_ENVDEF="-DFALSE=0 -DTRUE=1"
+ conf_sendmail_LIBS=""
+ use sasl && confLIBS="${confLIBS} -lsasl2" \
+ && confENVDEF="${confENVDEF} -DSASL=2" \
+ && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSASL=2" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2"
+ use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \
+ && confLIBS="${confLIBS} -lwrap"
+ use ssl && confENVDEF="${confENVDEF} -DSTARTTLS" \
+ && confLIBS="${confLIBS} -lssl -lcrypto" \
+ && conf_sendmail_ENVDEF="${conf_sendmail_ENVDEF} -DSTARTTLS" \
+ && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto"
+ use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \
+ && confLIBS="${confLIBS} -lldap -llber"
+ if use gdbm || ! use berkdb ; then
+ confLIBS="${confLIBS} -lgdbm"
+ fi
+ sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \
+ -e "s/@@confMAPDEF@@/${confMAPDEF}/" \
+ -e "s/@@confENVDEF@@/${confENVDEF}/" \
+ -e "s/@@confLIBS@@/${confLIBS}/" \
+ -e "s/@@conf_sendmail_ENVDEF@@/${conf_sendmail_ENVDEF}/" \
+ -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \
+ ${FILESDIR}/site.config.m4 > ${S}/devtools/Site/site.config.m4
+}
+
+src_compile() {
+ for x in libmilter libsmutil sendmail mailstats rmail praliases smrsh makemap vacation mail.local
+ do
+ pushd ${x}
+ sh Build
+ popd
+ done
+}
+
+src_install () {
+ OBJDIR="obj.`uname -s`.`uname -r`.`arch`"
+ dodir /etc/pam.d /usr/bin /usr/include/libmilter /usr/lib
+ dodir /usr/share/man/man{1,5,8} /usr/sbin /var/log /usr/share/sendmail-cf
+ dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d
+ keepdir /var/spool/{clientmqueue,mqueue}
+ for dir in libmilter libsmutil sendmail mailstats praliases smrsh makemap vacation
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ for dir in rmail mail.local
+ do
+ make DESTDIR=${D} MANROOT=/usr/share/man/man \
+ SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \
+ MANOWN=root MANGRP=root INCOWN=root INCGRP=root \
+ LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \
+ MSPQOWN=root CFOWN=root CFGRP=root \
+ force-install -C ${OBJDIR}/${dir} \
+ || die "install failed"
+ done
+ fowners root.smmsp /usr/sbin/sendmail
+ fowners smmsp.smmsp /var/spool/clientmqueue
+ fperms 770 /var/spool/clientmqueue
+ fperms 700 /var/spool/mqueue
+ dosym /usr/sbin/sendmail /usr/lib/sendmail
+ dosym /usr/sbin/makemap /usr/bin/makemap
+ dodoc FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc/op/op.ps
+ newdoc sendmail/README README.sendmail
+ newdoc sendmail/SECURITY SECURITY
+ newdoc sendmail/TUNING TUNING
+ newdoc smrsh/README README.smrsh
+ newdoc libmilter/README README.libmilter
+ newdoc cf/README README.cf
+ newdoc cf/cf/README README.install-cf
+ cp -a cf/* ${D}/usr/share/sendmail-cf
+ insinto /etc/mail
+ if [ -n "` use mbox `" ]
+ then
+ doins ${FILESDIR}/{sendmail.cf,sendmail.mc}
+ else
+ newins ${FILESDIR}/sendmail-procmail.cf sendmail.cf
+ newins ${FILESDIR}/sendmail-procmail.mc sendmail.mc
+ fi
+ echo "# local-host-names - include all aliases for your machine here" \
+ > ${D}/etc/mail/local-host-names
+ cat << EOF > ${D}/etc/mail/trusted-users
+# trusted-users - users that can send mail as others without a warning
+# apache, mailman, majordomo, uucp are good candidates
+EOF
+ cat << EOF > ${D}/etc/mail/access
+# Check the /usr/share/doc/sendmail/README.cf file for a description
+# of the format of this file. (search for access_db in that file)
+# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
+# package.
+#
+# by default we allow relaying from localhost...
+localhost.localdomain RELAY
+localhost RELAY
+127.0.0.1 RELAY
+
+EOF
+cat << EOF > ${D}/etc/conf.d/sendmail
+# Config file for /etc/init.d/sendmail
+# add start-up options here
+SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode
+CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue
+KILL_OPTS="" # add -9/-15/your favorite evil SIG level here
+
+EOF
+ exeinto /etc/init.d
+ doexe ${FILESDIR}/sendmail
+ mkdir -p ${D}/usr/adm/sm.bin/
+ touch ${D}/usr/adm/sm.bin/.keep
+}
+
+pkg_postinst() {
+
+ einfo "This ebuild uses mbox support by default. If you are"
+ einfo "looking for maildir support put -mbox into your USE variables."
+
+}