--- /dev/null
+#
+# @(#)aliases 8.2 (Berkeley) 3/5/94
+#
+# Aliases in this file will NOT be expanded in the header from
+# Mail, but WILL be visible over networks or from /bin/mail.
+#
+# >>>>>>>>>> The program "newaliases" must be run after
+# >> NOTE >> this file is updated for any changes to
+# >>>>>>>>>> show through to sendmail.
+#
+
+# Basic system aliases -- these MUST be present.
+mailer-daemon: postmaster
+postmaster: root
+
+# General redirections for pseudo accounts.
+bin: root
+daemon: root
+adm: root
+lp: root
+sync: root
+shutdown: root
+halt: root
+mail: root
+news: root
+uucp: root
+operator: root
+games: root
+gopher: root
+ftp: root
+nobody: root
+apache: root
+named: root
+xfs: root
+gdm: root
+mailnull: root
+postgres: root
+squid: root
+
+ingres: root
+system: root
+toor: root
+manager: root
+dumper: root
+abuse: root
+
+newsadm: news
+newsadmin: news
+usenet: news
+ftpadm: ftp
+ftpadmin: ftp
+ftp-adm: ftp
+ftp-admin: ftp
+
+# trap decode to catch security attacks
+decode: root
+
+# Person who should get root's mail
+#root: marc
+++ /dev/null
---- sendmail-8.10.0/makemap/makemap.8.makemapn Fri Jul 30 02:15:31 1999
-+++ sendmail-8.10.0/makemap/makemap.8 Thu Mar 9 13:16:58 2000
-@@ -40,12 +40,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
+++ /dev/null
---- sendmail-8.10.0/devtools/OS/Linux.redhat Mon Dec 27 16:54:08 1999
-+++ sendmail-8.10.0/devtools/OS/Linux Thu Mar 9 15:37:12 2000
-@@ -1,9 +1,13 @@
- # $Id$
-+
- define(`confDEPEND_TYPE', `CC-M')
- define(`confMANROOT', `/usr/man/man')
- define(`confLIBS', `-ldl')
- define(`confEBINDIR', `/usr/sbin')
-+define(`confSTDIR', `/var/log')
- APPENDDEF(`confLIBSEARCH', `crypt nsl')
-
- define(`confMTLDOPTS', `-lpthread')
- define(`confLDOPTS_SO', `-shared')
-+define('confSBINGRP', 'mail')
-+define('confSBINMODE', '6755')
---- sendmail-8.10.0/sendmail/daemon.c.redhat Thu Mar 2 01:58:02 2000
-+++ sendmail-8.10.0/sendmail/daemon.c Thu Mar 9 15:08:16 2000
-@@ -2499,7 +2499,7 @@
-
- /* get result */
- p = &ibuf[0];
-- nleft = sizeof ibuf - 1;
-+ nleft = sizeof(ibuf) - 1;
- while ((i = read(s, p, nleft)) > 0)
- {
- p += i;
+++ /dev/null
---- sendmail-8.10.0/smrsh/README.smrsh Tue Apr 27 22:26:10 1999
-+++ sendmail-8.10.0/smrsh/README Thu Mar 9 13:21:10 2000
-@@ -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 Software 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.
-
-
--You will next need to create the directory /usr/adm/sm.bin and populate
-+You will 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.10.0/smrsh/smrsh.8.smrsh Tue Jun 15 00:50:19 1999
-+++ sendmail-8.10.0/smrsh/smrsh.8 Thu Mar 9 13:21:40 2000
-@@ -38,7 +38,7 @@
- Briefly,
- .I smrsh
- limits programs to be in the directory
--/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
-@@ -55,10 +55,10 @@
- and
- ``vacation''
- all actually forward to
--``/usr/adm/sm.bin/vacation''.
-+``/etc/smrsh/vacation''.
- .PP
- System administrators should be conservative about populating
--/usr/adm/sm.bin.
-+/etc/smrsh
- Reasonable additions are
- .IR vacation (1),
- .IR procmail (1),
-@@ -68,20 +68,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);
-+in the /etc/smrsh 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 \-DPATH=\e"\fIpath\fP\e"
--to adjust the default search path
--(defaults to ``/bin:/usr/bin:/usr/ucb'')
--and/or \-DCMDBIN=\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.10.0/smrsh/smrsh.c.smrsh2 Tue Oct 26 22:49:51 1999
-+++ sendmail-8.10.0/smrsh/smrsh.c Thu Mar 9 13:28:37 2000
-@@ -76,7 +76,7 @@
-
- /* directory in which all commands must reside */
- #ifndef CMDDIR
--# define CMDDIR "/usr/adm/sm.bin"
-+# define CMDDIR "/etc/smrsh"
- #endif /* ! CMDDIR */
-
- /* characters disallowed in the shell "-c" argument */
-@@ -84,7 +84,7 @@
-
- /* default search path */
- #ifndef PATH
--# define PATH "/bin:/usr/bin:/usr/ucb"
-+# define PATH "/bin:/usr/bin:"
- #endif /* ! PATH */
-
- #ifndef __P
+++ /dev/null
---- sendmail-8.8.7/rmail/rmail.c.rmail Mon Feb 9 14:30:13 1998
-+++ sendmail-8.8.7/rmail/rmail.c Mon Feb 9 14:30:42 1998
-@@ -232,7 +232,6 @@
- i = 0;
- args[i++] = _PATH_SENDMAIL; /* Build sendmail's argument list. */
- 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 */
+++ /dev/null
-# /etc/mail/access
-# Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
-# Time-stamp: <1998/10/27 10:00:00 cowboy>
-# GPL'd config file, please feed any gripes, suggestions, etc. to me
-#
-# Function:
-# Access Control for this smtp server - determines:
-# * Who we accept mail from
-# * Who we accept relaying from
-# * Who we will not send to
-#
-# Usage:
-# FEATURE(access_db[, type [-o] /etc/mail/access])dnl
-# makemap hash access < access
-#
-# Format:
-# lhs:
-# email addr <user@[host.domain]>
-# domain name unless FEATURE(relay_hosts_only) is used,
-# then this is a fqdn - and relay-domains ($=R)
-# must also be fqdns.
-# network number must end on an octet boundary, or
-# you're stuck going the longwinded way ;-{
-# rhs:
-# OK accept mail even if other rules in the
-# running ruleset would reject it.
-# RELAY Allow domain to relay through your SMTP
-# server. RELAY also serves an implicit
-# OK for the other checks.
-# REJECT reject the sender/recipient with a general
-# purpose message that can be customized.
-# confREJECT_MSG [550 Access denied] will be issued
-# DISCARD discard the message completely using
-# the $#discard mailer.
-# ### any text where ### is an RFC 821 compliant error code
-# and "any text" is a message to return for
-# the command
-# Examples:
-# spammer@aol.com REJECT
-# FREE.STEALTH.MAILER@ 550 Spam not accepted
-#
-# Notes:
-# With FEATURE(blacklist_recipients) this is also possible:
-# badlocaluser 550 Mailbox disabled for this username
-# host.mydomain.com 550 That host does not accept mail
-# user@otherhost.mydomain.com 550 Mailbox disabled for this recipient
-#
-# Related:
-# define(`confREJECT_MSG', `550 Access denied')dnl
-# define(`confCR_FILE', `-o /etc/mail/relay-domains')dnl <<- $=R
-# FEATURE(relay_hosts_only)dnl
-# FEATURE(relay_entire_domain)dnl <<- relays any host in the $=m class
-# FEATURE(relay_based_on_MX)dnl <<- relaying for boxes MX'd to you
-# FEATURE(blacklist_recipients)dnl
-# FEATURE(rbl[,alternate server])dnl
-# FEATURE(orbs[,alternate server])dnl <<- Debian addition
-# FEATURE(orca[,alternate server])dnl <<- Debian addition
-# FEATURE(accept_unqualified_senders)dnl
-# FEATURE(accept_unresolvable_domains)dnl
-#
-# Local addresses 10.x.x.x, 127.x.x.x, 172.16-31.x.x 192.168.x.x can relay
-# Note Well! You *must* make sure these address can't be spoofed externally
-10 RELAY
-127 RELAY
-172.16 RELAY
-172.17 RELAY
-172.18 RELAY
-172.19 RELAY
-172.20 RELAY
-172.21 RELAY
-172.22 RELAY
-172.23 RELAY
-172.24 RELAY
-172.25 RELAY
-172.26 RELAY
-172.27 RELAY
-172.28 RELAY
-172.29 RELAY
-172.30 RELAY
-172.31 RELAY
-192.168 RELAY
-#
-# Hosts that are allowed to talk to me
-#
-#
-# Blacklisted users
-#
-reject@ REJECT
--- /dev/null
+
+The sendmail 8.9.3 patch:
+
+--- sendmail/sendmail/main.c~orig Sat Jan 9 15:31:13 1999
++++ sendmail/sendmail/main.c Wed Nov 17 19:04:44 1999
+@@ -984,6 +984,18 @@
+ usrerr("Permission denied");
+ finis(FALSE, EX_USAGE);
+ }
++ if (OpMode == MD_INITALIAS &&
++ RealUid != 0 &&
++ RealUid != TrustedUid &&
++ !wordinclass(RealUserName, 't'))
++ {
++ if (LogLevel > 1)
++ sm_syslog(LOG_ALERT, NOQID,
++ "user %d attempted to rebuild the alias map",
++ RealUid);
++ usrerr("Permission denied");
++ finis(FALSE, EX_USAGE);
++ }
+
+ if (MeToo)
+ BlankEnvelope.e_flags |= EF_METOO;
+
--- /dev/null
+--- sendmail.mc Sun Aug 12 21:27:16 2001
++++ sendmail.mc Tue Jan 22 17:35:09 2002
+@@ -20,8 +20,8 @@
+ define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
+ define('ALIAS_FILE','/etc/mail/aliases')
+ define(`confPRIVACY_FLAGS',`novrfy,noexpn')
+-TRUST_AUTH_MECH(`PLAIN GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5')
+-define(`confAUTH_MECHANISMS',`PLAIN GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5')
++TRUST_AUTH_MECH(`LOGIN PLAIN GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5')
++define(`confAUTH_MECHANISMS',`LOGIN PLAIN GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5')
+ FEATURE(`smrsh',`/usr/sbin/smrsh')
+ FEATURE(`mailertable',`hash -o /etc/mail/mailertable')
+ FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
+@@ -41,3 +41,4 @@
+ dnl FEATURE(`relay_based_on_MX')
+ MAILER(smtp)
+ MAILER(procmail)
++define(`confPRIVACY_FLAGS', `restrictqrun,authwarnings,needmailhelo,needexpnhelo,noexpn,needvrfyhelo,novrfy,noetrn,noverb,authwarnings,goaway')
+++ /dev/null
-# /etc/mail/domaintable
-# Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
-# Time-stamp: <1998/10/27 10:00:00 cowboy>
-# GPL'd config file, please feed any gripes, suggestions, etc. to me
-#
-# Function:
-# Specify a mapping from old host name to new host name.
-# Commonly used to support old (or merged) domain names.
-# The host name in the lhs will be rewritten to that in the rhs
-#
-# Usage:
-# FEATURE(domaintable[, type [-o] /etc/mail/domaintable])dnl
-# makemap hash domaintable < domaintable
-#
-# Format:
-# old fqdn new fqdn
-#
-# Examples:
-# debian.com debian.org
-# .debian.com %0.debian.org
-#
-# Notes:
-#
-# Related:
-#
-#.cv.lexington.ibm.com %0.lexington.ibm.com
--- /dev/null
+diff -Nur sendmail-8.12.0.orig/sendmail/conf.c sendmail-8.12.0/sendmail/conf.c
+--- sendmail-8.12.0.orig/sendmail/conf.c Wed Sep 5 00:43:02 2001
++++ sendmail-8.12.0/sendmail/conf.c Mon Sep 24 10:01:52 2001
+@@ -326,6 +326,8 @@
+ DontLockReadFiles = true;
+ DontProbeInterfaces = DPI_PROBEALL;
+ DoubleBounceAddr = "postmaster";
++ DetectTelnet = 0;
++ ExitOnTelnet = 1;
+ MaxHeadersLength = MAXHDRSLEN;
+ MaxForwardEntries = 0;
+ FastSplit = 1;
+diff -Nur sendmail-8.12.0.orig/sendmail/err.c sendmail-8.12.0/sendmail/err.c
+--- sendmail-8.12.0.orig/sendmail/err.c Wed Sep 5 00:43:03 2001
++++ sendmail-8.12.0/sendmail/err.c Mon Sep 24 10:02:57 2001
+@@ -909,15 +909,17 @@
+ (void) sm_strlcpyn(eb, spaceleft, 2,
+ shortenstring(to, MAXSHORTSTR), "... ");
+ spaceleft -= strlen(eb);
+- while (*eb != '\0')
+- *eb++ &= 0177;
++ if(!DetectTelnet)
++ while (*eb != '\0')
++ *eb++ &= 0177;
+ }
+
+ /* output the message */
+ (void) sm_vsnprintf(eb, spaceleft, fmt, ap);
+ spaceleft -= strlen(eb);
+- while (*eb != '\0')
+- *eb++ &= 0177;
++ if(!DetectTelnet)
++ while (*eb != '\0')
++ *eb++ &= 0177;
+
+ /* output the error code, if any */
+ if (eno != 0)
+diff -Nur sendmail-8.12.0.orig/sendmail/readcf.c sendmail-8.12.0/sendmail/readcf.c
+--- sendmail-8.12.0.orig/sendmail/readcf.c Wed Sep 5 00:43:05 2001
++++ sendmail-8.12.0/sendmail/readcf.c Mon Sep 24 10:06:43 2001
+@@ -2039,6 +2039,10 @@
+ # define O_SOFTBOUNCE 0xcf
+ { "SoftBounce", O_SOFTBOUNCE, OI_NONE },
+ #endif /* _FFR_SOFT_BOUNCE */
++#define O_DETECTTELNET 0xd0
++ { "DetectTelnet", O_DETECTTELNET, OI_NONE },
++#define O_EXITONTELNET 0xd1
++ { "ExitOnTelnet", O_EXITONTELNET, OI_NONE },
+ { NULL, '\0', OI_NONE }
+ };
+
+@@ -3462,6 +3466,14 @@
+ break;
+ #endif /* _FFR_SOFT_BOUNCE */
+
++ case O_DETECTTELNET: /* detect telnet */
++ DetectTelnet = atobool(val);
++ break;
++
++ case O_EXITONTELNET: /* exit if telnet detected */
++ ExitOnTelnet = atobool(val);
++ break;
++
+ default:
+ if (tTd(37, 1))
+ {
+diff -Nur sendmail-8.12.0.orig/sendmail/sendmail.h sendmail-8.12.0/sendmail/sendmail.h
+--- sendmail-8.12.0.orig/sendmail/sendmail.h Wed Sep 5 00:43:05 2001
++++ sendmail-8.12.0/sendmail/sendmail.h Mon Sep 24 10:01:52 2001
+@@ -2074,6 +2074,8 @@
+ EXTERN bool WorkAroundBrokenAAAA; /* some nameservers return SERVFAIL on AAAA queries */
+ EXTERN bool UseErrorsTo; /* use Errors-To: header (back compat) */
+ EXTERN bool UseNameServer; /* using DNS -- interpret h_errno & MX RRs */
++EXTERN bool DetectTelnet; /* force telnet detection on/off */
++EXTERN bool ExitOnTelnet; /* exit if telnet detected */
+ EXTERN char InetMode; /* default network for daemon mode */
+ EXTERN char OpMode; /* operation mode, see below */
+ EXTERN char SpaceSub; /* substitution for <lwsp> */
+diff -Nur sendmail-8.12.0.orig/sendmail/srvrsmtp.c sendmail-8.12.0/sendmail/srvrsmtp.c
+--- sendmail-8.12.0.orig/sendmail/srvrsmtp.c Wed Sep 5 00:43:06 2001
++++ sendmail-8.12.0/sendmail/srvrsmtp.c Mon Sep 24 10:09:38 2001
+@@ -12,6 +12,7 @@
+ */
+
+ #include <sendmail.h>
++#include <arpa/telnet.h>
+ #if MILTER
+ # include <libmilter/mfdef.h>
+ #endif /* MILTER */
+@@ -369,6 +370,9 @@
+ char *args[MAXSMTPARGS];
+ char inp[MAXLINE];
+ char cmdbuf[MAXLINE];
++ char telnet_request[] = {IAC, DO, TELOPT_SGA, 0};
++ char telnet_response[] = {IAC, WILL, TELOPT_SGA, 0};
++ char *telnet_tmp;
+ #if SASL
+ sasl_conn_t *conn;
+ volatile bool sasl_ok;
+@@ -666,12 +669,8 @@
+ id = strchr(inp, ' ');
+ if (id == NULL)
+ id = &inp[strlen(inp)];
+- if (p == NULL)
+- (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
+- "%s %%.*s ESMTP%%s", greetcode);
+- else
+- (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
+- "%s-%%.*s ESMTP%%s", greetcode);
++ sm_snprintf(cmdbuf, sizeof cmdbuf, "%s%c%%.*s ESMTP%%s%s", greetcode,
++ (p == NULL) ? ' ' : '-', DetectTelnet ? telnet_request : "");
+ message(cmdbuf, (int) (id - inp), inp, id);
+
+ /* output remaining lines */
+@@ -764,6 +763,20 @@
+ goto doquit;
+ }
+
++ if (DetectTelnet && strlen(inp) >= 3)
++ for (telnet_tmp = inp; *(telnet_tmp+2); telnet_tmp++)
++ if (!strncmp(telnet_tmp, telnet_response, 3))
++ {
++ sm_syslog(LOG_NOTICE, e->e_id,
++ "telnet detected from %.100s (%.100s)",
++ CurSmtpClient, anynet_ntoa(&RealHostAddr));
++ if (ExitOnTelnet)
++ {
++ message("571 Unauthorized usage prohibited");
++ goto doquit;
++ }
++ }
++
+ #if _FFR_ADAPTIVE_EOL
+ if (first)
+ {
--- /dev/null
+--- sendmail-8.11.2/sendmail/queue.c.fix Wed Feb 14 13:13:12 2001
++++ sendmail-8.11.2/sendmail/queue.c Wed Feb 14 13:20:49 2001
+@@ -3013,7 +3013,7 @@
+ return;
+ }
+
+- if (NumQueues == 1)
++ if (NumQueues <= 1)
+ idx = 0;
+ else
+ {
--- /dev/null
+diff -Nur sendmail-8.11.2.orig/sendmail/conf.c sendmail-8.11.2/sendmail/conf.c
+--- sendmail-8.11.2.orig/sendmail/conf.c Thu Jan 4 21:46:38 2001
++++ sendmail-8.11.2/sendmail/conf.c Thu Jan 4 21:45:27 2001
+@@ -4329,7 +4329,7 @@
+ ** Support IPv6 as well as IPv4.
+ */
+
+-#if NETINET6 && NEEDSGETIPNODE && __RES < 19990909
++#if NETINET6 && NEEDSGETIPNODE && (__RES < 19990909 || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2))
+
+ # ifndef AI_DEFAULT
+ # define AI_DEFAULT 0 /* dummy */
+diff -Nur sendmail-8.11.2.orig/sendmail/conf.h sendmail-8.11.2/sendmail/conf.h
+--- sendmail-8.11.2.orig/sendmail/conf.h Sat Dec 16 00:18:40 2000
++++ sendmail-8.11.2/sendmail/conf.h Thu Jan 4 21:42:42 2001
+@@ -1459,7 +1459,7 @@
+ # else /* (GLIBC_VERSION >= 0x201) */
+ # include <linux/in6.h> /* IPv6 support */
+ # endif /* (GLIBC_VERSION >= 0x201) */
+-# if (GLIBC_VERSION == 0x201 && !defined(NEEDSGETIPNODE))
++# if ((GLIBC_VERSION == 0x201 || GLIBC_VERSION == 0x202) && !defined(NEEDSGETIPNODE))
+ /* Have APIs in <netdb.h>, but no support in glibc */
+ # define NEEDSGETIPNODE 1
+ # endif /* (GLIBC_VERSION == 0x201 && ! NEEDSGETIPNODE) */
+++ /dev/null
-diff -Nur sendmail-8.9.3/cf/m4/proto.m4 sendmail-8.9.3.pld/cf/m4/proto.m4
---- sendmail-8.9.3/cf/m4/proto.m4 Wed Feb 3 00:21:30 1999
-+++ sendmail-8.9.3.pld/cf/m4/proto.m4 Wed Feb 10 18:11:17 1999
-@@ -1111,6 +1111,7 @@
- ifdef(`_RBL_', `dnl
- # DNS based IP address spam lists
- R$* $: $&{client_addr}
-+R::ffff:$-.$-.$-.$- $: $(host $4.$3.$2.$1._RBL_. $: OK $)
- R$-.$-.$-.$- $: $(host $4.$3.$2.$1._RBL_. $: OK $)
- ROK $@ OK
- R$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused by blackhole site _RBL_"',
-diff -Nur sendmail-8.9.3/src/conf.c sendmail-8.9.3.pld/src/conf.c
---- sendmail-8.9.3/src/conf.c Wed Jan 27 01:15:52 1999
-+++ sendmail-8.9.3.pld/src/conf.c Wed Feb 10 18:11:17 1999
-@@ -4085,6 +4085,33 @@
- }
-
- #endif
-+/*
-+** SM_GETHOSTBYNAME2 -- Wrapper for gethostbyname() with IPv6 support
-+**
-+** Most modern resolver libraries (BIND 8.1.x, glibc 2.1.x) will already
-+** return an AF_INET6 hostent if RES_USE_INET6 is set in _res.options.
-+** They usually try something like gethostbyname2(name, AF_INET6) and,
-+** if that fails, return the result of gethostbyname2(name, AF_INET).
-+**
-+** IPv6 code elsewhere should have set RES_USE_INET6 if it is defined.
-+** If it isn't defined, we simulate that behavior ourself.
-+**
-+** You can *not* assume that the hostent returned will only be AF_INET.
-+*/
-+struct hostent *
-+sm_gethostbyname2(name)
-+ char *name;
-+{
-+#if NETINET6 && !defined(RES_USE_INET6)
-+ struct hostent *h;
-+
-+ h = gethostbyname2(name, AF_INET6);
-+ if (h)
-+ return h;
-+#endif
-+ return gethostbyname(name);
-+}
-+
- \f/*
- ** SM_GETHOSTBY{NAME,ADDR} -- compatibility routines for gethostbyXXX
- **
-@@ -4123,7 +4150,7 @@
-
- if (tTd(61, 10))
- printf("gethostbyname(%s)... ", name);
-- h = gethostbyname(name);
-+ h = sm_gethostbyname2(name);
- if (h == NULL)
- {
- if (tTd(61, 10))
-@@ -4147,7 +4174,7 @@
- {
- if (tTd(61, 10))
- printf("gethostbyname(%s)... ", hbuf);
-- h = gethostbyname(hbuf);
-+ h = sm_gethostbyname2(hbuf);
- }
- }
- }
-@@ -4301,7 +4328,12 @@
- hp = sm_gethostbyaddr((char *) &sa->sin.sin_addr,
- sizeof(sa->sin.sin_addr), sa->sa.sa_family);
- break;
--
-+#if INET6
-+ case AF_INET6:
-+ hp = sm_gethostbyaddr((char *) &sa->sin6.sin6_addr,
-+ sizeof(sa->sin6.sin6_addr), sa->sa.sa_family);
-+ break;
-+#endif
- default:
- #if _FFR_LOG_UNSUPPORTED_FAMILIES
- /* XXX: Give warning about unsupported family */
-@@ -4378,6 +4410,104 @@
- # include <net/if.h>
- #endif
-
-+#if defined(__linux__) && NETINET6
-+
-+/*
-+ * This is a terrible, linux-specific kludge. In linux-2.1.105 at least,
-+ * there is no way to get IPv6 addresses via SIOCGIFCONF. You can
-+ * set them, but not retrieve them. I haven't seen a standard way
-+ * to retrieve the list yet. If you use the /proc/net/if_inet6 file,
-+ * you can get a list of them in a format like this:
-+ *
-+ * 00000000000000000000000000000001 01 80 10 80 lo
-+ * fe800000000000000000006097df4915 02 0a 20 80 eth0
-+ * fe80000000000000026097fffedf4915 02 0a 20 80 eth0
-+ */
-+void
-+load_if_names6()
-+{
-+ static FILE *fp = NULL;
-+ char ip_addr[256];
-+ static int s = -1;
-+
-+ if (tTd(0, 40))
-+ printf( "linux load_if_names6() kludge...\n" );
-+
-+ if (s != -1)
-+ close(s);
-+ s = socket(AF_INET6, SOCK_DGRAM, 0);
-+ if (s == -1)
-+ return;
-+
-+ if (fp)
-+ (void) fclose( fp );
-+ fp = fopen( "/proc/net/if_inet6", "r" );
-+ if (fp)
-+ {
-+ SOCKADDR sa;
-+ struct in6_addr *in6 = &sa.sin6.sin6_addr;
-+ char devname[10];
-+ int plen, scope, dad_status, if_idx;
-+
-+ while( fscanf( fp,
-+ "%4x%4x%4x%4x%4x%4x%4x%4x %02x %02x %02x %02x %s\n",
-+ &in6->s6_addr16[0], &in6->s6_addr16[1],
-+ &in6->s6_addr16[2], &in6->s6_addr16[3],
-+ &in6->s6_addr16[4], &in6->s6_addr16[5],
-+ &in6->s6_addr16[6], &in6->s6_addr16[7],
-+ &if_idx, &plen, &scope, &dad_status, devname) != EOF)
-+ {
-+ struct hostent *hp;
-+ int i;
-+ struct ifreq ifrf;
-+
-+ for (i = 0; i < 8; i++)
-+ in6->s6_addr16[i] = ntohs( in6->s6_addr16[i] );
-+ sa.sa.sa_family = AF_INET6;
-+
-+ /* save IP address in text from */
-+ (void) snprintf(ip_addr, sizeof ip_addr, "[%.*s]",
-+ sizeof ip_addr - 3, anynet_ntoa( &sa ) );
-+
-+ if (tTd(0, 40))
-+ printf("%s\n\ta.k.a.: %s\n", devname, ip_addr );
-+
-+ if (!wordinclass(ip_addr, 'w'))
-+ setclass('w', ip_addr);
-+
-+ bzero(&ifrf, sizeof( ifrf ));
-+ strncpy(ifrf.ifr_name, devname, sizeof(ifrf.ifr_name));
-+ ioctl(s, SIOCGIFFLAGS, (char *) &ifrf);
-+ if (tTd(0, 41))
-+ printf("\tflags: %x\n", ifrf.ifr_flags);
-+
-+ /* skip "loopback" interface "lo" */
-+ if (bitset(IFF_LOOPBACK, ifrf.ifr_flags))
-+ continue;
-+
-+ /*
-+ * If we skip the loopback interfaces, then
-+ * <draft-ietf-ngtrans-6bone-routing-01.txt>
-+ * would tend to indicate that we should skip
-+ * the link-local prefix (FE80::/10) as well.
-+ */
-+ if ((ntohs(*(in6->s6_addr16)) & 0xFFC0) == 0xFE80)
-+ continue;
-+
-+ (void) add_hostnames( &sa );
-+ }
-+
-+ (void) fclose(fp);
-+ fp = NULL;
-+ }
-+
-+ close(s);
-+
-+ return;
-+}
-+
-+#endif
-+
- void
- load_if_names()
- {
-@@ -4386,7 +4516,9 @@
- int i;
- struct ifconf ifc;
- int numifs;
--
-+#if NETINET6
-+ load_if_names6();
-+#endif
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s == -1)
- return;
-@@ -4768,6 +4900,9 @@
- #if NETINET
- "NETINET",
- #endif
-+#if NETINET6
-+ "NETINET6",
-+#endif
- #if NETINFO
- "NETINFO",
- #endif
-diff -Nur sendmail-8.9.3/src/conf.h sendmail-8.9.3.pld/src/conf.h
---- sendmail-8.9.3/src/conf.h Fri Jan 29 00:28:34 1999
-+++ sendmail-8.9.3.pld/src/conf.h Wed Feb 10 18:11:17 1999
-@@ -84,6 +84,10 @@
- # define NETINET 1 /* include internet support */
- # endif
-
-+# ifndef NETINET6
-+# define NETINET6 0 /* dont include IPv6 support */
-+# endif
-+
- # ifndef NETISO
- # define NETISO 0 /* do not include ISO socket support */
- # endif
-@@ -1307,6 +1311,14 @@
- # endif
- # include <sys/sysmacros.h>
- # undef atol /* wounded in <stdlib.h> */
-+# if NETINET6
-+# if !((__GLIBC__ == 2) && (__GLIBC_MINOR__ == 1)) /* Native in 2.2.x */
-+# include <linux/in6.h> /* IPv6 support */
-+# endif
-+# ifdef __GLIBC__
-+# undef IPPROTO_ICMPV6 /* linux #defines, glibc enums */
-+# endif
-+# endif
- #endif
-
-
-diff -Nur sendmail-8.9.3/src/daemon.c sendmail-8.9.3.pld/src/daemon.c
---- sendmail-8.9.3/src/daemon.c Tue Jan 26 05:00:16 1999
-+++ sendmail-8.9.3.pld/src/daemon.c Wed Feb 10 18:11:17 1999
-@@ -135,7 +135,17 @@
- DaemonAddr.sin.sin_addr.s_addr = INADDR_ANY;
- port = DaemonAddr.sin.sin_port;
- break;
--
-+#if NETINET6
-+ case AF_INET6:
-+ /*
-+ * We should look up and handle the INADDR_ANY situation
-+ * for IPv6, but since it is usually all-zeros and
-+ * that is what we're checking for, it doesn't have
-+ * a high priority.
-+ */
-+ port = DaemonAddr.sin6.sin6_port;
-+ break;
-+#endif
- default:
- /* unknown protocol */
- port = 0;
-@@ -160,7 +170,11 @@
- case AF_INET:
- DaemonAddr.sin.sin_port = port;
- break;
--
-+#if NETINET6
-+ case AF_INET6:
-+ DaemonAddr.sin6.sin6_port = port;
-+ break;
-+#endif
- default:
- /* unknown protocol */
- break;
-@@ -603,6 +617,12 @@
- break;
- # endif
-
-+# if NETINET6
-+ case AF_INET6:
-+ socksize = sizeof DaemonAddr.sin6;
-+ break;
-+# endif
-+
- # if NETISO
- case AF_ISO:
- socksize = sizeof DaemonAddr.siso;
-@@ -703,6 +723,10 @@
- else if (strcasecmp(v, "inet") == 0)
- DaemonAddr.sa.sa_family = AF_INET;
- #endif
-+#if NETINET6
-+ else if (strcasecmp(v, "inet6") == 0)
-+ DaemonAddr.sa.sa_family = AF_INET6;
-+#endif
- #if NETISO
- else if (strcasecmp(v, "iso") == 0)
- DaemonAddr.sa.sa_family = AF_ISO;
-@@ -739,6 +763,27 @@
- break;
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ if (isascii(*v) && isdigit(*v))
-+ (void) inet_pton(
-+ DaemonAddr.sa.sa_family, v,
-+ &DaemonAddr.sin6.sin6_addr);
-+ else
-+ {
-+ register struct hostent *hp;
-+
-+ hp = sm_gethostbyname(v);
-+ if (hp == NULL)
-+ syserr("554 host \"%s\" unknown", v);
-+ else
-+ bcopy(hp->h_addr,
-+ &DaemonAddr.sin6.sin6_addr,
-+ IN6ADDRSZ);
-+ }
-+ break;
-+#endif
-+
- default:
- syserr("554 Address= option unsupported for family %d",
- DaemonAddr.sa.sa_family);
-@@ -770,6 +815,22 @@
- break;
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ if (isascii(*v) && isdigit(*v))
-+ DaemonAddr.sin6.sin6_port = htons(atoi(v));
-+ else
-+ {
-+ register struct servent *sp;
-+
-+ sp = getservbyname(v, "tcp");
-+ if (sp == NULL)
-+ syserr("554 service \"%s\" unknown", v);
-+ else
-+ DaemonAddr.sin6.sin6_port = sp->s_port;
-+ }
-+ break;
-+#endif
- #if NETISO
- case AF_ISO:
- /* assume two byte transport selector */
-@@ -968,6 +1029,35 @@
- break;
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ {
-+ /*
-+ * IPv4-mapped IPv6 prefix -- ::ffff:0
-+ */
-+ static u_char mapbuf[ IN6ADDRSZ ] =
-+ { 0,0,0,0, 0,0,0,0, 0,0,0xFF,0xFF, 0,0,0,0 };
-+ u_char *a = (u_char *) hp->h_addr;
-+
-+ /*
-+ * Some platforms may try to connect to IPv4-mapped
-+ * IPv6 addresses via IPv6 connections, which
-+ * won't work in many cases. If we detect that,
-+ * avoid it by changing the address family.
-+ */
-+ if (bcmp( mapbuf, a, IN6ADDRSZ - INADDRSZ ))
-+ bcopy(a, &addr.sin6.sin6_addr, IN6ADDRSZ);
-+ else
-+ {
-+ bcopy(a + IN6ADDRSZ - INADDRSZ,
-+ &addr.sin.sin_addr,
-+ INADDRSZ);
-+ addr.sa.sa_family = AF_INET;
-+ }
-+ break;
-+ }
-+#endif
-+
- default:
- if (hp->h_length > sizeof addr.sa.sa_data)
- {
-@@ -1012,6 +1102,13 @@
- break;
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ addr.sin6.sin6_port = port;
-+ addrlen = sizeof (struct sockaddr_in6);
-+ break;
-+#endif
-+
- #if NETISO
- case AF_ISO:
- /* assume two byte transport selector */
-@@ -1157,6 +1254,14 @@
- break;
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ bcopy(hp->h_addr_list[addrno++],
-+ &addr.sin6.sin6_addr,
-+ IN6ADDRSZ);
-+ break;
-+#endif
-+
- default:
- bcopy(hp->h_addr_list[addrno++],
- addr.sa.sa_data,
-@@ -1295,6 +1400,34 @@
- if (hp->h_addrtype == AF_INET)
- return bcmp(ha, (char *) &sa->sin.sin_addr, hp->h_length);
- break;
-+#if NETINET6
-+ case AF_INET6:
-+ {
-+ u_char *a = (u_char *) &sa->sin6.sin6_addr;
-+ /*
-+ * Straight binary comparison
-+ */
-+ if (hp->h_addrtype == AF_INET6)
-+ return bcmp( ha, a, hp->h_length);
-+
-+ /*
-+ * If IPv4-mapped IPv6 address, compare the IPv4 section
-+ */
-+ if (hp->h_addrtype == AF_INET)
-+ {
-+ /*
-+ * IPv4-mapped IPv6 prefix -- ::ffff:0
-+ */
-+ static u_char mapbuf[ IN6ADDRSZ ] =
-+ { 0,0,0,0, 0,0,0,0, 0,0,0xFF,0xFF, 0,0,0,0 };
-+
-+ if (!bcmp( mapbuf, a, IN6ADDRSZ - INADDRSZ ))
-+ return bcmp(a + IN6ADDRSZ - INADDRSZ, ha, INADDRSZ);
-+ return -1;
-+ }
-+ break;
-+ }
-+#endif
-
- }
- return -1;
-@@ -2049,6 +2182,12 @@
- return inet_ntoa(sap->sin.sin_addr);
- #endif
-
-+#if NETINET6
-+ case AF_INET6:
-+ return (char *) inet_ntop( sap->sa.sa_family,
-+ &sap->sin6.sin6_addr, buf, sizeof( buf ));
-+#endif
-+
- #if NETLINK
- case AF_LINK:
- snprintf(buf, sizeof buf, "[LINK: %s]",
-@@ -2106,6 +2245,14 @@
- hp = sm_gethostbyaddr((char *) &sap->sin.sin_addr,
- INADDRSZ,
- AF_INET);
-+ break;
-+#endif
-+
-+#if NETINET6
-+ case AF_INET6:
-+ hp = sm_gethostbyaddr((char *) &sap->sin6.sin6_addr,
-+ IN6ADDRSZ,
-+ AF_INET6);
- break;
- #endif
-
-diff -Nur sendmail-8.9.3/src/main.c sendmail-8.9.3.pld/src/main.c
---- sendmail-8.9.3/src/main.c Sun Jan 10 00:31:13 1999
-+++ sendmail-8.9.3.pld/src/main.c Wed Feb 10 18:11:17 1999
-@@ -457,6 +457,9 @@
- # ifdef RES_NOALIASES
- _res.options |= RES_NOALIASES;
- # endif
-+# if NETINET6 && defined(RES_USE_INET6)
-+ _res.options |= RES_USE_INET6;
-+# endif
- #endif
-
- errno = 0;
-@@ -1513,10 +1516,20 @@
- define(macid("{client_name}", NULL), RealHostName, &BlankEnvelope);
- define(macid("{client_addr}", NULL),
- newstr(anynet_ntoa(&RealHostAddr)), &BlankEnvelope);
-- if (RealHostAddr.sa.sa_family == AF_INET)
-+ switch( RealHostAddr.sa.sa_family )
-+ {
-+ case AF_INET:
- snprintf(pbuf, sizeof pbuf, "%d", RealHostAddr.sin.sin_port);
-- else
-+ break;
-+#if NETINET6
-+ case AF_INET6:
-+ snprintf(pbuf, sizeof pbuf, "%d", RealHostAddr.sin6.sin6_port);
-+ break;
-+#endif
-+ default:
- snprintf(pbuf, sizeof pbuf, "0");
-+ break;
-+ }
- define(macid("{client_port}", NULL), newstr(pbuf), &BlankEnvelope);
-
- /* initialize maps now for check_relay ruleset */
-diff -Nur sendmail-8.9.3/src/sendmail.h sendmail-8.9.3.pld/src/sendmail.h
---- sendmail-8.9.3/src/sendmail.h Wed Jan 27 01:15:52 1999
-+++ sendmail-8.9.3.pld/src/sendmail.h Wed Feb 10 18:11:17 1999
-@@ -55,6 +55,10 @@
- # if NETINET
- # include <netinet/in.h>
- # endif
-+# if NETINET6
-+/* There is no host-independet location (yet). See conf.h */
-+# endif
-+
- # if NETISO
- # include <netiso/iso.h>
- # endif
-@@ -1035,6 +1039,9 @@
- #endif
- #if NETINET
- struct sockaddr_in sin; /* INET family */
-+#endif
-+#if NETINET6
-+ struct sockaddr_in6 sin6; /* INET/IPv6 */
- #endif
- #if NETISO
- struct sockaddr_iso siso; /* ISO family */
+++ /dev/null
-# /etc/mail/mailertable
-# Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
-# Time-stamp: <1998/10/27 10:00:00 cowboy>
-# GPL'd config file, please feed any gripes, suggestions, etc. to me
-#
-# Function:
-# Specify a mapping from old host name to new host name.
-# Commonly used to support old (or merged) domain names.
-# The host name in the lhs will be rewritten to that in the rhs
-#
-# Usage:
-# FEATURE(mailertable[, type [-o] /etc/mail/mailertable])dnl
-# makemap hash mailertable < mailertable
-#
-# Format:
-# Local recipients:
-# <address> local:user
-# <address> local: <<- will use same user
-# Error messages:
-# badhost error:nohost mail to %0 is prohibited
-# .baddomain error:nohost mail to %1%0 is prohibited
-#
-# Examples:
-# Local recipients:
-# <address> local:user
-# <address> local: <<- will use same user
-# Error messages:
-# badhost error:nohost mail to %0 is prohibited
-# .baddomain error:nohost mail to %1%0 is prohibited
-#
-# Notes:
-#
-# Related:
-#
-# Address rewrites for hosts *NOT IN* class $w
-# Direct delivery, %0 is left side
-# friend.dom smtp:[%0]:[some.smart.host]
-# Direct deliver of domain, smarthost as second choice
-# .friend.dom smtp:[%1%0]:[some.smart.host]
-# Default route, via smarthost
-# . smtp:[some.smart.host]
-#
-badhost error:nohost mail to %0 is prohibited
-.baddomain error:nohost mail to %1%0 is prohibited
-#
-# Sites we deliver directly to, bypassing SMARTHOST:
-#
-# Sites that use DUL: Dialup User Lists (or equivalent)
-#aol.com esmtp:[relay]
-#primenet.com esmtp:[relay]
--- /dev/null
+--- devtools/OS/Linux
++++ devtools/OS/Linux
+@@ -1,6 +1,6 @@
+ # $Id$
+ define(`confDEPEND_TYPE', `CC-M')
+-define(`confMANROOT', `/usr/man/man')
++define(`confMANROOT', `/usr/share/man/man')
+ define(`confLIBS', `-ldl')
+ define(`confEBINDIR', `/usr/sbin')
+ APPENDDEF(`confLIBSEARCH', `crypt nsl')
+++ /dev/null
-diff -Nur sendmail-8.9.1/src/pathnames.h sendmail-8.9.1.orig/src/pathnames.h
---- sendmail-8.9.1/src/pathnames.h Wed May 20 01:36:02 1998
-+++ sendmail-8.9.1.orig/src/pathnames.h Sat Sep 12 14:49:03 1998
-@@ -15,7 +15,7 @@
- # if defined(USE_VENDOR_CF_PATH) && defined(_PATH_VENDOR_CF)
- # define _PATH_SENDMAILCF _PATH_VENDOR_CF
- # else
--# define _PATH_SENDMAILCF "/etc/sendmail.cf"
-+# define _PATH_SENDMAILCF "/etc/mail/sendmail.cf"
- # endif
- #endif
-
--- /dev/null
+--- /dev/null Tue May 5 22:32:27 1998
++++ sendmail-8.9.2/cf/cf/pld.mc Thu Jan 14 17:20:28 1999
+@@ -0,0 +1,36 @@
++divert(-1)dnl
++include(`../m4/cf.m4')dnl
++OSTYPE(`linux')dnl
++define(`confCT_FILE', ` -o /etc/mail/sendmail.ct')dnl
++define(`confCW_FILE', ` /etc/mail/sendmail.cw')dnl
++define(`confDEF_USER_ID',``8:12'')dnl
++define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')dnl
++define(`confSTATUS_FILE',`/var/run/sendmail.st')dnl
++define(`confTO_QUEUERETURN', `4d')dnl
++define(`confTO_QUEUEWARN', `4h')dnl
++define(`ALIAS_FILE',`/etc/mail/aliases,/etc/mail/majordomo')dnl
++define(`HELP_FILE',`/usr/share/misc/sendmail.hf')dnl
++define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
++define(`STATUS_FILE',`/var/run/sendmail.st')dnl
++define(`UUCP_MAILER_MAX', `100000')dnl
++define(`UUCP_RELAY', `uunet.uu.net')dnl
++FEATURE(access_db, hash -o /etc/mail/access)dnl
++FEATURE(always_add_domain)dnl
++FEATURE(blacklist_recipients)dnl
++FEATURE(limited_masquerade)dnl
++FEATURE(local_procmail)dnl
++FEATURE(masquerade_entire_domain)dnl
++FEATURE(redirect)dnl
++FEATURE(use_ct_file)dnl
++FEATURE(use_cw_file)dnl
++FEATURE(`domaintable',`hash -o /etc/mail/domaintable')dnl
++FEATURE(`genericstable',`hash -o /etc/mail/genericstable')dnl
++FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
++FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
++MAILER(procmail)dnl
++MAILER(smtp)dnl
++MAILER(usenet)dnl
++MAILER(uucp)dnl
++O DetectTelnet = True
++O ExitOnTelnet = True
++O MaxMimeHeaderLength=256/128
+++ /dev/null
---- sendmail-8.12.9/sendmail/parseaddr.c.orig Wed Sep 17 18:16:48 2003
-+++ sendmail-8.12.9/sendmail/parseaddr.c Wed Sep 17 18:19:58 2003
-@@ -700,7 +700,11 @@
- addr[MAXNAME] = '\0';
- returnnull:
- if (delimptr != NULL)
-+ {
-+ if (p > addr)
-+ p--;
- *delimptr = p;
-+ }
- CurEnv->e_to = saveto;
- return NULL;
- }
+++ /dev/null
-Index: proto.m4
-===================================================================
-RCS file: /cvs/cf/m4/proto.m4,v
-retrieving revision 8.649.2.12
-retrieving revision 8.649.2.13
-diff -u -r8.649.2.12 -r8.649.2.13
---- cf/m4/proto.m4 3 Dec 2002 16:48:37 -0000 8.649.2.12
-+++ cf/m4/proto.m4 4 Dec 2002 00:12:18 -0000 8.649.2.13
-@@ -1761,6 +1761,9 @@
- dnl workspace: {client_name} $| {client_addr}
- R$+ $| $+ $: $>D < $1 > <?> <+ Connect> < $2 >
- dnl workspace: <result-of-lookup> <{client_addr}>
-+dnl OR $| $+ if client_name is empty
-+R $| $+ $: $>A < $1 > <?> <+ Connect> <> empty client_name
-+dnl workspace: <result-of-lookup> <{client_addr}>
- R<?> <$+> $: $>A < $1 > <?> <+ Connect> <> no: another lookup
- dnl workspace: <result-of-lookup> (<>|<{client_addr}>)
- R<?> <$*> $: OK found nothing
+++ /dev/null
-diff -Nur sendmail-8.9.3/src/version.c sendmail-8.9.3.pld/src/version.c
---- sendmail-8.9.3/src/version.c Fri Feb 5 01:38:46 1999
-+++ sendmail-8.9.3.pld/src/version.c Fri May 28 19:47:25 1999
-@@ -14,4 +14,4 @@
- static char sccsid[] = "@(#)version.c 8.9.3.1 (Berkeley) 2/4/1999";
- #endif /* not lint */
-
--char Version[] = "8.9.3";
-+char Version[] = "PLD";
+++ /dev/null
-diff -Nur sendmail-8.9.3/smrsh/Makefile.m4 sendmail-8.9.3.pld/smrsh/Makefile.m4
---- sendmail-8.9.3/smrsh/Makefile.m4 Tue Dec 29 18:42:52 1998
-+++ sendmail-8.9.3.pld/smrsh/Makefile.m4 Thu May 27 19:42:08 1999
-@@ -31,8 +31,8 @@
- # libraries required on your system
- LIBS= ifdef(`confLIBS', `confLIBS')
-
--# location of smrsh binary (usually /usr/libexec or /usr/etc)
--EBINDIR=${DESTDIR}ifdef(`confEBINDIR', `confEBINDIR', `/usr/libexec')
-+# location of smrsh binary (usually /usr/sbin or /usr/etc)
-+EBINDIR=${DESTDIR}ifdef(`confEBINDIR', `confEBINDIR', `/usr/sbin')
-
- # additional .o files needed
- OBJADD= ifdef(`confOBJADD', `confOBJADD')
---- sendmail-8.7.5/smrsh/README.marc Thu Aug 1 11:52:37 1996
-+++ sendmail-8.7.5/smrsh/README Thu Aug 1 11:54:51 1996
-@@ -11,7 +11,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 Software 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
-@@ -41,12 +41,12 @@
-
-
- Choose a directory that smrsh will reside in. We will use the traditional
--/usr/local/etc directory for the remainder of this document.
-+/usr/sbin directory for the remainder of this document.
-
--As root, install smrsh in /usr/local/etc directory, with mode 511.
-+As root, install smrsh in /usr/sbin directory, with mode 511.
-
--host.domain# mv smrsh /usr/local/etc
--host.domain# chmod 511 /usr/local/etc/smrsh
-+host.domain# mv smrsh /usr/sbin
-+host.domain# chmod 511 /usr/sbin/smrsh
-
-
-
-@@ -68,7 +68,7 @@
- acceptable commands.
-
-
--You will next need to create the directory /usr/adm/sm.bin and populate
-+You will 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
-@@ -77,22 +77,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.
-
-@@ -107,7 +107,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/local/etc/smrsh.
-+with /usr/sbin/smrsh.
-
- As an example:
-
-@@ -115,14 +115,14 @@
- Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=20, A=sh -c $u
-
- which should be changed to:
--Mprog, P=/usr/local/etc/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/local/etc/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
-@@ -133,12 +133,12 @@
- 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:
-
- host.domain# /usr/bin/ps aux | /usr/bin/grep sendmail
--root 130 0.0 0.0 168 0 ? IW Oct 2 0:10 /usr/lib/sendmail -bd -q
-+root 130 0.0 0.0 168 0 ? IW Oct 2 0:10 /usr/sbin/sendmail -bd -q
- host.domain# /bin/kill -9 130
--host.domain# /usr/lib/sendmail -bd -q30m
-+host.domain# /usr/sbin/sendmail -bd -q30m
---- sendmail-8.7.5/smrsh/smrsh.8.marc Sun Nov 13 13:25:16 1994
-+++ sendmail-8.7.5/smrsh/smrsh.8 Thu Aug 1 11:48:07 1996
-@@ -59,7 +59,7 @@
- Briefly,
- .I smrsh
- limits programs to be in the directory
--/usr/adm/sm.bin,
-+/etc/smrsh,
- allowing the system administrator to choose the set of acceptable commands.
- It also rejects any commands with the characters
- `\`', `<', `>', `|', `;', `&', `$', `(', `)', `\r' (carriage return),
-@@ -73,10 +73,10 @@
- and
- ``vacation''
- all actually forward to
--``/usr/adm/sm.bin/vacation''.
-+``/etc/smrsh/vacation''.
- .PP
- System administrators should be conservative about populating
--/usr/adm/sm.bin.
-+/etc/smrsh
- Reasonable additions are
- .IR vacation (1),
- .IR procmail (1),
-@@ -86,20 +86,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);
-+in the /etc/smrsh 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 \-DPATH=\e"\fIpath\fP\e"
--to adjust the default search path
--(defaults to ``/bin:/usr/bin:/usr/ucb'')
--and/or \-DCMDBIN=\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.9.3/smrsh/smrsh.c~ Tue Dec 29 12:42:52 1998
-+++ sendmail-8.9.3/smrsh/smrsh.c Mon Apr 5 11:25:36 1999
-@@ -58,7 +58,7 @@
-
- /* directory in which all commands must reside */
- #ifndef CMDDIR
--# define CMDDIR "/usr/adm/sm.bin"
-+# define CMDDIR "/etc/smrsh"
- #endif
-
- /* characters disallowed in the shell "-c" argument */
-@@ -66,7 +66,7 @@
-
- /* default search path */
- #ifndef PATH
--# define PATH "/bin:/usr/bin:/usr/ucb"
-+# define PATH "/bin:/usr/bin"
- #endif
-
- int
# When using SASLv2, this file is used if we put "pwcheck_method:saslauthd"
# in /etc/sasl/Sendmail.conf and SASL_AUTHMECH=pam in /etc/sysconfig/saslauthd
#
-auth required pam_listfile.so item=user sense=deny file=/etc/security/blacklist onerr=succeed
-auth required pam_unix.so
-auth required pam_tally.so file=/var/log/faillog onerr=succeed no_magic_root
-auth required pam_nologin.so
-account required pam_tally.so deny=0 file=/var/log/faillog onerr=succeed no_magic_root
-account required pam_unix.so
-session required pam_unix.so
+auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/security/blacklist onerr=succeed
+auth required /lib/security/pam_unix.so
+auth required /lib/security/pam_tally.so file=/var/log/faillog onerr=succeed no_magic_root
+auth required /lib/security/pam_nologin.so
+account required /lib/security/pam_tally.so deny=0 file=/var/log/faillog onerr=succeed no_magic_root
+account required /lib/security/pam_unix.so
+session required /lib/security/pam_unix.so
+++ /dev/null
-# Address rewrites for incomming mail
-# user@realdomain (must be in $w) localuser (may be an alias)
-# info@foo.com foo-info
-# info@bar.com bar-info
-# @baz.org jane@elsewhere.net
-# @foo.org %1@elsewhere.com
-# @bar.org error:nouser User unknown
-#
-pwcheck_method:saslauthd
+pwcheck_method:pam
#
+# TODO:
+# - make sid-milter support:
+# http://sourceforge.net/projects/sid-milter/
+# http://www.sendmail.net/
+#
# Conditional build:
+%bcond_without db3 # use db instead of db3 package
%bcond_without ldap # without LDAP support
%bcond_without tls # without TLS (SSL) support
-%bcond_with db3 # use db3 instead of db package
%bcond_with pgsql # with PostgreSQL support (bluelabs)
#
Summary: A widely used Mail Transport Agent (MTA)
Summary(tr): Elektronik posta hizmetleri sunucusu
Summary(uk): ðÏÛÔÏ×ÉÊ ÔÒÁÎÓÐÏÒÔÎÉÊ ÁÇÅÎÔ sendmail
Name: sendmail
-Version: 8.12.11
-Release: 9
+Version: 8.13.1
+Release: 1.1
License: BSD
Group: Networking/Daemons
Source0: ftp://ftp.sendmail.org/pub/sendmail/%{name}.%{version}.tar.gz
-# Source0-md5: fafda7f8043f0c34b9aa295618aa598c
+# Source0-md5: 5407db289086261d7e7a09920d2ea14e
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.aliases
Source11: %{name}.virtusertable
Source12: %{name}.domaintable
Source13: %{name}-smtp.pamd
-Source14: %{name}-monitrc
+Source14: %{name}.monitrc
Patch0: %{name}-makemapman.patch
Patch1: %{name}-smrsh-paths.patch
Patch2: %{name}-rmail.patch
%{!?with_db3:BuildRequires: db-devel >= 4.1.25}
BuildRequires: man
%{?with_ldap:BuildRequires: openldap-devel}
-%{?with_tls:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_tls:BuildRequires: openssl-devel >= 0.9.6m}
%{?with_pgsql:BuildRequires: postgresql-devel}
Requires(pre): /bin/id
Requires(pre): /usr/bin/getgid
Requires: procmail
Requires: pam >= 0.77.3
Provides: smtpdaemon
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Obsoletes: courier
Obsoletes: exim
Obsoletes: masqmail
Obsoletes: smtpdaemon
Obsoletes: ssmtp
Obsoletes: zmailer
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/mail
install %{SOURCE7} config.m4
-# Ac-specific hack - ac-i386 builder has not fully operational shm
-%ifarch i386
-%{__perl} -pi -e 's/^(smtest.*t-shm)/dnl $1/' libsm/Makefile.m4
-%endif
-
%build
echo "define(\`confCC', \`%{__cc}')" >> config.m4
echo "define(\`confOPTIMIZE', \`%{rpmcflags} -DUSE_VENDOR_CF_PATH=1 -DNETINET6')" >> config.m4
install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/mailertable
install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/virtusertable
install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/domaintable
-install %{SOURCE14} $RPM_BUILD_ROOT/etc/monit/
+install %{SOURCE14} $RPM_BUILD_ROOT/etc/monit
mv -f smrsh/README README.smrsh
mv -f cf/README README.cf
mv -f doc/op/op.me .
-
bzip2 -dc %{SOURCE4} | tar xf -
%clean
exit 1
fi
else
- /usr/sbin/useradd -u 25 -r -d /var/spool/clientqueue -s /bin/false -c "Sendmail Message Submission Program" -g smmsp smmsp 1>&2
+ /usr/sbin/useradd -u 25 -r -d /var/spool/clientqueue -s /bin/false \
+ -c "Sendmail Message Submission Program" -g smmsp smmsp 1>&2
fi
%post
+++ /dev/null
-# @(#)Linux 8.4 (Berkeley) 3/22/98
-define(`confSBINOWN',`id')
-define(`confSBINGRP',`gid')
-define(`confUBINOWN',`id')
-define(`confUBINGRP',`gid')
-define(`confMANOWN', `id')
-define(`confMANGRP',`gid')
-define(`confCC',`gcc')
-define(`confMAPDEF',`-DMAP_REGEX -DNIS -DNETINET6')
-define(`confSTDIR', `/var/run')
-define(`confHFDIR',`/etc/mail')
-define(`confDEPEND_TYPE', `CC-M')
-define(`confMANROOT', `/usr/share/man/man')
-define(`confOPTIMIZE', `opt')
-define(`confLDOPTS',`-s')
-APPENDDEF(`confLIBS', `-lresolv -lnsl')
-APPENDDEF(`confENVDEF', `-D_FFR_MAX_MIME_HEADER_LENGTH=1')
\ No newline at end of file
+++ /dev/null
-
-# Very much like site.Linux.m4, but:
-# Uses $(RPM_OPT_FLAGS) for OPTIMIZE
-# Uses the default cc
-# SBINGRP already defaults to mail
-# Adds -lnsl to LIBS for NIS support
-
-define(`confMAPDEF', `-DMAP_REGEX -DNIS')
-APPENDDEF(`confLIBS', `-lnsl')
-define(`confSTDIR', `/var/run')
-define(`confHFDIR',`/etc/mail')
-define(`confDEPEND_TYPE', `CC-M')
-define(`confMANROOT', `/usr/share/man/man')
-define(`confOPTIMIZE', `$(RPM_OPT_FLAGS)')
-define(`confLDOPTS', `-s')
-