summaryrefslogtreecommitdiff
path: root/debian/patches/8.13/8.13.5
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/8.13/8.13.5')
-rw-r--r--debian/patches/8.13/8.13.5/client_helo.patch152
-rw-r--r--debian/patches/8.13/8.13.5/cyrusv2.m4.debian-patch11
-rw-r--r--debian/patches/8.13/8.13.5/dpatch.00150
-rw-r--r--debian/patches/8.13/8.13.5/dpatch.00219
-rw-r--r--debian/patches/8.13/8.13.5/dpatch.00352
-rw-r--r--debian/patches/8.13/8.13.5/dpatch.00452
-rw-r--r--debian/patches/8.13/8.13.5/dpatch.00554
-rw-r--r--debian/patches/8.13/8.13.5/drac.patch24
-rw-r--r--debian/patches/8.13/8.13.5/kfreebsd.patch146
-rw-r--r--debian/patches/8.13/8.13.5/ldap_url_search.p024
-rw-r--r--debian/patches/8.13/8.13.5/maxseq.patch51
-rw-r--r--debian/patches/8.13/8.13.5/qtool.patch101
12 files changed, 736 insertions, 0 deletions
diff --git a/debian/patches/8.13/8.13.5/client_helo.patch b/debian/patches/8.13/8.13.5/client_helo.patch
new file mode 100644
index 0000000..6cf447c
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/client_helo.patch
@@ -0,0 +1,152 @@
+#------------------------------------------------------------------------------
+# Who:
+# Richard Nelson <cowboy@{cavein,debian}.org>
+# What:
+# 1) New macro ${client_helo} containing the EHLO/HELO text (or null)
+# 2) New ruleset check_helo called after the EHLO/HELO and before the
+# milter callout. This ruleset invocation and handling are modeled
+# after the existing check_* rulesets
+# Why:
+# 0) $s is transient, and not set until MAIL FROM: is seen - I want the
+# ability to check the EHLO/HELO string elsewere (like check_vrfy).
+# ${client_helo} is set upon seeing the EHLO/HELO command and
+# remains valid forever.
+# 1) There is an IBM internal system check routine for AIX and Linux that
+# I'm thinking will soon be a requirement to pass its audit... Like
+# all such tools, it is limited - it requires that vrfy,expn are
+# disabled... well, I don't do that... if you can relay through the
+# box, then you can query it. If you can't relay, you get 5.7.1 !
+# using the new macro - I can specifically deny the scanner - even
+# though other traffic is unaffected.
+# 2) It can provide the same function as -DPICKY_HELO_CHECK, dynamically
+# by making those checks in the new check_helo ruleset - as outlined
+# below (NOT RECOMMENDED)
+# 3) It can be passed to the milters, if they choose (like mimedefang)
+# to apparently not support the helo callout
+# 4) I was bored stiff being in the bowels of a COBOL compiler and
+# needed a sanity break :)
+# Design questions:
+# Testing:
+# 1) Running on three boxes, two of which make use of the macro and
+# ruleset to block. The new function works great - and no ill
+# affects seen on any of the boxes.
+# Documentation:
+# See below for the new macro and ruleset
+# TODO:
+# add to milter macro specifications
+# Changes:
+# 1) deliver.c -- remove client_helo from the envelope like all the
+# other client_* macros
+# 2) srvrsmtp.c
+# A) A new boolean variable indicating that the helo string is valid
+# gothelo is not sufficient here... the new scope is very small...
+# B) A new character pointer holding the helo string address
+# C) After obtaining a valid helo string, or accepting an invalid
+# one, create a copy of the string for permanence
+# D) Update the client_helo macro variable with the helo string
+#------------------------------------------------------------------------------
+#5.2. D -- Define Macro
+# ...
+# ${client_helo}
+# The string specified by the SMTP client on the EHLO/HELO
+# command, or null if no EHLO/HELO was seen. Defined in the
+# SMTP server only. Unlike the $s macro, which is transient
+# and not available in all rulesets, the {client_helo} macro
+# is available to all rulesets after the EHLO/HELO greeting.
+# ...
+#------------------------------------------------------------------------------
+#5.1.4.?. check_helo
+#
+# The check_helo ruleset is passed the address
+# or name parameter of the SMTP EHLO/HELO command. It can
+# accept or reject the address. Note that rejecting mail
+# based upon this check is a violation of the standards!
+#
+# One could impliment an improved -PICKY_HELO_CHECK test
+# here by checking the values of {client_name}, {client_addr},
+# against {client_helo} and {daemon_addr}.
+#------------------------------------------------------------------------------
+diff -c 'deliver.orig' 'deliver.c'
+Index: ./deliver.orig
+Prereq: 8.990
+*** ./sendmail-8.13.5/sendmail/deliver.c Tue Aug 10 17:50:11 2004
+--- ./deliver.c Tue Aug 10 17:44:04 2004
+***************
+*** 1363,1368 ****
+--- 1363,1369 ----
+ macdefine(&e->e_macro, A_PERM, macid("{client_addr}"), "");
+ macdefine(&e->e_macro, A_PERM, macid("{client_port}"), "");
+ macdefine(&e->e_macro, A_PERM, macid("{client_resolve}"), "");
++ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"), "");
+ }
+
+ SM_TRY
+diff -c 'srvrsmtp.orig' 'srvrsmtp.c'
+Index: ./srvrsmtp.orig
+Prereq: 8.909
+*** ./sendmail-8.13.5/sendmail/srvrsmtp.c Tue Aug 10 17:50:23 2004
+--- ./srvrsmtp.c Tue Aug 10 17:42:54 2004
+***************
+*** 444,449 ****
+--- 444,451 ----
+ char *volatile protocol; /* sending protocol */
+ char *volatile sendinghost; /* sending hostname */
+ char *volatile peerhostname; /* name of SMTP peer or "localhost" */
++ char *volatile helo_name; /* client_helo string */
++ bool helo_accept = false; /* helo/ehlo command accepted */
+ auto char *delimptr;
+ char *id;
+ volatile unsigned int n_badcmds = 0; /* count of bad commands */
+***************
+*** 1976,1981 ****
+--- 1978,1987 ----
+ {
+ q = "pleased to meet you";
+ sendinghost = sm_strdup_x(p);
++ helo_accept = true;
++ helo_name = sm_strdup_x(p);
++ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"),
++ helo_name);
+ }
+ else if (!AllowBogusHELO)
+ {
+***************
+*** 1989,1994 ****
+--- 1995,2004 ----
+ else
+ {
+ q = "accepting invalid domain name";
++ helo_accept = true;
++ helo_name = sm_strdup_x(p);
++ macdefine(&e->e_macro, A_PERM, macid("{client_helo}"),
++ helo_name);
+ }
+
+ if (gothelo)
+***************
+*** 1996,2001 ****
+--- 2006,2028 ----
+ CLEAR_STATE(cmdbuf);
+ }
+
++ if (helo_accept) {
++ if (rscheck("check_helo", helo_name,
++ NULL, e, RSF_RMCOMM|RSF_COUNT, 3,
++ NULL, e->e_id) != EX_OK ||
++ Errors > 0)
++ sm_exc_raisenew_x(&EtypeQuickAbort, 1);
++
++ if (MaxMessageSize > 0 &&
++ (e->e_msgsize > MaxMessageSize ||
++ e->e_msgsize < 0))
++ {
++ usrerr("552 5.2.3 Message size exceeds fixed maximum message size (%ld)",
++ MaxMessageSize);
++ sm_exc_raisenew_x(&EtypeQuickAbort, 1);
++ }
++ }
++
+ #if MILTER
+ if (smtp.sm_milterlist && smtp.sm_milterize &&
+ !bitset(EF_DISCARD, e->e_flags))
+
diff --git a/debian/patches/8.13/8.13.5/cyrusv2.m4.debian-patch b/debian/patches/8.13/8.13.5/cyrusv2.m4.debian-patch
new file mode 100644
index 0000000..e48b70e
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/cyrusv2.m4.debian-patch
@@ -0,0 +1,11 @@
+--- sendmail-8.13.5/cf/mailer/cyrusv2.m4 Sat Jun 1 15:14:57 2002
++++ cyrusv2.m4.new Wed Jun 5 04:21:34 2002
+@@ -12,7 +12,7 @@
+
+ _DEFIFNOT(`_DEF_CYRUSV2_MAILER_FLAGS', `lsDFMnqXz')
+ _DEFIFNOT(`CYRUSV2_MAILER_FLAGS', `A@/:|m')
+-ifdef(`CYRUSV2_MAILER_ARGS',, `define(`CYRUSV2_MAILER_ARGS', `FILE /var/imap/socket/lmtp')')
++ifdef(`CYRUSV2_MAILER_ARGS',, `define(`CYRUSV2_MAILER_ARGS', `FILE /var/run/cyrus/socket/lmtp')')
+ define(`_CYRUSV2_QGRP', `ifelse(defn(`CYRUSV2_MAILER_QGRP'),`',`', ` Q=CYRUSV2_MAILER_QGRP,')')dnl
+
+ POPDIVERT
diff --git a/debian/patches/8.13/8.13.5/dpatch.001 b/debian/patches/8.13/8.13.5/dpatch.001
new file mode 100644
index 0000000..6c1c2d8
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/dpatch.001
@@ -0,0 +1,50 @@
+# Remove -Y from procmail arguements
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c 'cf/feature/local_procmail.m4' 'debian/patches/local_procmail.m4'
+Index: ./cf/feature/local_procmail.m4
+Prereq: 8.22
+*** sendmail-8.13.5/cf/feature/local_procmail.m4 Sat Nov 20 15:26:21 1999
+--- ./debian/patches/local_procmail.m4 Sat Nov 20 15:39:46 1999
+***************
+*** 27,32 ****
+ `/usr/local/bin/procmail'),
+ _ARG_))
+ define(`LOCAL_MAILER_ARGS',
+! ifelse(len(X`'_ARG2_), `1', `procmail -Y -a $h -d $u', _ARG2_))
+ define(`LOCAL_MAILER_FLAGS',
+ ifelse(len(X`'_ARG3_), `1', `SPfhn9', _ARG3_))
+--- 27,32 ----
+ `/usr/local/bin/procmail'),
+ _ARG_))
+ define(`LOCAL_MAILER_ARGS',
+! ifelse(len(X`'_ARG2_), `1', `procmail -a $h -d $u', _ARG2_))
+ define(`LOCAL_MAILER_FLAGS',
+ ifelse(len(X`'_ARG3_), `1', `SPfhn9', _ARG3_))
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Sat Nov 20 15:39:47 1999
+# Generated by : makepatch 2.00
+# Recurse directories : Yes
+# p 'cf/feature/local_procmail.m4' 941
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Sat Nov 20 15:39:47 1999] ####
+#### Checksum: 49 1730 1445 ####
diff --git a/debian/patches/8.13/8.13.5/dpatch.002 b/debian/patches/8.13/8.13.5/dpatch.002
new file mode 100644
index 0000000..dfb9141
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/dpatch.002
@@ -0,0 +1,19 @@
+--- sendmail-8.13.5/cf/mailer/cyrus.m4 Tue May 2 14:40:24 2000
++++ ./debian/patches/cf/mailer/cyrus.m4 Tue May 2 14:41:21 2000
+@@ -36,12 +36,12 @@
+ #
+
+ _DEFIFNOT(`CYRUS_MAILER_FLAGS', `Ah5@/:|')
+-ifdef(`CYRUS_MAILER_PATH',, `define(`CYRUS_MAILER_PATH', /usr/cyrus/bin/deliver)')
+-ifdef(`CYRUS_MAILER_ARGS',, `define(`CYRUS_MAILER_ARGS', `deliver -e -m $h -- $u')')
++ifdef(`CYRUS_MAILER_PATH',, `define(`CYRUS_MAILER_PATH', /usr/sbin/cyrdeliver)')
++ifdef(`CYRUS_MAILER_ARGS',, `define(`CYRUS_MAILER_ARGS', `cyrdeliver -e -m $h -- $u')')
+ ifdef(`CYRUS_MAILER_USER',, `define(`CYRUS_MAILER_USER', `cyrus:mail')')
+ _DEFIFNOT(`CYRUS_BB_MAILER_FLAGS', `u')
+-ifdef(`CYRUS_BB_MAILER_ARGS',, `define(`CYRUS_BB_MAILER_ARGS', `deliver -e -m $u')')
++ifdef(`CYRUS_BB_MAILER_ARGS',, `define(`CYRUS_BB_MAILER_ARGS', `cyrdeliver -e -m $u')')
+ define(`_CYRUS_QGRP', `ifelse(defn(`CYRUS_MAILER_QGRP'),`',`', ` Q=CYRUS_MAILER_QGRP,')')dnl
+
+ POPDIVERT
+
+
diff --git a/debian/patches/8.13/8.13.5/dpatch.003 b/debian/patches/8.13/8.13.5/dpatch.003
new file mode 100644
index 0000000..bd2440d
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/dpatch.003
@@ -0,0 +1,52 @@
+# Change sendmail call -obq to -obi
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c 'rmail/rmail.c' 'debian/patches/rmail.c'
+Index: ./rmail/rmail.c
+Prereq: 8.61
+*** sendmail-8.13.5/rmail/rmail.c Sat Sep 16 18:20:25 2000
+--- ./debian/patches/rmail.c Thu Sep 28 17:00:59 2000
+***************
+*** 318,324 ****
+ 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 */
+--- 318,324 ----
+ args[i++] = _PATH_SENDMAIL; /* Build sendmail's argument list. */
+ args[i++] = "-G"; /* relay submission */
+ args[i++] = "-oee"; /* No errors, just status. */
+! args[i++] = "-odi"; /* deliver in the foreground. */
+ args[i++] = "-oi"; /* Ignore '.' on a line by itself. */
+
+ /* set from system and protocol used */
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Thu Sep 28 17:01:04 2000
+# Generated by : makepatch 2.00
+# Recurse directories : Yes
+# p './build-tree/sendmail-8.11.1/rmail/rmail.c' 12072
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Thu Sep 28 17:01:04 2000] ####
+#### Checksum: 51 2010 21691 ####
diff --git a/debian/patches/8.13/8.13.5/dpatch.004 b/debian/patches/8.13/8.13.5/dpatch.004
new file mode 100644
index 0000000..33a8e2a
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/dpatch.004
@@ -0,0 +1,52 @@
+# Make control socket mode 0660
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c 'sendmail/control.c' 'debian/patches/control.c'
+Index: ./sendmail/control.c
+Prereq: 8.126
+*** sendmail-8.13.5/sendmail/control.c Sat Nov 20 15:26:23 1999
+--- ./debian/patches/control.c Sat Nov 20 15:39:52 1999
+***************
+*** 92,98 ****
+ }
+ }
+
+! if (chmod(ControlSocketName, S_IRUSR|S_IWUSR) < 0)
+ {
+ save_errno = errno;
+ closecontrolsocket(TRUE);
+--- 92,98 ----
+ }
+ }
+
+! if (chmod(ControlSocketName, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP) < 0)
+ {
+ save_errno = errno;
+ closecontrolsocket(TRUE);
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Sat Nov 20 15:39:53 1999
+# Generated by : makepatch 2.00
+# Recurse directories : Yes
+# p 'sendmail/control.c' 6165
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Sat Nov 20 15:39:53 1999] ####
+#### Checksum: 51 1497 50060 ####
diff --git a/debian/patches/8.13/8.13.5/dpatch.005 b/debian/patches/8.13/8.13.5/dpatch.005
new file mode 100644
index 0000000..c645bfe
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/dpatch.005
@@ -0,0 +1,54 @@
+# /usr/bin/faxmail, !/usr/local/bin/faxmail
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c './cf/mailer/fax.m4' 'fax.m4'
+Index: ./cf/mailer/fax.m4
+Prereq: 8.16
+*** sendmail-8.13.5/cf/mailer/fax.m4 Mon Oct 18 02:35:28 1999
+--- ./fax.m4 Wed Jan 3 14:26:13 2001
+***************
+*** 19,26 ****
+ ifdef(`FAX_MAILER_ARGS',,
+ `define(`FAX_MAILER_ARGS', faxmail -d $u@$h $f)')
+ ifdef(`FAX_MAILER_PATH',,
+! `define(`FAX_MAILER_PATH', /usr/local/bin/faxmail)')
+ ifdef(`FAX_MAILER_MAX',,
+ `define(`FAX_MAILER_MAX', 100000)')
+ define(`_FAX_QGRP', `ifelse(defn(`FAX_MAILER_QGRP'),`',`', ` Q=FAX_MAILER_QGRP,')')dnl
+ POPDIVERT
+--- 19,26 ----
+ ifdef(`FAX_MAILER_ARGS',,
+ `define(`FAX_MAILER_ARGS', faxmail -d $u@$h $f)')
+ ifdef(`FAX_MAILER_PATH',,
+! `define(`FAX_MAILER_PATH', /usr/bin/faxmail)')
+ ifdef(`FAX_MAILER_MAX',,
+ `define(`FAX_MAILER_MAX', 100000)')
+ define(`_FAX_QGRP', `ifelse(defn(`FAX_MAILER_QGRP'),`',`', ` Q=FAX_MAILER_QGRP,')')dnl
+ POPDIVERT
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Wed Jan 3 14:27:33 2001
+# Generated by : makepatch 2.00
+# Recurse directories : Yes
+# p '../../build-tree/sendmail-8.11.2/cf/mailer/fax.m4' 1062
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Wed Jan 3 14:27:33 2001] ####
+#### Checksum: 51 1807 4852 ####
diff --git a/debian/patches/8.13/8.13.5/drac.patch b/debian/patches/8.13/8.13.5/drac.patch
new file mode 100644
index 0000000..3a3f540
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/drac.patch
@@ -0,0 +1,24 @@
+--- sendmail-8.13.5/cf/m4/proto.m4.orig 2003-03-29 02:20:53.000000000 +0900
++++ sendmail-8.13.5/cf/m4/proto.m4 2003-03-30 13:22:18.731049640 +0900
+@@ -2110,6 +2110,13 @@
+ R127.0.0.1 $@ RELAY originated locally
+ RIPv6:::1 $@ RELAY originated locally
+ R$=R $* $@ RELAY relayable IP address
++ifdef(`_DRAC_', `dnl
++R$* $: <> $(drac $1 $: <?> $1 $)
++R<> <?> $+ $: $1
++R<> $+ $@ RELAY authenticated IP address
++RIPv6:$* $: <> $(drac $1 $: <?> IPv6:$1 $)
++R<> <?> $+ $: $1
++R<> $+ $@ RELAY authenticated IP address',`dnl')
+ ifdef(`_ACCESS_TABLE_', `dnl
+ R$* $: $>A <$1> <?> <+ Connect> <$1>
+ R<RELAY> $* $@ RELAY relayable IP address
+--- /dev/null 2002-01-01 00:00:00.000000000 +0900
++++ sendmail-8.13.5/cf/feature/drac.m4 2002-04-18 21:33:31.716576810 +0900
+@@ -0,0 +1,5 @@
++define(`_DRAC_', `')
++
++LOCAL_CONFIG
++Kdrac ifelse(defn(`_ARG_'), `', DATABASE_MAP_TYPE MAIL_SETTINGS_DIR`drac',
++ `_ARG_')
diff --git a/debian/patches/8.13/8.13.5/kfreebsd.patch b/debian/patches/8.13/8.13.5/kfreebsd.patch
new file mode 100644
index 0000000..e0bd4cb
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/kfreebsd.patch
@@ -0,0 +1,146 @@
+diff -Nurd sendmail-8.13.5.orig/devtools/bin/Build sendmail-8.13.5/devtools/bin/Build
+--- sendmail-8.13.5.orig/devtools/bin/Build 2005-09-09 11:36:00.000000000 +0200
++++ sendmail-8.13.5/devtools/bin/Build 2005-09-09 12:02:15.000000000 +0200
+@@ -422,6 +422,7 @@
+ NeXT) mkdir="mkdirs";;
+ UNICOSMK) rel=`echo $rel | sed -e 's/\(.*\)\.\(.*\)\.\(.*\)\..*$/\1.\2.\3/'`;;
+ UNICOS*) rel=`echo $rel | sed -e 's/\(.*\)\.\(.*\)\..*$/\1.\2/'`;;
++ GNU-kFreeBSD*) os=Linux;;
+ esac
+
+ # get "base part" of operating system release
+diff -Nurd sendmail-8.13.5.orig/include/sm/conf.h sendmail-8.13.5/include/sm/conf.h
+--- sendmail-8.13.5.orig/include/sm/conf.h 2005-09-09 11:36:00.000000000 +0200
++++ sendmail-8.13.5/include/sm/conf.h 2005-09-09 11:57:33.000000000 +0200
+@@ -783,7 +783,7 @@
+ ** See also BSD defines.
+ */
+
+-# if defined(BSD4_4) && !defined(__bsdi__) && !defined(__GNU__) && !defined(DARWIN)
++# if defined(BSD4_4) && !defined(__bsdi__) && !defined(__GNU__) && !defined(DARWIN) && !defined(__GLIBC__)
+ # include <paths.h>
+ # define HASUNSETENV 1 /* has unsetenv(3) call */
+ # define USESETEUID 1 /* has usable seteuid(2) call */
+@@ -801,7 +801,7 @@
+ # endif /* ! LA_TYPE */
+ # define SFS_TYPE SFS_MOUNT /* use <sys/mount.h> statfs() impl */
+ # define SPT_TYPE SPT_PSSTRINGS /* use PS_STRINGS pointer */
+-# endif /* defined(BSD4_4) && !defined(__bsdi__) && !defined(__GNU__) && !defined(DARWIN)*/
++# endif /* defined(BSD4_4) && !defined(__bsdi__) && !defined(__GNU__) && !defined(DARWIN) && !defined(__GLIBC__) */
+
+
+ /*
+@@ -1491,6 +1491,68 @@
+
+
+ /*
++** GNU/kFreeBSD
++** From Aurelien Jarno <aurel32@debian.org>
++ */
++
++# if defined (__GLIBC__) && defined(__FreeBSD_kernel__)
++# define HASSETREGID 1 /* use setregid(2) to set saved gid */
++# ifndef REQUIRES_DIR_FSYNC
++# define REQUIRES_DIR_FSYNC 1 /* requires fsync() on directory */
++# endif /* REQUIRES_DIR_FSYNC */
++# ifndef USESETEUID
++# define USESETEUID 0 /* has it due to POSIX, but doesn't work */
++# endif /* USESETEUID */
++# define SM_CONF_GETOPT 0 /* need a replacement for getopt(3) */
++# define HASUNAME 1 /* use System V uname(2) system call */
++# define HASUNSETENV 1 /* has unsetenv(3) call */
++# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
++# define GIDSET_T gid_t /* from <linux/types.h> */
++# ifndef HASGETUSERSHELL
++# define HASGETUSERSHELL 0 /* getusershell(3) broken in Slackware 2.0 */
++# endif /* HASGETUSERSHELL */
++# ifndef IP_SRCROUTE
++# define IP_SRCROUTE 0 /* linux <= 1.2.8 doesn't support IP_OPTIONS */
++# endif /* ! IP_SRCROUTE */
++# ifndef HAS_IN_H
++# define HAS_IN_H 1 /* use netinet/in.h */
++# endif /* ! HAS_IN_H */
++# ifndef USE_SIGLONGJMP
++# define USE_SIGLONGJMP 1 /* sigsetjmp needed for signal handling */
++# endif /* ! USE_SIGLONGJMP */
++# ifndef LA_TYPE
++# define LA_TYPE LA_PROCSTR
++# endif /* ! LA_TYPE */
++# define SFS_TYPE SFS_VFS /* use <sys/vfs.h> statfs() impl */
++# define SPT_PADCHAR '\0' /* pad process title with nulls */
++# define HASSTRERROR 1 /* has strerror(3) */
++# ifndef TZ_TYPE
++# define TZ_TYPE TZ_NONE /* no standard for GNU/kFreeBSD */
++# endif /* ! TZ_TYPE */
++# include <paths.h>
++# ifndef _PATH_SENDMAILPID
++# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
++# endif /* ! _PATH_SENDMAILPID */
++# include <sys/sysmacros.h>
++# undef atol /* wounded in <stdlib.h> */
++# if NETINET6
++ /*
++ ** Indirectly included from glibc's <feature.h>. IPv6 support is native
++ ** in 2.1 and later, but the APIs appear before the functions.
++ */
++# undef IPPROTO_ICMPV6
++# if (!defined(NEEDSGETIPNODE))
++ /* Have APIs in <netdb.h>, but no support in glibc */
++# define NEEDSGETIPNODE 1
++# endif /* (!defined(NEEDSGETIPNODE)) */
++# endif /* NETINET6 */
++# ifndef HASFCHOWN
++# define HASFCHOWN 1 /* fchown(2) */
++# endif /* ! HASFCHOWN */
++# endif /* defined(__GLIBC__) && defined(__FreeBSD_kernel__*/
++
++
++/*
+ ** DELL SVR4 Issue 2.2, and others
+ ** From Kimmo Suominen <kim@grendel.lut.fi>
+ **
+diff -Nurd sendmail-8.13.5.orig/include/sm/os/sm_os_linux.h sendmail-8.13.5/include/sm/os/sm_os_linux.h
+--- sendmail-8.13.5.orig/include/sm/os/sm_os_linux.h 2005-09-09 11:36:00.000000000 +0200
++++ sendmail-8.13.5/include/sm/os/sm_os_linux.h 2005-09-09 11:45:45.000000000 +0200
+@@ -15,23 +15,27 @@
+
+ #define SM_OS_NAME "linux"
+
+-/* to get version number */
+-#include <linux/version.h>
++#if defined(__linux__)
+
+-# if !defined(KERNEL_VERSION) /* not defined in 2.0.x kernel series */
+-# define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+-# endif /* ! KERNEL_VERSION */
++ /* to get version number */
++# include <linux/version.h>
+
+-/* doesn't seem to work on Linux */
+-#ifndef SM_CONF_SETITIMER
+-# define SM_CONF_SETITIMER 0
+-#endif /* SM_CONF_SETITIMER */
++# if !defined(KERNEL_VERSION) /* not defined in 2.0.x kernel series */
++# define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
++# endif /* ! KERNEL_VERSION */
+
+-#ifndef SM_CONF_SHM
+-# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,19))
+-# define SM_CONF_SHM 1
+-# endif /* LINUX_VERSION_CODE */
+-#endif /* SM_CONF_SHM */
++ /* doesn't seem to work on Linux */
++# ifndef SM_CONF_SETITIMER
++# define SM_CONF_SETITIMER 0
++# endif /* SM_CONF_SETITIMER */
++
++# ifndef SM_CONF_SHM
++# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,19))
++# define SM_CONF_SHM 1
++# endif /* LINUX_VERSION_CODE */
++# endif /* SM_CONF_SHM */
++
++#endif /* (__linux__) */
+
+ #define SM_CONF_SYS_CDEFS_H 1
+ #ifndef SM_CONF_SEM
diff --git a/debian/patches/8.13/8.13.5/ldap_url_search.p0 b/debian/patches/8.13/8.13.5/ldap_url_search.p0
new file mode 100644
index 0000000..842ecf0
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/ldap_url_search.p0
@@ -0,0 +1,24 @@
+Index: ldap.c
+===================================================================
+RCS file: /cvs/libsm/ldap.c,v
+retrieving revision 1.51
+retrieving revision 1.53
+diff -u -r1.51 -r1.53
+--- ./sendmail-8.13.5/libsm/ldap.c 30 Oct 2003 23:11:12 -0000 1.51
++++ ldap.c 30 Oct 2003 23:33:10 -0000 1.53
+@@ -1043,6 +1043,7 @@
+ NULL : lmap->ldap_attr),
+ lmap->ldap_attrsonly);
+ }
++#if SM_CONF_LDAP_URL_SEARCH
+ else if (rl->lr_type == SM_LDAP_ATTR_URL)
+ {
+ /* do new URL search */
+@@ -1051,6 +1052,7 @@
+ lmap->ldap_attrsonly);
+ newflags |= SM_LDAP_USE_ALLATTR;
+ }
++#endif /* SM_CONF_LDAP_URL_SEARCH */
+ else
+ {
+ /* unknown or illegal attribute type */
diff --git a/debian/patches/8.13/8.13.5/maxseq.patch b/debian/patches/8.13/8.13.5/maxseq.patch
new file mode 100644
index 0000000..9067b62
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/maxseq.patch
@@ -0,0 +1,51 @@
+# This is a patch for conf.h to update it to conf.h.new
+#
+# To apply this patch:
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'applypatch' program with this patch file as input.
+#
+# If you do not have 'applypatch', it is part of the 'makepatch' package
+# that you can fetch from the Comprehensive Perl Archive Network:
+# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
+# In the above URL, 'x' should be 2 or higher.
+#
+# To apply this patch without the use of 'applypatch':
+# STEP 1: Chdir to the source directory.
+# STEP 2: Run the 'patch' program with this file as input.
+#
+#### End of Preamble ####
+
+#### Patch data follows ####
+diff -c 'conf.h' 'conf.h.new'
+Index: ./conf.h
+Prereq: 8.568
+*** ./sendmail-8.13.5/sendmail/conf.h Fri Sep 21 19:01:46 2001
+--- ./conf.h.new Wed Oct 10 09:24:41 2001
+***************
+*** 74,79 ****
+ #define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
+ #define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */
+! #define MAXMAPSTACK 12 /* max # of stacked or sequenced maps */
+ #if MILTER
+ # define MAXFILTERS 25 /* max # of milter filters */
+ # define MAXFILTERMACROS 50 /* max # of macros per milter cmd */
+--- 74,79 ----
+ #define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */
+ #define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */
+! #define MAXMAPSTACK 128 /* max # of stacked or sequenced maps */
+ #if MILTER
+ # define MAXFILTERS 25 /* max # of milter filters */
+ # define MAXFILTERMACROS 50 /* max # of macros per milter cmd */
+#### End of Patch data ####
+
+#### ApplyPatch data follows ####
+# Data version : 1.0
+# Date generated : Wed Oct 10 09:25:12 2001
+# Generated by : makepatch 2.00_03
+# Recurse directories : Yes
+# p 'conf.h' 6809
+#### End of ApplyPatch data ####
+
+#### End of Patch kit [created: Wed Oct 10 09:25:12 2001] ####
+#### Patch checksum: 34 1333 28813 ####
+#### Checksum: 52 2010 19538 ####
diff --git a/debian/patches/8.13/8.13.5/qtool.patch b/debian/patches/8.13/8.13.5/qtool.patch
new file mode 100644
index 0000000..181c344
--- /dev/null
+++ b/debian/patches/8.13/8.13.5/qtool.patch
@@ -0,0 +1,101 @@
+*** ./sendmail-8.13.5/contrib/qtool.pl Wed Mar 5 16:11:54 2003
+--- ./sendmail-8.13.5/contrib/qtool.pl Wed Mar 5 15:59:10 2003
+***************
+*** 355,373 ****
+ sub lock_file
+ {
+ my $file_name = shift;
+ my $result;
+
+ $result = sysopen(FILE_TO_LOCK, $file_name, Fcntl::O_RDWR);
+ if (!$result)
+ {
+ return (undef, "Unable to open '$file_name': $!");
+ }
+
+! $result = flock(FILE_TO_LOCK, Fcntl::LOCK_EX | Fcntl::LOCK_NB);
+! if (!$result)
+ {
+ return (undef, "Could not obtain lock on '$file_name': $!");
+ }
+
+ return (\*FILE_TO_LOCK, undef);
+ }
+--- 355,394 ----
+ sub lock_file
+ {
+ my $file_name = shift;
+ my $result;
+
++ my $FLOCK_STRUCT;
++ my $fcntllock;
++
++ # Supposedly under linux
++ # my $FLOCK_STRUCT = 's s l l i';
++ # But I think perl's using __off64_t instead of __off_t
++ # my $FLOCK_STRUCT = 's s l l l l i';
++ # Screw it, its all zero anyway...
++
++ $FLOCK_STRUCT = 's H60';
++ $fcntllock = pack($FLOCK_STRUCT, F_WRLCK,
++ "000000000000000000000000000000000000000000000000000000000000");
++
+ $result = sysopen(FILE_TO_LOCK, $file_name, Fcntl::O_RDWR);
+ if (!$result)
+ {
++ # print "Unable to open '$file_name': $!";
+ return (undef, "Unable to open '$file_name': $!");
+ }
+
+! $result = fcntl (FILE_TO_LOCK, F_SETLK, $fcntllock);
+!
+! # print "Fcntl Lock result on $file_name = $result\n";
+!
+! # $result = flock(FILE_TO_LOCK, Fcntl::LOCK_EX | Fcntl::LOCK_NB);
+! # print "Lock result on $file_name = $result\n";
+! # if (!$result)
+! if ($result ne "0 but true")
+ {
++ # print "Could not obtain lock on '$file_name': $!\n";
+ return (undef, "Could not obtain lock on '$file_name': $!");
+ }
+
+ return (\*FILE_TO_LOCK, undef);
+ }
+***************
+*** 387,399 ****
+
+ sub unlock_file
+ {
+ my $file = shift;
+ my $result;
+
+! $result = flock($file, Fcntl::LOCK_UN);
+! if (!$result)
+ {
+ return "Unlock failed on '$result': $!";
+ }
+
+ return undef;
+--- 408,428 ----
+
+ sub unlock_file
+ {
+ my $file = shift;
+ my $result;
++ my $FLOCK_STRUCT;
++ my $fcntllock;
+
+! $FLOCK_STRUCT = 's H60';
+! $fcntllock = pack($FLOCK_STRUCT, F_UNLCK,
+! "000000000000000000000000000000000000000000000000000000000000");
+! $result = fcntl (FILE_TO_LOCK, F_SETLK, $fcntllock);
+!
+! if ($result ne "0 but true")
+! # $result = flock($file, Fcntl::LOCK_UN);
+! # if (!$result)
+ {
+ return "Unlock failed on '$result': $!";
+ }
+
+ return undef;