summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard A Nelson (Rick) <cowboy@debian.org>2008-07-15 22:25:00 +0000
committerAndreas Beckmann <debian@abeckmann.de>2012-10-01 20:07:42 +0200
commitcb83348f6c0b88c1d1104d6868be756aa51cc5fa (patch)
treeebed61709d675b931e169105a514a8b82b1a0b83
parentc0720aa475c782c27a17942561685db0e730a77d (diff)
downloadsendmail-cb83348f6c0b88c1d1104d6868be756aa51cc5fa.tar.gz
Imported Debian patch 8.14.3-5debian/8.14.3-5
-rw-r--r--debian/Makefile.in3
-rw-r--r--debian/build/autoconf.mk4
-rw-r--r--debian/build/debian/sendmail.init.d.in6
-rw-r--r--debian/build/site.config.m4.in2
-rw-r--r--debian/cf/Makefile.in3
-rw-r--r--debian/cf/domain/debian-msp.m4.in4
-rw-r--r--debian/cf/domain/debian-mta.m4.in4
-rw-r--r--debian/changelog33
-rw-r--r--debian/configure134
-rw-r--r--debian/configure.ac49
-rw-r--r--debian/examples/Makefile.in3
-rw-r--r--debian/examples/db/access2
-rw-r--r--debian/local/:x!963
-rw-r--r--debian/local/Makefile.in3
-rw-r--r--debian/local/Parse_conf.pm.in17
-rw-r--r--debian/local/update_conf.in120
-rw-r--r--debian/patches/8.14/8.14.3/kerberos.patch23
-rw-r--r--debian/sensible_mda/Makefile.in3
18 files changed, 269 insertions, 1107 deletions
diff --git a/debian/Makefile.in b/debian/Makefile.in
index c3118b7..1fda743 100644
--- a/debian/Makefile.in
+++ b/debian/Makefile.in
@@ -100,8 +100,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
./build/install-sh ./build/missing ./build/mkinstalldirs \
AUTHORS COPYING ChangeLog INSTALL NEWS TODO
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
diff --git a/debian/build/autoconf.mk b/debian/build/autoconf.mk
index 04fef57..9e62798 100644
--- a/debian/build/autoconf.mk
+++ b/debian/build/autoconf.mk
@@ -2,7 +2,7 @@
#------------------------------------------------------------------------------
# vim: syntax=make
#
-# $Sendmail: autoconf.mk,v 8.14.3 2008-05-19 08:22:49 cowboy Exp $
+# $Sendmail: autoconf.mk,v 8.14.3 2008-07-15 15:26:59 cowboy Exp $
#
# Copyright (c) 1998-2008 Richard Nelson. All Rights Reserved.
#
@@ -16,7 +16,7 @@
# on Debian slink, potato, woody, testing, sid, ...
# but the generated file is customized to the version noted above.
#
-# Richard Nelson <cowboy@debian.org> 2008-05-19 08:22:49 (-0700)
+# Richard Nelson <cowboy@debian.org> 2008-07-15 15:26:59 (-0700)
#------------------------------------------------------------------------------
#SHELL := /bin/sh -x
diff --git a/debian/build/debian/sendmail.init.d.in b/debian/build/debian/sendmail.init.d.in
index 3837c7b..4dd7047 100644
--- a/debian/build/debian/sendmail.init.d.in
+++ b/debian/build/debian/sendmail.init.d.in
@@ -1,10 +1,10 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: sendmail
-# Required-Start: $remote_fs $network
-# Required-Stop: $remote_fs $network
+# Required-Start: $remote_fs $network $syslog
+# Required-Stop: $remote_fs $network $syslog
# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Default-Stop: 1
# Short-Description: powerful, efficient, and scalable Mail Transport Agent
# Description: Sendmail is an alternative Mail Transport Agent (MTA)
# for Debian. It is suitable for handling sophisticated
diff --git a/debian/build/site.config.m4.in b/debian/build/site.config.m4.in
index a5c8c95..9b0c142 100644
--- a/debian/build/site.config.m4.in
+++ b/debian/build/site.config.m4.in
@@ -103,6 +103,8 @@ APPENDDEF(`conf_editmap_LIBS', `@sm_editmap_libs@')
# libmilter
APPENDDEF(`conf_libmilter_ENVDEF', `@sm_libmilter_envdef@')
APPENDDEF(`conf_libmilter_LIBS', `@sm_libmilter_libs@')
+APPENDDEF(`conf_libmilter_ENVDEF', `-DSM_CONF_POLL=1')
+APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_WORKERS_POOL=1')
#
# libsm
APPENDDEF(`conf_libsm_ENVDEF', `@sm_libsm_envdef@')
diff --git a/debian/cf/Makefile.in b/debian/cf/Makefile.in
index 53a252e..522f761 100644
--- a/debian/cf/Makefile.in
+++ b/debian/cf/Makefile.in
@@ -35,8 +35,7 @@ target_triplet = @target@
subdir = cf
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/./build/mkinstalldirs
diff --git a/debian/cf/domain/debian-msp.m4.in b/debian/cf/domain/debian-msp.m4.in
index 500314d..e01c92e 100644
--- a/debian/cf/domain/debian-msp.m4.in
+++ b/debian/cf/domain/debian-msp.m4.in
@@ -41,12 +41,12 @@ define(`confCONTROL_SOCKET_NAME',
dnl #
dnl # flags
define(`confPROCESS_TITLE_PREFIX', `MSP')dnl
-define(`confNO_RCPT_ACTION', `add-to-undisclosed')dnl
+dnl define(`confNO_RCPT_ACTION', `add-to-undisclosed')dnl
define(`confRRT_IMPLIES_DSN', `False')dnl
define(`confSAFE_FILE_ENV', `/')dnl
define(`confSAFE_QUEUE', `True')dnl
define(`confQUEUE_FILE_MODE', `0660')dnl
-define(`confTEMP_FILE_MODE', `0644')dnl
+define(`confTEMP_FILE_MODE', `0640')dnl
dnl #
dnl # Provide some 'more reasonable' timeout values
dnl # See SASL/TLS sections below for more timeout values
diff --git a/debian/cf/domain/debian-mta.m4.in b/debian/cf/domain/debian-mta.m4.in
index 0aaff70..43e6ac4 100644
--- a/debian/cf/domain/debian-mta.m4.in
+++ b/debian/cf/domain/debian-mta.m4.in
@@ -39,7 +39,7 @@ dnl #
dnl # flags
define(`confPROCESS_TITLE_PREFIX', `MTA')dnl
define(`confMAX_DAEMON_CHILDREN', `0')dnl
-define(`confNO_RCPT_ACTION', `add-to-undisclosed')dnl
+dnl define(`confNO_RCPT_ACTION', `add-to-undisclosed')dnl
define(`confRRT_IMPLIES_DSN', `False')dnl
define(`confSAFE_FILE_ENV', `/')dnl
define(`confSAFE_QUEUE', `True')dnl
@@ -87,7 +87,7 @@ dnl #
dnl # Allow mailq/hoststat to work with both MSP/MTA queues
ifelse(eval(sm_version_math >= 527360), `1',dnl
`define(`confQUEUE_FILE_MODE', `0640')dnl'
-`define(`confTEMP_FILE_MODE', `0644')dnl')
+`define(`confTEMP_FILE_MODE', `0640')dnl')
dnl #
dnl # For security, we default to not letting lusers run the queues
dnl # If possible, we prevent sendmail -bv from reading things they shouldn't
diff --git a/debian/changelog b/debian/changelog
index c8daa2d..1a83e66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,36 @@
+sendmail (8.14.3-5) unstable; urgency=high
+
+ * Sendmail uses the same filemode for pid/hoststat/dead.letter/etc
+ files :( To prevent world readable dead.letter files, we have to
+ restrict other data as well (like hoststat/mailq) Closes: #481347
+
+ * Remove confNO_RCPT_ACTION for better spam detection Closes: #490776
+
+ * Several changes thanks to Joe Maimon
+ + Update sample access db to not block Connect:0, as it
+ has the unintended side effect of killing sendmail -bs -Am :(
+ + add autoconf AC_PROG_MKDIR_P
+ + rewrite SM_RESULTS_IFELSE autoconf macro with AC_RUN_IFELSE
+ why didn't I think of that, but still, it was an experience :)
+
+ * Improve the sendmail.conf comment, and parsing of timespecs
+ when creating crontabs (also randomize start times)
+ Thanks to Michael J. Micek
+
+ * Improve the sendmail.conf commentary for QUEUE_INTERVAL
+ to note how to create persistent queue-runners (p120m)
+ Thanks to Michael J. Micek
+
+ * Milter changes for increased performance
+ + Enable poll (vs select)
+ + Enable _FFR_WORKERS_POOL
+
+ * Init script touch-ups
+ + Make init script depend on $syslog
+ + Remove 0 and 6 from Default-Stop in init script
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Tue, 15 Jul 2008 22:25:00 -0000
+
sendmail (8.14.3-4) unstable; urgency=low
* Redo the Perl 5.10 fix so that it sticks this time
diff --git a/debian/configure b/debian/configure
index f574a5b..c161d6b 100644
--- a/debian/configure
+++ b/debian/configure
@@ -2080,6 +2080,48 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm -f conftest.sed
+{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+done
+IFS=$as_save_IFS
+
+fi
+
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ test -d ./--version && rmdir ./--version
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+echo "${ECHO_T}$MKDIR_P" >&6; }
+
{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
@@ -2250,48 +2292,6 @@ else
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
-if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
-done
-IFS=$as_save_IFS
-
-fi
-
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- test -d ./--version && rmdir ./--version
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
-
mkdir_p="$MKDIR_P"
case $mkdir_p in
[\\/$]* | ?:[\\/]*) ;;
@@ -5139,14 +5139,29 @@ done
if test "$sm_have_mfapi" = 'yes'; then
{ echo "$as_me:$LINENO: checking libmilter version" >&5
echo $ECHO_N "checking libmilter version... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+ /*
+ * This hack will compile and run a program
+ * to determine what level of libmilter should
+ * be used for this package
+ */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "libmilter/mfapi.h"
char vers[30] = "0";
int main (void) {
+ FILE *confout = fopen("conftest.out","w");
+ if (!confout)
+ return 1;
snprintf(vers
,sizeof(vers)
,"%d%c%d%c%d"
@@ -5156,10 +5171,11 @@ echo $ECHO_N "checking libmilter version... $ECHO_C" >&6; }
,'.'
,SM_LM_VRS_PLVL(SMFI_VERSION)
);
- fprintf(stdout
+ fprintf(confout
,"%s\n"
,vers
);
+ close(confout);
return 0;
}
@@ -5175,7 +5191,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext >conftest.out 2>conftest.err'
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
@@ -5185,7 +5201,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- sm_libmilter_version="$(cat conftest.out)"
+ sm_libmilter_version=`cat conftest.out`
else
echo "$as_me: program exited with status $ac_status" >&5
@@ -5197,6 +5213,9 @@ sm_libmilter_version=0
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
{ echo "$as_me:$LINENO: result: $sm_libmilter_version" >&5
echo "${ECHO_T}$sm_libmilter_version" >&6; }
fi;
@@ -5811,9 +5830,9 @@ if test $sm_enable_newdb != no; then
-for ac_header in db4/db.h db3/db.h db2/db.h db1/db.h db.h \
- db4/db_185.h db3/db_185.h db2/db_185.h \
- db1/db_185.h db_185.h
+for ac_header in db.h db4/db.h db3/db.h db2/db.h db1/db.h \
+ db_185.h db4/db_185.h db3/db_185.h db2/db_185.h \
+ db1/db_185.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
@@ -5957,11 +5976,11 @@ fi
done
- if [ $ac_cv_header_db4_db_h = yes ] \
+ if [ $ac_cv_header_db_h = yes ] \
+ || [ $ac_cv_header_db4_db_h = yes ] \
|| [ $ac_cv_header_db3_db_h = yes ] \
|| [ $ac_cv_header_db2_db_h = yes ] \
- || [ $ac_cv_header_db1_db_h = yes ] \
- || [ $ac_cv_header_db_h = yes ]; then
+ || [ $ac_cv_header_db1_h = yes ]; then
sm_have_newdb=yes;
fi;
@@ -6251,7 +6270,7 @@ if test $ac_cv_lib_db_4_5_db_create = yes; then
sm_newdb_lib='db-4.5'
else
- { echo "$as_me:$LINENO: checking for db_create in -ldb-4.4" >&5
+ { echo "$as_me:$LINENO: checking for db_create in -ldb-4.4" >&5
echo $ECHO_N "checking for db_create in -ldb-4.4... $ECHO_C" >&6; }
if test "${ac_cv_lib_db_4_4_db_create+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6316,7 +6335,7 @@ if test $ac_cv_lib_db_4_4_db_create = yes; then
sm_newdb_lib='db-4.4'
else
- { echo "$as_me:$LINENO: checking for db_create in -ldb-4.3" >&5
+ { echo "$as_me:$LINENO: checking for db_create in -ldb-4.3" >&5
echo $ECHO_N "checking for db_create in -ldb-4.3... $ECHO_C" >&6; }
if test "${ac_cv_lib_db_4_3_db_create+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6381,7 +6400,7 @@ if test $ac_cv_lib_db_4_3_db_create = yes; then
sm_newdb_lib='db-4.3'
else
- { echo "$as_me:$LINENO: checking for db_create_4002 in -ldb-4.2" >&5
+ { echo "$as_me:$LINENO: checking for db_create_4002 in -ldb-4.2" >&5
echo $ECHO_N "checking for db_create_4002 in -ldb-4.2... $ECHO_C" >&6; }
if test "${ac_cv_lib_db_4_2_db_create_4002+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6446,7 +6465,7 @@ if test $ac_cv_lib_db_4_2_db_create_4002 = yes; then
sm_newdb_lib='db-4.2'
else
- { echo "$as_me:$LINENO: checking for db_create in -ldb" >&5
+ { echo "$as_me:$LINENO: checking for db_create in -ldb" >&5
echo $ECHO_N "checking for db_create in -ldb... $ECHO_C" >&6; }
if test "${ac_cv_lib_db_db_create+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6510,7 +6529,8 @@ echo "${ECHO_T}$ac_cv_lib_db_db_create" >&6; }
if test $ac_cv_lib_db_db_create = yes; then
sm_newdb_lib='db'
else
- sm_have_newdb=no
+
+ sm_have_newdb=no
fi
fi
diff --git a/debian/configure.ac b/debian/configure.ac
index 4f336c9..8b730b7 100644
--- a/debian/configure.ac
+++ b/debian/configure.ac
@@ -96,6 +96,7 @@ AC_SUBST(PACKAGE_NAME) AC_SUBST(PACKAGE_STRING)
AC_CONFIG_AUX_DIR([./build])dnl
AC_CANONICAL_TARGET
AC_ARG_PROGRAM
+AC_PROG_MKDIR_P
AC_PROG_MAKE_SET
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE
@@ -648,13 +649,21 @@ if test "$sm_enable_milter" != "no"; then
sm_libmilter_version=0])
if test "$sm_have_mfapi" = 'yes'; then
AC_MSG_CHECKING([libmilter version])
- SM_RESULT_IFELSE([[
+ AC_RUN_IFELSE([[
+ /*
+ * This hack will compile and run a program
+ * to determine what level of libmilter should
+ * be used for this package
+ */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "libmilter/mfapi.h"
char vers[30] = "0";
int main (void) {
+ FILE *confout = fopen("conftest.out","w");
+ if (!confout)
+ return 1;
snprintf(vers
,sizeof(vers)
,"%d%c%d%c%d"
@@ -664,14 +673,15 @@ if test "$sm_enable_milter" != "no"; then
,'.'
,SM_LM_VRS_PLVL(SMFI_VERSION)
);
- fprintf(stdout
+ fprintf(confout
,"%s\n"
,vers
);
+ close(confout);
return 0;
}
]]
- ,[AS_VAR_SET(sm_libmilter_version, "$(cat conftest.out)")]
+ ,[sm_libmilter_version=`cat conftest.out`]
,[sm_libmilter_version=0]
)
AC_MSG_RESULT([$sm_libmilter_version])
@@ -815,14 +825,14 @@ sm_have_newdb=no;
sm_use_185=no;
sm_newdb_lib=;
if test $sm_enable_newdb != no; then
- AC_CHECK_HEADERS(db4/db.h db3/db.h db2/db.h db1/db.h db.h \
- db4/db_185.h db3/db_185.h db2/db_185.h \
- db1/db_185.h db_185.h)
- if [[ $ac_cv_header_db4_db_h = yes ]] \
+ AC_CHECK_HEADERS(db.h db4/db.h db3/db.h db2/db.h db1/db.h \
+ db_185.h db4/db_185.h db3/db_185.h db2/db_185.h \
+ db1/db_185.h)
+ if [[ $ac_cv_header_db_h = yes ]] \
+ || [[ $ac_cv_header_db4_db_h = yes ]] \
|| [[ $ac_cv_header_db3_db_h = yes ]] \
|| [[ $ac_cv_header_db2_db_h = yes ]] \
- || [[ $ac_cv_header_db1_db_h = yes ]] \
- || [[ $ac_cv_header_db_h = yes ]]; then
+ || [[ $ac_cv_header_db1_h = yes ]]; then
sm_have_newdb=yes;
fi;
@@ -920,17 +930,16 @@ if test $sm_enable_newdb != no; then
if test $sm_newdb_lib = db4; then
AC_CHECK_LIB(db-4.6, db_create, [sm_newdb_lib='db-4.6'], [
AC_CHECK_LIB(db-4.5, db_create, [sm_newdb_lib='db-4.5'], [
- AC_CHECK_LIB(db-4.4, db_create, [sm_newdb_lib='db-4.4'], [
- AC_CHECK_LIB(db-4.3, db_create, [sm_newdb_lib='db-4.3'], [
- AC_CHECK_LIB(db-4.2, db_create_4002,
- [sm_newdb_lib='db-4.2'], [
- AC_CHECK_LIB(db, db_create,
- [sm_newdb_lib='db'], [sm_have_newdb=no])dnl
- ])dnl
- ])dnl
- ])dnl
- ])dnl
- ])dnl
+ AC_CHECK_LIB(db-4.4, db_create, [sm_newdb_lib='db-4.4'], [
+ AC_CHECK_LIB(db-4.3, db_create, [sm_newdb_lib='db-4.3'], [
+ AC_CHECK_LIB(db-4.2, db_create_4002, [sm_newdb_lib='db-4.2'], [
+ AC_CHECK_LIB(db, db_create, [sm_newdb_lib='db'], [
+ sm_have_newdb=no])dnl
+ ])dnl
+ ])dnl
+ ])dnl
+ ])dnl
+ ])dnl
elif test $sm_newdb_lib = db3; then
AC_CHECK_LIB($sm_newdb_lib, db_create, [:], [
AC_CHECK_LIB(db, db_create,
diff --git a/debian/examples/Makefile.in b/debian/examples/Makefile.in
index 86e6fad..496bdff 100644
--- a/debian/examples/Makefile.in
+++ b/debian/examples/Makefile.in
@@ -39,8 +39,7 @@ DIST_COMMON = $(dist_man_MANS) $(dist_sbin_SCRIPTS) \
$(nobase_dist_sysconf_DATA) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/./build/mkinstalldirs
diff --git a/debian/examples/db/access b/debian/examples/db/access
index de466df..dd1b87a 100644
--- a/debian/examples/db/access
+++ b/debian/examples/db/access
@@ -132,7 +132,7 @@ reject@ REJECT
#
# Block invalid IPs
#
-Connect:0 REJECT
+#Connect:0 REJECT whilst invalid, this also blocks sendmail -bs -Am
Connect:169.254 REJECT
Connect:192.0.2 REJECT
Connect:224 REJECT
diff --git a/debian/local/:x! b/debian/local/:x!
deleted file mode 100644
index ecb13a7..0000000
--- a/debian/local/:x!
+++ /dev/null
@@ -1,963 +0,0 @@
-#!/usr/bin/perl -w
-#------------------------------------------------------------------------
-#
-# $Sendmail: Parse_conf.pm,v @sm_version@ @sm_date@ @sm_time@ cowboy Exp $
-#
-# Parse and update /etc/mail/sendmail.conf
-#
-# Copyright (c) 2001-@SM_CPYRT@ Richard Nelson. All Rights Reserved.
-#
-# Notes (to all):
-#
-# Notes (to self):
-#
-#------------------------------------------------------------------------
-#
-# Package/Module declaration
-package Parse_conf;
-require Exporter;
-@ISA = qw(Exporter);
-#@EXPORT = qw(read_conf write_conf);
-@EXPORT_OK = qw(read_conf write_conf get_value);
-$VERSION = '2.0000';
-#
-# Initialization of the perl environment
-use strict; # be kosher
-#use warnings; # Not needed here
-use Cwd; # provide cwd()
-use Env; # A few environmental references
-use integer; # Peformance
-use Sys::Hostname; # make sure we have a valid hostname
-use Getopt::Long; # parameter handling
-use FileHandle; # I/O
-
-# Local libraries - for Debian Sendmail Perl helper functions
-# BEGIN { $main::my_path = substr($0,$[,rindex($0,'/')) };
-use lib ('.', substr($0,$[,rindex($0,'/')), "@datadir@/sendmail");
-require Parse_mc;
-
-# Version of this program
-#($main::MYNAME = $main::0) =~ s|.*/||;
-#$main::Author = "Richard Nelson";
-#$main::AuthorMail = "cowboy\@debian.org";
-#$main::Version = '$Revision: 1.00 $ ';
-$Parse_conf::program_name = 'Parse_conf.pm';
-$Parse_conf::program_version = '@sm_version@';
-$Parse_conf::program_date = '@sm_date@ @sm_time@ cowboy';
-$Parse_conf::debug = 0;
-
-my $interp_pgm = "$^X";
-my $interp_vrm = $];
-$interp_vrm = ("$^V" | '000') if (defined $^V);
-my $current_time = scalar localtime;
-my $user = getlogin || (getpwuid($<))[0] || "Unknown!!";
-my $hostname = hostname();
-my $directory = getcwd();
-
-$Parse_conf::Conffile = "@sysconfdir@/mail/sendmail.conf";
-my $debug;
-
-#
-#------------------------------------------------------------------------------
-# Global variables
-#------------------------------------------------------------------------------
-my %parm_def = (
- 'DAEMON_NETMODE' => 'Static'
- ,'DAEMON_NETIF' => 'eth0'
- ,'DAEMON_MODE' => 'Daemon'
- ,'DAEMON_RUNASUSER' => 'No'
- ,'DAEMON_PARMS' => ''
- ,'DAEMON_HOSTSTATS' => 'No'
- ,'DAEMON_MAILSTATS' => 'No'
- ,'QUEUE_MODE' => '${DAEMON_MODE}'
- ,'QUEUE_INTERVAL' => '10m'
- ,'QUEUE_PARMS' => ''
- ,'MSP_MODE' => 'Cron'
- ,'MSP_INTERVAL' => '20m'
- ,'MSP_PARMS' => ''
- ,'MSP_MAILSTATS' => '${DAEMON_MAILSTATS}'
- ,'MISC_PARMS' => ''
- ,'CRON_MAILTO' => 'root'
- ,'CRON_PARMS' => ''
- ,'HANDS_OFF' => 'No'
- ,'LOG_CMDS' => 'No'
- ,'AGE_DATA' => ''
- );
-
-my %parameter = %parm_def;
-
-my %parm_kw = (
- 'DAEMON_NETMODE' => ['static', 'dynamic']
- ,'DAEMON_MODE' => ['daemon', 'inetd','none']
- ,'QUEUE_MODE' => ['daemon', 'cron', 'none']
- ,'MSP_MODE' => ['daemon', 'cron', 'none']
- );
-
-my %parm_bool = (
- 'HANDS_OFF' => 1
- ,'DAEMON_RUNASUSER' => 1
- ,'DAEMON_HOSTSTATS' => 1
- ,'DAEMON_MAILSTATS' => 1
- ,'MSP_MAILSTATS' => 1
- ,'LOG_CMDS' => 1
- );
-
-my %parm_dependant = (
- );
-
-my %parm_deprecated = (
- 'DAEMON_STATS' => 'DAEMON_MAILSTATS'
- ,'MSP_STATS' => 'MSP_MAILSTATS'
- );
-
-my %parm_hidden = (
- 'DAEMON_RUNASUSER' => 1
- ,'prefix' => 1
- ,'exec_prefix' => 1
- ,'bindir' => 1
- ,'sbindir' => 1
- ,'libexecdir' => 1
- ,'datadir' => 1
- ,'sysconfdir' => 1
- ,'sharedstatedir' => 1
- ,'localstatedir' => 1
- ,'libdir' => 1
- ,'MTA_DAEMON' => 1
- ,'MTA_COMMAND' => 1
- ,'MTA_L' => 1
- ,'MTA_L_QUEUE' => 1
- ,'MTA_ROOT' => 1
- ,'MTA_PIDFILE' => 1
- ,'MSP_DAEMON' => 1
- ,'MSP_COMMAND' => 1
- ,'MSP_L' => 1
- ,'MSP_L_QUEUE' => 1
- ,'MSP_ROOT' => 1
- ,'MSP_PIDFILE' => 1
- );
-
-#
-#------------------------------------------------------------------------------
-# Finally, some code (almost)
-#------------------------------------------------------------------------------
-1; # return (true);
-
-
-#
-#------------------------------------------------------------------------------
-# Read /etc/mail/sendmail.conf
-#------------------------------------------------------------------------------
-sub read_conf {
- my ($input_file) = @_;
- $input_file ||= $Parse_conf::Conffile;
-
- $debug = $main::debug || $Parse_conf::debug;
-
- # Update defaults according to current environment
- &update_defaults;
-
- # Read /etc/mail/sendmail.conf (if extant)
- &read_config($input_file);
-
- # Update old values to new format
- &update_values;
-
- # Make sure things are kosher
- my $ok = &validate_config;
- if (! $ok) {
- die "Terminating due to configuration error.";
- };
- };
-
-#
-#------------------------------------------------------------------------------
-# [Re]write /etc/mail/sendmail.conf
-#------------------------------------------------------------------------------
-sub write_conf {
- my ($output_file) = @_;
-
- $debug = $main::debug || $Parse_conf::debug;
-
- &write_config($output_file);
- };
-
-#
-#------------------------------------------------------------------------
-# Update default settings according to current environment
-#------------------------------------------------------------------------
-sub update_defaults {
- my ($class, $flags, $files, $options);
- my ($ok, $stats);
- my $file;
-
- # Read the mc/m4 files
- &Parse_mc::read_dbs('', '');
-
- # Obtain entry for HOST_STATUS_DIRECTORY
- ($class, $flags, $files, $options) =
- &Parse_mc::entry_dbs('confHOST_STATUS_DIRECTORY');
- $file = @{$files}[0];
- if ( $file ne '-' and -d $file ) {
- $parameter{'DAEMON_HOSTSTATS'} = 'Yes';
- }
- else {
- $parameter{'DAEMON_HOSTSTATS'} = 'No';
- };
-
- # Obtain entry for STATUS_FILE
- ($class, $flags, $files, $options) =
- &Parse_mc::entry_dbs('STATUS_FILE');
- $file = @{$files}[0];
- if ( $file ne '-' and -e $file ) {
- $parameter{'DAEMON_MAILSTATS'} = 'Yes';
- }
- else {
- $parameter{'DAEMON_MAILSTATS'} = 'No';
- };
-
- # Obtain entry for MSP_STATUS_FILE
- ($class, $flags, $files, $options) =
- &Parse_mc::entry_dbs('MSP_STATUS_FILE');
- $file = @{$files}[0];
- if ( $file ne '-' and -e $file ) {
- $parameter{'MSP_MAILSTATS'} = 'Yes';
- }
- else {
- $parameter{'MSP_MAILSTATS'} = 'No';
- };
-
- };
-
-#
-#------------------------------------------------------------------------
-# Update old settings according to current format
-#------------------------------------------------------------------------
-sub update_values {
- my ($ok, $var);
-
- # Add m(inutes) to {queue,msp}_interval if needed
- $parameter{'QUEUE_INTERVAL'} =~ s/^(\d+)$/$1m/;
- $parameter{'MSP_INTERVAL'} =~ s/^(\d+)$/$1m/;
-
- # Also update the queue aging data
- ($ok, $var) = &get_value('AGE_DATA');
- my $tmpval = eval $var;
- if ($@) {
- warn $@;
- }
- else {
- $var = $tmpval;
- };
- if (not defined $var) {
- $tmpval = '""';
- }
- elsif (not ref $var) {
- $tmpval = "$var";
- }
- elsif (@{$var} == 0) {
- $tmpval = '""';
- }
- else {
- $tmpval = '[';
- foreach my $entry (@{$var}) {
- foreach my $ndx ($[ .. $#{$entry}) {
- @{$entry}[$ndx] =~ s/'/\\'/g;
- };
- @{$entry}[0] =~ s/^(\d+)$/$1m/;
- $tmpval .= "['" . join("', '", @{$entry}) . "'],";
- };
- $tmpval .= ']';
- $parameter{'AGE_DATA'} = $tmpval;
- };
-
- # Set any dependant fields here...
- };
-
-#
-#------------------------------------------------------------------------
-# Obtain parameter name
-#------------------------------------------------------------------------
-sub get_name {
- my ($name, $quiet) = @_;
-
- # Handle deprecated/renamed variables
- if ( exists($parm_deprecated{$name}) ) {
- print STDERR "$name is deprecated."
- if ($debug and ! $quiet);
- if ( $parm_deprecated{$name} ) {
- print STDERR " Please use $parm_deprecated{$name} instead.\n"
- if ($debug and ! $quiet);
- $name = $parm_deprecated{$name};
- }
- else {
- print STDERR " It will be ignored.\n"
- if ($debug and ! $quiet);
- };
- };
-
- return $name;
- };
-
-#
-#------------------------------------------------------------------------
-# Obtain value directly, or indirectly
-#------------------------------------------------------------------------
-sub get_value {
- my ($name) = @_;
- my $ok = 1;
- my $value = '';
- if ( ! exists($parameter{$name}) ) {
- print STDERR "Variable $name not defined...\n";
- return ($ok, $value);
- };
-
- $name = get_name($name, '');
- $value = $parameter{$name};
-
- my $tval = $value;
- $tval =~ s/^\s*//;
- my $default = 0;
-
- # Dereference loop... keep original value if we get any errors...
- Dereference:;
- if ($tval =~ /^\$/) {
- my @ref_stack = ($name);
- my %ref_hash = ($name => 1);
- while ($tval =~ /^\$/ and $ok) {
- my $start = 1;
- my $del = 1;
- my $char = substr($tval, 1, 1);
- if ( $char eq '{' or $char eq '(' ) {
- $start += 1; $del += 2;
- };
- my $ref = get_name(substr($tval, $start,
- length($tval)-$del), '');
- push @ref_stack, $ref;
- if (exists($ref_hash{$ref})) {
- print STDERR "Go directly to jail; do not pass go, ",
- "do not collect \$200\n";
- print STDERR " Reference loop: ",
- join('->', @ref_stack, '...'),"\n";
- $ok = 0;
- }
- else {
- $ref_hash{$ref} = 1;
- if (lc $ref eq 'default') {
- $tval = $parm_def{$name};
- print STDERR
- "Setting $name to default value: ",
- "$parm_def{$name}.\n"
- if ($debug);
- }
- elsif (exists($parameter{$ref})) {
- $tval = $parameter{$ref};
- print STDERR
- "Setting $name to value of $ref: $tval.\n"
- if ($debug);
- }
- else {
- print STDERR
- "Can not deference $ref, it doesn't exist.\n";
- $ok = 0;
- };
- };
- };
- };
-
- if ( $ok ) {
- # Check keyword parms for valid values
- if (exists $parm_kw{$name}) {
- my @ltval = split(/\s/,$tval);
- my $ltval = lc(@ltval[$[]);
- my $found = "";
- foreach my $value (@{$parm_kw{$name}}) {
- if ($value eq $ltval) {
- $found = 1; $tval = ucfirst($ltval); };
- };
- if ( ! $found ) {
- $default += 1;
- if ( $default > 1 ) {
- print STDERR
- "Can not resolve $name, value=$value.\n";
- $ok = 0;
- }
- else {
- print STDERR "Illegal value($tval) for $name.\n",
- " Valid values are: ",
- join(', ', @{$parm_kw{$name}}),
- "\n",
- " Set to default: $parm_def{$name}.\n";
- $tval = $parm_def{$name};
- goto Dereference;
- };
- };
- }
-
- # Check boolean parms for valid values
- elsif (exists $parm_bool{$name}) {
- my @ltval = split(/\s/,$tval);
- my $ltval = lc(@ltval[$[]);
- $ltval =~ s/^[ty1].*/1/;
- $ltval =~ s/^[fn0].*/0/;
- if ($ltval eq '0' or $ltval eq '1') {
- $tval = ucfirst($ltval); }
- else {
- $default += 1;
- if ( $default > 1 ) {
- print STDERR
- "Can not resolve $name, value=$value.\n";
- $ok = 0;
- }
- else {
- print STDERR "Illegal value($tval) for $name.\n",
- " Valid values are: T[rue],Y[es],1,",
- " F[alse],N[o],0\n",
- " Set to default: $parm_def{$name}.\n";
- $tval = $parm_def{$name};
- goto Dereference;
- };
- };
- };
- };
-
- $value = $tval if $ok;
-
- print STDERR "get_value : $name => $value\n"
- if ($debug);
-
- return ($ok, $value);
- };
-
-#
-#------------------------------------------------------------------------
-# Read input configuration file (if no input, just use defaults)
-#------------------------------------------------------------------------
-sub read_config {
- my ($input_file) = @_;
- @ARGV = split(' ', $input_file);
- return if (! -r $input_file);
-
- my $savename = '';
- my $parmname = '';
- my $parmval = '';
- my $parmref = '';
- my $defname = '';
- my $defval = '';
- my $tmpval = '';
-
- print STDOUT "Reading configuration from ", join(',',@ARGV), ".\n";
-
- line: while (<ARGV>) {
- next line if /^$/; # skip empty lines
- chomp; # drop tailing \n
- if (s/\\$//) {
- $_ .= <>;
- redo unless eof();
- };
-
- # check commented lines for default parameter values
- # a bit of a kluge, but it works out nicely
- if (/^#\s*([\w_]+)="([^"]*)"/) {
- $defname = get_name($1, 1);
- $defval = $2;
- print STDERR "Default: $defname => $defval.\n"
- if ($debug);
- next line;
- };
- # Skip any comments
- next line if /^#/; # skip comments
-
- # Process assignment statements
- if (/^\s*([\w_]+)="([^"]*)"/) {
- $savename = $1;
- $parmname = get_name($savename, '');
- $parmval = $2;
- print STDERR "Value : $savename => $parmval.\n"
- if ($debug);
-
- # Do we know about this parameter?
- # NOTE: keep, even if we don't know about it to prevent
- # problems with up/down grades (not loose anything)
- if ( ! exists($parm_def{$parmname}) and
- ! exists($parm_hidden{$parmname}) ) {
- print STDERR "$parmname is a user defined parameter.\n"
- if ($debug);
- };
-
- # Note if value is default, if so, we'll change it to
- # the current default - maybe counterintuitive, oh well
- # it does help with migration
- if ($parmname eq $defname and $parmval eq $defval) {
- print STDERR "$parmname is the default value: $defval.\n"
- if ($debug);
- $parmval = $parm_def{$parmname};
- };
-
- # Finally, assign value
- if (exists $parm_kw{$savename} or
- exists $parm_bool{$savename}) {
- $parmval = ucfirst($parmval);
- };
-
- if ($savename eq $parmname) {
- $parameter{$parmname} = $parmval;
- }
- else {
- $parameter{$savename} = $parmval;
- };
- };
- };
- };
-
-#
-#------------------------------------------------------------------------
-# Validate current configuration
-#------------------------------------------------------------------------
-sub validate_config {
-
- my $valid = 1;
-
- print STDOUT "Validating configuration.\n";
-
- # Really, we only care about the some of the variables - those
- # that have defaults... the rest, well, so what !
- foreach my $val (sort keys %parm_def) {
- my ($ok, $value) = &get_value($val, 1);
- if (! $ok) { $valid = 0; };
- };
-
- if (! $valid ) {
- print STDERR "\nOne or more errors were encountered!\n\n";
- };
-
- return ($valid);
- };
-
-#
-#------------------------------------------------------------------------
-# Write updated configuration file
-#------------------------------------------------------------------------
-sub write_config {
- my ($database_file) = @_;
- my $ofh = new FileHandle;
-
- # Make sure things are kosher
- my $result = &validate_config;
- if (! $result) {
- die "Terminating due to configuration error.";
- };
-
- $database_file = $database_file || $Parse_conf::Conffile;
- my $caller = "$main::program_name" if ($main::program_name);
- $caller .= " $main::program_version" if ($main::program_version);
- $caller .= " $main::program_date" if ($main::program_date);
-
- print STDOUT "Writing configuration to $database_file.\n";
- $database_file = '&STDOUT' if ($database_file eq '-');
- unless ( open($ofh, ">$database_file") ) {
- warn("Could not open $database_file($!), using STDOUT\n");
- open($ofh, ">&STDOUT");
- };
- $database_file = '-' if ($database_file eq '&STDOUT');
-
-# print $ofh <<"EOT";
-####################################################################
-##### This file is automagically generated -- edit at your own risk
-#####
-##### file: ${database_file}
-##### generated via: (${interp_pgm} ${interp_vrm})
-##### ${caller}
-##### ${Parse_conf::program_name} ${Parse_conf::program_version} ${Parse_conf::program_date}
-##### by: ${user}\@${hostname}
-##### on: ${current_time}
-##### in: ${directory}
-##### input files:
-#EOT
-# foreach my $file ( split(' ', $input_file) ) {
-# print $ofh <<"EOT";
-##### ${file}
-#EOT
-# };
-# print $ofh <<"EOT";
-#####
-####################################################################
- print $ofh <<"EOT";
-#------------------------------------------------------------------------------
-#
-# $database_file
-#
-# Copyright (c) 2001-@SM_CPYRT@ Richard Nelson. All Rights Reserved.
-# Version: ${main::program_version}
-# Time-stamp: <${main::program_date}>
-#
-# Parameter file for sendmail (sourced by /usr/share/sendmail/sendmail)
-# Make all changes herein, instead of altering /etc/init.d/sendmail.
-#
-# After making changes here, you'll need to run /usr/sbin/sendmailconfig
-# or ${main::program_name} to have the changes take effect -
-# If you change DAEMON_MODE, QUEUE_MODE, or QUEUE_INTERVAL, you'll also
-# need to run /etc/init.d/sendmail restart.
-#
-# Changes made herein will be kept across upgrades - except for comments!
-# Some comment lines have special significance ...
-#
-# **** **** **** **** DO NOT EDIT THE COMMENTS **** **** **** ****
-#
-# Supported parameters (and defaults) are listed herein.
-#
-# Notes:
-# * This setup allows sendmail to run in several modes:
-# - listener and queue runner..DAEMON_MODE="daemon".QUEUE_MODE="daemon"
-# - listener only..............DAEMON_MODE="daemon".QUEUE_MODE="none"
-# - queue runner only..........DAEMON_MODE="none"...QUEUE_MODE="daemon"
-# - *NOTHING* ?!?..............DAEMON_MODE="none"...QUEUE_MODE="none"
-#
-# * You can also run the listener from inetd:
-# - listener and queue runner..DAEMON_MODE="inetd"..QUEUE_MODE="daemon"
-# - listener only..............DAEMON_MODE="inetd"..QUEUE_MODE="none"
-#
-# * You can also run the queue runner from cron:
-# - listener and queue runner..DAEMON_MODE="....."..QUEUE_MODE="cron"
-# - queue runner only..........DAEMON_MODE="none"...QUEUE_MODE="cron"
-#
-# * _PARMS entries herein are shown in precedence order, any later _PARMS
-# field will, if applicable, override any previous _PARMS fields.
-#
-# * Values *MUST* be surrounded with double quotes ("), single quotes
-# will *NOT* work !
-#
-#------------------------------------------------------------------------------
-# SMTP Listener Configuration
-#
-# DAEMON_NETMODE="$parm_def{'DAEMON_NETMODE'}"; Keyword SMTP network mode
-# static: Do not monitor any network interfaces for changes
-# dynamic: Monitor one or more interfaces for changes
-#
-DAEMON_NETMODE="$parameter{'DAEMON_NETMODE'}";
-#
-# DAEMON_NETIF="$parm_def{'DAEMON_NETIF'}"; string SMTP interface(s)
-# This parameter defines the network interface(s) that the daemon
-# will monitor for status changes (via ppp, dhcp, ifup/down hooks).
-#
-# NOTES:
-# 1) Only list more than one interfaces if they only used for fallback,
-# otherwise the daemon will wind up ping-ponging between interfaces.
-# 2) Do not use 'lo' unless your daemon only listens on the localhost.
-#
-DAEMON_NETIF="$parameter{'DAEMON_NETIF'}";
-#
-# DAEMON_MODE="$parm_def{'DAEMON_MODE'}"; Keyword SMTP listener
-# daemon: Run as standalone daemon
-# inetd: Run from inet supervisor (forks for each mail)
-# none: No listener (ie, nullclient/smarthost)
-#
-# NOTE: If you choose "none", mail will build up in the MSP queues
-# and you will not receive any mail from external sites.
-#
-DAEMON_MODE="$parameter{'DAEMON_MODE'}";
-#
-# DAEMON_PARMS="$parm_def{'DAEMON_PARMS'}"; String Listener parms
-# Any parameters here will be ignored when run from cron.
-# Note that {QUEUE,MISC,CRON}_PARMS, if applicable, will override
-# anything declared herein.
-#
-DAEMON_PARMS="$parameter{'DAEMON_PARMS'}";
-#
-# DAEMON_HOSTSTATS="$parm_def{'DAEMON_HOSTSTATS'}"; Boolean Listener stats
-# This parameter determines whether or not host stats are collected
-# and available for the \`hoststat\` command to display. There will
-# be a (minor) performance hit, as files will be created/updated for each
-# sendmail delivery attempt. The files are fixed in size, and small,
-# but there can be many of them.
-#
-DAEMON_HOSTSTATS="$parameter{'DAEMON_HOSTSTATS'}";
-#
-# DAEMON_MAILSTATS="$parm_def{'DAEMON_MAILSTATS'}"; Boolean Listener stats
-# This parameter determines whether or not mailer stats are collected
-# and available for the \`mailstats\` command to display. There will
-# be a (minor) performance hit, as this file will be updated for each
-# item coming into, or out of, sendmail. The file is fixed in size,
-# and small, so there's no need to rotate it.
-#
-DAEMON_MAILSTATS="$parameter{'DAEMON_MAILSTATS'}";
-#
-#------------------------------------------------------------------------------
-# SMTP MTA Queue Runner Configuration
-#
-# QUEUE_MODE="$parm_def{'QUEUE_MODE'}"; Keyword SMTP queue runner
-# daemon: Run as standalone daemon
-# cron: Run from crontab
-# none: No queue runner (ie, nullclient/smarthost)
-#
-QUEUE_MODE="$parameter{'QUEUE_MODE'}";
-#
-# QUEUE_INTERVAL="$parm_def{'QUEUE_INTERVAL'}"; Timespec (digits+w|d|h|m|s)
-# Interval at which to run the MTA queues. What interval should you use?
-# The amount of time that is acceptable before retrying delivery on
-# mail that couldn't be delivered in one run, or how long an item can
-# set in the queue before having the first delivery attempt done.
-#
-# NOTE: If you leave this field blank, You get *NO* queue runners !!!
-#
-QUEUE_INTERVAL="$parameter{'QUEUE_INTERVAL'}";
-#
-# QUEUE_PARMS="$parm_def{'QUEUE_PARMS'}"; String queue parameters
-# Any parameters here are also used when run from cron.
-# Note that MISC_PARMS and CRON_PARMS, if applicable, will override
-# anything declared herein.
-#
-QUEUE_PARMS="$parameter{'QUEUE_PARMS'}";
-#
-#------------------------------------------------------------------------------
-# SMTP - MSP Queue Runner Configuration
-#
-# MSP_MODE="$parm_def{'MSP_MODE'}"; Keyword MSP queue runner mode
-# daemon: Run as standalone daemon
-# cron: Run from crontab
-# none: No queue runner (ie, nullclient/smarthost)
-#
-# NOTE: If QUEUE_MODE="cron" & MSP_MODE="none", the MSP queue will
-# be run as part of the MTA queue running process.
-#
-MSP_MODE="$parameter{'MSP_MODE'}";
-#
-# MSP_INTERVAL="$parm_def{'MSP_INTERVAL'}"; Timespec (digits+w|d|h|m|s)
-# Interval at which to run the MSP queues. What interval should you use?
-# The amount of time that is acceptable before retrying delivery on
-# mail that couldn't be accepted by the MTA, and was therefore left
-# in the message submission queue. The MTA shouldn't be down that often
-# so this can be larger than QUEUE_INTERVAL.
-#
-# NOTE: If you leave this field blank, The MSP queue will *NOT* be run !!!
-#
-MSP_INTERVAL="$parameter{'MSP_INTERVAL'}";
-#
-# MSP_PARMS="$parm_def{'MSP_PARMS'}"; String queue parameters
-# Any parameters here are also used when run from cron.
-# Note that MISC_PARMS and CRON_PARMS, if applicable, will override
-# anything declared herein.
-#
-MSP_PARMS="$parameter{'MSP_PARMS'}";
-#
-# MSP_MAILSTATS="$parm_def{'MSP_MAILSTATS'}"; Boolean Listener stats
-# This parameter determines whether or not mailer stats are collected
-# and available for the \`mailstats\` command to display. There will
-# be a (minor) performance hit, as this file will be updated for each
-# item coming into, or out of, sendmail. The file is fixed in size,
-# and small, so there's no need to rotate it.
-#
-MSP_MAILSTATS="$parameter{'MSP_MAILSTATS'}";
-#
-#------------------------------------------------------------------------------
-# Miscellaneous Confguration
-#
-# MISC_PARMS="$parm_def{'MISC_PARMS'}"; String miscellaneous parameters
-# Miscellaneous parameters - applied to any sendmail invocation.
-# Any parameters here are also used when run from cron.
-# Applied after {DAEMON,QUEUE}_PARMS, and can therefore override them
-# if need be (in which case why did use them?)
-# Note that CRON_PARMS, if applicable, will override anything
-# declared herein.
-#
-# Here is where'd you setup and debugging or special parms that you
-# want shared betwixt the possibly separate listener/queue-runner
-# processes.
-#
-MISC_PARMS="$parameter{'MISC_PARMS'}";
-#
-#------------------------------------------------------------------------------
-# Cron Job Configuration
-#
-# CRON_MAILTO="$parm_def{'CRON_MAILTO'}"; String cronjob output
-# Recipient of *rare* cronjob output. Some cronjobs will be running
-# under user `mail`, so any problems encountered would probably be missed
-# so define a user who actually (hopefully) checks email now and again.
-#
-CRON_MAILTO="$parameter{'CRON_MAILTO'}";
-#
-# CRON_PARMS="$parm_def{'CRON_PARMS'}"; String cron specific parmeters
-# Cron parameters - applied *only* when sendmail queue running is done
-# via a cronjob. Applied after QUEUE_PARMS and MISC_PARMS, and can
-# therefore override them if need be.
-#
-CRON_PARMS="$parameter{'CRON_PARMS'}";
-#
-#------------------------------------------------------------------------------
-# Other stuff
-# LOG_CMDS="$parm_def{'LOG_CMDS'}"; Binary command logging flag
-# Will cause syslog entries for many of the sendmail related commands
-# like runq, mailq, etc - you'll also see cron jobs (if enabled).
-#
-LOG_CMDS="$parameter{'LOG_CMDS'}";
-#
-# HANDS_OFF="$parm_def{'HANDS_OFF'}"; Binary Do *NOT* touch the configuration
-# Set this *ONLY* if you are going to be fully responsible for the entire
-# setup of sendmail - the directories, permissions, databases, etc. With
-# this variable set to "Yes", nothing will be done for you during updates.
-#
-# In other words, "The blood be upon your hands" if you set this...
-# My ability to help with problems will be greatly reduced !
-#
-# "Well, a pet peeve of mine is people who directly edit the
-# .cf file instead of using the m4 configuration files.
-# Don't do it! [laughs] I treat the .cf file as a binary
-# file - you should too."
-# -- Eric Allman 1999/10/18
-# http://www.dotcomeon.com/allman_sendmail_qa.html
-#
-HANDS_OFF="$parameter{'HANDS_OFF'}";
-#
-#------------------------------------------------------------------------------
-# Queue Aging Configuration
-#
-# Why would you want to age your queues? On every queue-run interval,
-# sendmail will try *every* file in the queue... If a site is down
-# for a while, considerable time can be wasted each interval in retrying
-# it. The scheme supported allows aging by time, and can move the older
-# files to another (less frequently run queue), thereby reducing overal
-# system impact - and providing better mail throughput.
-#
-# Note that this support is completely separate from QUEUE_MODE=cron,
-# you can age queues even if you're running QUEUE_MODE=daemon.
-#
-# There are four parts to the queue aging support, and these parts
-# may be repeated, to operate on multiple queues.
-#
-# 1. Interval at which to age the queues (in minutes).
-# What interval should you use? Roughly twice the normal queue
-# interval, so that messages are tried twice in each successively
-# slower queue.
-#
-# 2. Criteria (optional and defaults to interval). This is the
-# specification of which files to move. It defaults moving
-# files whose age in the queues exceeds the interval.
-# This field, if specified can be very complex - supporting
-# aging by just about anything! see qtool(8) for details.
-#
-# 3. To queue. This is the queue to which files will be moved.
-# It may be fully qualified, or relative to /var/spool/mqueue.
-#
-# 4. From queue. This is the queue from which files will be moved.
-# It may be fully qualified, or relative to /var/spool/mqueue.
-#
-# Samples:
-# AGE_DATA="[['25m', '', 'hourly', 'main']]";
-# Every 25 minutes, move any file older than 25 minutes from
-# /var/spool/mqueue/main to /var/spool/mqueue/hourly
-#
-# AGE_DATA="[['25m', '', 'hourly', 'main'],\\
-# ['125', '', 'daily', 'hourly']]";
-# Same as the above, but also move files from the hourly queue
-# to the daily queue after 125 minutes in the hourly queue.
-#
-# AGE_DATA="[['25m',\\
-# '-e \\'\$msg{message}[0] == /Deferred: 452 4.2.2 Over quota/\\'',\\
-# 'overquota', 'main']]";
-# Every 25 minutes, move all files deferred because of quota
-# violations from /var/spool/mqueue/main to
-# /var/spool/mqueue/overquota where they can be processed on
-# a different interval, or by some other means.
-#
-# If the above samples suggest Perl arrays, well, they are...
-#
-# AGE_DATA="$parm_def{'AGE_DATA'}"; Perl array Queue aging data
-#
-EOT
- my ($ok, $var) = &get_value('AGE_DATA');
- my $tmpval = eval $var;
- if ($@) {
- warn $@;
- }
- else {
- $var = $tmpval;
- };
- if (not defined $var) {
- print $ofh 'AGE_DATA="";',"\n";
- }
- elsif (not ref $var) {
- print $ofh 'AGE_DATA="',$var,'";',"\n";
- }
- elsif (@{$var} == 0) {
- print $ofh 'AGE_DATA="";',"\n";
- }
- else {
- print $ofh 'AGE_DATA="[\\',"\n";
- foreach my $entry (@{$var}) {
- foreach my $ndx ($[ .. $#{$entry}) {
- @{$entry}[$ndx] =~ s/'/\\'/g;
- };
- print $ofh "['",join("', '",@{$entry}),"'],\\\n";
- };
- print $ofh ']";',"\n";
- };
- print $ofh <<"EOT";
-#
-#------------------------------------------------------------------------------
-# Dependant variables (set according to other variables)
-#
-EOT
- foreach my $key (sort keys %parm_dependant) {
- my ($ok, $value);
- # Don't evaluate value, just stuff it...
- next if ( ! $parameter{$key} );
- ($ok, $value) = (1, $parameter{$key});
- print $ofh "$key=",'"',$value,'";',"\n";
- };
- print $ofh <<"EOT";
-#
-#------------------------------------------------------------------------------
-# Hidden variables (the blood be upon your hands)
-#
-EOT
- foreach my $key (sort keys %parm_hidden) {
- my ($ok, $value);
- # Don't evaluate value, just stuff it...
- next if ( ! $parameter{$key} );
- ($ok, $value) = (1, $parameter{$key});
- print $ofh "$key=",'"',$value,'";',"\n";
- };
- print $ofh <<"EOT";
-#
-#------------------------------------------------------------------------------
-# Deprecated variables (kept for reference)
-#
-EOT
- foreach my $key (sort keys %parm_deprecated) {
- my ($ok, $value);
- # Don't evaluate value, just stuff it...
- if ( $parm_deprecated{$key} ) {
- ($ok, $value) = (1, join('','${', $parm_deprecated{$key}, '}'));
- }
- elsif ( $parameter{$key} ) {
- ($ok, $value) = (1, $parameter{$key});
- };
- print $ofh "$key=",'"',$value,'";',"\n";
- };
- print $ofh <<"EOT";
-#
-#------------------------------------------------------------------------------
-# Unknown variables (kept for reference)
-#
-EOT
- foreach my $key (sort keys %parameter) {
- if (! exists($parm_def{$key}) and
- ! exists($parm_deprecated{$key})) {
- # Don't evaluate value, just stuff it...
- my ($ok, $value) = (1, $parameter{$key});
- print $ofh "$key=",'"',$value,'";',"\n";
- };
- };
- print $ofh <<"EOT";
-#------------------------------------------------------------------------------
-#
-
-EOT
-
- close($ofh);
- if ( $database_file eq $Parse_conf::Conffile ) {
- chown '0', '0', "$database_file";
- chmod 0644, "$database_file";
- };
- };
-
-__END__
diff --git a/debian/local/Makefile.in b/debian/local/Makefile.in
index 8b6bec2..32b6d15 100644
--- a/debian/local/Makefile.in
+++ b/debian/local/Makefile.in
@@ -48,8 +48,7 @@ DIST_COMMON = $(dist_man_MANS) $(dist_pkgdata_SCRIPTS) \
$(srcdir)/update_smrsh.in $(srcdir)/update_sys.in \
$(srcdir)/update_tls.in $(srcdir)/update_tlsm4.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/./build/mkinstalldirs
diff --git a/debian/local/Parse_conf.pm.in b/debian/local/Parse_conf.pm.in
index ecb13a7..c3889e3 100644
--- a/debian/local/Parse_conf.pm.in
+++ b/debian/local/Parse_conf.pm.in
@@ -236,8 +236,8 @@ sub update_values {
my ($ok, $var);
# Add m(inutes) to {queue,msp}_interval if needed
- $parameter{'QUEUE_INTERVAL'} =~ s/^(\d+)$/$1m/;
- $parameter{'MSP_INTERVAL'} =~ s/^(\d+)$/$1m/;
+ $parameter{'QUEUE_INTERVAL'} =~ s/^(p?\d+)$/$1m/;
+ $parameter{'MSP_INTERVAL'} =~ s/^(p?\d+)$/$1m/;
# Also update the queue aging data
($ok, $var) = &get_value('AGE_DATA');
@@ -691,12 +691,14 @@ DAEMON_MAILSTATS="$parameter{'DAEMON_MAILSTATS'}";
#
QUEUE_MODE="$parameter{'QUEUE_MODE'}";
#
-# QUEUE_INTERVAL="$parm_def{'QUEUE_INTERVAL'}"; Timespec (digits+w|d|h|m|s)
+# QUEUE_INTERVAL="$parm_def{'QUEUE_INTERVAL'}"; Timespec (p?digits+w|d|h|m|s)
# Interval at which to run the MTA queues. What interval should you use?
# The amount of time that is acceptable before retrying delivery on
# mail that couldn't be delivered in one run, or how long an item can
# set in the queue before having the first delivery attempt done.
#
+# NOTE: To use persistent queue-runners use this form: p120m
+#
# NOTE: If you leave this field blank, You get *NO* queue runners !!!
#
QUEUE_INTERVAL="$parameter{'QUEUE_INTERVAL'}";
@@ -828,6 +830,11 @@ HANDS_OFF="$parameter{'HANDS_OFF'}";
# interval, so that messages are tried twice in each successively
# slower queue.
#
+# NOTE: some values just wont work, due to crontab pecularities
+# a value of 90 minutes will actually be run at every x:30 !
+# Please check /etc/cron.d/sendmail to make sure it is doing what
+# you thought it should !
+#
# 2. Criteria (optional and defaults to interval). This is the
# specification of which files to move. It defaults moving
# files whose age in the queues exceeds the interval.
@@ -846,9 +853,9 @@ HANDS_OFF="$parameter{'HANDS_OFF'}";
# /var/spool/mqueue/main to /var/spool/mqueue/hourly
#
# AGE_DATA="[['25m', '', 'hourly', 'main'],\\
-# ['125', '', 'daily', 'hourly']]";
+# ['120m', '', 'daily', 'hourly']]";
# Same as the above, but also move files from the hourly queue
-# to the daily queue after 125 minutes in the hourly queue.
+# to the daily queue after 120 minutes in the hourly queue.
#
# AGE_DATA="[['25m',\\
# '-e \\'\$msg{message}[0] == /Deferred: 452 4.2.2 Over quota/\\'',\\
diff --git a/debian/local/update_conf.in b/debian/local/update_conf.in
index 90d0550..c6b2ff9 100644
--- a/debian/local/update_conf.in
+++ b/debian/local/update_conf.in
@@ -59,12 +59,14 @@ $main::opt_output_file='';
$main::opt_input_file='';
$main::opt_debug='';
$main::opt_test='';
+$main::opt_static='';
my @options = qw(
help|h
output-file|output_file|o:s
input-file|input_file|i:s
debug!
test!
+ static!
);
my $result = GetOptions(@options);
if ( ! $result ) {
@@ -75,6 +77,8 @@ if ( $main::opt_help ) {
warn "$0 \n";
warn " -help\n" if $main::opt_help;
warn " -debug\n" if $main::opt_debug;
+ warn " -test\n" if $main::opt_debug;
+ warn " -static\n" if $main::opt_static;
warn " -o $main::opt_output_file\n" if $main::opt_output_file;
warn " -i $main::opt_input_file\n" if $main::opt_input_file;
exit 0;
@@ -87,10 +91,15 @@ if ( $main::opt_test ) {
&sm2cron_time("4h");
&sm2cron_time("3d");
&sm2cron_time("2w");
- &sm2cron_time("5w");
&sm2cron_time("2w3d4h5m6s");
&sm2cron_time("89s");
&sm2cron_time("90m");
+ &sm2cron_time("150m");
+ &sm2cron_time("125");
+ &sm2cron_time("31d");
+ &sm2cron_time("35d");
+ &sm2cron_time("5w");
+ &sm2cron_time("9w");
exit 0;
};
@@ -157,6 +166,12 @@ sub check_nullclient {
#
#------------------------------------------------------------------------
# Compute time setting for Crontab entry (simplistic)
+# NOTE: It does the basics pretty darned well... *BUT*
+# It fails, miserably, on things that would multiple lines:
+# 90 minutes: does it at 30 minutes (90-60)
+# Or are just edge conditions:
+# 25 hours: treated as 24 hours
+# 35 days: does it the 7rd of every month (35-28)
#------------------------------------------------------------------------
sub sm2cron_time {
my $month = 0;
@@ -171,9 +186,10 @@ sub sm2cron_time {
my ($sm) = @_;
my $seconds = 0;
+ my $randstart = '00';
if ($sm eq '') {
if ( $main::opt_test ) {
- print "$cron = sm2cron_time($sm);\n";
+ print "mm hh dom mon dow = sm2cron_time($sm);\n";
};
return ($cron, $seconds);
};
@@ -183,73 +199,93 @@ sub sm2cron_time {
# to cron time
# m h dom mon dow
$t = $sm;
- ($week = $sm) =~ s/.*?(\d+)w.*/$1/ if ( $t =~ /w/ );
- ($day = $sm) =~ s/.*?(\d+)d.*/$1/ if ( $t =~ /d/ );
- ($hour = $sm) =~ s/.*?(\d+)h.*/$1/ if ( $t =~ /h/ );
- ($minute = $sm) =~ s/.*?(\d+)m.*/$1/ if ( $t =~ /m/ );
- ($second = $sm) =~ s/.*?(\d+)s.*/$1/ if ( $t =~ /s/ );
- # Convert weeks to days (roughly)
- $day = $day + (7 * $week);
+ if ( $t =~ /^\d+$/ ) {
+ $minute = $sm; }
+ else {
+ ($week = $sm) =~ s/.*?(\d+)w.*/$1/ if ( $t =~ /w/ );
+ ($day = $sm) =~ s/.*?(\d+)d.*/$1/ if ( $t =~ /d/ );
+ ($hour = $sm) =~ s/.*?(\d+)h.*/$1/ if ( $t =~ /h/ );
+ ($minute = $sm) =~ s/.*?(\d+)m.*/$1/ if ( $t =~ /m/ );
+ ($second = $sm) =~ s/.*?(\d+)s.*/$1/ if ( $t =~ /s/ );
+ }
+ # Rationalize the time
+ $seconds = ($week * 7 * 24 * 60 * 60)
+ + ($day * 24 * 60 * 60)
+ + ($hour * 60 * 60)
+ + ($minute * 60)
+ + $second;
+ $month = $seconds / (4 * 7 * 24 * 60 * 60);
+ $seconds = $seconds % (4 * 7 * 24 * 60 * 60);
+ $week = $seconds / (7 * 24 * 60 * 60);
+ $seconds = $seconds % (7 * 24 * 60 * 60);
+ $day = $seconds / (24 * 60 * 60);
+ $seconds = $seconds % (24 * 60 * 60);
+ $hour = $seconds / (60 * 60);
+ $seconds = $seconds % (60 * 60);
+ $minute = $seconds / (60);
+ $seconds = $seconds % (60);
+ $second = $seconds;
# Cron doesn't do seconds, round to minutes or ignore
- $seconds = $seconds + $second;
- $tmp = $second;
- $second = sprintf("%02d", $second%60);
- $minute = $minute + sprintf("%02d", ($tmp-$second)/60);
- $minute = $minute + 1 if ($second >= 30);
+ $minute = $minute + 1 if ($second > 30);
# Minute of hour (0-59)
- $seconds = $seconds + ($minute * 60);
- $tmp = $minute;
- $minute = sprintf("%02d", $minute%60);
- $hour = $hour + sprintf("%02d", ($tmp-$minute)/60);
+ $minute = sprintf("%02d", $minute);
+ $randstart = sprintf("%02d", int(rand(60))) if (!$main::opt_static);
if (0 < $hour + $day + $week + $month) {
- $hour = $hour + 1 if ($minute >= 30);
- $cron = "00 ";
+ if (1 >= $minute) {
+ $cron = "$randstart "; }
+ else {
+ $cron = "$minute "; }
+ }
+ elsif (1 >= $minute) {
+ $cron = "* ";
}
else {
- $minute = '01' if ($minute == 0);
$cron = "*/$minute";
};
# Hour of day (0-23)
- $seconds = $seconds + ($hour * 60 * 60);
- $tmp = $hour;
- $hour = sprintf("%02d", $hour%24);
- $day = $day + sprintf("%02d", ($tmp-$hour)/24);
+ $hour = sprintf("%02d", $hour);
+ $randstart = sprintf("%02d", int(rand(24))) if (!$main::opt_static);
if (0 < $day + $week + $month) {
- $day = $hour + 1 if ($minute >= 30);
- $cron = "$cron 00 ";
+ if (1 >= $hour) {
+ $cron = "$cron $randstart "; }
+ else {
+ $cron = "$cron $hour "; }
}
- elsif ($hour != 0) {
- $cron = "$cron */$hour";
+ elsif (1 >= $hour) {
+ $cron = "$cron * ";
}
else {
- $cron = "$cron * ";
+ $cron = "$cron */$hour";
};
# Day of month (1-31)
- $tmp = $day;
- $day = sprintf("%02d", $day%32);
- $month = $month + sprintf("%02d", ($tmp-$day)/32);
+ $day = $day + (7 * $week);
+ $day = sprintf("%02d", $day);
+ $randstart = 1 + sprintf("%02d", int(rand(31))) if (!$main::opt_static);
if (0 < $month) {
- $month = $month + 1 if ($day >= 15);
- $cron = "$cron 01 ";
+ if (1 >= $day) {
+ $cron = "$cron $randstart "; }
+ else {
+ $cron = "$cron $day "; }
}
- elsif ($day != 0) {
- $cron = "$cron */$day";
+ elsif (1 >= $day) {
+ $cron = "$cron * ";
}
else {
- $cron = "$cron * ";
+ $cron = "$cron */$day";
};
# Month in year (1-12)
- $month = sprintf("%02d", $month%12);
- if (0 < $month) {
- $cron = "$cron */$month";
+ $month = sprintf("%02d", $month);
+ $randstart = 1 + sprintf("%02d", int(rand(12))) if (!$main::opt_static);
+ if (1 >= $month) {
+ $cron = "$cron * ";
}
else {
- $cron = "$cron * ";
+ $cron = "$cron */$month";
};
$cron = "$cron *"; # Day of week (0-7)
diff --git a/debian/patches/8.14/8.14.3/kerberos.patch b/debian/patches/8.14/8.14.3/kerberos.patch
new file mode 100644
index 0000000..969a0f6
--- /dev/null
+++ b/debian/patches/8.14/8.14.3/kerberos.patch
@@ -0,0 +1,23 @@
+# Attempt to support Kerberos
+#### Patch data follows ####
+diff -c 'sendmail/conf.c' 'debian/patches.conf.c'
+Index: ./sendmail/conf.c
+Prereq: 8.1141
+*** ./sendmail/conf.c Mon May 26 19:55:54 2008
+--- ./debian/conf.c Mon May 26 20:02:22 2008
+***************
+*** 3891,3896 ****
+--- 3891,3902 ----
+ vendor_post_defaults(e)
+ ENVELOPE *e;
+ {
++ /*
++ * Kerberos V support
++ */
++ sm_setuserenv("KRB5CCNAME", NULL);
++ sm_setuserenv("KRB5KTNAME", NULL);
++
+ #ifdef __QNX__
+ /* Makes sure the SOCK environment variable remains */
+ sm_setuserenv("SOCK", NULL);
+#### End of Patch data ####
diff --git a/debian/sensible_mda/Makefile.in b/debian/sensible_mda/Makefile.in
index d90cac6..24f2b8a 100644
--- a/debian/sensible_mda/Makefile.in
+++ b/debian/sensible_mda/Makefile.in
@@ -38,8 +38,7 @@ subdir = sensible_mda
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/sensible-mda.c.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/build/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/./build/mkinstalldirs