diff options
Diffstat (limited to 'debian/patches/8.13/8.13.5')
-rw-r--r-- | debian/patches/8.13/8.13.5/client_helo.patch | 152 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/cyrusv2.m4.debian-patch | 11 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/dpatch.001 | 50 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/dpatch.002 | 19 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/dpatch.003 | 52 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/dpatch.004 | 52 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/dpatch.005 | 54 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/drac.patch | 24 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/kfreebsd.patch | 146 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/ldap_url_search.p0 | 24 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/maxseq.patch | 51 | ||||
-rw-r--r-- | debian/patches/8.13/8.13.5/qtool.patch | 101 |
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; |