summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Haber <zugschlus@debian.org>2005-04-02 21:15:43 +0000
committerMarc Haber <zugschlus@debian.org>2005-04-02 21:15:43 +0000
commitcc450107ddcfeb911df089653af74d1562f6d01f (patch)
tree785a59aeb6c0ce46dc63c4554b272f8a7c2ea91c
downloadexim4-cc450107ddcfeb911df089653af74d1562f6d01f.tar.gz
adapt tag name to svn scheme to allow better sorting4.14-0.4
svn path=/exim/tags/4.14-0.4/; revision=1012
-rw-r--r--debian/EDITME.exim4-heavy.diff119
-rw-r--r--debian/EDITME.exim4-light.diff174
-rw-r--r--debian/EDITME.eximon.diff7
-rw-r--r--debian/README.Debian200
-rw-r--r--debian/README.TLS117
-rw-r--r--debian/README.local_scan-perl9
-rw-r--r--debian/TODO15
-rw-r--r--debian/changelog872
-rw-r--r--debian/changelog.Debian.old1128
-rw-r--r--debian/compat1
-rwxr-xr-xdebian/config-custom/create-custom-package67
-rw-r--r--debian/config-custom/debian/compat1
-rw-r--r--debian/config-custom/debian/control15
-rw-r--r--debian/config-custom/debian/copyright15
-rw-r--r--debian/config-custom/debian/files1
-rwxr-xr-xdebian/config-custom/debian/rules99
-rw-r--r--debian/control123
-rw-r--r--debian/copyright210
-rw-r--r--debian/debconf.gamla/debconf_eximconfig628
-rw-r--r--debian/debconf.gamla/exim4-base.config260
-rw-r--r--debian/debconf.gamla/exim4-base.postinst92
-rw-r--r--debian/debconf.gamla/exim4-base.templates204
-rw-r--r--debian/debconf/30_exim4-config_example_check_rcpt138
-rw-r--r--debian/debconf/conf.d/acl/00_exim4-config_header8
-rw-r--r--debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny42
-rw-r--r--debian/debconf/conf.d/acl/30_exim4-config_check_rcpt117
-rw-r--r--debian/debconf/conf.d/auth/00_exim4-config_header8
-rw-r--r--debian/debconf/conf.d/auth/30_exim4-config_examples63
-rw-r--r--debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs68
-rw-r--r--debian/debconf/conf.d/main/02_exim4-config_options87
-rw-r--r--debian/debconf/conf.d/main/03_exim4-config_tlsoptions30
-rw-r--r--debian/debconf/conf.d/retry/00_exim4-config_header7
-rw-r--r--debian/debconf/conf.d/retry/30_exim4-config14
-rw-r--r--debian/debconf/conf.d/rewrite/00_exim4-config_header7
-rw-r--r--debian/debconf/conf.d/router/00_exim4-config_header11
-rw-r--r--debian/debconf/conf.d/router/100_exim4-config_domain_literal16
-rw-r--r--debian/debconf/conf.d/router/200_exim4-config_primary51
-rw-r--r--debian/debconf/conf.d/router/300_exim4-config_real_local8
-rw-r--r--debian/debconf/conf.d/router/400_exim4-config_system_aliases27
-rw-r--r--debian/debconf/conf.d/router/500_exim4-config_hubuser16
-rw-r--r--debian/debconf/conf.d/router/600_exim4-config_userforward46
-rw-r--r--debian/debconf/conf.d/router/700_exim4-config_procmail10
-rw-r--r--debian/debconf/conf.d/router/800_exim4-config_maildrop11
-rw-r--r--debian/debconf/conf.d/router/900_exim4-config_local_user9
-rw-r--r--debian/debconf/conf.d/transport/00_exim4-config_header13
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_file11
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_pipe14
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_reply8
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_mail_spool14
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_maildir_home11
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe10
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe10
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_remote_smtp11
-rw-r--r--debian/debconf/conf.d/transport/35_exim4-config_address_directory13
-rw-r--r--debian/debconf/default_acl48
-rw-r--r--debian/debconf/update-exim4.conf402
-rw-r--r--debian/email-addresses9
-rw-r--r--debian/exim-gencert74
-rw-r--r--debian/exim4-base.config15
-rw-r--r--debian/exim4-base.cron.daily27
-rw-r--r--debian/exim4-base.dirs6
-rw-r--r--debian/exim4-base.doc-base.filter8
-rw-r--r--debian/exim4-base.doc-base.spec8
-rw-r--r--debian/exim4-base.docs14
-rw-r--r--debian/exim4-base.examples2
-rw-r--r--debian/exim4-base.init145
-rw-r--r--debian/exim4-base.links3
-rw-r--r--debian/exim4-base.logrotate9
-rw-r--r--debian/exim4-base.manpages12
-rw-r--r--debian/exim4-base.postinst66
-rw-r--r--debian/exim4-base.postrm32
-rw-r--r--debian/exim4-base.templates24
-rw-r--r--debian/exim4-config-simple/debian/changelog5
-rw-r--r--debian/exim4-config-simple/debian/compat1
-rw-r--r--debian/exim4-config-simple/debian/control24
-rw-r--r--debian/exim4-config-simple/debian/copyright12
-rwxr-xr-xdebian/exim4-config-simple/debian/debconf/update-exim4.conf158
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.dirs5
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.manpages1
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.postinst13
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.postrm14
-rw-r--r--debian/exim4-config-simple/debian/exim4.conf.defaults7
-rw-r--r--debian/exim4-config-simple/debian/exim4.conf.source502
-rw-r--r--debian/exim4-config-simple/debian/manpages/update-exim4.conf.875
-rwxr-xr-xdebian/exim4-config-simple/debian/rules86
-rw-r--r--debian/exim4-config.config424
-rw-r--r--debian/exim4-config.dirs6
-rw-r--r--debian/exim4-config.docs1
-rw-r--r--debian/exim4-config.install1
-rw-r--r--debian/exim4-config.manpages2
-rw-r--r--debian/exim4-config.postinst148
-rw-r--r--debian/exim4-config.postrm23
-rw-r--r--debian/exim4-config.templates140
-rw-r--r--debian/exim4-daemon-custom.dirs3
-rw-r--r--debian/exim4-daemon-custom.docs1
-rw-r--r--debian/exim4-daemon-custom.links16
-rw-r--r--debian/exim4-daemon-custom.postinst27
-rw-r--r--debian/exim4-daemon-custom.prerm17
-rw-r--r--debian/exim4-daemon-heavy.dirs4
-rw-r--r--debian/exim4-daemon-heavy.docs3
-rw-r--r--debian/exim4-daemon-heavy.install1
-rw-r--r--debian/exim4-daemon-heavy.links16
-rw-r--r--debian/exim4-daemon-heavy.postinst27
-rw-r--r--debian/exim4-daemon-heavy.prerm17
-rw-r--r--debian/exim4-daemon-light.dirs3
-rw-r--r--debian/exim4-daemon-light.docs1
-rw-r--r--debian/exim4-daemon-light.links16
-rw-r--r--debian/exim4-daemon-light.postinst27
-rw-r--r--debian/exim4-daemon-light.prerm17
-rw-r--r--debian/exim4.links1
-rw-r--r--debian/eximon4.dirs2
-rw-r--r--debian/eximon4.manpages1
-rw-r--r--debian/eximonconf-patch7
-rw-r--r--debian/ip-up.d9
-rw-r--r--debian/manpages/exicyclog.869
-rw-r--r--debian/manpages/exigrep.864
-rw-r--r--debian/manpages/exim_checkaccess.875
-rw-r--r--debian/manpages/exim_convert4r4.868
-rw-r--r--debian/manpages/exim_db.8164
-rw-r--r--debian/manpages/exim_dbmbuild.8100
-rw-r--r--debian/manpages/exim_lock.8132
-rw-r--r--debian/manpages/eximon.845
-rw-r--r--debian/manpages/exinext.868
-rw-r--r--debian/manpages/exiqgrep.883
-rw-r--r--debian/manpages/exiqsumm.869
-rw-r--r--debian/manpages/exiwhat.897
-rw-r--r--debian/manpages/update-exim4.conf.8142
-rw-r--r--debian/manpages/update-exim4defaults.8160
-rw-r--r--debian/patches/00list11
-rw-r--r--debian/patches/10_daemon_close_fds.dpatch47
-rwxr-xr-xdebian/patches/20_authplaincrash.dpatch34
-rw-r--r--debian/patches/30_dontoverridecflags.dpatch36
-rw-r--r--debian/patches/31_eximmanpage.dpatch197
-rwxr-xr-xdebian/patches/32_exim4.dpatch126
-rwxr-xr-xdebian/patches/33_eximon.binary.dpatch33
-rwxr-xr-xdebian/patches/34_eximstatsmanpage.dpatch36
-rwxr-xr-xdebian/patches/35_install.dpatch37
-rwxr-xr-xdebian/patches/36_pcre.dpatch91
-rw-r--r--debian/patches/40_boolean_redefine_protect.dpatch47
-rw-r--r--debian/patches/50_localscan_dlopen.dpatch257
-rwxr-xr-xdebian/rules304
-rw-r--r--debian/update-exim4defaults269
142 files changed, 10895 insertions, 0 deletions
diff --git a/debian/EDITME.exim4-heavy.diff b/debian/EDITME.exim4-heavy.diff
new file mode 100644
index 0000000..a72e961
--- /dev/null
+++ b/debian/EDITME.exim4-heavy.diff
@@ -0,0 +1,119 @@
+--- EDITME.exim4-light Thu Mar 6 10:29:31 2003
++++ EDITME.exim4-heavy Thu Mar 6 10:28:40 2003
+@@ -191,7 +191,7 @@
+
+ # This one is very special-purpose, so is not included by default.
+
+-# ROUTER_IPLOOKUP=yes
++ROUTER_IPLOOKUP=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -223,7 +223,7 @@
+
+ SUPPORT_MAILDIR=yes
+ SUPPORT_MAILSTORE=yes
+-# SUPPORT_MBX=yes
++SUPPORT_MBX=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -239,15 +239,15 @@
+ LOOKUP_LSEARCH=yes
+
+ LOOKUP_CDB=yes
+-# LOOKUP_DNSDB=yes
++LOOKUP_DNSDB=yes
+ LOOKUP_DSEARCH=yes
+-# LOOKUP_LDAP=yes
+-# LOOKUP_MYSQL=yes
++LOOKUP_LDAP=yes
++LOOKUP_MYSQL=yes
+ LOOKUP_NIS=yes
+ # LOOKUP_NISPLUS=yes
+ # LOOKUP_ORACLE=yes
+ LOOKUP_PASSWD=yes
+-# LOOKUP_PGSQL=yes
++LOOKUP_PGSQL=yes
+ # LOOKUP_WHOSON=yes
+ LOOKUP_WILDLSEARCH=yes
+
+@@ -261,7 +261,7 @@
+ # with Solaris 7 onwards. Uncomment whichever of these you are using.
+
+ # LDAP_LIB_TYPE=OPENLDAP1
+-# LDAP_LIB_TYPE=OPENLDAP2
++LDAP_LIB_TYPE=OPENLDAP2
+ # LDAP_LIB_TYPE=NETSCAPE
+ # LDAP_LIB_TYPE=SOLARIS
+
+@@ -278,8 +278,8 @@
+
+ # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
+ # LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq
+-# LOOKUP_INCLUDE=-I/usr/include/mysql -I/usr/include/postgresql
+-# LOOKUP_LIBS=-lldap -llber
++LOOKUP_INCLUDE=-I/usr/include/mysql -I/usr/include/postgresql
++LOOKUP_LIBS=-lldap -llber -lmysqlclient -lpq
+
+
+ #------------------------------------------------------------------------------
+@@ -290,7 +290,7 @@
+ # files are defaulted in the OS/Makefile-Default file, but can be overridden in
+ # local OS-specific make files.
+
+-EXIM_MONITOR=eximon.bin
++# EXIM_MONITOR=eximon.bin
+
+
+
+@@ -313,7 +313,7 @@
+
+ AUTH_CRAM_MD5=yes
+ AUTH_PLAINTEXT=yes
+-# AUTH_SPA=yes
++AUTH_SPA=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -325,14 +325,14 @@
+ # leave these settings commented out.
+
+ # This setting is required for any TLS support (either OpenSSL or GnuTLS)
+-# SUPPORT_TLS=yes
++SUPPORT_TLS=yes
+
+ # Uncomment this setting if you are using OpenSSL
+ # TLS_LIBS=-lssl -lcrypto
+
+ # Uncomment these settings if you are using GnuTLS
+-# USE_GNUTLS=yes
+-# TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
++USE_GNUTLS=yes
++TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
+
+ # If you are running Exim as a server, note that just building it with TLS
+ # support is not all you need to do. You also need to set up a suitable
+@@ -458,7 +458,7 @@
+ # (version 5.004 or later) installed, set EXIM_PERL to perl.o. Using embedded
+ # Perl costs quite a lot of resources. Only do this if you really need it.
+
+-# EXIM_PERL=perl.o
++EXIM_PERL=perl.o
+
+
+ #------------------------------------------------------------------------------
+@@ -468,11 +468,11 @@
+ # support, which is intended for use in conjunction with the SMTP AUTH
+ # facilities, is included only when requested by the following setting:
+
+-# SUPPORT_PAM=yes
++SUPPORT_PAM=yes
+
+ # You probably need to add -lpam to EXTRALIBS, and in some releases of
+ # GNU/Linux -ldl is also needed.
+-EXTRALIBS=-ldl
++EXTRALIBS=-lpam
+
+
+ #------------------------------------------------------------------------------
diff --git a/debian/EDITME.exim4-light.diff b/debian/EDITME.exim4-light.diff
new file mode 100644
index 0000000..56ebccf
--- /dev/null
+++ b/debian/EDITME.exim4-light.diff
@@ -0,0 +1,174 @@
+--- src/EDITME Thu Mar 6 10:28:40 2003
++++ EDITME.exim4-light Thu Mar 6 10:29:31 2003
+@@ -98,7 +98,7 @@
+ # /usr/local/sbin. The installation script will try to create this directory,
+ # and any superior directories, if they do not exist.
+
+-BIN_DIRECTORY=/usr/exim/bin
++BIN_DIRECTORY=/usr/sbin
+
+
+ #------------------------------------------------------------------------------
+@@ -113,7 +113,7 @@
+ # directories if they don't exist. It will also install a default runtime
+ # configuration if this file does not exist.
+
+-CONFIGURE_FILE=/usr/exim/configure
++CONFIGURE_FILE=/etc/exim4/exim4.conf:/var/lib/exim4/config.autogenerated
+
+ # It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
+ # In this case, Exim will use the first of them that exists when it is run.
+@@ -131,14 +131,14 @@
+ # owner of a local mailbox.) Specifying these values as root is very strongly
+ # discouraged. These values are compiled into the binary.
+
+-EXIM_USER=
++EXIM_USER=8
+
+ # If the setting of EXIM_USER is numeric (e.g. EXIM_USER=42), there must
+ # also be a setting of EXIM_GROUP. If, on the other hand, you use a name
+ # for EXIM_USER (e.g. EXIM_USER=exim), you don't need to set EXIM_GROUP unless
+ # you want to use a group other than the default group for the given user.
+
+-# EXIM_GROUP=
++EXIM_GROUP=8
+
+ # Many sites define a user called "exim", with an appropriate default group,
+ # and use
+@@ -159,7 +159,7 @@
+
+ # Almost all installations choose this:
+
+-SPOOL_DIRECTORY=/var/spool/exim
++SPOOL_DIRECTORY=/var/spool/exim4
+
+
+
+@@ -212,7 +212,7 @@
+ # This one is special-purpose, and commonly not required, so it is not
+ # included by default.
+
+-# TRANSPORT_LMTP=yes
++TRANSPORT_LMTP=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -221,8 +221,8 @@
+ # MBX, is included only when requested. If you do not know what this is about,
+ # leave these settings commented out.
+
+-# SUPPORT_MAILDIR=yes
+-# SUPPORT_MAILSTORE=yes
++SUPPORT_MAILDIR=yes
++SUPPORT_MAILSTORE=yes
+ # SUPPORT_MBX=yes
+
+
+@@ -238,18 +238,18 @@
+ LOOKUP_DBM=yes
+ LOOKUP_LSEARCH=yes
+
+-# LOOKUP_CDB=yes
++LOOKUP_CDB=yes
+ # LOOKUP_DNSDB=yes
+-# LOOKUP_DSEARCH=yes
++LOOKUP_DSEARCH=yes
+ # LOOKUP_LDAP=yes
+ # LOOKUP_MYSQL=yes
+-# LOOKUP_NIS=yes
++LOOKUP_NIS=yes
+ # LOOKUP_NISPLUS=yes
+ # LOOKUP_ORACLE=yes
+-# LOOKUP_PASSWD=yes
++LOOKUP_PASSWD=yes
+ # LOOKUP_PGSQL=yes
+ # LOOKUP_WHOSON=yes
+-# LOOKUP_WILDLSEARCH=yes
++LOOKUP_WILDLSEARCH=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -278,6 +278,8 @@
+
+ # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
+ # LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq
++# LOOKUP_INCLUDE=-I/usr/include/mysql -I/usr/include/postgresql
++# LOOKUP_LIBS=-lldap -llber
+
+
+ #------------------------------------------------------------------------------
+@@ -309,8 +311,8 @@
+ # included in the Exim binary. You will then need to set up the run time
+ # configuration to make use of the mechanism(s) selected.
+
+-# AUTH_CRAM_MD5=yes
+-# AUTH_PLAINTEXT=yes
++AUTH_CRAM_MD5=yes
++AUTH_PLAINTEXT=yes
+ # AUTH_SPA=yes
+
+
+@@ -405,6 +407,7 @@
+ # to form the final file names. Some installations may want something like this:
+
+ # LOG_FILE_PATH=/var/log/exim_%slog
++LOG_FILE_PATH=/var/log/exim4/%slog
+
+ # which results in files with names /var/log/exim_mainlog, etc. The directory
+ # in which the log files are placed must exist; Exim does not try to create
+@@ -438,7 +441,7 @@
+ # files. Both the name of the command and the suffix that it adds to files
+ # need to be defined here. See also the EXICYCLOG_MAX configuration.
+
+-COMPRESS_COMMAND=/usr/bin/gzip
++COMPRESS_COMMAND=/bin/gzip
+ COMPRESS_SUFFIX=gz
+
+
+@@ -446,7 +449,7 @@
+ # If the exigrep utility is fed compressed log files, it tries to uncompress
+ # them using this command.
+
+-ZCAT_COMMAND=/usr/bin/zcat
++ZCAT_COMMAND=/bin/zcat
+
+
+ #------------------------------------------------------------------------------
+@@ -469,6 +472,7 @@
+
+ # You probably need to add -lpam to EXTRALIBS, and in some releases of
+ # GNU/Linux -ldl is also needed.
++EXTRALIBS=-ldl
+
+
+ #------------------------------------------------------------------------------
+@@ -556,8 +560,8 @@
+ # haven't got Perl, Exim will still build and run; you just won't be able to
+ # use those utilities.
+
+-# CHOWN_COMMAND=/usr/bin/chown
+-# CHGRP_COMMAND=/usr/bin/chgrp
++CHOWN_COMMAND=/bin/chown
++CHGRP_COMMAND=/bin/chgrp
+ # MV_COMMAND=/bin/mv
+ # RM_COMMAND=/bin/rm
+ # PERL_COMMAND=/usr/bin/perl
+@@ -741,6 +745,7 @@
+ # file can be specified here. Some installations may want something like this:
+
+ # PID_FILE_PATH=/var/lock/exim.pid
++PID_FILE_PATH=/var/run/exim4/exim.pid
+
+ # If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
+ # using the name "exim-daemon.pid".
+@@ -773,6 +778,9 @@
+ # run time option is required to cause the moving actually to occur. Such
+ # messages become "invisible" to the normal management tools.
+
+-# SUPPORT_MOVE_FROZEN_MESSAGES=yes
++SUPPORT_MOVE_FROZEN_MESSAGES=yes
+
+ # End of EDITME for Exim 4.
++
++# enable support for IPv6
++HAVE_IPV6=YES
diff --git a/debian/EDITME.eximon.diff b/debian/EDITME.eximon.diff
new file mode 100644
index 0000000..9e86fe3
--- /dev/null
+++ b/debian/EDITME.eximon.diff
@@ -0,0 +1,7 @@
+--- exim_monitor/EDITME Mon Jul 22 10:59:52 2002
++++ EDITME.eximon Thu Mar 6 10:28:40 2003
+@@ -1,3 +1,4 @@
++# -*- makefile -*-
+ ##################################################
+ # The Exim Monitor #
+ ##################################################
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..829bc0a
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,200 @@
+This is the Debian package for exim4.
+
+As with the apache package, exim4 is an entirely different package
+that does not currently offer a smooth upgrade path from the Debian
+exim 3 packages. exim 3 will stay default MTA for Debian sarge.
+
+It is the first exim package in Debian that can be configured using
+debconf. However, the entire configuration framework is extremely
+flexible, allowing you to get exactly the amount of control you need
+for the job at hand.
+
+To use exim4, you need at least the following packages:
+exim4-base EXperimental Internal Mailer -- a Mail Transport
+exim4-config Debian configuration for exim4
+exim4-daemon-light Lightweight version of the Exim (v4) MTA
+
+Just apting the meta-package exim4 will pull in the other packages per
+dependency. You'll get an exim daemon with minimal feature set (no external
+lookups, no TLS).
+
+If you want to have a different feature set, you can install one of
+the other exim4-daemon-Packages instead of exim4-daemon-light, or you
+can modify the source package to build exim4-daemon-custom according
+to your needs. The infrastructure to do so is already in place, see
+debian/rules for instructions.
+
+********************************************
+Updating from exim 3 ***********************
+********************************************
+
+If you use exim4-config from Debian, you'll get the debconf based
+configration scheme that is intended to cover the majority of cases.
+
+If exim4-config is installed while an exim 3 package is present on the
+system, exim4-config tries to parse the exim 3 config file to
+determine the answers that were given to eximconfig on exim 3
+installation. These answers are then taken as default values for the
+debconf based configuration process. Be warned! eximconfig from the
+exim 3 packages doesn't record the explicit answers given on exim 3
+configuration. So we have to guess the answers from the exim 3
+configuration file /etc/exim/exim.conf, which is bound to fail if the
+config file has been modified after using eximconfig.
+
+This is the reason why we refrained from doing a "silent update", but
+only use the guessed answers to get reasonable defaults for our
+debconf based configuration process.
+
+Please note that we do not use the update4r4 script, but try to
+configure the exim 4 package in the same way exim 3 was. This will
+hopefully aid future updates.
+
+If you have used a customized exim 3 configuration, you can of course
+use update4r4, and install the resulting file as /etc/exim4/exim4.conf
+after careful inspection. exim4 will then use that file and ignore the
+file that it generated from the debconf configuration. To aid future
+updates, we do, however, encourage you not to use the
+update4r4-generated file verbatim but instead drop appropriate
+configuration snippets in their appropriate place in
+/etc/exim4/conf.d.
+
+*******************************************************
+Customizing configuration for using exim4-config ******
+*******************************************************
+
+exim4-config provides update-exim4.conf, a script that uses the files
+from /etc/exim4/conf.d to build the actual exim4 config file located
+in /var/lib/exim4/config.autogenerated. It is invoked by the init
+script prior to any operation that may invoke an exim process, and
+gives an error message if the generated config file is syntactically
+invalid.
+
+Since /var/lib/exim4/config.autogenerated is generated automatically,
+any changes made there are overwritten!
+/var/lib/exim4/config.autogenerated is _NOT_ a dpkg-conffile!
+
+Each directory in /etc/exim4/conf.d corresponds to a section in the
+actual config file, with the contents if the files in that directory
+being written to the config file in alphabetical order. It is
+encouraged that each router, transport etc. goes in its own file.
+
+exim4-config comes with a collection of control files that build to an
+exim configuration that can handle most tasks of mail delivery.
+Additional parameters are asked from the user on package install with
+debconf questions. The result of these debconf questions is written to
+/etc/exim4/update-exim4.conf.conf. If you want to reconfigure exim with
+debconf invoke "dpkg-reconfigure exim4-config". update-exim4.conf uses
+the contents of /etc/exim4/update-exim4.conf.conf to put parameters
+into the generated exim 4 config file. Some files in /etc/exim4/conf.d
+are modified in this process.
+
+The files modified by update-exim4.conf are protected by an md5
+checksum, so that update-exim4.conf can refrain from changing these
+files if they have been manually modified. This might result in a
+non-working exim 4 configuration, so you might want to set
+conftype=none to keep update-exim4.conf from modifying any
+/etc/exim/conf.d file.
+
+More information about exim4-config's update-exim4.conf can be found
+in its man page, update-exim4.conf(8).
+
+If you want to use a handcrafted, monolithic exim.conf file, you can
+put that file into /etc/exim4/exim4.conf, and exim will use that file.
+/var/lib/exim4/config.autogenerated, the file generated by
+update-exim4.conf, is ignored in that case. You might want to set
+conftype=none in that case. You should not edit /etc/exim4/exim4.conf
+directly when exim is running, because the forked processes exim starts
+for SMTP receiving or queue running would use the new configuration file,
+while the original main exim-daemon would still use the old configuration
+file.
+
+
+*******************************************************
+Using a completely different configuration scheme *****
+*******************************************************
+
+If you want to, you can replace exim4-config by something entirely
+different. The other packages don't care. Your package needs to:
+
+- Provides: exim4-config, Conflicts: exim4-config
+- drop the exim 4 configuration either into
+ /var/lib/exim4/config.autogenerated or into /etc/exim4/exim4.conf.
+
+Your package might provide an executeable update-exim4.conf that must
+be in root's path (/usr/sbin recommended). The init script will invoke
+that executable prior to invoking the actual exim daemon.
+
+The Source Package has a subdirectory debian/exim4-config-simple which
+contains a simple, not debconf-driven configuration scheme as example
+(in form of a Debian source package). And you can invoke
+"debian/config-custom/create-custom-package" which will create a new
+source package "exim4-config-custom" with the debconf-driven config
+scheme of exim4-config for your local modification.
+
+Exchanging the entire exim4-config package with something custom comes
+particularly handy for sites that have more than a few machines that
+are similarly configured, but doesn't want to use the original
+exim4-config package. Build your own exim4-config-custom or
+exim4-config-foo, and simply apt that package to the machines that
+need to have that configuration. Future updates can then be handled
+via the dpkg-conffile mechanism, properly detecting local modifications.
+
+
+
+********************************************
+Misc Notes *********************************
+********************************************
+
+PAM:
+On Debian systems the PAM modules run as the same user as the calling program,
+so they can't do anything you couldn't do yourself, and in particular can't
+access /etc/shadow unless the user is in group shadow. - If you want to use
+/etc/shadow for Exim's SMTP AUTH you will need to run exim as group shadow.
+Only exim4-daemon-heavy is linked against libpam.
+_____________________________________________
+
+convert4r4 ist installed as /usr/sbin/exim_convert4r4.
+_____________________________________________
+
+The CVS repository of the Debian package is publically accessible on
+alioth.debian.org, see https://alioth.debian.org/projects/pkg-exim4
+_____________________________________________
+
+********************************************
+Modifications ******************************
+********************************************
+Patches by Steve Haslam available from
+ http://www.arise.demon.co.uk/exim-patches/:
+******
+boolean_redefine_protect
+ [src/mytypes.h]
+ Surround the definition of TRUE and FALSE macros with #ifndef
+ /#endif, in case some other header defines them (from mixing No
+ Perl and Exim, istr)
+
+******
+Other stuff
+******
+* link exim dynamically against pcre.
+
+* The main binary is /usr/sbin/exim4:
+ - src/globals.c was changed to use 'US BIN_DIRECTORY "/exim4"' as default
+ for exim_path.
+ - changed default for $exim_path (modulo lower/upper case) from
+ BIN_DIRECTORY/exim to BIN_DIRECTORY/exim4 in exicyclog.src,
+ exim_checkaccess.src, eximon.src, exinext.src, exiqgrep.src,
+ exiwhat.src.
+ - OS/Makefile-Linux:EXIWHAT_MULTIKILL_ARG=exim4
+
+* localscan_dlopen.patch downloaded from
+ http://marc.merlins.org/linux/exim/files/sa-exim-current/
+ Allow to use and switch between different local_scan functions without
+ recompiling exim.
+ Use
+ local_scan_path = /path/to/sharedobject
+ to utilze local_scan() in /path/to/sharedobject
+
+* local_scan.c perl plugin by Richard Baker <rich@mondaymorning.org> from
+ http://oss.bibliotech.net/ - Modified to compile as shared object that can be
+ dlopened.
+ Use perl script /etc/exim4/local_scan.pl for local scan API.
diff --git a/debian/README.TLS b/debian/README.TLS
new file mode 100644
index 0000000..14466ac
--- /dev/null
+++ b/debian/README.TLS
@@ -0,0 +1,117 @@
+Notes about TLS/SSL support
+-------------------
+[written by Sander Smeenk <ssmeenk@debian.org>]
+[modified by AndreasMetzler <ametzler@downhill.at.eu.org>]
+
+For a real cool example on what is possible with Exim 4's new ACLs visit
+Marc Merlin's Exim 4 Page: http://marc.merlins.org/linux/exim/
+
+Further down is explanation about dhparams, you might have been directed
+here through exim-gencerts or the package supplied exim configuration file.
+
+
+HOW TO ENABLE TLS SUPPORT WITH EXIM-TLS V4+
+-------------------------------------------
+
+Install a flavour of exim that is compiled with TLS support, i.e.
+exim4-daemon-heavy (or a exim4-daemon-custom) but NOT
+exim4-daemon-light.
+
+You should have created certificates in /etc/exim4/ either by hand
+or by usage of the exim-gencert (which requires openssl).
+exim-gencert is shipped in /usr/share/doc/exim4-base/examples/
+
+Next edit /etc/exim4/conf.d/main/03_exim4-config_tlsoptions and activate
+these options by removing the hash-mark ("#") in front of them.
+# hostlist auth_over_tls_hosts = *
+# log_selector = +tls_cipher +tls_peerdn
+# tls_advertise_hosts = *
+# tls_certificate = /etc/exim4/exim.crt
+# tls_privatekey = /etc/exim4/exim.key
+
+If you don't manage exim's configuration with debconf, you'll have to add
+these options to your handcrafted configuration file
+/etc/exim4/exim4.conf instead.
+
+* auth_over_tls_hosts
+ Defines what hosts to 'advertise' AUTHentication to when they connect
+ via TLS. Setting this to * will advertise this functionality to all
+ hosts that connect with TLS and this is a good default
+
+* log_selector
+ Defines that you want to log what cipher your exim and the peer's mailer
+ uses to encrypt the transaction. It also defines you want to log the 'DN'
+ (Distinguished Name) of the certificate of the peer.
+
+* tls_advertise_hosts
+ Defines what hosts to 'advertise' STARTTLS functionality to. Setting this
+ to * will advertise to all hosts that connect with EHLO, and this is a
+ good default
+
+* tls_certificate & tls_privatekey
+ Defines where your SSL-certificate and SSL-Private Key are located.
+ This requires a full path. The files pointed to must be kept 'secret'
+ and should be owned my root.mail mode 640 (-rw-r-----). Usually the
+ exim-gencert script takes care of these prerequisites.
+
+
+
+EXIM TELLS ME '454 TLS currently unavailable' WHAT IS WRONG?!!
+--------------------------------------------------------------
+
+Please refer to /var/log/exim/mainlog and/or paniclog.
+You should see messages like:
+ 2003-01-27 19:06:45 TLS error on connection from localhost [127.0.0.1]
+ (cert/key setup): Error while reading file)
+
+
+
+DURING TRANSACTION EXIM TELLS ME 'not enough random bytes available'
+'please do some other work to give the OS a chance to collect more entropy'
+WHAT IS WRONG?!!
+---------------------------------------------------------------------------
+
+Exim was unable to read enough random data from /dev/random to seed it's
+Diffie Hellman parameter generation. Please check that your /dev/random
+device is setup properly. It has been reported that with 2.5.53 kernels
+/dev/random sometimes won't give any output.
+
+Try generating alot of load for a while by doing things (as root) like:
+
+ % find / -type f -exec cat {} \;
+ % tar cvzf - / | zcat > /dev/null
+
+Or build a kernel or X11 :)
+
+This will cause alot of interrupts and data to be read. It should generate
+enough entropy. If it doesn't, check if your /dev/random *EVER* returns
+data.
+
+
+DHPARAMS AND WHY IT IS DISABLED EVERYWHERE
+------------------------------------------
+
+This version of Exim is compiled against GnuTLS. GnuTLS is a replacement
+for the restrictive licensed OpenSSL libraries. GnuTLS does not support
+varying its Diffie-Hellman parameters. Therefore tls_dhparam settings are
+ignored in Exim's configuration file, and no dhparam file is generated by
+exim-gencerts.
+
+GnuTLS uses RSA and D-H parameters that are computed when they are needed.
+(eg. when someone sends STARTTLS, exim will compute these parameters).
+After successful computation Exim will store these parameters in a cache
+file located in Exim's spooldirectory (/var/spool/exim4/gnutls.params).
+
+It is wise to remove this file periodically so Exim creates a new set of
+gnutls parameters. This is done by a cronjob that runs every 12 hrs.
+
+It's "more secure" when you have this file regenerated more often.
+But remember that the exim process that has to create the file could take
+a little longer before it responds to a STARTTLS command. (You should not
+notice this on current computers).
+
+NOTE! The fact that GnuTLS does not support generated Diffie-Hellman
+parameters does NOT make it less secure.
+
+Also refer to /usr/share/doc/exim4-base/NewStuff.gz, section 18.
+
diff --git a/debian/README.local_scan-perl b/debian/README.local_scan-perl
new file mode 100644
index 0000000..33334a3
--- /dev/null
+++ b/debian/README.local_scan-perl
@@ -0,0 +1,9 @@
+This package includes a plugin to use a perl script running on Exim's
+builtin perl interpreter for the local_scan interface. To enable it
+set
+local_scan_path = /usr/lib/exim4/local_scan/local_scan_perl-0.2.so
+in the main part of Exim's run-time configuration file
+(/etc/exim4/exim4.conf.template or /etc/exim4/exim4.conf) and put
+your local_scan() perl routine in /etc/exim4/local_scan.pl
+
+See http://oss.bibliotech.net/ for details.
diff --git a/debian/TODO b/debian/TODO
new file mode 100644
index 0000000..39d1fc8
--- /dev/null
+++ b/debian/TODO
@@ -0,0 +1,15 @@
+Tell maintainers of exim and exim-tls that they need conflicts/replaces
+with -base (or -common or whatever name we choose).
+
+debconf:
+* validating input
+
+inetd support (sarge+1)
+Hurd patches?
+
+
+================================================================
+grep -r for REMOVEMEBEFORERELEASE and do it.
+remove -prerelease from received:-header before first unstable upload
+
+testing alioth
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..10d68b4
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,872 @@
+exim4 (4.14-0.4) experimental; urgency=low
+
+ * Renamed conf.d files from *exim4-base* to *exim4-config* since
+ they can now be found in the exim4-config package.
+ WARNING, this breaks updates. After installation, execute
+ something like the following bash snipped to rename your files:
+ for i in `find . -name *exim4-base*`; do mv $i ${i/exim4-base/exim4-config}; done
+ (MH)
+ * Include more sophisticated check_rcpt ACL, include documentation,
+ include even more sophisticate check_rcpt ACL in
+ /u/s/d/e4-config/examples/acl. (MH)
+ * update-exim4.conf now filters out consecutive empty lines (MH)
+ * make update-exim4.conf's behaviour for configtype=none more consistent,
+ respect CFILEMODE and --removecomments. (Thanks to Marc Merlin)
+ * add warning about editing /etc/exim4/exim4.conf in place (Marc Merlin)
+ * use .rul instead of .disabled to override/disable configfiles in
+ /etc/exim4/conf.d/ (Suggested by Marc Merlin)
+ * fix smtp auth client-side examples (Closes: #188828), thanks to Karl
+ M. Hegbloom for the bug report (AM)
+ * add @DPATCH@-tag to patches, as required by dpath-edit-patch in
+ dpatch 1.17 (AM)
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 25 Apr 2003 12:37:50 +0200
+
+exim4 (4.14-0.3) experimental; urgency=low
+
+ * add '|| true' to every call of db_input. (Thanks to Pierfrancesco Caci for
+ the bugreport.) (Closes: #187008)
+ * Don't set received_header_text in 02_exim4-base_options, use upstream's
+ default.
+ * renumber routers to have more space for local customization.
+ WARNING WARNING upgrade is broken, execute this in
+ /etc/exim4/conf.d/router to get rid of the superfluous files:
+ mv 20_exim4-base_domain_literal 100_exim4-base_domain_literal
+ mv 22_exim4-base_primary 200_exim4-base_primary
+ mv 24_exim4-base_real_local 300_exim4-base_real_local
+ mv 26_exim4-base_system_aliases 400_exim4-base_system_aliases
+ mv 28_exim4-base_hubuser 500_exim4-base_hubuser
+ mv 30_exim4-base_userforward 600_exim4-base_userforward
+ mv 32_exim4-base_procmail 700_exim4-base_procmail
+ mv 34_exim4-base_maildrop 800_exim4-base_maildrop
+ mv 36_exim4-base_local_user 900_exim4-base_local_user
+ * add *syntax_errors* directives to userforward router, to use partially
+ valid .forward files instead of skipping them. (Marc Haber)
+ * update mysql build-depends
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 9 Apr 2003 16:19:46 +0200
+
+exim4 (4.14-0.2) experimental; urgency=low
+
+ * upstream fix for crash with AUTH PLAIN
+ * upgrade to policy 3.5.9.0 (CFLAGS in debian/rules)
+ * Add (maildir) transport for handling file addresses generated by
+ alias or .forward files if the path ends in "/", enabled for .forward per
+ default, but not for /etc/aliases. Thanks to Andreas Horter.
+ * add debconf question to move files from exim3 spool to exim4 spool
+ * run exim_tidydb as mail:mail using start-stop-daemon
+ * Make manpages UTF-8 compatible with nicer quotes and escaped dashes.
+ * fakeroot debian/rules builddaemonpackages=exim4-daemon-custom \
+ buildbasepackages=no binary produced a broken exim4-config package.
+ (Bug found by Soren Andersen)
+ * introduce new replacement item DEBCONFpackageversionDEBCONF holding
+ the complete version number, might be useful for Received headers (Marc
+ Haber)
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 27 Mar 2003 17:04:02 +0100
+
+exim4 (4.14-0.1) experimental; urgency=low
+
+ * New upstream version
+ * 20_fix.lsearch.dpatch not needed anymore
+ * use new feature .ifdef instead of simulating it with condition=...
+ * change priority of exim4-daemon-light to important
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 13 Mar 2003 15:03:41 +0100
+
+exim4 (4.12-0.2) experimental; urgency=low
+
+ * instead of generating 22_exim4-base_primary by copying the correct
+ file into it, use condition=... to select the correct one. Similar
+ change to 28_exim4-base_hubuser
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 6 Mar 2003 11:55:55 +0100
+
+exim4 (4.12-0.1) experimental; urgency=low
+
+ * minimal doc-updates
+ * init-script: output status-message before starting upex4conf()
+ * polish smtp-auth examples - don't hardcode passwords in main
+ configuration file.
+ * change default file-permissions of configfile to 0644. This can be changed
+ by setting CFILEMODE in the default file.
+ * rename debian/patches/*, giving each one an unambiguous number
+ * ignore private rfc1918 and APIPA addresses in internet router (MH)
+ * correct info about authorship of dlopen patch
+ * don't link exim4-daemon-light against PAM (explicitely link it against libdl)
+ * same_domain_copy_routing = yes for primrout-internet, primrout-satellite
+ and primrout-smarthost (MH)
+ * rename debconf.results to update-exim4.conf.conf, add upgrading-magic for
+ upgrading from 4.12-0 and earlier (marked as REMOVEMEBEFORERELEASE)
+ * introduce REMOVEMEBEFORERELEASE-tag, grep -r on debian/ will show us all
+ the cruft that needs to be removed before uploading to unstable.
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 5 Mar 2003 19:03:59 +0100
+
+exim4 (4.12-0) experimental; urgency=low
+
+ * removed TODO marker from the copyright file
+ * version number for first Debian upload
+ * built i386 binary package on sid
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Fri, 21 Feb 2003 14:40:42 +0100
+
+exim4 (4.12-0.0.21) experimental; urgency=low
+
+ * update copyright
+ * exim-gencert: generate certificates valid for three years instead 30
+ days
+ * remove debian/debconf/exim4.conf.template
+ * enable LMTP, LOOKUP_NIS and mailstore for daemon-light
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 21 Feb 2003 12:55:40 +0100
+
+exim4 (4.12-0.0.20) experimental; urgency=low
+
+ * ship /usr/lib/exim4/exim4 and use it to check whether daemon package
+ is installed.
+ * Exim doesn't require a HUP after logrotation. (See spec 44.2) (MH)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 20 Feb 2003 19:23:45 +0100
+
+exim4 (4.12-0.0.19) experimental; urgency=low
+
+ * Ship upstream-changelog only in exim4-base, Symlinks in packages depending
+ on it. Split off changelog entries up to 3.34-1 to changelog.Debian.old
+ which is only included in exim4-base. - Spares about 100KB.
+ * Ship ACKNOWLEDGMENTS in exim4-base docs.
+ * remove debian/exim4-config.docs, files are already shipped in exim4-
+ base
+ * disable some the unneeded dh_* commands from binary-indep target.
+ * make exim4 a metapackage
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 20 Feb 2003 12:41:17 +0100
+
+exim4 (4.12-0.0.18) experimental; urgency=low
+
+ * split off all configuration to exim4-config
+ * include exim4-config-simple source package
+ * include script to generate exim4-config source package
+ * changed distribution to experimental
+ * Add patch by Phil Hazel to fix lsearch*@ lookups. (AM)
+ * Remove exim4-daemon-perl; merge it into exim4-daemon-heavy (AM)
+ * Prepare removal of "exim4" daemon-flavour: Exchange the roles of
+ "exim4" and "exim4-daemon-light" in debian/rules: build helper
+ binaries, eximon, et.al. while building exim4-daemon-light. Rename
+ EDITME.exim4-base.diff to EDITME.exim4.diff. (AM)
+ -----
+ WARNING: This breaks your debian/EDITME.exim4-custom.diff, as it was
+ generated to show the differences to debian/EDITME.exim4-base instead of
+ EDITME.exim4-light. (AM)
+ -----
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Tue, 18 Feb 2003 16:16:45 +0100
+
+exim4 (4.12-0.0.17) unstable; urgency=low
+
+ * mv 26_exim4-base_aliases 26_exim4-base_system_aliases (MH)
+ * mv 30_exim4-base_forward 30_exim4-base_userforward (MH)
+ * WARNING: upgrades are broken!
+ -After ugrading delete conffiles no longer in package in directories
+ below /etc/exim4/conf.d/:
+ router/26_exim4-base_aliases
+ router/30_exim4-base_forward
+ * all file names for transports and routers are now consistent with
+ Transport/Router defined inside (MH)
+ * add debug_print to all transports/routers (MH)
+ * add cut -d\ -f1 to all md5sum calls in pipes (MH)
+ * add man page for exiqgrep (MH)
+ * fix typos in exiqsumm and exicyclog man page (MH)
+ * Don't install exim.8.diff as manpage, apply the patch instead. (AM)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Sat, 15 Feb 2003 16:35:26 +0100
+
+exim4 (4.12-0.0.16) unstable; urgency=low
+
+ * Define CONFDIR-macro and use it in update-exim4.conf and some files in
+ CONFDIR. (AM)
+ * Enhance update-exim4.conf: remove comments by default, allow to write
+ output to a different file. (AM)
+ * update-exim4.conf: check validity of configfile before installing it
+ * fix breakage with newer md5sum - thanks to Sander (AM)
+ * check in init-script for smtp-service in inetd that is compatible with
+ openbsd-inetd's extended syntax (Hubert Chan) (AM)
+ * Don't link against libwrap, exim3 doesn't either (Alexander Koch) (AM)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 14 Feb 2003 19:55:54 +0100
+
+exim4 (4.12-0.0.15) unstable; urgency=low
+
+ * If exim4/dc_listenonpublic=false add an explaing line to the
+ resulting configfile instead of a blank-line (Marc Haber)
+ * In postinst and cronjob make sure that db files are owned by
+ mail:mail
+ * Add buzzword convert4r4 to description of "No configuration" profile
+ * Body of manpage exim_convert4r4: s/convert4r4/exim_convert4r4/g
+ * Change maintainer, add Marc Haber to Uploaders
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 2 Feb 2003 22:06:06 +0100
+
+exim4 (4.12-0.0.14) unstable; urgency=low
+
+ * fix bugs found by Marc Haber:
+ - search for email-addresses file in /etc/exim4/
+ - s/hostname -fqdn/hostname --fqdn/
+ * exim4-base.config: don't grep in /etc/aliases if does not exist yet.
+ * clear up config-script, using both $mailname and $dc_mailname was
+ irritating.
+ * fix wrong logic for aliases generation (= instead of !=)
+ * fix major breakage of debconf code: config-script is called two times
+ _before_ postinst writes debconf.results, db_set-commands (for sane
+ defaults) in the second-run overwrote the answers given by the user.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 1 Feb 2003 15:06:58 +0100
+
+exim4 (4.12-0.0.13) unstable; urgency=low
+
+ * link against GNUTLS
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 31 Jan 2003 16:32:31 +0100
+
+exim4 (4.12-0.0.12) unstable; urgency=low
+
+ * clean up at purge: Remove logfiles, ask about removing
+ undelivered mails in spool directory.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 31 Jan 2003 13:32:37 +0100
+
+exim4 (4.12-0.0.11) unstable; urgency=low
+
+ * clean up update-exim4.conf:
+ + fix unconditional overwriting 03_exim4-base_neverusers
+ + one central `tempfile -m...`
+ + add skeleton function example
+ * add missing 'set -e' to exim4-base.postrm
+ * If there are no debconf answers and we are making a cross upgrade
+ from exim3, try to parse its config file to seed debconf db.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 26 Jan 2003 12:22:23 +0100
+
+exim4 (4.12-0.0.10) unstable; urgency=low
+
+ * Get rid of error messages: don't call chmod/chown in
+ debconf/update-exim4.conf if the respective files don't exist. Don't try
+ to kill non running daemons.
+ * Don't start unconfigured daemon in init script, ie. require either
+ ${dc_eximconfig_configtype}" != "xnone or existence of handcrafted
+ /etc/exim4/exim4.conf.
+ Thanks to Alexander Koch for firmly pushing me this way.
+ * dc_listenonpublic was overwritten to true in config script.
+ * Typo in exim4-base.postrm prevented removal of
+ /etc/exim4/conf.d/router/28_exim4-base_hubuser
+ * Clean up /var/spool/exim4 properly; at least if there are just empty
+ directories.
+ * hub_user was broken because of unescaped $.
+ * import updated 10_daemon_close_fds.dpatch from Steve.
+ * only set neverusers if root is aliased somewhere.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 24 Jan 2003 17:14:13 +0100
+
+exim4 (4.12-0.0.9) unstable; urgency=low
+
+ * update-exim4defaults: Fix bugs, add option --init
+ * /etc/default/exim4 is no conffile anymore, it is generated with
+ update-exim4defaults.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 17 Jan 2003 13:39:46 +0100
+
+exim4 (4.12-0.0.8) unstable; urgency=low
+
+ * Don't ship now unneeded empty /var/lib/exim4/masquerade and
+ /var/lib/exim4/email_addresses
+ * move hub_user router to /etc/e4/c.d/
+ * move primary-router definition to /etc/e4/c.d/
+ * code in debian/rules installing /etc/exim4/conf.d/ tree ignores CVS
+ directories
+ * WARNING: upgrades from 0.0.6 and 0.0.7 are broken!
+ -After ugrading delete conffiles no longer in package in directories
+ below /etc/exim4/conf.d/:
+ rewrite/30_exim4-base
+ router/28_exim4-base_hub_user
+ - replace router/22_exim4-base_primary with a file containg only
+ the line "# d41d8cd98f00b204e9800998ecf8427e"
+ run update-exim4.conf afterwards and start daemon.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Tue, 14 Jan 2003 17:44:50 +0100
+
+exim4 (4.12-0.0.7) unstable; urgency=low
+
+ * Add configuration file managment code using md5sums stored in the file
+ itself to update-exim4.conf(8). Use it and move files for evaluation of
+ /e/e4/email-addresses and the masquerading rules from /var/lib/exim4 to
+ /etc/. Gets rid of /etc/exim4/conf.d/rewrite/30_exim4-base and its two
+ .includes.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 14 Jan 2003 13:05:51 +0100
+
+exim4 (4.12-0.0.6) unstable; urgency=low
+
+ * generate up to date manpage for eximstats with pod2man.
+ * EXPERIMENTAL: Split /etc/exim4/exim4.conf.template to little files
+ in /etc/exim4/conf.d/ - update docs accordingly.
+ * fix wrong path in exim4-base.doc-base.spec
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 12 Jan 2003 18:25:40 +0100
+
+exim4 (4.12-0.0.5) unstable; urgency=low
+
+ * enhance default-file a lot.
+ * ship update-exim4defaults(8) - a script to allow other packages to modify
+ the default-file.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Mon, 6 Jan 2003 23:00:15 +0100
+
+exim4 (4.12-0.0.4) unstable; urgency=low
+
+ * Compile perl plugin with -fPIC
+ * Enable IPv6 support (Andrew Mulholland)
+ * remove exim4-base.cron.d, it only contained comments (no inetd support).
+ * enhance default-file: Allow disabling any queue runs and passing
+ additional options to exim daemon and/or the queuerunner.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Sun, 5 Jan 2003 13:16:37 +0100
+
+exim4 (4.12-0.0.3) unstable; urgency=low
+
+ * Keep patches separate to make upgrading easier, using dpatch.
+ * Rename eximon to eximon4: Otherwise this would force anybody who has
+ installed eximon and runs exim v3 to switch to exim v4
+ * Polish package descriptions a little bit.
+ * Drop Recommends for netbase. We don't support inetd anyway.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 31 Dec 2002 14:31:14 +0100
+
+exim4 (4.12-0.0.2) unstable; urgency=low
+
+ * Actually compile with -O2 (Matthias Klose)
+ * Apply localscan_dlopen.patch from
+ http://marc.merlins.org/linux/exim/files/sa-exim-current/ to make it
+ possible to switch local_scan functions *without* recompiling exim.
+ * compile local_scan.c perl plugin as shared object that is dlopened,
+ document this in exim4-daemon-perl's description and doc-directory.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 21 Dec 2002 14:01:24 +0100
+
+exim4 (4.12-0.0.1) unstable; urgency=low
+
+ * New upstream 4.12, a strict maintainance release. Without any new features
+ (Don't worry - this is the real release i.e. Phil's third shot ;-)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 18 Dec 2002 12:17:51 +0100
+
+exim4 (4.11-0.0.4) unstable; urgency=low
+
+ * Get rid of /usr/lib/exim4/exim (see README.Debian for patched files)
+ * Use relative paths in debian/eximon.dirs
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 17 Dec 2002 13:40:19 +0100
+
+exim4 (4.11-0.0.3) unstable; urgency=low
+
+ * fix dbm lookups (one-line patch to src/search.c)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 13 Dec 2002 13:38:31 +0100
+
+exim4 (4.11-0.0.2) unstable; urgency=low
+
+ * Fresh installs were broken, as the initial test in update-exim4.conf
+ failed.
+ * update-exim4.conf exits silently if /etc/exim4/exim4.conf exists.
+ * don't invoke update-exim4.conf in postinst if configtype=none.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 11 Dec 2002 16:32:47 +0100
+
+exim4 (4.11-0.0.1) unstable; urgency=low
+
+ * New upstream version 4.11:
+ includes spec und util/* in orig.tar.gz, diff is small again.
+ see NewStuff items 49 to 57 for new features since snapshot 4.10.13.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 11 Dec 2002 13:01:07 +0100
+
+exim4 (4.10.13-0.0.4) unstable; urgency=low
+
+ * reformat manpages a little bit, start each sentence on a new line, refer
+ to /usr/share/doc/exim4-base/
+ * remove the %s from PID_FILE_PATH
+ * apply debian/fix-pid.issue.patch to fix minor security issue
+ http://www.exim.org/pipermail/exim-users/Week-of-Mon-20021202/046978.html
+ * test in init-script for working config before reloading/restarting
+ (Andreas Piesk)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 5 Dec 2002 13:04:51 +0100
+
+exim4 (4.10.13-0.0.3) unstable; urgency=low
+
+ * update copyright from NOTICE
+ * Typos in exim(8)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Wed, 4 Dec 2002 10:35:18 +0100
+
+exim4 (4.10.13-0.0.2) unstable; urgency=low
+
+ * Fix path for eximon.bin in eximon script (Andreas Piesk)
+ * Add comments at the head of exim4.conf.template, containing a short
+ introduction to the configuration scheme.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 3 Dec 2002 23:52:28 +0100
+
+exim4 (4.10.13-0.0.1) unstable; urgency=low
+
+ * Snapshot 4.10.13
+ * CONFIGURE_FILE=/etc/exim4/exim4.conf:/var/lib/exim4/config.autogenerated
+ * update update-exim4.conf* and documentation accordingly.
+ * Generate config.autogenerated with same permissions as
+ /etc/exim4/exim4.conf.template (it might conatain passwords)
+ * Add BIG FAT warning at head of autogenerated file.
+ * don't ship /var/lib/exim4/config.autogenerated, simply remove it on
+ purge if it exists.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Mon, 2 Dec 2002 12:45:58 +0100
+
+exim4 (4.10.12-0.0.1) unstable; urgency=low
+
+ * Upgrade to testing snapshot 4.10.12
+ * patches accepted/superseded by upstream: exim4-MID-expanded.patch, hmac*,
+ perl.c.patch
+ * patches that do not apply cleanly anymore: bV_shows_openssl_version.txt,
+ daemon_close_fds.txt, gcc_attributes-eximon.diff, gcc_attributes.txt,
+ tls_common.txt, tls_misc.txt, tls_session_cache.txt.
+ * minimize changes to scripts/exim_install - use INSTALL_ARG=-no_symlink instead.
+ * no util/cramtest.pl util/logargs.sh util/unknownuser.sh in upstream
+ tarball - perhaps only in testing version?
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 28 Nov 2002 16:11:52 +0100
+
+exim4 (4.10-0.srh20.19) unstable; urgency=low
+
+ * ship convert4r4 as /usr/sbin/exim_convert4r4 (with manpage)
+ * eximon does not provides/Conflicts: exim4-daemon
+ * switch AGAIN *-daemon provides MTA:
+ - *-daemon depends on -base instead of the other way round
+ - explicit "conflicts/replaces: exim, exim-tls" for the base package -
+ these need to add this the other way round, too (TODO).
+ - move symlinks for sendmail, mailq, rmail, rsmtp and their manpages (+the one
+ for newaliases) to the daemon-packages.
+ - no more non-debhelper-generated exim4-base.prerm, simplified
+ *daemon.postinst
+ * try to start daemon in postinst no matter whether configtype=none, people
+ might use it with a handcrafted exim4.conf.
+ * register /var/lib/exim4/email_addresses for dpkg.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 24 Nov 2002 15:04:32 +0100
+
+exim4 (4.10-0.srh20.18) unstable; urgency=low
+
+ * add "Replaces: exim4-daemon" to all the daemon flavours, needed for
+ switching.
+ * Marc Haber:
+ make exim4-daemon-custom actually work.
+ building from CVS was broken
+ clean target missed Local/eximon.conf
+ * exim-daemon-perl recommends libexim-localscan-perl
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 21 Nov 2002 17:04:54 +0100
+
+exim4 (4.10-0.srh20.17) unstable; urgency=low
+
+ * add support for building a customized daemon (exim4-daemon-custom)
+ * tighten build-depends: official exim4-base linked against db3 won't
+ work well together with exim4-daemon-custom linked against libdb2
+ * ship compile time configuration (EDITME-files) in /usd/daemon-flavour.
+ * use /var/mail instead of /var/spool/mail (#169747)
+ * make uucp a trusted user. (#169545)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 17 Nov 2002 23:06:29 +0100
+
+exim4 (4.10-0.srh20.16) unstable; urgency=low
+
+ * fix Gecos pattern: 'From: "Andreas Metzler,,," <am...'#
+ * _big_ update for README.Debian: Document which patches were applied. Short
+ note about PAM.
+ * document that the perl flavour won't deliver any mail without
+ /etc/exim4/local_scan.pl in package description.
+ * fix examples for server-side SMTP AUTH
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 9 Nov 2002 10:12:34 +0100
+
+exim4 (4.10-0.srh20.15) unstable; urgency=low
+
+ * Fix crash with perl 5.8 (threads), thanks to Eckebrecht von Pappenheim
+ <evp@heise.de>
+ * perl-package: search local_scan.pl in /etc/exim4 instead of /etc/exim.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Wed, 6 Nov 2002 22:46:12 +0100
+
+exim4 (4.10-0.srh20.14) unstable; urgency=low
+
+ * add /etc/default/exim4 (#123184, #95325)
+ * Don't start a queue runner with cron per default, exim runs as daemon.
+ * polish config-script: more states, strip blanks.
+ * Ask whether to bind to all local interfaces or only to localhost with sane
+ default depending on configtype. (#108853)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 31 Oct 2002 14:05:50 +0100
+
+exim4 (4.10-0.srh20.13) unstable; urgency=low
+
+ * send stdout of logrotate postrotate-script to /dev/null
+ * polish exim4-base.postinst and exim4-base.templates
+ * use tcp-wrappers
+ * simplify update-exim4.conf. There is no need to only add remote_smtp
+ transport for special configurations. It does not hurt and should make it
+ easy for users to activate smtp-auth.
+ * install configration example to examples subdirectory
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 29 Oct 2002 08:42:42 +0100
+
+exim4 (4.10-0.srh20.12) unstable; urgency=low
+
+ * linked against external pcre
+ * clean up a little bit - move all manpages to debian/manpages/
+ * ship template /etc/exim4/email-addresses
+ * LFS support (-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE)
+ * Don't force sender verification by default
+ * I actually use this version.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 27 Oct 2002 17:10:16 +0100
+
+exim4 (4.10-0.srh20.11) unstable; urgency=low
+
+ * if HUPed exim will rexec itself as /usr/lib/exim4/exim, changing the name
+ to exim - start-stop-daemon-daemon would not recognize it. Changed
+ init.script to exec /usr/lib/exim4/exim to set the processname to "exim".
+ This needs to be deuglified.
+ * use black magic in daemon-$flavour postinst to only start it there if
+ switching flavours.
+ * support for inetd has to wait for sarge+1
+ * fix description of 'exim4' daemon flavour.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 26 Oct 2002 11:09:14 +0200
+
+exim4 (4.10-0.srh20.10) unstable; urgency=low
+
+ * don't provide symlink /usr/sbin/exim anymore - this broke coinstallation
+ with uninstalled exim 3 - the exim3-init script started the exim4-daemon.
+ Ship symlink /usr/lib/exim4/exim -> /usr/sbin/exim4 and set BIN_DIRECTORY
+ to /usr/lib/exim4. This is a little bit ugly but the alterative would be to
+ patch 7 files in src.
+ * the daemon packages conflict with each other by each having
+ Conflicts/Provides: exim4-daemon
+ * Add doc base support for spec and filter.txt (bug 165961)
+ * Switching daemon flavours restarts them.
+
+ -- Andreas Metzler <ametzler@balrog.logic.univie.ac.at> Fri, 25 Oct 2002 16:14:44 +0200
+
+exim4 (4.10-0.srh20.9) unstable; urgency=low
+
+ * apply exim4-MID-expanded.patch - make domain part of M-ID configurable.
+ Shipped in debian-subdir so it can be easily patch -R'd before official
+ debian release.
+ * set spool to /var/spool/exim4 in EDITME
+ * remove /var/run/exim4 on purge
+ * remove /var/(spool|log)/exim4 on purge if empty
+ * added manpages.
+ * allow relay for 127.0.0.1 : ::::1
+ * set host_find_failed = defer for smarthost router and mimick exim3. It
+ really sucks to get a frozen message and error to the postmaster _every_
+ time I try to send a message offline.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 14:00:05 +0200
+
+exim4 (4.10-0.srh20.8) unstable; urgency=low
+
+ * info and html doc generated from separate source package - diff is
+ small
+ * remove m4 and texinfo from build-depends
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 12:22:56 +0200
+
+exim4 (4.10-0.srh20.7) unstable; urgency=low
+
+ * config script as state machine - allows going back!
+ * hopefully last forgotten entry of /var/{spool,log,run}/exim in postinst
+ and cron.* fixed.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 09:16:12 +0200
+
+exim4 (4.10-0.srh20.6) unstable; urgency=low
+
+ * generate /etc/aliases with debconf
+ * remove dpkg-statoverride managment with debconf, ship exim binary as 4755
+ root:root.
+ * update debian/copyright from NOTICE.
+ * add (commented out) maildrop-transport to template
+ * add (commented out) maildir-transport to template
+ * Remove some backslashes in template
+ * Fix *lots of* cut and paste errors, introduced by generating the
+ configuration template from the debconf_eximconfig perl script.
+ $local_delivery is wrong, define macro LOCAL_DELIVERY and use it instead.
+ Remove erranous backslashes.
+ * Add comments from the example configuration file to template.
+ * host and domain lists are colon separated.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Mon, 21 Oct 2002 22:37:45 +0200
+
+exim4 (4.10-0.srh20.5) unstable; urgency=low
+
+ * new debconf-code:
+ - shell scripts
+ - debconf-results are saved (and read from) /etc/exim4/debconf.results
+ - /etc/exim4/exim4.conf.template is a dpkg-conffile
+ - update-exim4.conf(8) merges these two files and generates exim's main
+ configuration file /var/lib/exim4/exim4.conf.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 19 Oct 2002 19:23:35 +0200
+
+exim4 (4.10-0.srh20.4) unstable; urgency=low
+
+ * symlink usr/sbin/exim4 <-> usr/sbin/exim in -base package was wrong.
+ * move invoke-rc.d to -base package - _it_ contains the init-script
+ * move stat-overide-stuff to -base package. - The values are filled in _its_
+ config.
+ * missing stuff from log/exim4 run/exim4 transition: exim-base
+ maintainerscripts.
+ * Daemon-packages have only debconf stuff left as maintainerscripts. How
+ about letting dh_installinit manage the initscript?
+ * exim4-base.postrm has no business removing /etc/exim/exim.conf
+
+ -- Andreas Metzler <ametzler@balrog.logic.univie.ac.at> Fri, 18 Oct 2002 14:40:46 +0200
+
+exim4 (4.10-0.srh20.3) unstable; urgency=low
+
+ * /etc/exim4/...
+ * fix cronjob: Test for existence of /etc/exim4/exim4.conf - it formerly
+ tested for exim3's configuration file
+ * /usr/lib/exim/ --> /usr/lib/exim4/ -- Put eximon.bin there, too.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 18 Oct 2002 13:43:37 +0200
+
+exim4 (4.10-0.srh20.2) unstable; urgency=low
+
+ * more changes:
+ * /var/log/exim/ --> /var/log/exim4/
+ * /var/run/exim/ --> /var/run/exim4/
+ * /etc/init.d/exim --> /etc/init.d/exim4
+ * Use files named after the real package (exim4-base instead of) exim for
+ cron and logrotate. - use dh_installlogrotate and dh_installcron
+ * Don't install exim.8 manpages in daemon packages - symlink is enough, ship
+ real manpage in base-package. - use dh_installman.
+ * Get rid of m4-magic - without the alternatives there is no need.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 17 Oct 2002 23:52:31 +0200
+
+exim4 (4.10-0.srh20.1) unstable; urgency=low
+
+ * rename package, replace dependencies.
+ - src: exim4
+ - binary exim(-something) --> exim4-something
+ - Remove Provides: exim - does not make sense anymore, dselect/apt
+ would take the real exim instead of the provided one.
+ - Revamp Dependencies and contents
+ * exim4-base provides/confl/repl: mta and depends on one of *our*
+ flavours
+ * each of the flavours only contains only /usr/sbin/exim4 and a manpagelink
+ exim4--->exim - there is no need to provides/confl/repl: mta, because
+ we ship no common file with the same name as in the original
+ exim4-package
+ - drop alternatives.
+ - install configuration example to /usr/share/doc/exim4-doc/examples
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 17 Oct 2002 17:58:08 +0200
+
+exim (4.10-0.srh20) unstable; urgency=low
+
+ * exim-base.config fixes during testing-- need to run debconf subs in a
+ list context to get their numeric return code.
+ * enqueue_question(): $code == 0 is ok too
+ * main: call fetch_default() not find_default() [when did I last test this?]
+ * install debconf_eximconfig (!!!!!!)
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 21:50:27 +0100
+
+exim (4.10-0.srh19) unstable; urgency=low
+
+ * Move the eximon binary into the eximon package!
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 19:36:48 +0100
+
+exim (4.10-0.srh18) unstable; urgency=low
+
+ * The clean: target now deletes doc/tmp
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 18:10:29 +0100
+
+exim (4.10-0.srh17) unstable; urgency=low
+
+ * Slave alternatives for "rmail" too.
+ * Changed libxaw-dev in build-depends to libxaw7-dev | libxaw-dev
+ * Added libperl-dev and m4 to build-depends
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 17:19:40 +0100
+
+exim (4.10-0.srh16) unstable; urgency=low
+
+ * Put --exec $DAEMON back on the start-stop-daemon --stop calls, since
+ start-stop-daemon complains about the process not being found after it
+ just killed it. (Due to Exim not removing its own pid file?)
+ * Point slave alternatives at .gz versions of manpages
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 16:12:08 +0100
+
+exim (4.10-0.srh15) unstable; urgency=low
+
+ * Fix "update-alternatives --remove" invocation.
+ * Remove alternatives AFTER stopping daemon.
+ * Use logrotate to cycle logs.
+ * Manually install logrotate/cron stuff, to call it "exim" instead of "exim-base".
+ * Install upstream exim.8 manpage, and slave alternatives.
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 15:44:56 +0100
+
+exim (4.10-0.srh14) unstable; urgency=low
+
+ * dh_installinit: pass --noscripts, put the script invocation etc. in
+ ourselves. This is still pretty nasty, but ensures that the deamons
+ are stopped/started themselves, not by exim-base.
+ * Also, pass --init-script=exim to use /etc/init.d/exim, not
+ /etc/init.d/exim-base.
+ * Fix some inconsistencies in the postsinst related to the above that
+ made lintian scream
+ * Remove the --exec option when stopping the daemon in the init script,
+ so that we still stop the daemon if the symlink changed to point to a
+ different version (hacky).
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 14:51:19 +0100
+
+exim (4.10-0.srh13) unstable; urgency=low
+
+ * Bah, fix paths of mailq etc. to be in /usr/bin, not /usr/lib
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 14:08:45 +0100
+
+exim (4.10-0.srh12) unstable; urgency=low
+
+ * The postinsts were totally broken, doing everything off the "install"
+ target, and nothing off "configure". Since they're all pracitcally the
+ same, they are now generated from daemon-postinst.m4.
+ * Fix invocations of dpkg-statoverride (sysuser??)
+ * Added slave alternatives for mailq, sendmail etc.
+ * Removed daemon packages conflicting with mail-transport-agent,
+ although this isn't good-- the deamon packages don't conflict with
+ each other (they use alternatives to arrange themselves), but do
+ conflict with other MTAs that install
+ /usr/lib/sendmail|/usr/sbin/sendmail links. Urnf.
+ * Similar generation system for prerms as postinsts
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 13:47:53 +0100
+
+exim (4.10-0.srh11) unstable; urgency=low
+
+ * Urnf, nasty circular dependencies. Removed exim-base's dependency on exim-daemon.
+ * Fix "use strict" errors in exim-base.config (oops)
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 13:10:25 +0100
+
+exim (4.10-0.srh10) unstable; urgency=low
+
+ * Patch src/expand.c with HMAC support
+ * Rename exim-daemon-default package to just "exim", so upgrading works
+ better, and exim isn't made into a pure virtual package while other
+ packages depend on it. Moreover, mail-transport-agent is provided by
+ each of the daemon packages, not exim-base, since having exim-base
+ alone is not sufficient to have an MTA.
+ * Each exim daemon package depends on exim-base, not exim.
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 12:52:19 +0100
+
+exim (4.10-0.1) unstable; urgency=low
+
+ * Heavy changes to build system.
+ * Split package into:
+ - exim-base: This package contains all utility programs and
+ documentation in plain text format.
+ - exim-daemon-$FOO: (Currently for FOO in light, default, heavy,
+ perl): Conain only the exim daemon in different configurations
+ - exim-doc-info: Contains exim documentation in Info format.
+ - eximon: The X11 monitor for Exim
+
+ -- Hilko Bengen <bengen@toplink-plannet.de> Wed, 2 Oct 2002 17:23:04 +0200
+
+exim (4.10-0.srh4) unstable; urgency=low
+
+ * exim.c: Show the OpenSSL version number if TLS compiled in and the tls
+ debug selector enabled.
+ * exim.postinst et al: Keep the alternatives configured between upgrades
+ (naughty) since exim-light will fail to start if exim-heavy keywords
+ are in the config file
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 13 Sep 2002 16:08:47 +0100
+
+exim (4.10-0.srh3) unstable; urgency=low
+
+ * tls.c: Some debug output changes to verify_callback()
+ * debconf_eximconfig: add more escaping when writing acl_check_rcpt
+ * tls.c and others: ${tls_peercn} now expands to the CN part of the
+ peer's certificate subject when using TLS.
+ * transports/smtp.c and others: Added tls_verify_hostname option to
+ verify the hostname we connected to against the CN/subjectAltName
+ of the peer certificate.
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 13 Sep 2002 15:44:07 +0100
+
+exim (4.10-0.srh2) unstable; urgency=low
+
+ * exim-heavy.postinst: had duplicate sendmail alternative, removed. Had
+ a priority the same as exim-light too... increased.
+ * Replace LOOKUP_CDB=yes in exim-light configuration, since it was in
+ the Exim 3 package and doesn't bring in any dependencies.
+ * exim.postinst: delete files from /var/spool/exim/db if they cannot be
+ read by exim_dumpdb (some DB compatibility lossage)
+
+ -- Steve Haslam <araqnid@debian.org> Tue, 3 Sep 2002 13:28:44 +0100
+
+exim (4.10-0.srh1) unstable; urgency=low
+
+ * My stab at an Exim 4 package. Features include:
+ * An exim-heavy package that contains an Exim binary with LDAP,
+ MySQL, PostgreSQL etc. in, so that the main Exim package's
+ dependencies are kept thin but users can easily get hold of
+ the extra lookup types.
+ * Debconf-based configuration, although it has priority=high
+ questions, so not completely noninteractive yet, and not
+ all features of eximconfig have been ported/checked
+ * Automated conversion of Exim 3 configuration files
+ (using PH's convert4r4)
+
+ -- Steve Haslam <araqnid@debian.org> Tue, 3 Sep 2002 10:20:24 +0100
+
+exim (3.35-1.srh1) unstable; urgency=low
+
+ * Reconfigured to include MySQL and PostgreSQL lookups
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 9 Aug 2002 15:52:37 +0100
+
+exim (3.35-1) unstable; urgency=low
+
+ * New upstream version, fixes buffer overflow (Closes: #135069)
+ * debian/config: Added receiver_try_verify (Closes: #136276)
+ * debian/init.d: Use --retry 30 option for start-stop-daemon when
+ stopping exim (Closes: #136450)
+ * debian/postinst: "noninteractive" in correct case (Closes: #134379)
+ * debian/init.d: Use -n option for echo (from patch in #133288)
+ * debian/exim_lock.8: Manpage for exim_lock - thanks Nick Philips
+ (Closes: #131679)
+ * debian/config: Fixed comment on smtp_accept_queue_per_connection
+ (Closes: #136756)
+ * debian/exim.8,debian/eximon.8: Fixed hyphenation (Closes: #132068)
+ * debian/control: Short description improved (Closes: #130698)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 4 Mar 2002 23:04:52 +0000
+
+
diff --git a/debian/changelog.Debian.old b/debian/changelog.Debian.old
new file mode 100644
index 0000000..2b9640b
--- /dev/null
+++ b/debian/changelog.Debian.old
@@ -0,0 +1,1128 @@
+exim (3.34-1) unstable; urgency=low
+
+ * New upstream version
+ * Applied patch so that it isn't an open relay when used from inetd with
+ exim_user = root (but that still doesn't mean you should set this!)
+ (Closes: #126124)
+ * debian/editme-diff: Include lmtp support (Closes: #128052)
+ * debian/postinst: Only run update-inetd if it exists
+ * debian/control: The above means it only recommends rather than depends
+ on netbase (Closes: #118244)
+ * debian/config: Various changes to procmail-pipe transport in
+ eximconfig output (Closes: #117923, #120614, #129338)
+ * debian/config: Added comment mentioning rfcignorant.org to eximconfig
+ output (Closes: #128414)
+ * debian/email-addresses: Corrected typo (Closes: #123082)
+ * debian/init.d: List restart option in usage output (Closes: #122939)
+ * debian/config: Include rfc2142 addresses (such as abuse@) in generated
+ aliases file (Closes: #128411)
+
+ -- Mark Baker <mark@mnb.org.uk> Sat, 19 Jan 2002 17:44:56 +0000
+
+exim (3.33-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/control: include package priorities
+ * debian/copyright: fix spelling of common-licenses (I had spelt it the
+ British way, as licences, which of course isn't what the directory is
+ called) (Closes: #112086)
+ * src/exim.c: upstream patch to fix minor local security hole (Closes:
+ #117835)
+ * debian/postrm: fix test for empty spool directory (Closes: #108956,
+ #116018)
+ * debian/postrm: check update-inetd exists before calling (Closes: #121365)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 28 Nov 2001 22:07:14 +0000
+
+exim (3.32-2) unstable; urgency=low
+
+ * Applied upstream patch to fix IPv6 related problems (Closes: #108285,
+ #108309)
+ * debian/cron.daily: exit if exim binary doesn't exist (Closes: #108389)
+ * debian/init.d: check that inetd.conf exists before grepping it for
+ exim (Closes: #108147)
+ * debian/exim.8: update description of -bp option (Closes: #107222)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 15 Aug 2001 00:00:36 +0100
+
+exim (3.32-1) unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * debian/preinst: create /etc/exim before moving exim.conf (Closes:
+ #106659, #107657)
+ * debian/preinst: only do nasty stuff to crontab if upgrading from a
+ version prior to 1.82-3, as that was the first one to use cron in the
+ way we do now.
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 8 Aug 2001 23:34:04 +0100
+
+exim (3.31-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/postrm: prompt before deleting spool directory if it's not
+ empty (Closes: #101186)
+ * debian/config: remove RBL questions (as ORBS no longer exists, and
+ MAPS now charges); include a comment about RBL instead (Closes: #104524)
+ * debian/rules: no longer have separate diff for hurd, as hurd now
+ supports PAM and LDAP
+ * OS/os.h-GNU, OS/Makefile-GNU: various other hurd changes (Closes: #101409)
+ * debian/postinst: don't run eximconfig if doing a non-interactive
+ install (Closes: #98764)
+ * debian/postinst, debian/preinst: move config file to new location in
+ preinst, not postinst (Closes: #101796)
+ * debian/config: don't use group mail on procmail transport (Closes: #99075)
+ * debian/init.d: use --pidfile option of start-stop-daemon (Closes:
+ #97526, #74803, #62297)
+ * debian/postinst: only grep exim.conf if it exists (Closes: #95031)
+ * src/globals.c: upstream patch to header names
+ * debian/postinst: only grep /etc/aliases if it exists (Closes: #94085)
+ * debian/cron.daily: tidy wait-remote_smtp as well as retry database
+
+ -- Mark Baker <mark@mnb.org.uk> Thu, 19 Jul 2001 00:32:14 +0100
+
+exim (3.22-4) unstable; urgency=low
+
+ * debian/crontab: fix comment so it agrees (Closes: #92654)
+ * debian/rules: don't use {a,b} syntax, which isn't in posix sh (Closes:
+ #92456)
+ * debian/config: RBL is now at blackholes.mail-abuse.org
+
+ -- Mark Baker <mark@mnb.org.uk> Tue, 10 Apr 2001 00:16:30 +0100
+
+exim (3.22-3) unstable; urgency=low
+
+ * src/eximon.src: don't want & on end of exec command (Closes: #53784)
+ * debian/*.8: updated references to docs to /usr/share/doc, and updated
+ my email address.
+ * debian/exicyclog.8: exicyclog is in /usr/sbin, not /opt/exim/bin
+ (Closes: #86642)
+ * debian/control: build-dependencies updated for current X packages
+ (Closes: #88565)
+ * debian/config: generated config uses s (sender) flag on rewrite rules
+ (Closes: #90839)
+ * debian/config: generated config doesn't use b or c (bcc and cc) flags
+ on rewrite rules
+ * debian/crontab: run every 15 minutes
+ * debian/crontab: don't ignore error output (exim should only output
+ anything on errors, so we don't want to redirect anything to /dev/null
+ (Closes: #88334)
+ * debian/config: generated config refers to 127.0.0.1 and ::1, and not
+ to localhost; which caused problems for some people when it tried to
+ look up the ipv6 address for it (Closes: #88629, #76074)
+ * debian/control: priority important
+ * debian/postinst, debian/prerm: don't call suidregister or chmod
+ * debian/control: conflict with suidmanager <<0.50
+
+ -- Mark Baker <mark@mnb.org.uk> Fri, 30 Mar 2001 00:29:30 +0100
+
+exim (3.22-2) unstable; urgency=low
+
+ * debian/crontab: check existence of config file in /etc/exim/exim.conf
+ rather than /etc/exim.conf (Closes: #85745)
+ * debian/postinst, debian/postrm: more places I'd forgotten to fix after
+ moving exim.conf
+ * src/exim_tidydb.c: write "too old" message to stdout, not stderr
+ (Closes: #81727)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 12 Feb 2001 23:30:17 +0000
+
+exim (3.22-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/cron.daily: only run exim_tidydb if it exists and is
+ executable (Closes: #83017)
+ * debian/email-addresses: include comment indicating that it is part of
+ the exim package (Closes: #82462)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 24 Jan 2001 00:13:35 +0000
+
+exim (3.20-2) unstable; urgency=low
+
+ * debian/rules: allow for a locally modified makefile diff to be used
+ instead of the standard one (patch by Karl Hegbloom) (Closes: #79275)
+ * Put config file in an /etc/exim directory, as many people want to
+ create other files for configuring their exim setup (Closes: #76318)
+ . debian/rules: create /etc/exim directory
+ . debian/config: write config file in $exim/exim/exim.conf
+ . debian/editme-diff.linux: configure exim to read config from this
+ directory.
+ . debian/editme-diff.gnu: as editme-diff.linux
+ . debian/postinst: move config file from existing installations when
+ upgrading.
+ * debian/config: default config includes (commented out) how to do
+ client side SMTP AUTH (Closes: #79173)
+ * debian/cron.daily: only cycle non-empty log files (Closes: #74996)
+ * debian/control: build depends should be on libdb2-dev, not libdb2
+ (Closes: #79290)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 11 Dec 2000 22:16:43 +0000
+
+exim (3.20-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/config: swapped procmail and .forward directors in default
+ config (Closes: #63588)
+ * debian/config: include "end" after rewrite section (Closes: #77865)
+ * debian/config: document /etc/email-addresses in eximconfig output
+ * debian/README: document /etc/email-addresses (Closes: #77937)
+
+ -- Mark Baker <mark@mnb.org.uk> Sun, 3 Dec 2000 23:51:58 +0000
+
+exim (3.16-7) unstable; urgency=high
+
+ * debian/postinst: use -f option when deleting old hints databases
+ (Closes: #75451)
+ * src/exim.c: Change to real priveliges before expansion testing
+
+ -- Mark Baker <mark@mnb.org.uk> Thu, 26 Oct 2000 00:15:24 +0100
+
+exim (3.16-6) unstable; urgency=low
+
+ * debian/mails: added announcement of windows executable filter
+ * applied patch so -bP cannot be used to get information from a config
+ file that the user does not have read permission for. Thanks to
+ Wichert Akkerman and Harald Hoyer for the patch (Closes: #67585)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 22 Oct 2000 01:14:18 +0100
+
+exim (3.16-5) unstable; urgency=low
+
+ * debian/config: path option must go after driver (Closes: #72985, #74503)
+ * debian/cron.daily: redirect output of exim_tidydb to /dev/null
+ (Closes: #74474)
+ * src/exim_tidydb.c: actual errors go to stderr so they aren't affected
+ by redirect mentioned above
+ * src/readconf.c: allow config to be group writable (Closes: #74082)
+ * debian/config: depends on netbase (for update-inetd) (Closes: #73060)
+ * debian/postinst: delete hints databases; if the configuration appears
+ to refer to any other db files, warn them that they will have to
+ rebuild them. This is because we are now (since 3.16-3.1) using libdb2
+ (Closes: #75020, #73055, #73048)
+ * debian/config: default config file adds return path header to local
+ deliveries (Closes: #75046)
+ * debian/config: include (commented out) examples of how to set up
+ the server side of an authenticated link
+ * debian/config: default config file allow authenticated hosts to relay
+
+ -- Mark Baker <mbaker@iee.org> Thu, 19 Oct 2000 00:21:44 +0100
+
+exim (3.16-4) unstable; urgency=low
+
+ * Ben's NMU fixed bugs about new libc/libdb (Closes: #72588, #72587)
+ * debian/postinst: set /usr/sbin/exim to be suid root if suidmanager
+ isn't installed. (Closes: #72796, #72741, #72684, #72673, #72671,
+ #72871, #70597)
+ * debian/control: Added build-depends on xlib6-g (used for eximon)
+ (Closes: #72088, #70918)
+ * OS/Makefile-GNU: Use -lcrypt (partially fixes #71705)
+ * debian/eximstats.8: Synopsis includes log file names (Closes: #72644)
+ * debian/config: Include commented out how to restrict to local
+ interface only (Closes: #66510)
+ * debian/config: Set path on address_path transport to include /usr/bin
+ (Closes: #65521)
+ * debian/cron.daily: Run exim_tidydb to clean retry database (Closes:
+ #57543)
+ * debian/postinst: Install /var/log/exim directory as setgid adm
+ (Closes: #35719, #11918)
+ * debian/config: Use check_local_user in forwardfile director, so that
+ correct user and group are used when running pipe entries in forward
+ file (Closes: #72645)
+ * debian/config: Include empty authenticators section
+ * debian/editme-diff.gnu: New file for GNU hurd; old file renamed to
+ editme-diff.linux
+ * debian/rules: Use appropriate editme-diff for OS. This is necessary
+ because currently the hurd doesn't support ldap or pam (Closes: #71705)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 30 Sep 2000 18:43:41 +0100
+
+exim (3.16-3.1) unstable; urgency=low
+
+ * NMU for libdb2/glibc/ldap updates
+ * Build using new libldap2-dev
+ * Change Build-Depends accordingly
+
+ -- Ben Collins <bcollins@debian.org> Wed, 27 Sep 2000 13:11:51 -0400
+
+exim (3.16-3) unstable; urgency=low
+
+ * debian/config: need to escape another ' character (Closes: #70039,
+ #70760, #70722, #70575)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 2 Sep 2000 16:43:40 +0100
+
+exim (3.16-2) unstable; urgency=low
+
+ * debian/config: need to escape ' character (Closes: #70039)
+ * debian/control: added libident-dev and libwrap0-dev to build
+ dependencies (Closes: #70405)
+ * debian/rules: use -p option when creating Local directory, so it
+ doesn't fail if called repeatedly (Closes: #70519)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Aug 2000 21:14:31 +0100
+
+exim (3.16-1) unstable; urgency=low
+
+ * New upstream version (Closes: #66053)
+ * Applied interface discovery patch by Jason Gunthorpe (Closes: #68748)
+ * Applied IPv6 interface discovery patch also by Jason (Closes: #64531)
+ * debian/exim.8: Removed superfluous hyphen (Closes: #69384)
+ * debian/config: Changed /usr/doc/exim to /usr/share/doc/exim in a
+ couple of places (Closes: #69013)
+ * debian/init.d: Don't disable inetd.conf entry when starting MTA - if
+ it wasn't disabled already we wouldn't have got that far, so it's
+ unnecessary and confusing for anyone reading the script (Closes: #69048)
+ * debian/config: add accept_8bitmime, commented out, with a comment
+ explaining why it is probably a bad idea for it to be set
+ * debian/control: add Build-depends: line
+ * linked with libpcre3
+ * debian/editme-diff: include PAM support (Closes: #66398)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 25 Aug 2000 00:14:35 +0100
+
+exim (3.12-10) frozen unstable; urgency=low
+
+ * debian/config: include headers_check_syntax in generated configuration
+ file, commented out (Closes: #63238)
+ * debian/config: don't include system hostname in list of local domains
+ for satellite system (Closes: #61048)
+ * src/host.c: look up an A record if attempt to look up AAAA record
+ returns TRY_AGAIN, so it works with bind 4 nameservers. This was fixed
+ upstream in 3.13, I have taken a patch from there (Closes: #62755)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 30 Apr 2000 01:05:09 +0100
+
+exim (3.12-9) unstable; urgency=low
+
+ * debian/config: test whether /etc/exim.conf can be written replaced by
+ test for $etc/exim.conf, allowing me to test this in another directory
+ while not root
+ * debian/config: don't include "root:root" in generated alias file
+ (Closes: #61498)
+ * debian/postinst: remove "root:root" from aliases file that older exim
+ versions generated (Thanks Kim Oldfield for patch)
+ * debian/mails: added mail from Thomas Schoepf about how he solved a
+ problem he had on a dialup system (Closes: #61331)
+ * debian/README.debian: Update: the instructions on how to run as a
+ daemon needed changing and exim is now built with include LDAP and
+ IPv6 (Closes: #62220)
+ * debian/rules: renamed readme file to debian/README.Debian with upper
+ case D.
+
+ -- Mark Baker <mbaker@iee.org> Thu, 13 Apr 2000 00:11:09 +0100
+
+exim (3.12-8) unstable; urgency=low
+
+ * debian/postinst: fixed typo in warning message: script is called
+ /etc/init.d/exim, not /etc/init.d/conf (Closes: #61118)
+ * debian/postinst: wrap warning mesage at 80 columns (also #61118)
+ * debian/postinst: version of exim in test should be 3.03-2, not 3.99-2
+ which was used for testing purposes (Closes: #61068)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 26 Mar 2000 23:23:48 +0100
+
+exim (3.12-7) frozen unstable; urgency=low
+
+ * debian/config: fixed typo in relay_domains question text (Closes: #60392)
+ * debian/config: indicate default with capital in final question
+ (Closes: #59722)
+ * debian/config: don't check relay_domains, as the check excluded
+ wildcards. (Closes: #59720)
+ * debian/config: add alias entry for nobody (Closes: #59712)
+ * debian/config: don't create aliases.new.O (Closes: #60572)
+ * debian/postinst: warn when upgrading from old versions that don't ever
+ run daemon from default startup script, if exim is not run from
+ inetd.conf (Closes: #60567)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 21 Mar 2000 23:57:00 +0000
+
+exim (3.12-6) frozen unstable; urgency=low
+
+ * debian/postinst: don't run /etc/init.d/exim if exim.conf doesn't exist.
+ It didn't matter, it just gave an error message that it shouldn't have.
+ * Remember to upload to frozen this time :)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Feb 2000 23:46:30 +0000
+
+exim (3.12-5) unstable; urgency=low
+
+ * src/transport.c: upstream patch so transport filters work with
+ outgoing SMTP (Closes: #57835)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 13 Feb 2000 17:12:28 +0000
+
+exim (3.12-4) frozen unstable; urgency=low
+
+ * debian/config: procmail_pipe transport has right options so from hack
+ works on current version of exim (previously mail delivered by
+ procmail was being horriblyl mangled) (Closes: #56865,#56208)
+ * debian/cron.daily: include hostname in subject line of eximstats reports.
+ * debian/copyright: new upstream ftp location
+
+ -- Mark Baker <mbaker@iee.org> Sat, 5 Feb 2000 22:00:49 +0000
+
+exim (3.12-3) unstable; urgency=low
+
+ * debian/rules: create Local directory in build target (and delete it
+ in clean target (Closes: #56788)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 1 Feb 2000 20:45:03 +0000
+
+exim (3.12-2) unstable; urgency=low
+
+ * src/smtp_out.c: failure to create a socket should not be a fatal
+ error; this was causing problems for people without IPv6 in their
+ kernel trying to send mail to sites with IPv6 addresses in the
+ DNS. (Closes: #50628)
+ * debian/rules,debian/editme-diffs(new file): create Local/Makefile at
+ build time by applying a diff to EDITME, rather than having a
+ pre-edited copy included in the debian source. As well as making the
+ debian diff rather smaller this means that upstream changes to the
+ EDITME file won't be ignored (Closes: #55112)
+ * As a result of the above, exigrep of compressed files should work
+ properly (Closes: #54776)
+ * debian/rules: delete most of util/* in clean target
+
+ -- Mark Baker <mbaker@iee.org> Wed, 26 Jan 2000 23:28:56 +0000
+
+exim (3.12-1) unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * debian/config: procmail director does file existence check as relevant
+ user rather than as exim
+ * debian/config: procmail director fails, rather than freezing message, if
+ home directory can't be read (Closes: #54351,#53326,#53325,#53229)
+ * debian/rules, debian/conffiles, debian/email-addresses (new file): add
+ /etc/email-addresses as a conf-file (Closes: #54124)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 9 Jan 2000 17:45:31 +0000
+
+exim (3.11-2) unstable; urgency=low
+
+ * OS/Makefile-Base: comment out code to check whether makefile needs
+ updating; it didn't seem to work properly on some systems. I don't
+ know why. This is a nasty hack but it works (Closes: #50435)
+ * debian/control: description doesn't start with package name
+ * debian/control: "X" rather than "X-windows"
+
+ -- Mark Baker <mbaker@iee.org> Sun, 19 Dec 1999 11:01:00 +0000
+
+exim (3.11-1) unstable; urgency=low
+
+ * New upstream version (Closes: #51744)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 8 Dec 1999 00:02:59 +0000
+
+exim (3.03-6) unstable; urgency=low
+
+ * debian/config: check that /etc/exim.conf was writable didn't do the
+ right thing when file didn't exist (Closes: #51498,#51789)
+ * debian/config: uncomment second line of rewrite configuration (Closes:
+ #51496,#52111,#52148,)
+ * debian/rules: clean target deletes Local/Makefile-Linux (Closes: #50435)
+ * doc/spec.txt: example cyrus configuration refers to debian location of
+ binary
+
+ -- Mark Baker <mbaker@iee.org> Tue, 7 Dec 1999 22:24:04 +0000
+
+exim (3.03-5) unstable; urgency=low
+
+ * Local/Makefile: don't link with libwrap any more; it causes too many
+ problems for people upgrading (#50250)
+ * debian/config: don't include userforward or procmail directors in
+ satellite configuration (#40570)
+ * debian/crontab: only run queue if /etc/exim.conf exists (#43419)
+ * debian/rules, debian/ipv6.sh, OS/Makefile-Default: Fix so IPv6 support
+ is only included if available, so exim will build on m68k (#50435)
+ * debian/config: exit if not run as root (#50543)
+ * debian/config: don't comment out the example rewrite rule: it is
+ sufficiently widely used, at least for dialups, that it should be in
+ by default (#49202)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 27 Nov 1999 19:11:33 +0000
+
+exim (3.03-4) unstable; urgency=low
+
+ * debian/control: put quotes around $etc/exim.conf (#50071)
+ * Create symlinks in /usr/doc from postinst, not rules (#50072)
+ . debian/postinst: create symlink in /usr/doc if required
+ . debian/postinst-eximon (new file): create symlink in /usr/doc if required
+ . debian/prerm: delete symlink in /usr/doc
+ . debian/prerm-eximon (new file): delete symlink in /usr/doc
+ . debian/rules: don't create symlinks in /usr/doc
+ . debian/rules: install {postinst,prerm}-eximon
+ * debian/rules: install man pages in /usr/share/man as required by
+ policy 3.1.0
+ * debian/copyright: refer to GPL in new location
+ /usr/share/common-licences/GPL instead of /usr/doc/copyright/GPL
+
+ -- Mark Baker <mbaker@iee.org> Sat, 13 Nov 1999 16:52:59 +0000
+
+exim (3.03-3) unstable; urgency=low
+
+ * debian/rules: install docs in /usr/share/doc/exim with symlink from
+ /usr/doc/exim, as required by policy 3.1.0
+ * debian/control: policy version upgraded to 3.1.0
+ * debian/config: if exim.conf already exists, warn that continuing with
+ eximconfig will trash it (#49201)
+ * debian/*: updated Tim Cutts' email address
+
+ -- Mark Baker <mbaker@iee.org> Thu, 11 Nov 1999 21:07:56 +0000
+
+exim (3.03-2) unstable; urgency=low
+
+ * debian/config: don't shift things off @names, as that was removing
+ localhost (#48102)
+ * exim_monitor/em_main.c: fix bindings for popup menu so they work with
+ all combinations of modifiers, working round Xt misfeature. Thanks
+ Kevin Ryde for patch (#20485)
+ * debian/config: fixed typo (FRC instead of RFC)
+ * debian/README.debian: extra backslashes in sample filter (#46462)
+ * debian/crontab: only run every 30 mins instead of every 15; this is
+ the same frequency as we ask a daemon to do a queue run and it makes
+ sense for them to be the same
+ * debian/config: generated configuration will call procmail if it is
+ installed and if users have .procmailrc files
+ * debian/init.d: start exim daemon if no smtp entry in inetd.conf
+ * OS/Makefile-Default: define HAVE_IPV6. The attempt to auto-detect it
+ was a failure (it detected it correctly, but the config.h builder
+ doesn't understand anything so fancy in the makefile)
+ * Local/Makefile: include LDAP support
+ * Local/Makefile: link with libwrap
+
+ -- Mark Baker <mbaker@iee.org> Thu, 4 Nov 1999 21:22:20 +0000
+
+exim (3.03-1) unstable; urgency=low
+
+ * new upstream version
+ * src/exim.h: include <pcre.h> rather than "pcre/pcre.h"
+ * OS/Makefile.Base: don't build pcre (it's not used anyway)
+ * debian/postinst: don't do upgrade from pre-3.0 stuff if /etc/exim.conf
+ doesn't exist (#42305)
+ * debian/eximconfig.8: mention -i option (#41786)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 4 Aug 1999 22:24:57 +0100
+
+exim (3.02-5) unstable; urgency=low
+
+ * OS/Makefile-Linux, OS/Makefile-Default: applied patch from Roman Hodek
+ so it will compile on m68k which doesn't yet have glibc2.1 (#41365)
+ * debian/config: applied patch from Andrew Pimlott so system users with
+ a hyphen in the login name (only www-data normally) get added to
+ aliases file (#41235)
+ * debian/config: typo (exim-doc package name without hyphen) (#41071)
+ * debian/exim.8: updated command line options in manpage (#41082)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 19 Jul 1999 23:26:34 +0100
+
+exim (3.02-4) unstable; urgency=low
+
+ * src/daemon.c: patch in previous release only did half the job; I now
+ have a patch from the upstream author instead.
+
+ -- Mark Baker <mbaker@iee.org> Wed, 7 Jul 1999 22:35:44 +0100
+
+exim (3.02-3) unstable; urgency=low
+
+ * src/daemon.c: if attempt to open AF_INET6 fails, try again as AF_INET; this
+ will hopefully make it work for people without IPv6 in their kernels
+ (#40248)
+ * src/host.c: apply upstream patch so ::ffff:w.x.y.z style IPv4 compatibility
+ addresses will reverse lookup correctly
+
+ -- Mark Baker <mbaker@iee.org> Wed, 30 Jun 1999 23:28:35 +0100
+
+exim (3.02-2) unstable; urgency=low
+
+ * debian/config: fix received headers (#40185,#40210,#40216)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Jun 1999 00:58:15 +0100
+
+exim (3.02-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * Applied patch for GNU/Hurd support (#39262)
+ * debian/config: include "localhost" as a local domain by default. I do
+ this reluctantly, so fetchmail will work out the box.
+ * debian/config: include "for <x@y>" in received headers (#39344)
+ * debian/config: add Envelope-to: header in local delivery transport
+ * debian/copyright: update copyright date to 1999
+ * src/host.c: Fixed bug with IPv6 address handling properly
+ * src/verify.c: Removed work-around introduced in last release
+
+ -- Mark Baker <mbaker@iee.org> Mon, 21 Jun 1999 22:37:56 +0100
+
+exim (3.01-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * src/verify.c: Fixed bug with IPv6 address handling
+ * debian/config: eximconfig -i should restart daemon
+
+ -- Mark Baker <mbaker@iee.org> Tue, 25 May 1999 23:33:00 +0100
+
+exim (3.00-1) unstable; urgency=low
+
+ * New upstream release
+ * OS/Makefile-Default: Enabled IPv6 support (this therefore requires
+ glibc 2.1)
+ * debian/config: Outputs new configuration file format
+ * debian/config: If called with -i option, installs exim in inetd.conf etc
+ * debian/postinst: When upgrading from pre-3.00 versions, convert
+ configuration file to new format. Leave exim not running, as the
+ configuration file will need to be manually checked.
+ * debian/postinst: registration of init.d script only done if exim configured
+
+ -- Mark Baker <mbaker@iee.org> Sat, 15 May 1999 01:22:33 +0100
+
+exim (2.11-4) unstable; urgency=low
+
+ * debian/cron.daily: only cycle logs if files exist (#35544, #35585,
+ #34645, #36271)
+ * debian/control: suggests exim-doc (#34086)
+ * debian/README.debian: include sample .forward file to handle mail on
+ debian mailing lists (thanks Giuliano)
+ * debian/config: allow domain name components that start with a
+ number. While these are strictly speaking not allowed, there are
+ plenty out there, and not allowing them was causing problems (#36320)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 22 Apr 1999 23:08:16 +0100
+
+exim (2.11-3) unstable; urgency=low
+
+ * debian/config: recommend adding localhost to local domains if
+ fetchmail is to be used (#34088)
+ * debian/config: was generating invalid rewrite rules for a satellite
+ system with no root alias specified (#34060)
+ * debian/config: generated config includes "for" information in received
+ headers
+ * debian/config: set smtp_accept_queue_per_connection to 100 in
+ generated config, as the default of 10 is much too low for dialup
+ users
+ * debian/config: set freeze_tell_mailmaster to true in generated config
+ * debian/config: always allow relaying from localhost (#31844)
+ * debian/cron.daily: use savelog instead of exicyclog (#33467)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 4 Mar 1999 23:50:16 +0000
+
+exim (2.11-2) unstable; urgency=low
+
+ * debian/config: write config files to /etc instead of /tmp (oops!)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 1 Feb 1999 23:27:05 +0000
+
+exim (2.11-1) unstable; urgency=low
+
+ * New upstream version
+ * (Uses libpcre2 instead of libpcre1)
+ * debian/config: don't set never_users if user doesn't set up a root alias
+
+ -- Mark Baker <mbaker@iee.org> Fri, 28 Jan 1999 00:21:00 +0000
+
+exim (2.05-1) frozen unstable; urgency=low
+
+ * New upstream version (mostly bugfixes)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 7 Nov 1998 00:24:44 +0000
+
+exim (2.04-3) unstable; urgency=low
+
+ * debian/init.d: don't enable inetd service when stopping daemon (#27265)
+ * delete lots of .orig files that didn't need to be in source diff (#27267)
+ * recompile against libident with correct shlibs (#27265)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 1 Oct 1998 21:23:30 +0100
+
+exim (2.04-2) unstable; urgency=low
+
+ * debian/postinst: use -e so it dies on errors
+ * debian/preinst: don't use crontab if it isn't installed
+
+ -- Mark Baker <mbaker@iee.org> Sun, 27 Sep 1998 22:07:51 +0100
+
+exim (2.04-1) unstable; urgency=low
+
+ * New upstream version (mostly bug fixes)
+ * debian/crontab: check exim exists and is executable (#26953)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 26 Sep 1998 21:26:19 +0100
+
+exim (2.02-4) unstable; urgency=low
+
+ * debian/crontab: 2>&1 should be after >/dev/null
+
+ -- Mark Baker <mbaker@iee.org> Tue, 01 Sep 1998 22:49:00 +0100
+
+exim (2.02-3) unstable; urgency=low
+
+ * Local/Makefile: include maildir support (#25575)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 10 Aug 1998 21:46:08 +0100
+
+exim (2.02-2) unstable; urgency=medium
+
+ * debian/crontab: should be 2>&1 instead of 2&>1 (#25539,#25552,#25558)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 09 Aug 1998 22:23:00 +0100
+
+exim (2.02-1) unstable; urgency=low
+
+ * New upstream version (#24692)
+ * debian/crontab: send output to /dev/null (#24384)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 06 Aug 1998 21:46:27 +0100
+
+exim (1.92-4) unstable; urgency=low
+
+ * debian/preinst: redirect stderr of some commands to /dev/null (#22867)
+ * src/macros.h: define iscntrl() so 8-bit strings work in headers
+ (#22932 and hopefully #20958)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 30 May 1998 13:11:27 +0100
+
+exim (1.92-3) frozen unstable; urgency=low
+
+ * debian/config: write config files in /etc, not . (#22387)
+ * debian/config: properly comment out example rewriter (#22388)
+ * debian/postrm: remove rc.d links only on purge, not remove
+
+ -- Mark Baker <mbaker@iee.org> Wed, 13 May 1998 09:55:00 +0100
+
+exim (1.92-2) frozen unstable; urgency=low
+
+ * These together answer all but one of the issues raised in #22067
+ * debian/config: fix typo in "TRANPORTS"
+ * debian/config: put separator between each question
+ * debian/config: clarify question about qualifying domain for satellite
+ system
+ * debian/config: rewrite rule for satellite systems now matches root etc
+ case insensitively
+ * debian/config: include in output (commented out) example of how to
+ rewrite all outgoing addresses according to lookup table
+
+ -- Mark Baker <mbaker@iee.org> Mon, 04 May 1998 22:08:00 +0100
+
+exim (1.92-1) frozen unstable; urgency=low
+
+ * New upstream version (minor bug fixes)
+ * OS/Makefile-Linux: compile with -O2
+ * OS/Makefile-Base: link with existing libident.a
+ * src/eximon.src: don't set LD_LIBRARY_PATH in eximon wrapper script
+ * exim_monitor/em_main.c: show last 8k of log when you start (#21956)
+ * debian/postinst: don't install in inetd.conf unless /etc/exim.conf
+ exists (#19548)
+ * debian/rules: minor changes
+
+ -- Mark Baker <mbaker@iee.org> Fri, 01 May 1998 22:55:25 +0100
+
+exim (1.91-1) frozen unstable; urgency=low
+
+ * New upstream version (bug fixes)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 28 Apr 1998 10:12:38 +0100
+
+exim (1.90-5) frozen unstable; urgency=low
+
+ * debian/postinst: don't die if exim already running (#21181)
+ * debian/config: set umask to 022, so aliases file created has mode that
+ exim won't complain about (#21410)
+ * debian/control: suggest mail-reader, not mail-user-agent (which doesn't
+ exist)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Apr 1998 19:45:55 +0100
+
+exim (1.90-4) frozen unstable; urgency=low
+
+ * Delete debian/files before packaging source (#21217)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Apr 1998 19:45:55 +0100
+
+exim (1.90-3) frozen unstable; urgency=low
+
+ * Fixed silly bug that stopped eximconfig from running (I hadn't tested
+ it, as it was just one minor change to a comment. However, the comment
+ was in the generated exim.conf file, so was embedded in a perl
+ string---using an unescaped apostrophe broke things)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 08 Apr 1998 19:42:51 +0100
+
+exim (1.90-2) frozen unstable; urgency=low
+
+ * Configuration written by eximconfig will not fail if mailbox has a
+ stricter mode than the default 0660
+
+ -- Mark Baker <mbaker@iee.org> Fri, 03 Apr 1998 11:06:20 +0100
+
+exim (1.90-1) frozen unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * Split out documentation, allowing pristine source to be used
+
+ -- Mark Baker <mbaker@iee.org> Wed, 01 Apr 1998 11:06:20 +0100
+
+exim (1.89.1-1) frozen unstable; urgency=low
+
+ * New upstream version 1.891 (bug fixes)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 18 Mar 1998 20:11:30 +0000
+
+exim (1.89.0-2) frozen unstable; urgency=low
+
+ * Improved inetd.conf handling, hopefully won't lose any changes you make
+ over upgrades
+
+ -- Mark Baker <mbaker@iee.org> Sat, 14 Mar 1998 14:32:00 +0000
+
+exim (1.89.0-1) unstable; urgency=low
+
+ * New upstream version (1.890, a beta test of 1.90)
+ * Fixed cron scripts so they don't fail if exim not installed (eg when
+ upgrading)
+ * Added newline to end of generated /etc/aliases
+ * Pause after first paragraph of eximconfig (#19547)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 14 Mar 1998 14:32:00 +0000
+
+exim (1.82-11) unstable; urgency=low
+
+ * Make ip-up.d script a config file
+ * Check for existence of exim before running it from ip-up.d (#19119)
+ * Only run eximconfig if there is no exim.conf file
+ * This means eximconfig doesn't need to check for exim.conf itself, and
+ so doesn't need a --force option
+
+ -- Mark Baker <mbaker@iee.org> Sat, 07 Mar 1998 21:02:30 +0000
+
+exim (1.82-10) unstable; urgency=low
+
+ * Fixed update-rc.d calls in postrm (#16355)
+ * Replaces: mail-transport-agent (#9305)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 07 Mar 1998 17:54:30 +0000
+
+exim (1.82-9) unstable; urgency=low
+
+ * Added mailq manpage link
+ * Install docs copyright before calculating md5sums
+
+ -- Mark Baker <mbaker@iee.org> Fri, 27 Feb 1998 21:36:38 +0000
+
+exim (1.82-8) unstable; urgency=low
+
+ * Fixed manpages so whatis information can be extracted (#18667)
+ * Added a script for ip-up.d (#18675)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 27 Feb 1998 21:36:38 +0000
+
+exim (1.82-7) unstable; urgency=low
+
+ * Corrected URL in eximconfig script (#18422)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 20 Feb 1998 18:32:27 +0000
+
+exim (1.82-6) unstable; urgency=low
+
+ * exim-doc package doesn't depend on exim (#18285)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 18 Feb 1998 12:03:10 +0000
+
+exim (1.82-5) unstable; urgency=low
+
+ * exim-doc package depends on exim
+ * Inserted space that was missing from depends line for eximon
+ * Added force-reload and restart options to init.d script
+
+ -- Mark Baker <mbaker@iee.org> Sun, 15 Feb 1998 22:29:00 +0000
+
+exim (1.82-4) unstable; urgency=low
+
+ * Written manpages for exiqsumm and eximconfig
+ * Updated FSF snail-mail address in copyright file
+ * Moved eximon.bin into /usr/lib/exim
+ * Updated standards-version to 2.4.0.0
+ * Fixed md5sum generation
+ * Symlinks from /usr/doc/{eximon,exim-doc} to exim
+ * Fixed typo in exim.conf generated by eximconfig (#18054)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 10 Feb 1998 00:45:00 +0000
+
+exim (1.82-3) unstable; urgency=low
+
+ * Rewritten eximconfig
+ + Relaying configuration
+ + RBL spam-blocking (#17805)
+ + Ask before overwriting /etc/aliases (#16056)
+ + New configuration for system with local deliveries but smarthost
+ for remote mail---useful for dialup users
+ + Generally tidied up
+ * use /etc/cron.d instead of mail's crontab
+
+ -- Mark Baker <mbaker@iee.org> Sat, 7 Feb 1998 21:56:25 +0000
+
+exim (1.82-2) unstable; urgency=low
+
+ * Write startup messages in standard format
+
+ -- Mark Baker <mbaker@iee.org> Wed, 7 Jan 1998 21:21:35 +0000
+
+exim (1.82-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Mark Baker <mbaker@iee.org> Sat, 27 Dec 1997 12:17:23 +0000
+
+exim (1.81-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * Removed bogus Replaces: line (#16054)
+ * Mark /etc/init.d/exim as a conffile
+
+ -- Mark Baker <mbaker@iee.org> Thu, 18 Dec 1997 11:28:11 +0000
+
+exim (1.80-2) unstable; urgency=low
+
+ * Fixed typo in control (#15927)
+ * Removed suggestion of metamail
+ * Don't include docs in exim package
+
+ -- Mark Baker <mbaker@iee.org> Sun, 14 Dec 1997 20:12:14 +0000
+
+exim (1.80-1) unstable; urgency=low
+
+ * New upstream release
+ * Strip binaries (#15720)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 13 Dec 1997 20:46:18 +0000
+
+exim (1.73-11) unstable; urgency=low
+
+ * Really depend on cron. I put it in the changelog but forgot to
+ do it last time!
+
+ -- Mark Baker <mbaker@iee.org> Mon, 24 Nov 1997 23:24:09 +0000
+
+exim (1.73-10) unstable; urgency=low
+
+ * Rewritten copyright file
+ * Put note in prerm about deleting multiple inetd lines (#14554)
+ * Depend on cron (#15229)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 24 Nov 1997 21:29:51 +0000
+
+exim (1.73-9) unstable; urgency=low
+
+ * The | I removed in 1.73-7 should have been changed to a \, not
+ removed altogether. I hope I haven't screwed up too many people's
+ /etc/crontab with this bug :(
+
+ -- Mark Baker <mbaker@iee.org> Tue, 11 Nov 1997 23:04:19 +0000
+
+exim (1.73-8) unstable; urgency=low
+
+ * Patch from upstream to fix bug with DB lookups
+
+ -- Mark Baker <mbaker@iee.org> Mon, 3 Nov 1997 11:25:37 +0000
+
+exim (1.73-7) unstable; urgency=low
+
+ * Remove spurious | from preinst that trashed /etc/crontab
+ * Remove from inetd etc in prerm rather than postrm
+
+ -- Mark Baker <mbaker@iee.org> Wed, 22 Oct 1997 14:36:21 +0100
+
+exim (1.73-6) unstable; urgency=low
+
+ * Now really clear up crontab from old versions
+ * Fix sed expressions (#14044)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 22 Oct 1997 14:34:52 +0100
+
+exim (1.73-5) unstable; urgency=low
+
+ * Comment out crontab entry when removed (#14016)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 20 Oct 1997 21:01:44 +0100
+
+exim (1.73-4) unstable; urgency=low
+
+ * Use mail user's crontab instead of system one
+ * Clear up crontab installed by old versions (#13998)
+ * Add md5sums
+
+ -- Mark Baker <mbaker@iee.org> Sun, 19 Oct 1997 23:21:35 +0100
+
+exim (1.73-3) unstable; urgency=low
+
+ * Rewrite postinst etc (I hadn't realised that they weren't complete) (#13940)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Oct 1997 23:58:46 +0100
+
+exim (1.73-2) unstable; urgency=low
+
+ * Install README.debian file
+ * Install {pre,post}{inst,rm} (#13919)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Oct 1997 14:45:42 +0100
+
+exim (1.73-1) unstable; urgency=low
+
+ * New upstream version
+ * New maintainer
+ * Rewritten most of debian/rules
+ * (and as a result, no longer use debmake)
+ * Documented what EXIM_GID is compiled in (#11907)
+ * Made eximconfig less confusing (#12664)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 15 Oct 1997 17:13:27 +0100
+
+exim (1.71-1) unstable; urgency=low
+
+ * Upstream update and libc6 build. Minimize the diffs to upstream sources.
+
+ -- Christoph Lameter <clameter@debian.org> Thu, 25 Sep 1997 20:07:21 -0700
+
+exim (1.62-3) unstable; urgency=high
+
+ * Fixed buffer overrun security hole in .forward processing
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 22 Jul 1997 10:00:00 +0100
+
+exim (1.62-2) unstable; urgency=low
+
+ * Fixed paths in exicyclog (bugs #9444, #9759 and #9996)
+ * Transferred eximon man page from exim to eximon (bug #9425)
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 16 Jun 1997 11:37:56 +0100
+
+exim (1.62-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 28 Apr 1997 14:36:37 +0000
+
+exim (1.61-1) unstable; urgency=low
+
+ * New upstream release, fixes debian bug #7671
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 4 Mar 1997 15:24:21 +0000
+
+exim (1.60-3) unstable; urgency=low
+
+ * Added a 'sendmail' alias to the exim manpage
+ * Incorporated Christoph's -1 and -2 changes into my own 1.60 package.
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Thu, 27 Feb 1997 17:57:30 +0000
+
+exim (1.60-2) unstable; urgency=low
+
+ * Add some more manpages
+ * /usr/sbin/sendmail and /usr/sbin/runq symlink was missing.
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 26 Feb 1997 12:34:08 -0800
+
+exim (1.60-1) unstable; urgency=low
+
+ * New upstream version
+ * Manpages written
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 26 Feb 1997 10:18:06 -0800
+
+exim (1.59.8-2) unstable; urgency=low
+
+ * Reversed some of Christoph's changes; put textual documentation
+ back into exim package, and info files into exim-doc package.
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Thu, 27 Feb 1997 12:37:15 +0000
+
+exim (1.59.8-1) unstable; urgency=low
+
+ * Supplies some more information regaring uucp and kernel related NFS
+ problems
+ * New upstream release
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 24 Feb 1997 11:57:10 -0800
+
+exim (1.59.6-1) unstable; urgency=low
+
+ * Put into unstable
+ * Some fixes to the debian setup and the eximconfig script
+ * New upstream release
+
+ -- Christoph Lameter <clameter@debian.org> Thu, 6 Feb 1997 10:26:23 -0800
+
+exim (1.59.5-3) experimental; urgency=low
+
+ * Rebuild with debmake 3.0.6
+ * eximstats: Small bug fixed
+
+ -- Christoph Lameter <clameter@debian.org> Fri, 31 Jan 1997 08:37:35 -0800
+
+exim (1.59.5-2) experimental; urgency=low
+
+ * Rebuild with debmake 3.0.1
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 29 Jan 1997 12:57:12 -0800
+
+exim (1.59.5-1) experimental; urgency=low
+
+ * Experimental package for debstdn (debmake 2.80)
+ * New upstream release. NFS Hacks removed.
+
+ -- Christoph Lameter <clameter@debian.org> Sat, 25 Jan 1997 17:21:41 -0800
+
+exim (1.59-1.2) experimental; urgency=low
+
+ * NFS Problem hacked around (just skipped offending section ....)
+ Locking via NFS is probably broken now.
+
+ -- Christoph Lameter <clameter@debian.org> Fri, 27 Dec 1996 19:39:16 -0800
+
+exim (1.59-1.1) experimental; urgency=low
+
+ * Full Replacement for smail (and better, easier than smail)
+ * Compiled with db libraries instead of dbm.
+ * Send Daily Statistics to Postmaster
+ * Run eximcyclog from /etc/cron.daily
+ * Run exim from inetd.conf. Run queue hourly via crontab.
+ * newaliases command provided for sendmail compatibility.
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 23 Dec 1996 20:45:44 -0800
+
+exim (1.59-1) experimental; urgency=low
+
+ * Upgraded to exim 1.59
+ * Putting PID files in /var/run/exim/
+ * Changes to exim-doc package by Christoph
+ * Included a postrm script (to remove /var/run/exim, /etc/exim.conf and
+ /var/log/exim if purging)
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Wed, 18 Dec 1996 09:00:00 +0000
+
+exim (1.58-7) experimental; urgency=low
+
+ * Local/Makefile updated to be more FSSTND compliant
+ * Minor changes to debian/* files supporting this
+ * Default mail spool changed from /usr/spool/... to /var/spool/...
+ * Added a commented-out user = list line to the system_aliases director
+ for smartlist users to uncomment
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 17 Dec 1996 17:00:00 +0000
+
+exim (1.58-6) experimental; urgency=low
+
+ * eximinstall script was not installed
+ * problems with the init scripts failing
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 20:45:44 -0800
+
+exim (1.58-5) experimental; urgency=low
+
+ * Revised
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 07:11:31 -0800
+
+exim (1.58-4) unstable; urgency=low
+
+ * Initial efforts
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 25 Nov 1996 22:33:17 +0000
+
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/config-custom/create-custom-package b/debian/config-custom/create-custom-package
new file mode 100755
index 0000000..df53609
--- /dev/null
+++ b/debian/config-custom/create-custom-package
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+if [ -n "$1" ]; then
+ PACKAGESUFFIX="$1"
+else
+ PACKAGESUFFIX="custom"
+fi
+
+TARGETDIR="../exim4-config-$PACKAGESUFFIX"
+#DEBUG=1
+
+# copy over -changelog, generating a proper changelog entry
+# copy over update-exim4defaults, ip-up.d, email-addresses
+
+dh_testdir
+
+copytextreplace() {
+ FILE="$1"
+ DSTFILE="$2"
+ DIR="${FILE%/*}"
+ FILE="${FILE##*/}"
+ if [ -z "$DSTFILE" ]; then
+ DSTFILE="$FILE"
+ fi
+ [ $DEBUG ] && echo >&2 "DBG: source $DIR/$FILE"
+ [ $DEBUG ] && echo >&2 "DBG: dst $TARGETDIR/$DIR/$DSTFILE"
+ mkdir -p $TARGETDIR/$DIR
+ if ! [ -e "$TARGETDIR/$DIR/$FILE" ]; then
+ < $DIR/$FILE \
+ sed "s/exim4-config/exim4-config-$PACKAGESUFFIX/g" \
+ > $TARGETDIR/$DIR/$DSTFILE
+ chmod `stat --format="%a" $DIR/$FILE` $TARGETDIR/$DIR/$DSTFILE
+ else
+ echo >&2 "ERR: can't write to $TARGETDIR/$DIR/$DSTFILE, file exists"
+ exit 1
+ fi
+}
+
+for file in manpages config templates postinst postrm dirs; do
+ copytextreplace debian/exim4-config.$file exim4-config-$PACKAGESUFFIX.$file
+done
+
+for file in `cat debian/exim4-config.manpages`; do
+ copytextreplace $file
+done
+
+for file in compat control copyright files rules; do
+ copytextreplace debian/config-custom/debian/$file
+done
+mv $TARGETDIR/debian/config-custom/debian/* $TARGETDIR/debian
+rm -rf $TARGETDIR/debian/config-custom
+
+# TODO: generate new changelog entry
+
+for file in `find debian/debconf \( -path '*/CVS/*' -prune \) -or \( -type f -print \)`; do
+ copytextreplace $file
+done
+
+for file in ip-up.d update-exim4defaults email-addresses; do
+ copytextreplace debian/$file
+done
+
+< debian/changelog sed -n "/^exim4/{s/exim4/exim4-config-$PACKAGESUFFIX/p;q}" > $TARGETDIR/debian/changelog
+echo -e "\n * automatically generated changelog" >> $TARGETDIR/debian/changelog
+< debian/changelog sed -n '/^ --/{p;q}' >> $TARGETDIR/debian/changelog
+cd $TARGETDIR
+dch --append "generated source package by create-custom-package"
diff --git a/debian/config-custom/debian/compat b/debian/config-custom/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/config-custom/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/config-custom/debian/control b/debian/config-custom/debian/control
new file mode 100644
index 0000000..3a8af63
--- /dev/null
+++ b/debian/config-custom/debian/control
@@ -0,0 +1,15 @@
+Source: exim4-config
+Section: mail
+Priority: important
+Maintainer: locally built <root@localhost>
+Standards-Version: 3.5.6
+Build-Depends-Indep: debhelper (>= 4.0.1)
+
+Package: exim4-config
+Architecture: all
+Priority: important
+Conflicts: exim4-config
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base
+Description: custom Debian configuration for exim4
+ This package provides the configuration for the exim4 daemon
+ packages.
diff --git a/debian/config-custom/debian/copyright b/debian/config-custom/debian/copyright
new file mode 100644
index 0000000..1910196
--- /dev/null
+++ b/debian/config-custom/debian/copyright
@@ -0,0 +1,15 @@
+This is a custom made configuration package for Debian GNU/Linux's
+prepackaged version of exim4, a powerful yet easy to configure mail
+transport agent.
+
+This package was originally made by create-custom-package, a script
+written by Marc Haber <mh+debian-packages@zugschlus.de> using work
+provided by Andreas Metzler <ametzler@downhill.at.eu.org>.
+create-custom-package uses the exim4 source package to build this
+source package.
+
+The files in this package are free software; you can redistribute them
+and/or modify them under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2, or (at
+your option) any later version. Full text of the license can be found
+at /usr/share/common-licenses/GPL
diff --git a/debian/config-custom/debian/files b/debian/config-custom/debian/files
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/debian/config-custom/debian/files
@@ -0,0 +1 @@
+
diff --git a/debian/config-custom/debian/rules b/debian/config-custom/debian/rules
new file mode 100755
index 0000000..86280ad
--- /dev/null
+++ b/debian/config-custom/debian/rules
@@ -0,0 +1,99 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+DEBIAN:=$(shell pwd)/debian
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+ touch build-indep-stamp
+
+build: build-indep
+
+clean: cleanfiles
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-indep-stamp configure-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ dh_clean
+
+install: install-stamp
+install-stamp: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ install -m 755 debian/debconf/update-exim4.conf debian/exim4-config/usr/sbin
+ install -m 755 $(DEBIAN)/update-exim4defaults $(DEBIAN)/exim4-config/usr/sbin
+ find debian/debconf/splitoff-parts -maxdepth 1 -type f | \
+ xargs --replace install -m644 {} debian/exim4-config/var/lib/exim4
+ install -m644 debian/debconf/splitoff-parts/[^C][^V][^S]* debian/exim4-config/var/lib/exim4
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/etc/exim4
+
+ cd $(DEBIAN)/debconf/conf.d && \
+ tar cf - `find \( -path '*/CVS/*' -prune \) -or \( -type f -print \)` | \
+ { cd $(DEBIAN)/exim4-config/etc/exim4/conf.d/ && \
+ tar xf - ; }
+
+ # ship a copy in examples
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/usr/share/doc/exim4-config/examples/exim4.conf.template.debconf
+ install -m644 debian/email-addresses debian/exim4-config/etc/exim4
+ install -m755 debian/ip-up.d debian/exim4-config/etc/ppp/ip-up.d/exim4
+
+# dh_movefiles
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ dh_installpam -i
+ dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..29368e2
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,123 @@
+Source: exim4
+Section: mail
+Priority: important
+Maintainer: Andreas Metzler <ametzler@debian.org>
+Uploaders: Marc Haber <mh+debian-packages@zugschlus.de>
+Standards-Version: 3.5.9.0
+Build-depends: dpatch, libpcre3-dev, libldap2-dev, libpam0g-dev, libident-dev, libdb3-dev, xlibs-dev, libxaw7-dev | libxaw-dev, postgresql-dev, libmysqlclient-dev, debhelper (>= 4.0.1), libperl-dev, libgnutls5-dev
+
+Package: exim4-base
+Architecture: any
+Priority: important
+Suggests: mail-reader, eximon4, eximdoc4-html|eximdoc4-info
+Conflicts: exim, exim-tls
+Replaces: exim, exim-tls
+Depends: ${shlibs:Depends}, cron (>=3.0pl1-42), ${misc:Depends}, exim4-config
+Description: EXperimental Internal Mailer -- a Mail Transport Agent
+ This MTA is rather easier to configure than smail or sendmail.
+ It is a drop-in replacement for sendmail/mailq/rsmtp.
+ Advanced features include the ability to reject connections from
+ known spam sites, and an extremely efficient queue processing
+ algorithm.
+ .
+ This package provides the support files, you need an additional package
+ containing the main executable to make Exim work. The available packages
+ are:
+ .
+ exim4-daemon-light
+ exim4-daemon-heavy
+ exim4-daemon-custom
+ .
+ Exim comes with very extensive documentation in
+ /usr/share/doc/exim4-base/spec.txt.gz.
+
+Package: exim4-config
+Architecture: all
+Priority: important
+Conflicts: exim4-config
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base
+Description: Debian configuration for exim4
+ This package provides the configuration for the exim4 daemon
+ packages. The configuration framework has been split off the main
+ package to allow sites to replace the configuration scheme with their
+ own without having to change the actual exim packages.
+ .
+ Sites with special configuration needs (having a lot of identically
+ configured machines for example) can use this to distribute their own
+ custom configuration via the packaging system, using the magic
+ available with dpkg's conffile handling, without having to do local
+ changes on all of these machines.
+
+Package: exim4-daemon-light
+Architecture: any
+Priority: important
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (= ${Source-Version}), ${shlibs:Depends}
+Description: Lightweight version of the Exim (v4) MTA
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This version of the Exim daemon has only basic features enabled. It
+ works well with the standard setups that are provided by Debian.
+
+Package: exim4
+Architecture: all
+Priority: important
+Depends: exim4-base (= ${Source-Version}), exim4-daemon-light | exim4-daemon-heavy | exim4-daemon-custom
+Description: An MTA (Mail Transport Agent)
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This metapackage provides the essential components for running
+ an Exim (v4) MTA.
+
+Package: exim4-daemon-heavy
+Architecture: any
+Priority: optional
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (= ${Source-Version}), ${shlibs:Depends}
+Suggests: libexim-localscan-perl
+Description: Exim (v4) with extended features
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This version of the Exim daemon includes extra features such as LDAP,
+ PostgreSQL and MySQL data lookups, TLS (SSL) encryption, various
+ types of SMTP authentication and embedded Perl interpreter.
+ .
+ Additionally this package includes a plugin to use the embedded
+ Perl-interpreter for Exim's local_scan interface.
+
+Package: exim4-daemon-custom
+Architecture: any
+Priority: optional
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (= ${Source-Version}), ${shlibs:Depends}
+Description: Customized version of Exim (v4)
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This version of the Exim daemon is not provided by Debian but has been
+ built with a custom feature-set tailored for your local needs. See
+ /usr/share/doc/exim4-daemon-custom/ for details.
+
+Package: eximon4
+Architecture: any
+Priority: optional
+Conflicts: eximon
+Replaces: eximon
+Depends: ${shlibs:Depends}, exim4-base (>= 4.10)
+Description: X monitor for the Exim (v4) mail transport agent
+ This allows administrators to view the Exim agent's mail queue
+ and logs, and perform a variety of actions on queued messages,
+ such as freezing, bouncing and thawing messages.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..3f9e2e2
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,210 @@
+This is Debian GNU/Linux's prepackaged version of exim, a powerful yet easy
+to configure mail transport agent.
+
+-----------------------------------------------------------------
+This package was put together from the original sources which are
+maintained by Philip Hazel <ph10@cus.cam.ac.uk>, and which were
+obtained from
+
+ ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/
+
+Some modifications to the Makefiles have been made to fit with the Linux
+FHS.
+-----------------------------------------------------------------
+
+
+-----------------------------------------------------------------
+The local_scan.c perl plugin by Richard Baker <rich@mondaymorning.org> was
+downloaded from http://oss.bibliotech.net/ and modified to compile as
+shared object that can be dlopened.
+Copyright (C) 2000 Biblio@Tech Ltd., Unit 2-3, 50 Carnwath Road, SW6 3EG, UK
+Licensed under GPL.
+-----------------------------------------------------------------
+
+
+-----------------------------------------------------------------
+Debian Maintainer history:
+- The Debian package for exim was originally made by Tim Cutts
+ <timc@chiark.greenend.org.uk>.
+- Mark Baker <mbaker@iee.org> took over until exim version 3 and is
+ still involved with packaging.
+- Steve Haslam, Hilko Bengen and Marc Haber generated the initial
+ packages of Exim v4.
+- The exim4 packages are now maintained by
+ - Andreas Metzler <ametzler@downhill.at.eu.org> (main maintainer)
+ - Marc Haber <mh+debian-packages@zugschlus.de> (Co-maintainer)
+
+The following people helped in preparing the exim4 packages and gave
+important feedback:
+- Marc Merlin provides the dlopen patch, making it possible to load
+ local_scan-routines for a external shared object.
+ The original patch was written by David Woodhouse, it was modified first
+ by Derrick 'dman' Hudson and afterwards by Marc Merlin.
+- Sander Smeenk provided the TLS-docs and the script to generate the
+ self-signed certificates.
+- The people on the exim4debian list that submitted bug-reports and -fixes,
+ and helped with design issues: Matthias Klose, Alexander Koch, Ola
+ Lundqvist, Andrew Mulholland, David Pashley, Andreas Piesk, Nick Phillips
+ and whoever I forgot to mention.
+-----------------------------------------------------------------
+
+
+-----------------------------------------------------------------
+exim is copyright (c) 1999 University of Cambridge.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+_________________________________________________________________________
+THE EXIM MAIL TRANSFER AGENT
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package and to
+(re)distribute the binaries produced as the result of such linking.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+
+UNSOLICITED EMAIL
+-----------------
+
+The use, supply or promotion of Exim for the purpose of sending bulk,
+unsolicited electronic mail is incompatible with the basic aims of the program,
+which revolve around the free provision of a service that enhances the quality
+of personal communications. The author of Exim regards indiscriminate
+mass-mailing as an antisocial, irresponsible abuse of the Internet.
+
+
+INCORPORATED CODE
+-----------------
+
+A number of pieces of external code are included in the Exim distribution.
+
+ 1. Regular expressions are supported in the main Exim program and in the
+ Exim monitor using the freely-distributable PCRE library, copyright (c)
+ 2002 University of Cambridge. The source is distributed in the directory
+ src/pcre. However, this is a cut-down version of PCRE. If you want to use
+ the PCRE library in other programs, you should obtain and install the
+ full version from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre.
+
+
+ 2. Support for the cdb (Constant DataBase) lookup method is provided by
+ code contributed by Nigel Metheringham of Planet Online Ltd. which contains
+ the following statements:
+ _________________________________________________________________________
+
+ Copyright (c) 1998 Nigel Metheringham, Planet Online Ltd
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This code implements Dan Bernstein's Constant DataBase (cdb) spec.
+ Information, the spec and sample code for cdb can be obtained from
+ http://www.pobox.com/~djb/cdb.html. This implementation borrows some code
+ from Dan Bernstein's implementation (which has no license restrictions
+ applied to it).
+ _________________________________________________________________________
+
+
+ 3. Support for Microsoft's "Secure Password Authentication" is provided by
+ code contributed by Marc Prud'hommeaux. This includes code taken from the
+ Samba project, which is released under the Gnu GPL.
+
+
+ 4. Support for calling the Cyrus "pwcheck" daemon is provided by code taken
+ from the Cyrus-SASL library and adapted by Alexander S. Sabourenkov. The
+ permission notice appears below, in accordance with the conditions
+ expressed therein.
+ _________________________________________________________________________
+
+ Copyright (c) 2001 Carnegie Mellon University. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name "Carnegie Mellon University" must not be used to endorse or
+ promote products derived from this software without prior written
+ permission. For permission or any other legal details, please
+ contact
+
+ Office of Technology Transfer
+ Carnegie Mellon University
+ 5000 Forbes Avenue
+ Pittsburgh, PA 15213-3890
+ (412) 268-4387, fax: (412) 268-7395
+ tech-transfer@andrew.cmu.edu
+
+ 4. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ This product includes software developed by Computing Services at
+ Carnegie Mellon University (http://www.cmu.edu/computing/).
+
+ CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY
+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ _________________________________________________________________________
+
+
+ 5. The Exim Monitor program, which is an X-Window application, includes a
+ modified version of the Athena StripChart and TextPop widgets. This code
+ is copyright by DEC and MIT, and their permission notice appears below,
+ in accordance with the conditions expressed therein.
+
+___________________________________________________________________________
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard,
+Massachusetts, and the Massachusetts Institute of Technology, Cambridge,
+Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting documen-
+tation, and that the names of Digital or MIT not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+___________________________________________________________________________
+
+
+--
+Philip Hazel University of Cambridge Computing Service,
+ph10@cus.cam.ac.uk Cambridge, England. Phone: +44 1223 334714.
diff --git a/debian/debconf.gamla/debconf_eximconfig b/debian/debconf.gamla/debconf_eximconfig
new file mode 100644
index 0000000..5b888bd
--- /dev/null
+++ b/debian/debconf.gamla/debconf_eximconfig
@@ -0,0 +1,628 @@
+#!/usr/bin/perl -w
+
+require 5;
+use strict;
+use Debconf::Client::ConfModule ':all';
+use Carp;
+
+sub get_value($) {
+ my $key = shift;
+ my($code,$text) = get($key);
+ return $text if ($code == 0);
+ croak("Unable to fetch value for \"$key\" (debconf code $code)\n");
+}
+
+version('2.0');
+#my $capb = capb('backup multiselect');
+
+######################################################################
+# Get data, mainly from Debconf
+
+my $syshostname;
+chomp($syshostname = `hostname --fqdn`);
+my $configtype = get_value("exim/eximconfig/configtype");
+my $visiblename;
+if ($configtype eq 'satellite') {
+ $visiblename = get_value("exim/eximconfig/satellite_hostname");
+}
+elsif ($configtype eq 'local') {
+ $visiblename = $syshostname;
+}
+elsif ($configtype eq 'none') {
+ # leave their configuration alone
+ exit(0);
+}
+else {
+ $visiblename = get_value("exim/eximconfig/visible_hostname");
+}
+
+my @local_domains = ($visiblename, "localhost");
+my @relay_domains = ();
+my @relay_nets = ('127.0.0.1', '::::1');
+if ($configtype eq 'satellite' || $configtype eq 'internet' || $configtype eq 'smarthost') {
+ push @local_domains, split(/[ ,]+/, get_value("exim/eximconfig/other_hostnames"));
+ push @relay_domains, split(/[ ,]+/, get_value("exim/eximconfig/relay_domains"));
+ push @relay_nets, split(/[ ,]+/, get_value("exim/eximconfig/relay_nets"));
+}
+
+my $readhost;
+if ($configtype eq 'satellite') {
+ $readhost = get_value("exim/eximconfig/readhost");
+}
+
+my $smarthost;
+if ($configtype eq 'smarthost' || $configtype eq 'satellite') {
+ $smarthost = get_value("exim/eximconfig/smarthost");
+}
+
+my $overwrite_aliases = get_value("exim/eximconfig/overwrite_aliases") eq 'true';
+
+my @postmasters = split(/[ ,]+/, get_value("exim/eximconfig/postmaster"));
+
+my $mailbox_format = get_value("exim/eximconfig/mailbox_format");
+my $local_delivery;
+if ($mailbox_format eq 'spool') {
+ $local_delivery = 'mail_spool';
+}
+elsif ($mailbox_format eq 'maildir') {
+ $local_delivery = 'maildir_home';
+}
+else {
+ die "Unrecognised mailbox format \"$mailbox_format\"\n";
+}
+
+my $use_maildrop = ($mailbox_format eq 'maildir') && (get_value("exim/eximconfig/auto_maildrop") eq 'true');
+my $use_procmail = ($mailbox_format eq 'spool') && (get_value("exim/eximconfig/auto_procmail") eq 'true');
+
+# Read password file and find users that need redirection
+my @redirusers = ('nobody', 'hostmaster', 'usenet', 'news', 'webmaster', 'www', 'ftp', 'abuse', 'noc', 'security');
+while (my @a = getpwent) {
+ next unless ($a[2] < 1000);
+ next if ($a[0] eq 'root');
+ push @redirusers, $a[0];
+}
+
+######################################################################
+# Show summary on stderr
+
+sub say {
+ my @words = map { split(/\s+/, $_) } @_;
+ my $out = '';
+ while (@words) {
+ my $word = shift @words;
+ if (length($out)+length($word)+1 > 70) {
+ print STDERR "$out\n";
+ $out = '';
+ }
+ $out .= "$word ";
+ }
+ print STDERR "$out\n" if ($out);
+ print STDERR "\n";
+}
+
+say("Now using your answers to debconf questions to configure Exim 4. \
+ Use \"dpkg-reconfigure exim\" to change your configuration, or \
+ to disable automatic rebuilding of your configuration on each \
+ and every upgrade.");
+
+say("Mail generated on this system will have \
+ '".($configtype eq 'satellite' ? $readhost : $visiblename)."' used \
+ as the domain part (after the \@) in the From: field and similar places.");
+
+say("The following domain(s) will be recognised as referring to this system: ", @local_domains);
+
+if (@relay_domains) {
+ say("Messages for the following domains will be relayed: ", @relay_domains);
+}
+
+say("Mail for postmaster, root etc. will be sent to: ", @postmasters);
+
+if ($configtype ne 'satellite') {
+ if ($mailbox_format eq 'spool') {
+ say("Local mail is delivered to /var/spool/mail/\$USER mailboxes.", $use_procmail ? ".procmail files will automatically be used by procmail if found" : "");
+ }
+ elsif ($mailbox_format eq 'maildir') {
+ say("Local mail is delivered to \$HOME/Maildir directories.", $use_procmail ? ".mailfilter files will automatically be used by maildrop if found" : "");
+ }
+}
+
+if ($configtype eq 'internet') {
+ say("Outbound remote mail is lookup up in the Internet DNS, and delivered using that data if any is found; otherwise such messages are bounced.");
+}
+elsif ($configtype eq 'smarthost') {
+ say("Outbound remote mail is sent via $smarthost");
+}
+elsif ($configtype eq 'satellite') {
+ say("All mail is being routed and delivered via $smarthost");
+}
+elsif ($configtype eq 'local') {
+ say("Any mail destined for remote addresses is bounced.");
+}
+
+say("Note that you can set email addresses used for outgoing mail by editing /etc/email-addresses.");
+
+######################################################################
+# Write $visiblename into /etc/mailname
+
+if (open(MAILNAME, ">/etc/mailname")) {
+ print STDERR "Writing /etc/mailname...\n";
+ print MAILNAME "$visiblename\n";
+ close(MAILNAME);
+}
+else {
+ warn "Unable to write /etc/mailname: $!\n";
+}
+
+######################################################################
+# This subroutine autodetects whether a file was generated ourselves
+
+sub autogenerated($) {
+ my $filename = shift;
+ open(FILE, $filename) or die "Unable to read $filename: $!\n";
+ my $top = <FILE>;
+ close FILE;
+ return ($top eq "# AUTOGENERATED\n");
+}
+
+######################################################################
+# Write /etc/aliases
+if ($overwrite_aliases) {
+ if (open(ALIASES, ">/etc/aliases.exim-pkg-new.$$")) {
+ print STDERR "Writing /etc/aliases...\n";
+ print ALIASES <<EOF
+# AUTOGENERATED
+#
+# This is the aliases file - it says who gets mail for whom.
+#
+# This file automatically generated. You must reconfigure Exim to stop
+# regenerating this file before you make changes yourself, or your
+# changes will be lost when you upgrade Exim.
+# (use: dpkg-reconfigure exim)
+#
+
+EOF
+;
+ print ALIASES "root: ".join(', ', map { "real-$_" } @postmasters)."\n";
+ print ALIASES "postmaster: root\n";
+ print ALIASES "mailer-daemon: postmaster\n";
+ foreach my $redir (@redirusers) {
+ print ALIASES "$redir: root\n";
+ }
+
+ close(ALIASES);
+ if (-f "/etc/aliases" && !autogenerated("/etc/aliases")) {
+ print "Backing up old /etc/aliases to /etc/aliases.O...\n";
+ unlink("/etc/aliases.O");
+ rename("/etc/aliases", "/etc/aliases.O")
+ or die "Unable to rename /etc/aliases to /etc/aliases.O: $!\n";
+ }
+ rename("/etc/aliases.exim-pkg-new.$$", "/etc/aliases")
+ or die "Unable to rename /etc/aliases.exim-pkg-new.$$ to /etc/aliases: $!\n";
+ }
+ else {
+ warn "Unable to write /etc/aliases.exim-pkg-new.$$: $!\n";
+ }
+}
+else {
+ print STDERR "Not writing /etc/aliases by user request\n";
+}
+
+######################################################################
+# Write /etc/exim4/exim4.conf
+
+unless (open(EXIMCONF, ">/etc/exim4/exim4.conf.exim-pkg-new.$$")) {
+ die "Unable to write /etc/exim4/exim4.conf.exim-pkg-new.$$: $!\n";
+}
+
+print STDERR "Writing /etc/exim4/exim4.conf...\n";
+
+my $local_domains = join(' : ', '@', @local_domains);
+my $relay_domains = join(' : ', @relay_domains);
+my $relay_nets = join(' : ', @relay_nets);
+
+my $now = localtime(time);
+
+print EXIMCONF <<EOF;
+# AUTOGENERATED
+
+# Runtime configuration file for Exim
+# This file generated by debconf_eximconfig, $now
+
+# THIS FILE WILL BE REGENERATED EVERY TIME THE EXIM PACKAGE IS UPGRADED
+# UNLESS YOU RUN
+# dpkg-reconfigure exim
+# AND CHOOSE "NONE" AS THE CONFIGURATION TYPE.
+
+# (you can check what the configuration type is currently set to using
+# the command
+# debconf-show exim | grep configtype
+# )
+
+# Main configuration settings
+
+# Let Exim autodetct this; we autodetected $syshostname at run-time
+# primary_hostname =
+EOF
+
+print EXIMCONF "domainlist local_domains = $local_domains\n";
+print EXIMCONF "domainlist relay_to_domains = $relay_domains\n";
+print EXIMCONF "hostlist relay_from_hosts = $relay_nets\n\n";
+print EXIMCONF "qualify_domain = $visiblename\n\n";
+
+print EXIMCONF <<EOF;
+acl_smtp_rcpt = acl_check_rcpt
+
+# qualify_recipient =
+
+# allow_domain_literals
+
+never_users = root
+
+host_lookup = *
+
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+
+# percent_hack_domains =
+
+ignore_bounce_errors_after = 2d
+
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+received_header_text = "Received: \\
+ \${if def:sender_rcvhost {from \${sender_rcvhost}\\n\\t}\\
+ {\${if def:sender_ident {from \${sender_ident} }}\\
+ \${if def:sender_helo_name {(helo=\${sender_helo_name})\\n\\t}}}}\\
+ by \${primary_hostname} \\
+ \${if def:received_protocol {with \${received_protocol}}} \\
+ (Exim \${version_number} #\${compile_number} (Debian) [+araqnid])\\n\\t\\
+ id \${message_id}\\
+ \${if def:received_for {\\n\\tfor <\$received_for>}}"
+
+begin acl
+
+acl_check_rcpt:
+ accept hosts = :
+ deny local_parts = ^.[\@\%!/|] : ^\\\\.
+ accept local_parts = postmaster
+ domains = +local_domains
+ require verify = sender
+
+ # deny message = rejected because \$sender_host_address is in a black list at \$dnslist_domain\\n\$dnslist_text
+ # dnslists = black.list.example.com
+
+ # warn message = X-Warning: \$sender_host_address is in a black list at \$dnslist_domain
+ # dnslists = black.list.example.com
+
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ accept hosts = +relay_from_hosts
+
+ accept authenticated = *
+
+ deny message = relay not permitted
+
+begin routers
+
+EOF
+ ;
+
+if ($configtype eq 'internet') {
+ print EXIMCONF <<EOF;
+dnslookup:
+ driver = dnslookup
+ domains = ! +local_domains
+ transport = remote_smtp
+ ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
+ no_more
+
+EOF
+}
+elsif ($configtype eq 'smarthost' || $configtype eq 'satellite') {
+ print EXIMCONF <<EOF;
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * $smarthost
+ no_more
+
+EOF
+}
+else {
+ print EXIMCONF <<EOF;
+# Stand-alone system, so generate an error for amil to a non-local domain
+nonlocal:
+ driver = redirect
+ allow_fail
+ data = :fail: Mailing to remote domains not supported
+ no_more
+ domains = ! +local_domains
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+# The "no_more" above means that all routers below here are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
+
+real_local:
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = $local_delivery
+
+system_aliases:
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = \${lookup{\$local_part}lsearch{/etc/aliases}}
+ file_transport = address_file
+ pipe_transport = address_pipe
+
+EOF
+ ;
+
+if ($configtype eq 'satellite') {
+ print EXIMCONF <<EOF;
+hub_user:
+ driver = redirect
+ data = \${local_part}\@$readhost
+ check_local_user
+
+EOF
+ ;
+}
+
+print EXIMCONF <<EOF;
+userforward:
+ driver = redirect
+ check_local_user
+ file = \$home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+# allow_filter
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+
+EOF
+
+if ($use_procmail) {
+ print EXIMCONF <<EOF;
+procmail:
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = \${local_part}:\${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
+EOF
+}
+
+if ($use_maildrop) {
+ print EXIMCONF <<EOF;
+maildrop:
+ driver = accept
+ check_local_user
+ transport = maildrop_pipe
+ require_files = \${local_part}:\${home}/.mailfilter:+/usr/bin/maildrop
+ no_verify
+ no_expn
+
+EOF
+}
+
+ print EXIMCONF <<EOF;
+local_user:
+ driver = accept
+ check_local_user
+ transport = $local_delivery
+
+begin transports
+
+EOF
+ ;
+if ($configtype ne 'local') {
+ print EXIMCONF <<EOF;
+remote_smtp:
+ driver = smtp
+
+EOF
+;
+}
+
+if ($mailbox_format eq 'spool') {
+ print EXIMCONF <<EOF;
+mail_spool:
+ driver = appendfile
+ file = /var/spool/mail/\$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+
+EOF
+}
+
+if ($mailbox_format eq 'maildir') {
+ print EXIMCONF <<EOF;
+maildir_home:
+ driver = appendfile
+ directory = \$home/Maildir
+ maildir_format
+ mode = 0600
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+address_pipe:
+ driver = pipe
+ return_output
+
+address_file:
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
+address_reply:
+ driver = autoreply
+
+EOF
+
+if ($use_maildrop) {
+ print EXIMCONF <<EOF;
+maildrop_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+EOF
+}
+
+if ($use_procmail) {
+ print EXIMCONF <<EOF;
+procmail_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+begin retry
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+begin rewrite
+
+EOF
+ ;
+
+print EXIMCONF <<EOF;
+# This rewriting rule is particularly useful for dialup users who
+# don't have their own domain, but could be useful for anyone.
+# It looks up the real address of all local users in a file
+
+EOF
+ ;
+
+for my $domain (@local_domains) {
+ print EXIMCONF "*\@$domain \${lookup{\${local_part}}lsearch{/etc/email-addresses}{\$value}fail} Ffrs\n";
+}
+
+if ($configtype eq 'satellite') {
+ print EXIMCONF <<EOF
+# These rewriters make sure the mail messages appear to have originated
+# from the real mail-reading host.
+
+EOF
+;
+
+ my $fuser = $postmasters[0];
+ for my $domain (@local_domains) {
+ print EXIMCONF "^(?i)(root|postmaster|mailer-daemon)\@$domain \$\{local_part\}\@in.limbo Ffr\n"
+ if (@postmasters);
+ print EXIMCONF "*\@$domain \$\{local_part\}\@$readhost Ffr\n";
+ }
+ print EXIMCONF "*\@in.limbo $fuser\@$readhost Ffr\n"
+ if (@postmasters);
+}
+
+print EXIMCONF <<'EOF';
+
+begin authenticators
+
+# The examples below are for server side authentication; they allow two
+# styles of plain-text authentication against an /etc/exim4/passwd file
+# which should have user IDs in the first column and crypted passwords
+# in the second.
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# server_prompts = "Username:: : Password::"
+# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $3
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+
+# Here is an example of CRAM-MD5 authentication against PostgreSQL:
+#
+# psqldb_auth:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_condition = "${if crypteq{$2}{${lookup pgsql{SELECT pw FROM users WHERE username = '${quote_pgsql:$1}'}{$value}fail}{1}{0}}"
+# server_set_id = $1
+
+# These examples below are the equivalent for client side authentication.
+# They assume that you only use client side authentication to connect to
+# one host (such as a smarthost at your ISP), or else use the same user
+# name and password everywhere
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# client_send = "^username^password"
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# client_send = ": username : password"
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# client_name = username
+# client_secret = password
+
+EOF
+;
+
+close(EXIMCONF);
+
+unlink("/etc/exim4/exim4.conf.O");
+if (-f "/etc/exim4/exim4.conf") {
+ rename("/etc/exim4/exim4.conf", "/etc/exim4/exim4.conf.O")
+ or die "Unable to move /etc/exim4/exim4.conf to /etc/exim4/exim4.conf.O: $!\n";
+}
+rename("/etc/exim4/exim4.conf.exim-pkg-new.$$", "/etc/exim4/exim4.conf")
+ or die "Unable to move /etc/exim4/exim4.conf.exim-pkg-new.$$ to /etc/exim4/exim4.conf: $!\n";
diff --git a/debian/debconf.gamla/exim4-base.config b/debian/debconf.gamla/exim4-base.config
new file mode 100644
index 0000000..8c17115
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.config
@@ -0,0 +1,260 @@
+#!/usr/bin/perl -w
+
+require 5;
+use strict;
+use Debconf::Client::ConfModule ':all';
+use Carp;
+use vars qw($reconfiguring $exim3conf $capb $default_configtype);
+
+sub get_value($) {
+ my $key = shift;
+ my($code,$text) = get($key);
+ return $text if ($code == 0);
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+}
+
+sub enqueue_question($$) {
+ my $priority = shift;
+ my $template = shift;
+ my($code,$text) = input($priority, $template);
+ if ($code && $code != 30) {
+ croak("Error asking question \"$template\" (debconf code $code)");
+ }
+}
+
+sub set_default($$) {
+ my $key = shift;
+ my $defaultvalue = shift;
+ my($code, $text) = get($key);
+ if ($code == 0) {
+ if ($text eq '') {
+ ($code,$text) = set($key, $defaultvalue);
+ # Check $code...
+ }
+ }
+ else {
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+ }
+}
+
+sub fetch_default($$) {
+ my $key = shift;
+ my $defaultcb = shift;
+ my($code, $text) = get($key);
+ if ($code == 0) {
+ if ($text eq '') {
+ my $defaultvalue = &$defaultcb;
+ if (defined($defaultvalue)) {
+ ($code, $text) = set($key, $defaultvalue);
+ # Check $code...
+ }
+ }
+ }
+ else {
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+ }
+}
+
+sub debug {
+ if ($ENV{EXIMCONF_DEBUG}) {
+ print STDERR "$0: @_\n";
+ }
+}
+
+sub exim3_readconfig {
+ my $filename = shift || "/etc/exim/exim.conf";
+
+ if (open(EXIMCONF, $filename)) {
+
+ my $config;
+
+ my $keyword;
+
+ scanmain:
+ while (<EXIMCONF>) {
+ chomp;
+ if (/^end\b/) {
+ last scanmain;
+ }
+ elsif (/^\s*([a-zA-z0-9_]+)\s*=\s*(.*)/) {
+ $keyword = $1;
+ my $value = $2;
+ while ($value =~ s/\\$//) {
+ my $nextline = <EXIMCONF>;
+ $value .= $nextline;
+ }
+ $config->{main}->{$keyword} = $value;
+ }
+ elsif (/^\s*no_([a-zA-Z0-9_]+)\s*$/) {
+ $config->{main}->{$keyword} = '';
+ }
+ }
+
+ for my $section (qw|transports directors routers|) {
+ scansection:
+ while (<EXIMCONF>) {
+ chomp;
+
+ if (/^end\b/) {
+ last scansection;
+ }
+ elsif (/^([a-zA-Z0-9_]+):\s*/) {
+ my $objname = $1;
+ objectline:
+ while (<EXIMCONF>) {
+ next if (/^\s*\#/ || !/\S/);
+ if (/^\s*([a-zA-Z0-9_]+)\s*=\s*(.*)/) {
+ my $propname = $1;
+ my $value = $2;
+ while ($value =~ s/\\$//) {
+ my $nextline = <EXIMCONF>;
+ $value .= $nextline;
+ }
+ $config->{$section}->{$objname}->{$propname} = $value;
+ }
+ else {
+ redo scansection;
+ }
+ }
+ }
+ }
+ }
+
+ close(EXIMCONF);
+ debug("Read Exim 3 config file $filename");
+ return $config;
+ }
+ else {
+ debug("Unable to read $filename: $!");
+ }
+
+ return undef;
+}
+
+version('2.0');
+$capb = capb(''); # FIXME: Support backup
+
+######################################################################
+
+$reconfiguring = 1 if ($ARGV[0] eq 'reconfigure');
+
+if (-f "/etc/exim4/exim4.conf" && !$reconfiguring) {
+ exit(0); # exit if exim4.conf already built and we are not explicitly reconfiguring
+}
+
+######################################################################
+# Look for old Exim3 config file
+
+if (-f "/etc/exim/exim.conf") {
+ enqueue_question("high", "exim/configconvert/question");
+ go();
+ my $convertresponse = get_value("exim/configconvert/question");
+ if ($convertresponse eq 'convert') {
+ enqueue_question("high", "exim/configconvert/convertnotice");
+ go();
+ system("/etc/init.d/exim4", "stop") if ($reconfiguring);
+ exit(0);
+ }
+ elsif ($convertresponse eq 'none') {
+ enqueue_question("high", "exim/configconvert/breakagenotice");
+ go();
+ exit(0);
+ }
+ elsif ($convertresponse eq 'createnew') {
+ # Do not read exim3 config file for defaults if exim4.conf has been created already
+ # The defaults should have been seen once by the user and stored in debconf anyway.
+ $exim3conf = exim3_readconfig() unless (-f "/etc/exim4/exim4.conf");
+ }
+ else {
+ die "exim/configconvert/question has an unrecognised answer: (\"$convertresponse\")\n";
+ }
+}
+
+######################################################################
+# Ask eximconfig questions
+
+# Grab the configtype from the old exim3 config file
+# TRANSPORT(remote_smtp) does not exist ==> local
+# ROUTER(lookuphost) exists ==> internet
+# DIRECTOR(smart) exists ==> satellite
+# DEFAULT ==> smarthost
+fetch_default("exim/eximconfig/configtype", sub {
+ return "local" if (!defined($exim3conf->{transports}->{remote_smtp}));
+ return "internet" if (defined($exim3conf->{routers}->{lookuphost}));
+ return "satellite" if (defined($exim3conf->{directors}->{smart}));
+ return "smarthost"; });
+
+enqueue_question("high", "exim/eximconfig/configtype");
+go();
+
+my $configtype = get_value("exim/eximconfig/configtype");
+if ($configtype eq 'none') {
+ exit(0);
+}
+
+my $syshostname = $exim3conf->{main}->{primary_hostname} || $exim3conf->{main}->{qualify_domain} || `hostname --fqdn` || `hostname`;
+
+my $visiblename;
+
+if ($configtype eq 'satellite') {
+ set_default("exim/eximconfig/satellite_hostname", $syshostname);
+ enqueue_question("medium", "exim/eximconfig/satellite_hostname");
+ go();
+ $visiblename = get_value("exim/eximconfig/satellite_hostname");
+}
+else {
+ set_default("exim/eximconfig/visible_hostname", $syshostname);
+ enqueue_question("medium", "exim/eximconfig/visible_hostname");
+ go();
+ $visiblename = get_value("exim/eximconfig/visible_hostname");
+}
+
+if ($configtype eq 'internet' || $configtype eq 'smarthost') {
+ subst("exim/eximconfig/other_hostnames", "visiblename", $visiblename);
+
+ enqueue_question("high", "exim/eximconfig/other_hostnames");
+ # Downgrade these to medium since having them empty is likely to be reasonable?
+ enqueue_question("high", "exim/eximconfig/relay_domains");
+ enqueue_question("high", "exim/eximconfig/relay_nets");
+}
+
+my $ourdomain = $syshostname;
+$ourdomain =~ s/^[^.][^.]*\.//;
+
+if ($configtype eq 'satellite') {
+ # Exim 3 satellite configuration?
+ # Look for director called "smart"
+ # .. and new_address setting of "${local_part}@SOME_DOMAIN"
+ if ($exim3conf->{directors}->{smart} && $exim3conf->{directors}->{smart}->{new_address} =~ /^\${local_part}\@(.+)/) {
+ set_default("exim/eximconfig/readhost", $1);
+ }
+ else {
+ set_default("exim/eximconfig/readhost", $ourdomain);
+ }
+ # This is high priority even though it has a default, since $ourdomain
+ # is not necessarily "reasonable".. mail.$ourdomain would be equally "reasonable"
+ enqueue_question("high", "exim/eximconfig/readhost");
+ go();
+ my $readhost = get_value("exim/eximconfig/readhost");
+ set_default("exim/eximconfig/smarthost", $readhost);
+ enqueue_question("medium", "exim/eximconfig/smarthost");
+}
+elsif ($configtype eq 'smarthost') {
+ set_default("exim/eximconfig/smarthost", $ourdomain);
+ enqueue_question("high", "exim/eximconfig/smarthost");
+}
+
+enqueue_question("medium", "exim/eximconfig/overwrite_aliases");
+enqueue_question("medium", "exim/daemon/permissions");
+
+go();
+
+if ($reconfiguring) {
+ system("/etc/init.d/exim4", "stop");
+ if (-f "/etc/exim4/exim4.conf") {
+ unlink("/etc/exim4/exim4.conf-reconfigure");
+ rename("/etc/exim4/exim4.conf", "/etc/exim4/exim4.conf-reconfigure");
+ }
+}
+
+exit(0);
diff --git a/debian/debconf.gamla/exim4-base.postinst b/debian/debconf.gamla/exim4-base.postinst
new file mode 100644
index 0000000..eacc8f7
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.postinst
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+db_version 2.0
+
+get_value() {
+ db_get $1
+ code="$?"
+ if [ "$code" -eq "0" ]; then
+ :
+ else
+ echo "Error getting debconf answer $1: debconf code=$code" >&2
+ exit $code
+ fi
+}
+
+case "$1" in
+ configure)
+ # Create directories for log etc
+ install -d -omail -gadm -m2750 /var/log/exim4
+ install -d -omail -gmail /var/run/exim4
+
+ # Check that db files are readable by this Exim's db library
+ dbfiles=""
+ for f in /var/spool/exim/db/*; do
+ if [ -f "$f" ]; then
+ if echo $f | grep \.lockfile\$ >/dev/null 2>&1; then
+ : # ignore lock files
+ else
+ dbfiles="$dbfiles `basename $f`"
+ fi
+ fi
+ done
+ for dbfile in $dbfiles; do
+ if exim_dumpdb /var/spool/exim $dbfile >/dev/null 2>&1; then
+ : # File OK
+ else
+ echo "Resetting invalid $dbfile hints db"
+ rm -f /var/spool/exim/db/$dbfile /var/spool/exim/db/$dbfile.*
+ fi
+ done
+
+ # Configure Exim
+ get_value exim/configconvert/question
+ convertanswer="$RET"
+ if [ -f /etc/exim4/exim4.conf ]; then
+ : # nothing: leave existing config alone
+ elif [ "$convertanswer" = "convert" ]; then
+ /usr/lib/exim4/convert4r4 < /etc/exim/exim.conf > /etc/exim4/exim4.conf
+ elif [ "$convertanswer" = "createnew" ]; then
+ /usr/lib/exim4/debconf_eximconfig
+ fi
+
+ if [ -x "/etc/init.d/exim4" ]; then
+ update-rc.d exim4 defaults >/dev/null
+ fi
+
+ get_value exim/daemon/permissions
+ case "$RET" in
+ "setuid root")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --add root root 4755 /usr/sbin/exim4
+ fi
+ ;;
+ "setuid mail")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --add mail root 4755 /usr/sbin/exim4
+ fi
+ ;;
+ "none")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --remove /usr/sbin/exim4
+ fi
+ ;;
+ *)
+ echo "Error: Wrong answer for exim/daemon/permissions: $RET" >&3
+ exit 1;
+ ;;
+ esac
+
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 start
+ else
+ /etc/init.d/exim4 start
+ fi
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/debconf.gamla/exim4-base.templates b/debian/debconf.gamla/exim4-base.templates
new file mode 100644
index 0000000..11664e4
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.templates
@@ -0,0 +1,204 @@
+Template: exim/configconvert/question
+Type: select
+Choices: convert, createnew, none
+Description: Exim 3 configuration not compatible with Exim 4
+ Your existing Exim 3 configuration in /etc/exim/exim.conf cannot be
+ used by Exim 4. It is possible to try to convert your configuration file
+ using a script, or you can build a new configuration file by answering
+ a series of questions about your system.
+ .
+ As a third choice, you can leave Exim 4 unconfigured in case you want to
+ write a configuration file yourself.
+
+Template: exim/configconvert/convertnotice
+Type: note
+Description: Exim 3 configuration will be converted and put in exim4.conf
+ Exim 4 cannot read an Exim 3 configuration file. An attempt has been made
+ to convert your Exim 3 configuration file into an Exim 4 file, but this is
+ not guaranteed to work in all cases.
+ .
+ Exim 4's configuration file is in /etc/exim4/exim4.conf; your original
+ Exim 3 configuration file can still be found at /etc/exim/exim.conf, which
+ will be ignored from now on.
+ .
+ If the configuration file is badly broken, Exim will now refuse to start.
+ You should check your Exim configuration anyway to make sure that messages
+ are still being delivered correctly.
+
+Template: exim/configconvert/breakagenotice
+Type: note
+Description: Exim 4 is not configured
+ Exim 4 has not been configured. You must write an Exim 4 configuration file
+ as /etc/exim4/exim4.conf before Exim is usable. This host cannot
+ send or receive email until this is done.
+
+Template: exim/eximconfig/configtype
+Type: select
+Choices: internet, smarthost, satellite, local, none
+Description: Which major configuration?
+ You must choose one of the options below:
+ .
+ Internet site; mail is sent and received directly using SMTP. If your
+ needs don't fit neatly into any category, you probably want to start
+ with this one and then edit the config file by hand.
+ .
+ Internet site using smarthost: You receive Internet mail on this
+ machine, either directly by SMTP or by running a utility such as
+ fetchmail. Outgoing mail is sent using a smarthost. optionally with
+ addresses rewritten. This is probably what you want for a dialup
+ system.
+ .
+ Satellite system: All mail is sent to another machine, called a "smart
+ host" for delivery. root and postmaster mail is delivered according
+ to /etc/aliases. No mail is received locally.
+ .
+ Local delivery only: You are not on a network. Mail for local users
+ is delivered.
+ .
+ No configuration: No configuration will be done now; your mail system
+ will be broken and should not be used. You must then do the
+ configuration yourself later or run "dpkg-reconfigure exim"
+ as root. Look in /usr/share/doc/exim/example.conf.gz
+
+Template: exim/eximconfig/satellite_hostname
+Type: string
+Description: What is the hostname for this system?
+ What is this system's name? It won't appear on From: lines of mail,
+ as rewriting is used.
+
+Template: exim/eximconfig/visible_hostname
+Type: string
+Description: What is the visible mail name of your system?
+ This will appear on From: lines of outgoing messages.
+
+Template: exim/eximconfig/syshostname
+Type: string
+Description: internal use only
+ This value is only used internally-- this template is never displayed.
+
+Template: exim/eximconfig/other_hostnames
+Type: string
+Description: What other domain names to recognise?
+ Does this system have any other names which may appear on incoming
+ mail messages, apart from the visible name (${visiblename}) and
+ localhost?
+ .
+ By default all domains will be treated the same; if you want different
+ domain names to be treated differently, you will need to edit the config
+ file afterwards.
+ .
+ If there are any more, enter them here, separated with spaces or commas.
+
+Template: exim/eximconfig/relay_domains
+Type: string
+Description: Which domains to relay for?
+ All mail from here or specified other local machines to anywhere on
+ the internet will be accepted, as will mail from anywhere on the
+ internet to here.
+ .
+ Are there any domains you want to relay mail for---that is, you are
+ prepared to accept mail for them from anywhere on the internet, but
+ they are not local domains.
+ .
+ If there are any, enter them here, separated with spaces or commas. You
+ can use wildcards. If you want to relay
+ mail for all domains that specify you as an MX, then say "mx".
+
+Template: exim/eximconfig/relay_nets
+Type: string
+Description: Which machines to allow relaying for?
+ Obviously, any machines that use us as a smarthost have to be excluded
+ from the relaying controls, as using us to relay mail for them is the
+ whole point.
+ .
+ Are there any networks of local machines you want to relay mail for?
+ .
+ If there are any, enter them here, separated with spaces or commas. You
+ should use the standard address/length format (e.g. 194.222.242.0/24)
+ .
+ You need to double the colons in IPv6 addreses (e.g. 5f03::1200::836f::::/48)
+
+Template: exim/eximconfig/readhost
+Type: string
+Description: Domain name for local users
+ Since this is going to be a satellite system, I need to know what domain
+ name to use for mail from local users; typically this is the machine on
+ which you normally receive your mail.
+ .
+ Where will your users read their mail?
+
+Template: exim/eximconfig/smarthost
+Type: string
+Description: Which machine will act as the smarthost and handle outgoing mail?
+ Enter the hostname of the machine to send outgoing mail to.
+
+Template: exim/eximconfig/postmaster
+Type: string
+Description: Who is to receive postmaster mail?
+ Mail for the "postmaster" and "root" accounts is usually redirected
+ to one or more user accounts, of the actual system administrators.
+ By default, I'll set things up so that mail for "postmaster" and for
+ various system accounts is redirected to "root", and mail for "root"
+ is redirected to a real user. This can be changed by editing /etc/aliases.
+ .
+ Note that postmaster-mail should usually be read on the system it is
+ directed to, rather than being forwarded elsewhere, so (at least one of)
+ the users you choose should not redirect their mail off this machine.
+ .
+ Which user account(s) should system administrator mail go to ?
+ Enter one or more usernames separated by spaces or commas . Enter
+ "none" if you want to leave this mail in "root"'s mailbox - NB this
+ is strongly discouraged. Also, note that usernames should be lowercase!
+
+Template: exim/eximconfig/overwrite_aliases
+Type: boolean
+Default: false
+Description: Overwrite existing /etc/aliases?
+ You already have an /etc/aliases file. Do you want to replace this with
+ a new one (the old one will be kept and renamed to aliases.O)?
+
+Template: exim/eximconfig/mailbox_format
+Type: select
+Choices: spool, maildir
+Default: spool
+Description: Where to store user mailboxes?
+ The Debian default place to store user mail is in
+ /var/spool/mail/$USER. However, you may wish to store it
+ elsewhere. One popular choice (particularly with those migrating from
+ qmail) is to store user mail in a "Maildir" in their home directory.
+ .
+ You can choose to store mail in the normal mail spool, or a
+ home-directory Maildir.
+
+Template: exim/eximconfig/auto_procmail
+Type: boolean
+Default: true
+Description: Automatically use procmail to deliver mail?
+ Do you want Exim to automagically deliver mail with procmail if:
+ .
+ a) it is installed, and
+ .
+ b) the target user has a ".procmailrc" file in their home directory.
+
+Template: exim/eximconfig/auto_maildrop
+Type: boolean
+Default: true
+Description: Automatically use maildrop to deliver mail?
+ Do you want Exim to automagically deliver mail with maildrop if:
+ .
+ a) it is installed, and
+ .
+ b) the target user has a ".mailfilter" file in their home directory.
+
+Template: exim/daemon/permissions
+Type: select
+Choices: setuid root, setuid mail, none
+Default: setuid root
+Description: Install Exim daemon with SUID bit set?
+ Exim can be installed without extra privileges, setuid to mail (the
+ Exim user), or setuid to root. The safe default is to install it
+ setuid to root. Changing this can cause problems with usage of
+ .forward files and mail delivery, depending on your setup.
+ .
+ Be sure to read Chapter 55 "Security considerations" of the Exim
+ manual before you change this.
diff --git a/debian/debconf/30_exim4-config_example_check_rcpt b/debian/debconf/30_exim4-config_example_check_rcpt
new file mode 100644
index 0000000..a3ee381
--- /dev/null
+++ b/debian/debconf/30_exim4-config_example_check_rcpt
@@ -0,0 +1,138 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_example_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ require verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # The DNS "black" lists here might have gone out of existence at the
+ # time you might want to start using this example. Use at your own risk,
+ # and verify the used lists' policies.
+ #############################################################################
+
+ warn message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ dnslists = inputs.relays.osirusoft.com:dialups.relays.osirusoft.com:spamhaus.relays.osirusoft.com:spamsites.relays.osirusoft.com:spews.relays.osirusoft.com:relays.ordb.org:relays.bl.kundenserver.de:relays.visi.com:sbl.spamhaus.org
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = postmaster.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = abuse.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = whois.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = dsn.rfc-ignorant.org/$sender_address_domain
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
diff --git a/debian/debconf/conf.d/acl/00_exim4-config_header b/debian/debconf/conf.d/acl/00_exim4-config_header
new file mode 100644
index 0000000..76b017e
--- /dev/null
+++ b/debian/debconf/conf.d/acl/00_exim4-config_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# ACL CONFIGURATION #
+# Specifies access control lists for incoming SMTP mail #
+######################################################################
+begin acl
+
+
diff --git a/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny b/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny
new file mode 100644
index 0000000..5f985b2
--- /dev/null
+++ b/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny
@@ -0,0 +1,42 @@
+# This access control list is used to determine whitelisted senders and
+# hosts. It checks for CONFDIR/local_host_whitelist and
+# CONFDIR/local_sender_whitelist.
+#
+# It is meant to be used from some other acl entry.
+#
+# For example,
+# deny message = local blacklist example
+# !acl = acl_whitelist
+# dnslist = some.dns.list.example
+# will allow messages with envelope sender listed in local_sender_whitelist
+# or messages coming in from hosts listed in local_host_whitelist to be
+# accepted even if the delivering host is listed in the dns list.
+#
+# Whitelisting can also be configured by including negative items in the
+# black list. See /usr/share/doc/exim4-config/default_acl for details.
+#
+# If the files do not exist, the white list never matches, which is
+# the desired behaviour.
+
+acl_whitelist_local_deny:
+ accept hosts = ${if exists{CONFDIR/local_host_whitelist}\
+ {CONFDIR/local_host_whitelist}\
+ {}}
+ accept senders = ${if exists{CONFDIR/local_sender_whitelist}\
+ {CONFDIR/local_sender_whitelist}\
+ {}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt b/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt
new file mode 100644
index 0000000..bc89792
--- /dev/null
+++ b/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt
@@ -0,0 +1,117 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following line.
+ # require verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following lines.
+ # warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ # !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # There are no checks on DNS "black" lists because the domains that contain
+ # these lists are changing all the time. You can find examples of
+ # how to use dnslists in /usr/share/doc/exim4-config/examples/acl
+ #############################################################################
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
+
+
+
diff --git a/debian/debconf/conf.d/auth/00_exim4-config_header b/debian/debconf/conf.d/auth/00_exim4-config_header
new file mode 100644
index 0000000..c5f8fc1
--- /dev/null
+++ b/debian/debconf/conf.d/auth/00_exim4-config_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# AUTHENTICATION CONFIGURATION #
+######################################################################
+
+begin authenticators
+
+
diff --git a/debian/debconf/conf.d/auth/30_exim4-config_examples b/debian/debconf/conf.d/auth/30_exim4-config_examples
new file mode 100644
index 0000000..e4c76e3
--- /dev/null
+++ b/debian/debconf/conf.d/auth/30_exim4-config_examples
@@ -0,0 +1,63 @@
+# The examples below are for server side authentication; they allow two
+# styles of plain-text authentication against an CONFDIR/passwd file
+# which should have user IDs in the first column and crypted passwords
+# in the second. The columns need to be separated by ':'. For CRAM-MD5
+# exim needs access to the UNECRYPTED passwd - the example below assumes
+# it is avalable in the third column of CONFDIR/passwd
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $2
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# server_prompts = "Username:: : Password::"
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${extract{2}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}fail}}}
+# server_set_id = $1
+
+# Here is an example of CRAM-MD5 authentication against PostgreSQL:
+#
+# psqldb_auth:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${lookup pgsql{SELECT pw FROM users WHERE username = '${quote_pgsql:$1}'}{$value}fail}
+# server_set_id = $1
+
+# These examples below are the equivalent for client side authentication.
+# They get the passwords from CONFDIR/passwd.client. This file should have
+# three columns separated by colons, the first contains the name of the
+# mailserver to authenticate against, the second the username and the third
+# contains the password.
+
+### # example for CONFDIR/passwd.client
+### mail.server:blah:secret
+### # default entry:
+### *:bar:foo
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# client_send = "^${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}^${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# client_send = ": ${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} : ${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# client_name = ${extract{1}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+# client_secret = ${extract{2}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+
+
+
diff --git a/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs b/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs
new file mode 100644
index 0000000..8e7797c
--- /dev/null
+++ b/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs
@@ -0,0 +1,68 @@
+
+######################################################################
+# Runtime configuration file for Exim #
+######################################################################
+
+######################################################################
+# MAIN CONFIGURATION SETTINGS #
+######################################################################
+
+# Just for reference and scripts, on debian, the main binary is
+# installed as exim4
+exim_path = /usr/sbin/exim4
+
+# Macro defining the main configuration directory, we use no abolute
+# paths.
+CONFDIR = /etc/exim4
+
+# Let Exim autodetect this
+# primary_hostname =
+
+# The next three settings create two lists of domains and one list of hosts.
+# These lists are referred to later in this configuration using the syntax
+# +local_domains, +relay_to_domains, and +relay_from_hosts, respectively. They
+# are all colon-separated lists:
+
+# '@' refers to 'the name of the local host'
+
+### EXPANSION-begins ######################
+domainlist local_domains = DEBCONFlocal_domainsDEBCONF
+
+domainlist relay_to_domains = DEBCONFrelay_domainsDEBCONF
+
+hostlist relay_from_hosts = 127.0.0.1 : ::::1 : DEBCONFrelay_netsDEBCONF
+
+
+# Specify the domain you want to be added to all unqualified addresses
+# here. An unqualified address is one that does not contain an "@" character
+# followed by a domain. For example, "caesar@rome.example" is a fully qualified
+# address, but the string "caesar" (i.e. just a login name) is an unqualified
+# email address. Unqualified addresses are accepted only from local callers by
+# default. See the recipient_unqualified_hosts option if you want to permit
+# unqualified addresses from remote sources. If this option is not set, the
+# primary_hostname value is used for qualification.
+qualify_domain = DEBCONFvisiblenameDEBCONF
+
+# only used for satellite-system
+DCreadhost = DEBCONFreadhostDEBCONF
+
+#for satellite and smarthost-systems
+DCsmarthost = DEBCONFsmarthostDEBCONF
+
+# listen on all all interfaces?
+DEBCONFlistenonpublicDEBCONF
+### EXPANSION-ends ######################
+
+# The default delivery method. See CONFDIR/conf.d/transports/ for other
+# possibilities
+LOCAL_DELIVERY=mail_spool
+
+# The gecos field in /etc/passwd holds not only the name. see passwd(5).
+gecos_pattern = ^([^,:]*)
+gecos_name = $1
+
+
+# define a macro DCconfig_smarthost, DCconfig_satellite, etc. we need this
+# for .ifdef ... .endif
+DCconfig_DEBCONFconfigtypeDEBCONF = 1
+
diff --git a/debian/debconf/conf.d/main/02_exim4-config_options b/debian/debconf/conf.d/main/02_exim4-config_options
new file mode 100644
index 0000000..629c4c3
--- /dev/null
+++ b/debian/debconf/conf.d/main/02_exim4-config_options
@@ -0,0 +1,87 @@
+
+
+# This option defines the access control list that is run when an
+# SMTP RCPT command is received.
+#
+acl_smtp_rcpt = acl_check_rcpt
+
+# If you want unqualified recipient addresses to be qualified with a different
+# domain to unqualified sender addresses, specify the recipient domain here.
+# If this option is not set, the qualify_domain value is used.
+#
+# qualify_recipient =
+
+# The following line must be uncommented if you want Exim to recognize
+# addresses of the form "user@[10.11.12.13]" that is, with a "domain literal"
+# (an IP address) instead of a named domain. The RFCs still require this form,
+# but it makes little sense to permit mail to be sent to specific hosts by
+# their IP address in the modern Internet. This ancient format has been used
+# by those seeking to abuse hosts by using them for unwanted relaying. If you
+# really do want to support domain literals, uncomment the following line, and
+# see also the "domain_literal" router below.
+#
+# allow_domain_literals
+
+# The setting below causes Exim to do a reverse DNS lookup on all incoming
+# IP calls, in order to get the true host name. If you feel this is too
+# expensive, you can specify the networks for which a lookup is done, or
+# remove the setting entirely.
+#
+host_lookup = *
+
+# The settings below, which are actually the same as the defaults in the
+# code, cause Exim to make RFC 1413 (ident) callbacks for all incoming SMTP
+# calls. You can limit the hosts to which these calls are made, and/or change
+# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
+# are disabled. RFC 1413 calls are cheap and can provide useful information
+# for tracing problem messages, but some hosts and firewalls have problems
+# with them. This can result in a timeout instead of an immediate refused
+# connection, leading to delays on starting up an SMTP session.
+#
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# By default, Exim expects all envelope addresses to be fully qualified, that
+# is, they must contain both a local part and a domain. If you want to accept
+# unqualified addresses (just a local part) from certain hosts, you can specify
+# these hosts by setting one or both of
+#
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+#
+# to control sender and recipient addresses, respectively. When this is done,
+# unqualified addresses are qualified using the settings of qualify_domain
+# and/or qualify_recipient (see above).
+
+# If you want Exim to support the "percent hack" for certain domains,
+# uncomment the following line and provide a list of domains. The "percent
+# hack" is the feature by which mail addressed to x%y@z (where z is one of
+# the domains listed) is locally rerouted to x@y and sent on. If z is not one
+# of the "percent hack" domains, x%y is treated as an ordinary local part. This
+# hack is rarely needed nowadays; you should not enable it unless you are sure
+# that you really need it.
+#
+# percent_hack_domains =
+
+# When Exim can neither deliver a message nor return it to sender, it "freezes"
+# the delivery error message (aka "bounce message"). There are also other
+# circumstances in which messages get frozen. They will stay on the queue for
+# ever unless one of the following options is set.
+
+# This option unfreezes frozen bounce messages after two days, tries
+# once more to deliver them, and ignores any delivery failures.
+#
+ignore_bounce_errors_after = 2d
+
+# This option cancels (removes) frozen messages that are older than a week.
+#
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+# uucp should be able to set envelope-from to arbitrary values
+trusted_users = uucp
+
+# uncomment this to get the Debian version in the SMTP dialog
+# smtp_banner = "${primary_hostname} ESMTP Exim ${version_number} (Debian package DEBCONFpackageversionDEBCONF) ${tod_full}"
+
diff --git a/debian/debconf/conf.d/main/03_exim4-config_tlsoptions b/debian/debconf/conf.d/main/03_exim4-config_tlsoptions
new file mode 100644
index 0000000..9c07b50
--- /dev/null
+++ b/debian/debconf/conf.d/main/03_exim4-config_tlsoptions
@@ -0,0 +1,30 @@
+# Example for TLS/SSL configuration.
+
+# See /usr/share/doc/exim4-base/README.TLS* for explanations.
+
+# Defines what hosts to 'advertise' AUTHentication to when they connect
+# via TLS. Setting this to * will advertise this functionality to all
+# hosts that connect with TLS and this is a good default
+#
+# hostlist auth_over_tls_hosts = *
+
+# Defines that you want to log what cipher your exim and the peer's mailer
+# uses to encrypt the transaction. It also defines you want to log the 'DN'
+# (Distinguished Name) of the certificate of the peer.
+#
+# log_selector = +tls_cipher +tls_peerdn
+
+# Defines what hosts to 'advertise' STARTTLS functionality to. Setting this
+# to * will advertise to all hosts that connect with EHLO, and this is a
+# good default
+#
+# tls_advertise_hosts = *
+
+# Defines where your SSL-certificate and SSL-Private Key are located.
+# This requires a full path. The files pointed to must be kept 'secret'
+# and should be owned my root.mail mode 640 (-rw-r-----). Usually the
+# exim-gencert script takes care of these prerequisites.
+#
+# tls_certificate = CONFDIR/exim.crt
+# tls_privatekey = CONFDIR/exim.key
+
diff --git a/debian/debconf/conf.d/retry/00_exim4-config_header b/debian/debconf/conf.d/retry/00_exim4-config_header
new file mode 100644
index 0000000..e2bb4a4
--- /dev/null
+++ b/debian/debconf/conf.d/retry/00_exim4-config_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# RETRY CONFIGURATION #
+######################################################################
+
+begin retry
+
diff --git a/debian/debconf/conf.d/retry/30_exim4-config b/debian/debconf/conf.d/retry/30_exim4-config
new file mode 100644
index 0000000..0ade295
--- /dev/null
+++ b/debian/debconf/conf.d/retry/30_exim4-config
@@ -0,0 +1,14 @@
+
+# This single retry rule applies to all domains and all errors. It specifies
+# retries every 15 minutes for 2 hours, then increasing retry intervals,
+# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
+# hours, then retries every 6 hours until 4 days have passed since the first
+# failed delivery.
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+
+
diff --git a/debian/debconf/conf.d/rewrite/00_exim4-config_header b/debian/debconf/conf.d/rewrite/00_exim4-config_header
new file mode 100644
index 0000000..a32db17
--- /dev/null
+++ b/debian/debconf/conf.d/rewrite/00_exim4-config_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# REWRITE CONFIGURATION #
+######################################################################
+
+begin rewrite
+
diff --git a/debian/debconf/conf.d/router/00_exim4-config_header b/debian/debconf/conf.d/router/00_exim4-config_header
new file mode 100644
index 0000000..531e21f
--- /dev/null
+++ b/debian/debconf/conf.d/router/00_exim4-config_header
@@ -0,0 +1,11 @@
+
+######################################################################
+# ROUTERS CONFIGURATION #
+# Specifies how addresses are handled #
+######################################################################
+# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
+# An address is passed to each router in turn until it is accepted. #
+######################################################################
+
+begin routers
+
diff --git a/debian/debconf/conf.d/router/100_exim4-config_domain_literal b/debian/debconf/conf.d/router/100_exim4-config_domain_literal
new file mode 100644
index 0000000..c07a354
--- /dev/null
+++ b/debian/debconf/conf.d/router/100_exim4-config_domain_literal
@@ -0,0 +1,16 @@
+
+# This router routes to remote hosts over SMTP by explicit IP address,
+# when an email address is given in "domain literal" form, for example,
+# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
+# little-known these days, and has been exploited by evil people seeking
+# to abuse SMTP relays. Consequently it is commented out in the default
+# configuration. If you uncomment this router, you also need to uncomment
+# allow_domain_literals above, so that Exim can recognize the syntax of
+# domain literal addresses.
+
+# domain_literal:
+# debug_print = "R: domain_literal for $local_part@$domain"
+# driver = ipliteral
+# domains = ! +local_domains
+# transport = remote_smtp
+
diff --git a/debian/debconf/conf.d/router/200_exim4-config_primary b/debian/debconf/conf.d/router/200_exim4-config_primary
new file mode 100644
index 0000000..a448400
--- /dev/null
+++ b/debian/debconf/conf.d/router/200_exim4-config_primary
@@ -0,0 +1,51 @@
+# This file holds the primary router, responsible for nonlocal mails
+
+.ifdef DCconfig_internet
+# configtype=internet
+#
+# deliver mail directly to the recipient.
+dnslookup:
+ driver = dnslookup
+ domains = ! +local_domains
+ transport = remote_smtp
+ same_domain_copy_routing = yes
+ # ignore private rfc1918 and APIPA addresses
+ ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
+ 172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16
+ no_more
+
+.endif
+
+
+.ifdef DCconfig_local
+# configtype=local
+#
+# Stand-alone system, so generate an error for mail to a non-local domain
+nonlocal:
+ driver = redirect
+ allow_fail
+ data = :fail: Mailing to remote domains not supported
+ no_more
+ domains = ! +local_domains
+
+.endif
+
+
+.ifdef DCconfig_smarthost DCconfig_satellite
+# configtype=smarthost or configtype=satellite
+#
+# Send all non-local mail to a single other machine (smarthost).
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * DCsmarthost
+ host_find_failed = defer
+ same_domain_copy_routing = yes
+ no_more
+
+.endif
+
+
+# The "no_more" above means that all routers below here are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
diff --git a/debian/debconf/conf.d/router/300_exim4-config_real_local b/debian/debconf/conf.d/router/300_exim4-config_real_local
new file mode 100644
index 0000000..75fd115
--- /dev/null
+++ b/debian/debconf/conf.d/router/300_exim4-config_real_local
@@ -0,0 +1,8 @@
+
+real_local:
+ debug_print = "R: real_local for $local_part@$domain"
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = LOCAL_DELIVERY
+
diff --git a/debian/debconf/conf.d/router/400_exim4-config_system_aliases b/debian/debconf/conf.d/router/400_exim4-config_system_aliases
new file mode 100644
index 0000000..cf88375
--- /dev/null
+++ b/debian/debconf/conf.d/router/400_exim4-config_system_aliases
@@ -0,0 +1,27 @@
+
+# This router handles aliasing using a traditional /etc/aliases file.
+#
+##### NB You must ensure that /etc/aliases exists. It used to be the case
+##### NB that every Unix had that file, because it was the Sendmail default.
+##### NB These days, there are systems that don't have it. Your aliases
+##### NB file should at least contain an alias for "postmaster".
+#
+# If any of your aliases expand to pipes or files or directories you will
+# need to set up a user and a group for these deliveries to run under. You
+# can do this by uncommenting the "user" option below (changing the user name
+# as appropriate) and adding a "group" option if necessary. Alternatively, you
+# can specify "user" on the transports that are used. Note that the transports
+# listed below are the same as are used for .forward files; you might want
+# to set up different ones for pipe and file deliveries from aliases.
+#
+system_aliases:
+ debug_print = "R: system_aliases for $local_part@$domain"
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
+# user = list
+ file_transport = address_file
+ pipe_transport = address_pipe
+# directory_transport = address_directory
+
diff --git a/debian/debconf/conf.d/router/500_exim4-config_hubuser b/debian/debconf/conf.d/router/500_exim4-config_hubuser
new file mode 100644
index 0000000..f61f5f1
--- /dev/null
+++ b/debian/debconf/conf.d/router/500_exim4-config_hubuser
@@ -0,0 +1,16 @@
+
+.ifdef DCconfig_smarthost DCconfig_satellite
+# This router is only used for configtype=satellite.
+# It takes care to route all mail targetted to <somelocaluser@this.machine>
+# to the host where we read our mail
+#
+hub_user:
+ condition = "${if eq {DEBCONFconfigtypeDEBCONF}{satellite} {true}{false}}"
+ debug_print = "R: hub_user for $local_part@$domain"
+ driver = redirect
+ data = ${local_part}@DCreadhost
+ check_local_user
+
+.endif
+
+
diff --git a/debian/debconf/conf.d/router/600_exim4-config_userforward b/debian/debconf/conf.d/router/600_exim4-config_userforward
new file mode 100644
index 0000000..4dcfb15
--- /dev/null
+++ b/debian/debconf/conf.d/router/600_exim4-config_userforward
@@ -0,0 +1,46 @@
+
+# This router handles forwarding using traditional .forward files in users'
+# home directories. If you want it also to allow mail filtering when a forward
+# file starts with the string "# Exim filter", uncomment the "allow_filter"
+# option.
+#
+# The no_verify setting means that this router is skipped when Exim is
+# verifying addresses. Similarly, no_expn means that this router is skipped if
+# Exim is processing an EXPN command.
+#
+# The check_ancestor option means that if the forward file generates an
+# address that is an ancestor of the current one, the current one gets
+# passed on instead. This covers the case where A is aliased to B and B
+# has a .forward file pointing to A.
+#
+# The four transports specified at the end are those that are used when
+# forwarding generates a direct delivery to a directory, or a file, or to a
+# pipe, or sets up an auto-reply, respectively.
+#
+userforward:
+ debug_print = "R: userforward for $local_part@$domain"
+ driver = redirect
+ check_local_user
+ file = $home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+# allow_filter
+ directory_transport = address_directory
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+ skip_syntax_errors
+ syntax_errors_to = real-$local_part@$domain
+ syntax_errors_text = \
+ This is an automatically generated message. An error has\n\
+ been found in your .forward file. Details of the error are\n\
+ reported below. While this error persists, you will receive\n\
+ a copy of this message for every message that is addressed\n\
+ to you. If your .forward file is a filter file, or if it is\n\
+ a non-filter file containing no valid forwarding addresses,\n\
+ a copy of each incoming message will be put in your normal\n\
+ mailbox. If a non-filter file contains at least one valid\n\
+ forwarding address, forwarding to the valid addresses will\n\
+ happen, and those will be the only deliveries that occur.
+
diff --git a/debian/debconf/conf.d/router/700_exim4-config_procmail b/debian/debconf/conf.d/router/700_exim4-config_procmail
new file mode 100644
index 0000000..7a56894
--- /dev/null
+++ b/debian/debconf/conf.d/router/700_exim4-config_procmail
@@ -0,0 +1,10 @@
+
+procmail:
+ debug_print = "R: procmail for $local_part@$domain"
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
diff --git a/debian/debconf/conf.d/router/800_exim4-config_maildrop b/debian/debconf/conf.d/router/800_exim4-config_maildrop
new file mode 100644
index 0000000..e6fedb6
--- /dev/null
+++ b/debian/debconf/conf.d/router/800_exim4-config_maildrop
@@ -0,0 +1,11 @@
+
+# Use maildrop
+# maildrop:
+# debug_print = "R: maildrop for $local_part@$domain"
+# driver = accept
+# check_local_user
+# transport = maildrop_pipe
+# require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop
+# no_verify
+# no_expn
+
diff --git a/debian/debconf/conf.d/router/900_exim4-config_local_user b/debian/debconf/conf.d/router/900_exim4-config_local_user
new file mode 100644
index 0000000..6a97a65
--- /dev/null
+++ b/debian/debconf/conf.d/router/900_exim4-config_local_user
@@ -0,0 +1,9 @@
+
+local_user:
+ debug_print = "R: local_user for $local_part@$domain"
+ driver = accept
+ check_local_user
+ transport = LOCAL_DELIVERY
+
+
+
diff --git a/debian/debconf/conf.d/transport/00_exim4-config_header b/debian/debconf/conf.d/transport/00_exim4-config_header
new file mode 100644
index 0000000..48e45da
--- /dev/null
+++ b/debian/debconf/conf.d/transport/00_exim4-config_header
@@ -0,0 +1,13 @@
+
+######################################################################
+# TRANSPORTS CONFIGURATION #
+######################################################################
+# ORDER DOES NOT MATTER #
+# Only one appropriate transport is called for each delivery. #
+######################################################################
+
+# A transport is used only when referenced from a router that successfully
+# handles an address.
+
+begin transports
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_file b/debian/debconf/conf.d/transport/30_exim4-config_address_file
new file mode 100644
index 0000000..82b55e2
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_file
@@ -0,0 +1,11 @@
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliasing or forwarding.
+#
+address_file:
+ debug_print = "T: address_file for $local_part@$domain"
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_pipe b/debian/debconf/conf.d/transport/30_exim4-config_address_pipe
new file mode 100644
index 0000000..5b66a2d
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_pipe
@@ -0,0 +1,14 @@
+
+# This transport is used for handling pipe deliveries generated by alias or
+# .forward files. If the pipe generates any standard output, it is returned
+# to the sender of the message as a delivery error. Set return_fail_output
+# instead of return_output if you want this to happen only when the pipe fails
+# to complete normally. You can set different transports for aliases and
+# forwards if you want to - see the references to address_pipe in the routers
+# section above.
+#
+address_pipe:
+ debug_print = "T: address_pipe for $local_part@$domain"
+ driver = pipe
+ return_output
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_reply b/debian/debconf/conf.d/transport/30_exim4-config_address_reply
new file mode 100644
index 0000000..b2b8862
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_reply
@@ -0,0 +1,8 @@
+
+# This transport is used for handling autoreplies generated by the filtering
+# option of the userforward router.
+#
+address_reply:
+ debug_print = "T: autoreply for $local_part@$domain"
+ driver = autoreply
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_mail_spool b/debian/debconf/conf.d/transport/30_exim4-config_mail_spool
new file mode 100644
index 0000000..9ce7365
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_mail_spool
@@ -0,0 +1,14 @@
+
+# This transport is used for local delivery to user mailboxes in traditional
+# BSD mailbox format.
+#
+mail_spool:
+ debug_print = "T: appendfile for $local_part@$domain"
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_maildir_home b/debian/debconf/conf.d/transport/30_exim4-config_maildir_home
new file mode 100644
index 0000000..33947a3
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_maildir_home
@@ -0,0 +1,11 @@
+
+# Use this instead of mail_spool if you want to to deliver to Maildir in
+# home-directory - change the definition of LOCAL_DELIVERY
+#
+maildir_home:
+ debug_print = "T: maildir_home for $local_part@$domain"
+ driver = appendfile
+ directory = $home/Maildir
+ maildir_format
+ mode = 0600
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe b/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe
new file mode 100644
index 0000000..0ba27bc
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe
@@ -0,0 +1,10 @@
+
+maildrop_pipe:
+ debug_print = "T: maildrop_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe b/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe
new file mode 100644
index 0000000..5fb03ff
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe
@@ -0,0 +1,10 @@
+
+procmail_pipe:
+ debug_print = "T: procmail_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp b/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp
new file mode 100644
index 0000000..0868953
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp
@@ -0,0 +1,11 @@
+
+# This transport is used for delivering messages over SMTP connections.
+remote_smtp:
+ debug_print = "T: remote_smtp for $local_part@$domain"
+ driver = smtp
+# hosts_try_auth = DCsmarthost
+
+# To use SMTP AUTH when sending to your smarthost, uncomment the above line,
+# and uncomment and customize also the example
+# client-side authenticators at the bottom of the file
+
diff --git a/debian/debconf/conf.d/transport/35_exim4-config_address_directory b/debian/debconf/conf.d/transport/35_exim4-config_address_directory
new file mode 100644
index 0000000..94541a4
--- /dev/null
+++ b/debian/debconf/conf.d/transport/35_exim4-config_address_directory
@@ -0,0 +1,13 @@
+# This transport is used for handling file addresses generated by alias
+# or .forward files if the path ends in "/", which causes it to be treated
+# as a directory name rather than a file name.
+
+address_directory:
+ debug_print = "T: address_directory for $local_part@$domain"
+ driver = appendfile
+ envelope_to_add = true
+ return_path_add = true
+ check_string = ""
+ escape_string = ""
+ maildir_format
+
diff --git a/debian/debconf/default_acl b/debian/debconf/default_acl
new file mode 100644
index 0000000..452615c
--- /dev/null
+++ b/debian/debconf/default_acl
@@ -0,0 +1,48 @@
+Access Control in the default configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The Debian exim 4 package comes with a default configuration that
+allows flexible access control and blacklisting of sites and hosts.
+The acls involved can be found in /etc/exim4/conf.d/acl with the file
+names 20_exim4-config_whitelist_local_deny and 30_exim4-config_check_rcpt,
+thus all rejections of messages due to this mechanism happen at RCPT
+time. Local configuration of the mechanisms happen through data files
+in /etc/exim4, so there is normally no need to change the files in the
+acl subdirectory.
+
+/etc/exim4/local_sender_blacklist contains a list of envelope senders
+whose messages will be denied with the error message "locally
+blacklisted". This is a full exim 4 address list, and all available
+features can be used. This includes negative items, and so it is
+possible to exclude addresses from being blacklisted. For convenience,
+as an additional method to whitelist addresses from being blocked, an
+explicit whitelist is read in from /etc/exim4/local_sender_whitelist.
+Entries in the whitelist override corresponding blacklist entries.
+
+In the blacklist, the trick is to read a line break as "or" if it
+follows a positive item, and as "and" if it follows a negative item.
+
+For example, a /etc/exim4/local_sender_blacklist
+
+domain1.example
+!local@domain2.example
+domain2.example
+domain3.example
+
+Exim just evaluates left to right (or up-down in the file listing
+context), so you don't get the same kind of operator binding as in a
+programming language.
+
+/etc/exim4/local_host_blacklist contains a list of IP addresses,
+networks and host names whose messages will be denied with the error
+message "locally blacklisted". This is a full exim 4 host list. Again,
+negative items can be used here, and there is also an explicit
+whitelist read in from /etc/exim4/local_host_whitelist, and whitelist
+entries override blacklistings.
+
+The example access list shipped in
+/usr/share/doc/exim4-config/examples/acl/30_exim4-config_example_check_rcpt
+includes a bunch of dnslists configured to warn and/or deny incoming
+messages. Some of these lists have a corresponding whitelist, read
+in from /etc/exim4/local_$DNSLISTNAME_whitelist which allows the local
+administrator to override dnslist entries for domains or IP addresses
+that should be able to send mail despite the dnslist entry.
diff --git a/debian/debconf/update-exim4.conf b/debian/debconf/update-exim4.conf
new file mode 100644
index 0000000..2039b35
--- /dev/null
+++ b/debian/debconf/update-exim4.conf
@@ -0,0 +1,402 @@
+#!/bin/sh
+# update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated
+
+
+# exit immediately if /etc/exim4/exim4.conf exists
+[ -e /etc/exim4/exim4.conf ] && exit 0
+
+UPEX4C_confd="/etc/exim4/conf.d"
+UPEX4C_sections="main acl router transport retry rewrite auth"
+EXIM="/usr/sbin/exim4"
+
+[ -d /var/lib/exim4/ ] && \
+[ -d ${UPEX4C_confd} ] || \
+{ printf "$0: Error, no ${UPEX4C_confd} or missing\n/var/lib/exim4/, exiting.\n" 1>&2 ; exit 1 ; }
+
+. /etc/exim4/update-exim4.conf.conf || \
+{ printf "$0: Error, no /etc/exim4/update-exim4.conf.conf, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+UPEX4C_verbose=no
+UPEX4C_comments=no
+UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated
+UPEX4C_outputfile="${UPEX4C_autoconfigfile}"
+UPEX4C_version=""
+
+usage() {
+cat <<EOF
+$0 - Generate exim4 configuration files
+ Options:
+ -v|--verbose - Enable verbose mode, tell about ignored files
+ -h|--help - Show this message
+ --keepcomments - Do not remove comment lines
+ --removecomments - Remove comment lines
+ -o|--output file - write output to file instead of ${UPEX4C_outputfile}
+EOF
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4.conf \
+ -l keepcomments,removecomments,output:,help,verbose -- \
+ +o:vh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ UPEX4C_verbose=yes
+ ;;
+ --keepcomments)
+ UPEX4C_comments=yes
+ ;;
+ --removecomments)
+ UPEX4C_comments=no
+ ;;
+ -o|--output)
+ shift
+ UPEX4C_outputfile="$1"
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments allowed" >&2
+ usage >&2
+ exit 1
+fi
+
+mailname=`cat /etc/mailname | head`
+
+# add localhost and mailname, get rid of spaces and trailing colons
+local_domains="`echo ${mailname}:localhost:${dc_other_hostnames} | \
+ sed -e 'sÄ[: ]*$ÄÄ' -e 'sÄ *ÄÄ'`"
+
+TEMPLATEFILE=/etc/exim4/exim4.conf.template
+
+UPEX4C_internal_tmp=`tempfile -m600 -p ex4`
+
+trap "rm -f ${UPEX4C_internal_tmp}" 0 2 15
+
+# test if $1 is user modified, print message
+unmodifandmessage() {
+ [ "$#" -eq 1 ] || return 1
+ if unmodified "$1" ; then
+ return 0
+ else
+ [ "${UPEX4C_verbose}" = "yes" ] && \
+ echo "ignoring user modified file $1"
+ return 1
+ fi
+}
+
+# 0123456789abcdef0123456789abcdef
+generatemasquerade() {
+ UPEX4C_internal_currfile="${UPEX4C_confd}/rewrite/35_exim4-config_masquerade"
+ unmodifandmessage "${UPEX4C_internal_currfile}" || return
+cat << EOF > "${UPEX4C_internal_tmp}"
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# This is an md5sum.
+#######################################
+# WARNING WARNING WARNING WARNING
+# This file is dynamically generated by update-exim4.conf(8) using the data
+# in /etc/exim4/update-exim4.conf.conf.
+
+# If you make _any_ changes to it update-exim4.conf(8) won't update it any
+# more! - Especially it will be used _even_ if you change to a different
+# conftype.
+
+# If you just want to ADD your additional rewriting rules put them in a
+# different file, for example CONFDIR/conf.d/rewrite/50_local_mywrite
+##################
+EOF
+ if [ "$1" = "yes" ] ; then
+ for domain in `echo "${local_domains}" | sed -e 's/:/ /g'` ; do
+ # mailfuerpostmaster=fuser
+ #fuser=sysmail
+ #echo '^(?i)(root|postmaster|mailer-daemon)@'"$domain" '${local_part}@in.limbo Ffr'
+ echo '*@'"$domain" '${local_part}@'"${dc_readhost} Ffr"
+ done >> "${UPEX4C_internal_tmp}"
+ #echo '*@in.limbo' "$fuser"'@'"${dc_readhost} Ffr" >> "${UPEX4C_internal_tmp}"
+ fi
+ UPEX4C_internal_md5=`cat "${UPEX4C_internal_tmp}" | md5sum | cut -d\ -f1`
+ { echo "# ${UPEX4C_internal_md5}" ; cat "${UPEX4C_internal_tmp}" ; } > \
+ "${UPEX4C_internal_currfile}"
+}
+
+# generate code for evaluation of email_addresses
+generateemailaddresses() {
+ UPEX4C_internal_currfile="${UPEX4C_confd}/rewrite/30_exim4-config_email-addresses"
+ unmodifandmessage "${UPEX4C_internal_currfile}" || return
+cat << EOF > "${UPEX4C_internal_tmp}"
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# This is an md5sum.
+#######################################
+# WARNING WARNING WARNING WARNING
+# This file is dynamically generated by update-exim4.conf(8) using the data
+# in /etc/exim4/update-exim4.conf.conf.
+
+# If you make _any_ changes to it update-exim4.conf(8) won't update it any
+# more! - Especially it will be used _even_ if you change to a different
+# conftype.
+
+# If you just want to ADD your additional rewriting rules put them in a
+# different file, for example CONFDIR/conf.d/rewrite/50_local_mywrite
+##################
+
+# This rewriting rule is particularly useful for dialup users who
+# don't have their own domain, but could be useful for anyone.
+# It looks up the real address of all local users in a file
+
+# it needs to be generated dynamically for i in local_domains
+#
+EOF
+ for domain in `echo ${local_domains} | sed -e 's/:/ /g'` ; do
+ echo '*@'"$domain" '${lookup{${local_part}}lsearch{CONFDIR/email-addresses}{$value}fail} Ffrs'
+ done >> "${UPEX4C_internal_tmp}"
+ UPEX4C_internal_md5=`cat "${UPEX4C_internal_tmp}" | md5sum | cut -d\ -f1`
+ { echo "# ${UPEX4C_internal_md5}" ; cat "${UPEX4C_internal_tmp}" ; } > \
+ "${UPEX4C_internal_currfile}"
+}
+
+
+# generate "never_users=root" option if root is aliased somewhere.
+gen_neverusers(){
+ UPEX4C_internal_currfile="${UPEX4C_confd}/main/03_exim4-config_neverusers"
+ unmodifandmessage "${UPEX4C_internal_currfile}" || return
+ cat << EOF > "${UPEX4C_internal_tmp}"
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# This is an md5sum.
+#######################################
+# WARNING WARNING WARNING WARNING
+# This file is dynamically generated by update-exim4.conf(8) depending on
+# the data in /etc/aliases. - If it finds an alias for root it'll
+# set 'never_users=root' otherwise not.
+
+# If you make _any_ changes to this file update-exim4.conf(8) won't
+# update it any more!
+##################
+# No deliveries will ever be run under the uids of these users (a colon-
+# separated list). An attempt to do so causes a panic error to be logged, and
+# the delivery to be deferred. This is a paranoic safety catch. Note that the
+# default setting means you cannot deliver mail addressed to root as if it
+# were a normal user. This isn't usually a problem, as most sites have an alias
+# for root that redirects such mail to a human administrator.
+#
+EOF
+ if [ -r /etc/aliases ] &&\
+ grep -q '^root:[[:space:]]*[^[:space:]]' /etc/aliases; then
+ echo 'never_users = root' >> "${UPEX4C_internal_tmp}"
+ else
+ echo '#never_users = root' >> "${UPEX4C_internal_tmp}"
+ fi
+ UPEX4C_internal_md5=`cat "${UPEX4C_internal_tmp}" | md5sum | cut -d\ -f1`
+ { echo "# ${UPEX4C_internal_md5}" ; cat "${UPEX4C_internal_tmp}" ; } > \
+ "${UPEX4C_internal_currfile}"
+}
+
+# use this as template for new gen_something functions.
+UPEX4C_skeleton() {
+ UPEX4C_internal_currfile="${UPEX4C_confd}/foo/bar"
+ unmodifandmessage "${UPEX4C_internal_currfile}" || return
+ cat << EOF > "${UPEX4C_internal_tmp}"
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# This is an md5sum.
+#######################################
+# WARNING WARNING WARNING WARNING
+# This file is dynamically generated by update-exim4.conf(8) using the data
+# in /etc/exim4/update-exim4.conf.conf.
+EOF
+# insert more code that appends to ${UPEX4C_internal_tmp}
+ UPEX4C_internal_md5=`cat "${UPEX4C_internal_tmp}" | md5sum | cut -d\ -f1`
+ { echo "# ${UPEX4C_internal_md5}" ; cat "${UPEX4C_internal_tmp}" ; } > \
+ "${UPEX4C_internal_currfile}"
+}
+
+# run-parts emulation, stolen from Branden's /etc/X11/Xsession
+# Addition: Use file.rul instead if file if it exists.
+run_parts () {
+ # reset LC_COLLATE
+ unset LANG LC_COLLATE LC_ALL
+
+ if [ -z "$1" ]; then
+ errormessage "$0: internal run_parts called without an argument"
+ fi
+ if [ ! -d "$1" ]; then
+ errormessage "$0: internal run_parts called, but $1 does not exist or is not a directory."
+ fi
+ for F in $(ls $1); do
+ if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
+ if [ -f "$1/$F" ] ; then
+ if [ -f "$1/${F}.rul" ] ; then
+ echo "$1/${F}.rul"
+ else
+ echo "$1/$F"
+ fi
+ fi
+ fi
+ done;
+}
+# also from Branden
+errormessage () {
+ # pretty-print messages of arbitrary length (no trailing newline)
+ echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
+}
+
+# check whether the file given as argument was modified by the user
+# by comparing the md5sum in the first line with the real one.
+unmodified() {
+ [ "$#" -eq 1 ] || return 1
+ [ -f "$1" ] || return 1
+ # first line, without the leading '# '.
+ checksum_current=`sed -n -e '1s/^# //' -e '1p;1q' "$1"`
+
+ # md5sum over the rest of the file.
+ # some versions of md5sum produce
+ # '68b329da9893e34099c7d8ad5cb9c940 -' others don't add the dash.
+ # '68b329da9893e34099c7d8ad5cb9c940'
+ checksum_new=`sed -n '2,$p' "$1" | md5sum | cut -d\ -f1`
+
+ if [ "${checksum_current}" = "${checksum_new}" ] ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# update the md5sum given in the first line, return an error if the file does
+# not have an md5sum header in the first line.
+updatechecksumheader() {
+ [ "$#" -eq 1 ] || return 1
+ [ -f "$1" ] || return 1
+ # check for correct format "# 76a51391da4a0687697224a124b71a17"
+ sed -n -e '1p;1q' "$1" | grep -q -E '^# [[:xdigit:]]{32}$' || \
+ { echo "incorrect format" ; return 1 ;}
+
+ NEWFILE=`tempfile -m600 -p ex4`
+ sed -n '2,$p' "$1" | md5sum | cut -d\ -f1 | sed '1s/^/# /' > $NEWFILE
+ sed -n '2,$p' "$1" >> $NEWFILE
+ mv -f $NEWFILE "$1"
+}
+
+gentmpconf() {
+ touch ${UPEX4C_outputfile}.tmp
+ #chown --reference=${TEMPLATEFILE} \
+ # ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ #chmod --reference=${TEMPLATEFILE} \
+ # ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ chown root:mail ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chown root:mail ${UPEX4C_outputfile}
+ chmod 640 ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chmod 640 ${UPEX4C_outputfile}
+}
+
+removecomments(){
+ if [ "x${UPEX4C_comments}" = "xno" ] ; then
+ egrep -v '^[[:space:]]*#' | sed -e '/^$/N;/\n$/D' ;
+ else
+ cat
+ fi
+}
+
+case "$dc_eximconfig_configtype" in
+ satellite)
+ # hide mailname with rewriting rules
+ generatemasquerade yes
+ ;;
+ local)
+ generatemasquerade no
+ ;;
+ smarthost|internet)
+ generatemasquerade no
+ ;;
+ none|*)
+ generatemasquerade no
+ gentmpconf
+ for i in ${UPEX4C_sections} ; do
+ cat `run_parts ${UPEX4C_confd}/$i`
+ done | \
+ removecomments \
+ sed -e "s/DEBCONF[^D][^E][^B].*DEBCONF//g" \
+ > ${UPEX4C_outputfile}.tmp
+ mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ chmod ${CFILEMODE} ${UPEX4C_outputfile}
+ [ "${UPEX4C_verbose}" = "yes" ] && \
+ echo "Not substituting variables since conftype is none (or other)"
+ exit 0
+ ;;
+esac
+
+case "${dc_listenonpublic}" in
+ false)
+ listenonpublic='local_interfaces = 127.0.0.1'
+ ;;
+ true|*)
+ listenonpublic='# if local_interfaces is unset, we listen on all interfaces'
+ ;;
+esac
+
+gen_neverusers
+generateemailaddresses
+gentmpconf
+
+cat << EOF > ${UPEX4C_outputfile}.tmp
+#########
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# this file is generated dynamically from the files in
+# CONFDIR/conf.d/ and /etc/exim4/update-exim4.conf.conf
+# Any changes you make here will be lost.
+# See /usr/share/doc/exim4-base/README.Debian and update-exim4.conf(8)
+# for instructions of customization.
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+#########
+EOF
+
+for i in ${UPEX4C_sections} ; do
+ echo "# begin processing $i #####"
+ cat `run_parts ${UPEX4C_confd}/$i`
+ echo "# end of $i #####"
+done | \
+removecomments | \
+sed -e "sÄDEBCONFlocal_domainsDEBCONFÄ@:${local_domains}Äg" \
+ -e "sÄDEBCONFrelay_domainsDEBCONFÄ${dc_relay_domains}Äg" \
+ -e "sÄDEBCONFrelay_netsDEBCONFÄ${dc_relay_nets}Äg" \
+ -e "sÄDEBCONFvisiblenameDEBCONFÄ${mailname}Äg" \
+ -e "sÄDEBCONFreadhostDEBCONFÄ${dc_readhost}Äg" \
+ -e "sÄDEBCONFsmarthostDEBCONFÄ${dc_smarthost}Äg" \
+ -e "sÄDEBCONFconfigtypeDEBCONFÄ${dc_eximconfig_configtype}Äg" \
+ -e "sÄDEBCONFlistenonpublicDEBCONFÄ${listenonpublic}Äg" \
+ -e "sÄDEBCONFpackageversionDEBCONFÄ${UPEX4C_version}Äg" \
+ >> ${UPEX4C_outputfile}.tmp
+
+# test validity if called without -o
+if [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] ; then
+ if ! ${EXIM} -C "${UPEX4C_outputfile}.tmp" -bV > /dev/null ; then
+ errormessage "Invalid new configfile ${UPEX4C_outputfile}.tmp"
+ errormessage "not installing ${UPEX4C_outputfile}.tmp to ${UPEX4C_outputfile}"
+ exit 1
+ fi
+fi
+
+mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+chmod ${CFILEMODE} ${UPEX4C_outputfile}
diff --git a/debian/email-addresses b/debian/email-addresses
new file mode 100644
index 0000000..8e4f2cb
--- /dev/null
+++ b/debian/email-addresses
@@ -0,0 +1,9 @@
+# This is /etc/email-addresses. It is part of the exim package
+#
+# This file contains email addresses to use for outgoing mail. Any local
+# part not in here will be qualified by the system domain as normal.
+#
+# It should contain lines of the form:
+#
+#user: someone@isp.com
+#otheruser: someoneelse@anotherisp.com
diff --git a/debian/exim-gencert b/debian/exim-gencert
new file mode 100644
index 0000000..caf75f1
--- /dev/null
+++ b/debian/exim-gencert
@@ -0,0 +1,74 @@
+#!/bin/sh -e
+
+DIR=/etc/exim4
+CERT=$DIR/exim.crt
+KEY=$DIR/exim.key
+
+# This exim-tls was built with GnuTLS which does not support dhparams
+# from a file. See README.Debian in /usr/share/doc/exim-tls
+#DH=$DIR/exim.dhparam
+
+if ! which openssl > /dev/null ;then
+ echo "$0: openssl is not installed, exiting" 1>&2
+ exit 1
+fi
+
+# valid for three years
+DAYS=1095
+
+if [ "$1" != "--force" -a -f $CERT -a -f $KEY ]; then
+ echo "[*] $CERT and $KEY exists!"
+ echo " Use \"$0 --force\" to force generation!"
+ exit 0
+fi
+
+if [ "$1" = "--force" ]; then
+ shift
+fi
+
+#SSLEAY=/tmp/exim.ssleay.$$.cnf
+SSLEAY=`tempfile -m600 -pexi`
+
+cat > $SSLEAY <<EOM
+RANDFILE = ~/.rnd
+[ req ]
+default_bits = 1024
+default_keyfile = exim.key
+distinguished_name = req_distinguished_name
+[ req_distinguished_name ]
+countryName = Country Code (2 letters)
+countryName_default = US
+countryName_min = 2
+countryName_max = 2
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Some-State
+localityName = Locality Name (eg, city)
+organizationName = Organization Name (eg, company; recommended)
+organizationName_max = 64
+organizationalUnitName = Organizational Unit Name (eg, section)
+organizationalUnitName_max = 64
+commonName = Server name (eg. ssl.domain.tld; required!!!)
+commonName_max = 64
+emailAddress = Email Address
+emailAddress_max = 40
+EOM
+
+echo "[*] Creating a self signed SSL certificate for Exim!"
+echo " This may be sufficient to establish encrypted connections but for"
+echo " secure identification you need to buy a real certificate!"
+echo " "
+echo " Please enter the hostname of your MTA at the Common Name (CN) prompt!"
+echo " "
+
+openssl req -config $SSLEAY -x509 -newkey rsa:1024 -keyout $KEY -out $CERT -days $DAYS -nodes
+#see README.Debian# openssl dhparam -check -text -5 512 -out $DH
+rm -f $SSLEAY
+
+chown root.mail $KEY $CERT $DH
+chmod 640 $KEY $CERT $DH
+
+echo "[*] Done generating self signed certificates for exim!"
+echo " Refer to the documentation and example configuration files"
+echo " over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS"
+echo " support in your mail transfer agent."
+
diff --git a/debian/exim4-base.config b/debian/exim4-base.config
new file mode 100644
index 0000000..1e97fd1
--- /dev/null
+++ b/debian/exim4-base.config
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+. /usr/share/debconf/confmodule
+
+if [ -d /var/spool/exim/input ] ; then
+ # With "head -1" this shouldn't be expensive.
+ oldmails=`find /var/spool/exim/input/ -type f -print | head -1`
+fi
+
+if [ "x${oldmails}" != "x" ] ; then
+ db_version 2.0
+ db_input medium exim4/move_exim3_spool || true
+ db_go || true
+fi
diff --git a/debian/exim4-base.cron.daily b/debian/exim4-base.cron.daily
new file mode 100644
index 0000000..9cc30b3
--- /dev/null
+++ b/debian/exim4-base.cron.daily
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Only do anything if exim4 is actually installed
+if [ ! -x /usr/lib/exim4/exim4 ]; then
+ exit 0
+fi
+
+# Uncomment the following lines to get daily e-mail reports
+#if [ -x /usr/sbin/eximstats ]; then
+# eximstats </var/log/exim4/mainlog \
+# | mail postmaster -s"$(hostname) Daily email activity report"
+#fi
+
+
+# run tidydb as mail:mail.
+alias exim_tidydb_as_mail='start-stop-daemon --start --exec /usr/sbin/exim_tidydb --chuid mail:mail --'
+
+if [ -x /usr/sbin/exim_tidydb ]; then
+ cd /var/spool/exim4/db || exit 1
+ for file in *; do
+ if echo $file | grep \\.lockfile >/dev/null 2>&1; then
+ : # skip lock files
+ else
+ exim_tidydb_as_mail /var/spool/exim4 $file >/dev/null
+ fi
+ done
+fi
diff --git a/debian/exim4-base.dirs b/debian/exim4-base.dirs
new file mode 100644
index 0000000..a675d3f
--- /dev/null
+++ b/debian/exim4-base.dirs
@@ -0,0 +1,6 @@
+/usr/sbin
+/usr/bin
+/usr/share/man/man8
+/etc/cron.daily
+/etc/cron.d
+/etc/logrotate.d
diff --git a/debian/exim4-base.doc-base.filter b/debian/exim4-base.doc-base.filter
new file mode 100644
index 0000000..993e82c
--- /dev/null
+++ b/debian/exim4-base.doc-base.filter
@@ -0,0 +1,8 @@
+Document: exim4-filter-txt
+Title: Exim's interface to mail filtering
+Author: Various
+Abstract: Description of the user interface to Exim's in-built mail filtering facility. This is the text version.
+Section: Apps/Net
+
+Format: text
+Files: /usr/share/doc/exim4-base/filter.txt.gz
diff --git a/debian/exim4-base.doc-base.spec b/debian/exim4-base.doc-base.spec
new file mode 100644
index 0000000..da0b5f8
--- /dev/null
+++ b/debian/exim4-base.doc-base.spec
@@ -0,0 +1,8 @@
+Document: exim4-spec-txt
+Title: Exim specification
+Author: Various
+Abstract: Exim reference manual. This is the text version.
+Section: Apps/Net
+
+Format: text
+Files: /usr/share/doc/exim4-base/spec.txt.gz
diff --git a/debian/exim4-base.docs b/debian/exim4-base.docs
new file mode 100644
index 0000000..ada6436
--- /dev/null
+++ b/debian/exim4-base.docs
@@ -0,0 +1,14 @@
+NOTICE
+ACKNOWLEDGMENTS
+doc/README
+README.UPDATING
+doc/dbm.discuss.txt
+doc/Exim3.upgrade
+doc/Exim4.upgrade
+doc/filter.txt
+doc/NewStuff
+doc/OptionLists.txt
+doc/pcrepattern.txt
+doc/spec.txt
+debian/README.TLS
+debian/changelog.Debian.old
diff --git a/debian/exim4-base.examples b/debian/exim4-base.examples
new file mode 100644
index 0000000..52da986
--- /dev/null
+++ b/debian/exim4-base.examples
@@ -0,0 +1,2 @@
+util/cramtest.pl util/logargs.sh util/unknownuser.sh
+debian/exim-gencert
diff --git a/debian/exim4-base.init b/debian/exim4-base.init
new file mode 100644
index 0000000..b7aeb4a
--- /dev/null
+++ b/debian/exim4-base.init
@@ -0,0 +1,145 @@
+#! /bin/sh
+# /etc/init.d/exim4
+#
+# Written by Miquel van Smoorenburg <miquels@drinkel.ow.org>.
+# Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+# Modified for exim by Tim Cutts <timc@chiark.greenend.org.uk>
+# Modified for exim4 by Andreas Metzler <ametzler@downhill.at.eu.org>
+
+set -e
+
+upex4conf() {
+ UPEX4CONF="update-exim4.conf"
+ OLDIFS="$IFS"
+ IFS=:
+ for p in $PATH; do
+ if [ -x "$p/$UPEX4CONF" ]; then
+ IFS="$OLDIFS"
+ $p/$UPEX4CONF
+ return 0
+ fi
+ done
+ IFS="$OLDIFS"
+}
+
+# Exit if exim runs from /etc/inetd.conf
+if [ -f /etc/inetd.conf ] && grep -E -q "^ *([0-9.]+:)?smtp" /etc/inetd.conf; then
+ upex4conf
+ exit 0
+fi
+
+
+DAEMON=/usr/sbin/exim4
+NAME=exim4
+
+##test -x $DAEMON || exit 0
+test -x /usr/lib/exim4/exim4 || exit 0
+
+#read default file
+QUEUERUNNER='combined'
+QUEUEINTERVAL='30m'
+[ -f /etc/default/exim4 ] && . /etc/default/exim4
+
+start_exim()
+{
+ case ${QUEUERUNNER} in
+ combined)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd -q${QFLAGS}${QUEUEINTERVAL} \
+ ${COMMONOPTIONS} ${QUEUERUNNEROPTIONS} ${SMTPLISTENEROPTIONS}
+ ;;
+ separate)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS} ${COMMONOPTIONS}
+ start-stop-daemon --start --pidfile /var/run/exim4/eximqr.pid \
+ --exec $DAEMON -- -oP /var/run/exim4/eximqr.pid \
+ -q${QFLAGS}${QUEUEINTERVAL} ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+ ;;
+ no)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS}
+ ;;
+ esac
+}
+
+stop_exim()
+{
+# we try to kill eximqr and exim SMTP listener, no matter what ${QUEUERUNNER} is
+# set to, we could have switched since starting.
+ [ -f /var/run/exim4/eximqr.pid ] && \
+ start-stop-daemon --stop --pidfile /var/run/exim4/eximqr.pid \
+ --oknodo --retry 30 --exec $DAEMON
+ [ -f /var/run/exim4/exim.pid ] && \
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --oknodo --retry 30 --exec $DAEMON
+ rm -f /var/run/exim4/eximqr.pid /var/run/exim4/exim.pid
+}
+
+reload_exim()
+{
+ case ${QUEUERUNNER} in
+ combined|no)
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --signal 1 --exec $DAEMON
+ ;;
+ separate)
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --signal 1 --exec $DAEMON
+ start-stop-daemon --stop --pidfile /var/run/exim4/eximqr.pid \
+ --signal 1 --exec $DAEMON
+ ;;
+ esac
+}
+
+
+# check for valid configuration file
+isconfigvalid()
+{
+if ! $DAEMON -bV > /dev/null ; then
+ echo
+ echo "Warning! Invalid configuration file for $NAME. Exiting." 1>&2
+ exit 1
+fi
+}
+
+case "$1" in
+ start)
+ echo -n "Starting MTA: "
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ start_exim
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping MTA: "
+ stop_exim
+ echo "$NAME."
+ ;;
+ restart)
+ echo -n "Restarting MTA: "
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ stop_exim
+ sleep 2
+ start_exim
+ echo "$NAME."
+ ;;
+ reload|force-reload)
+ echo "Reloading $NAME configuration files"
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ reload_exim
+ ;;
+ status)
+ exiwhat
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|status}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/debian/exim4-base.links b/debian/exim4-base.links
new file mode 100644
index 0000000..eb0ad89
--- /dev/null
+++ b/debian/exim4-base.links
@@ -0,0 +1,3 @@
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_dumpdb.8.gz
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_fixdb.8.gz
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_tidydb.8.gz
diff --git a/debian/exim4-base.logrotate b/debian/exim4-base.logrotate
new file mode 100644
index 0000000..571b5b9
--- /dev/null
+++ b/debian/exim4-base.logrotate
@@ -0,0 +1,9 @@
+/var/log/exim4/mainlog /var/log/exim4/rejectlog /var/log/exim4/paniclog {
+ daily
+ missingok
+ rotate 10
+ compress
+ delaycompress
+ notifempty
+ create 640 mail adm
+}
diff --git a/debian/exim4-base.manpages b/debian/exim4-base.manpages
new file mode 100644
index 0000000..324403a
--- /dev/null
+++ b/debian/exim4-base.manpages
@@ -0,0 +1,12 @@
+doc/exim.8
+debian/manpages/exicyclog.8
+debian/manpages/exigrep.8
+debian/manpages/exim_checkaccess.8
+debian/manpages/exim_db.8
+debian/manpages/exim_dbmbuild.8
+debian/manpages/exim_lock.8
+debian/manpages/exinext.8
+debian/manpages/exiqgrep.8
+debian/manpages/exiqsumm.8
+debian/manpages/exiwhat.8
+debian/manpages/exim_convert4r4.8
diff --git a/debian/exim4-base.postinst b/debian/exim4-base.postinst
new file mode 100644
index 0000000..579a55b
--- /dev/null
+++ b/debian/exim4-base.postinst
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+
+db_version 2.0
+
+case "$1" in
+ configure)
+ # Create directories for log etc
+ install -d -omail -gadm -m2750 /var/log/exim4
+ install -d -omail -gmail -m750 /var/run/exim4
+ install -d -omail -gmail -m750 /var/spool/exim4
+ install -d -omail -gmail -m750 /var/spool/exim4/db \
+ /var/spool/exim4/input /var/spool/exim4/msglog
+
+ # Make sure that db files are owned by mail:mail
+ find /var/spool/exim4/db/ -type f -print0 |\
+ xargs -0 -r chown mail:mail
+ # Check that db files are readable by this Exim's db library
+ dbfiles=""
+ for f in /var/spool/exim4/db/*; do
+ if [ -f "$f" ]; then
+ if echo $f | grep \.lockfile\$ >/dev/null 2>&1; then
+ : # ignore lock files
+ else
+ dbfiles="$dbfiles `basename $f`"
+ fi
+ fi
+ done
+ for dbfile in $dbfiles; do
+ if exim_dumpdb /var/spool/exim4 $dbfile >/dev/null 2>&1; then
+ : # File OK
+ else
+ echo "Resetting invalid $dbfile hints db"
+ rm -f /var/spool/exim4/db/$dbfile /var/spool/exim4/db/$dbfile.*
+ fi
+ done
+
+#inetd support has to wait for sarge +1
+# if [ -x /usr/sbin/update-inetd ]; then
+# update-inetd --group MAIL --comment-chars '#exim4disabled' \
+# --add "smtp stream tcp nowait mail /usr/sbin/exim4 exim -bs"
+# fi
+ if [ -x "/etc/init.d/exim4" ]; then
+ update-rc.d exim4 defaults >/dev/null
+ fi
+ if [ -d /var/spool/exim/input ] ; then
+ # With "head -1" this shouldn't be expensive.
+ oldmails=`find /var/spool/exim/input/ -type f -print | head -1`
+ fi
+ if [ "x${oldmails}" != "x" ] ; then
+ RET=""
+ db_get exim4/move_exim3_spool
+ dc_move_exim3_spool="$RET"
+ if [ "x${dc_move_exim3_spool}" = "xtrue" ] ; then
+ find /var/spool/exim/input/ -type f -print0 |\
+ xargs -0r mv --target-directory=/var/spool/exim4/input
+ fi
+ fi
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-base.postrm b/debian/exim4-base.postrm
new file mode 100644
index 0000000..82451d4
--- /dev/null
+++ b/debian/exim4-base.postrm
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+case "$1" in
+ purge)
+ update-rc.d exim4 remove > /dev/null
+ rm -f /etc/default/exim4
+
+#inetd support has to wait for sarge +1
+# if [ -x /usr/sbin/update-inetd ]; then
+# update-inetd --remove exim4
+# fi
+
+ if [ -e /var/spool/exim4/input ] && ! rmdir /var/spool/exim4/input 2>/dev/null ; then
+ db_version 2.0
+ db_input medium exim4/purge_spool || true
+ db_go || true
+ db_get exim4/purge_spool
+ purge_spool="$RET"
+ [ "x${purge_spool}" = "xtrue" ] && rm -rf /var/spool/exim4/input
+ fi
+
+ # remove logs and pid-dir.
+ rm -rf /var/run/exim4 /var/log/exim4 /var/spool/exim4/msglog \
+ /var/spool/exim4/db /var/spool/exim4/exim-process.info
+ rmdir /var/spool/exim4 /var/lib/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-base.templates b/debian/exim4-base.templates
new file mode 100644
index 0000000..dba5166
--- /dev/null
+++ b/debian/exim4-base.templates
@@ -0,0 +1,24 @@
+Template: exim4/purge_spool
+Type: boolean
+Default: false
+Description: Remove undelivered mails in spool directory?
+ There are mails in the exim spool directory /var/spool/exim4/input
+ which have not yet been delivered. You can keep them in case you
+ decide to re-install Exim at a later date, or you can choose to
+ remove them.
+ .
+ Should they be removed?
+
+Template: exim4/move_exim3_spool
+Type: boolean
+Default: false
+Description: Move yet undelivered mails from exim(v3) to exim4 spool?
+ There are some undelivered mails in the spool directory of exim or
+ exim-tls in /var/spool/exim/input/. I can move these to exim4's spool
+ (/var/spool/exim4/input/) where they will be handled by exim4.
+ .
+ Be aware that this works only one-way, exim4 can handle exim(v3)'s spool
+ but not the other way round.
+ .
+ Answer yes if you don't plan to go back to exim(v3), answer no and move the
+ files by hand once you've converted your setup otherwise.
diff --git a/debian/exim4-config-simple/debian/changelog b/debian/exim4-config-simple/debian/changelog
new file mode 100644
index 0000000..bca4d25
--- /dev/null
+++ b/debian/exim4-config-simple/debian/changelog
@@ -0,0 +1,5 @@
+exim4-config-simple (4.12-0.0.17mh17) unstable; urgency=low
+
+ * first version
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Sat, 15 Feb 2003 14:20:49 +0000
diff --git a/debian/exim4-config-simple/debian/compat b/debian/exim4-config-simple/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/exim4-config-simple/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/exim4-config-simple/debian/control b/debian/exim4-config-simple/debian/control
new file mode 100644
index 0000000..92d1d77
--- /dev/null
+++ b/debian/exim4-config-simple/debian/control
@@ -0,0 +1,24 @@
+Source: exim4-config-simple
+Section: mail
+Priority: important
+Maintainer: Andreas Metzler <ametzler@downhill.at.eu.org>
+Uploaders: Marc Haber <mh+debian-packages@zugschlus.de>
+Standards-Version: 3.5.6
+Build-Depends-Indep: debhelper (>= 4.0.1)
+
+Package: exim4-config-simple
+Architecture: all
+Priority: important
+Provides: exim4-config
+Conflicts: exim4-config
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base
+Description: Simplest Debian configuration for exim4
+ This package provides a simple configuration framework for the exim4
+ daemon packages. It is meant as a proof-of-concept alternative imple-
+ mentation to exim4-config-debian and simply contains a exim4 config
+ file flagged as a dpkg-conffile. NO automatic configuration is in
+ place here.
+ .
+ Do not use this package in a production environment. It is only an
+ example. You can use it as base for your own packages providing
+ exim4-config.
diff --git a/debian/exim4-config-simple/debian/copyright b/debian/exim4-config-simple/debian/copyright
new file mode 100644
index 0000000..1484c04
--- /dev/null
+++ b/debian/exim4-config-simple/debian/copyright
@@ -0,0 +1,12 @@
+This is a simple configuration package for Debian GNU/Linux's prepackaged
+version of exim4, a powerful yet easy to configure mail transport agent.
+
+This package was originally made by Marc Haber
+<mh+debian-packages@zugschlus.de> using work provided by Andreas
+Metzler <ametzler@downhill.at.eu.org>.
+
+The files in this package are free software; you can redistribute them
+and/or modify them under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2, or (at
+your option) any later version. Full text of the license can be found
+at /usr/share/common-licenses/GPL
diff --git a/debian/exim4-config-simple/debian/debconf/update-exim4.conf b/debian/exim4-config-simple/debian/debconf/update-exim4.conf
new file mode 100755
index 0000000..5fffe05
--- /dev/null
+++ b/debian/exim4-config-simple/debian/debconf/update-exim4.conf
@@ -0,0 +1,158 @@
+#!/bin/sh
+# update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated
+
+
+# exit immediately if /etc/exim4/exim4.conf exists
+[ -e /etc/exim4/exim4.conf ] && exit 0
+
+EXIM="/usr/sbin/exim4"
+
+[ -d /var/lib/exim4/ ] && \
+[ -f /etc/exim4/exim4.conf.source ] || \
+{ printf "$0: Error, no /etc/exim4/exim4.conf.source or missing\n/var/lib/exim4/, exiting.\n" 1>&2 ; exit 1 ; }
+
+. /etc/exim4/exim4.conf.defaults || \
+{ printf "$0: Error, no /etc/exim4/exim4.conf.defaults, exiting.\n" 1>&2 ; exit 1 ; }
+
+
+UPEX4C_verbose=no
+UPEX4C_comments=no
+UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated
+UPEX4C_outputfile="${UPEX4C_autoconfigfile}"
+
+usage() {
+cat <<EOF
+$0 - Generate exim4 configuration files
+ Options:
+ -v|--verbose - Enable verbose mode, tell about ignored files
+ -h|--help - Show this message
+ --keepcomments - Do not remove comment lines
+ --removecomments - Remove comment lines
+ -o|--output file - write output to file instead of ${UPEX4C_outputfile}
+EOF
+}
+
+# also from Branden
+errormessage () {
+ # pretty-print messages of arbitrary length (no trailing newline)
+ echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4.conf \
+ -l keepcomments,removecomments,output:,help,verbose -- \
+ +o:vh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ UPEX4C_verbose=yes
+ ;;
+ --keepcomments)
+ UPEX4C_comments=yes
+ ;;
+ --removecomments)
+ UPEX4C_comments=no
+ ;;
+ -o|--output)
+ shift
+ UPEX4C_outputfile="$1"
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments allowed" >&2
+ usage >&2
+ exit 1
+fi
+
+mailname=`cat /etc/mailname | head`
+
+# add localhost and mailname, get rid of spaces and trailing colons
+local_domains="`echo ${mailname}:localhost:${dc_other_hostnames} | \
+ sed -e 'sÄ[: ]*$ÄÄ' -e 'sÄ *ÄÄ'`"
+
+UPEX4C_internal_tmp=`tempfile -m600 -p ex4`
+
+trap "rm -f ${UPEX4C_internal_tmp}" 0 2 15
+
+gentmpconf() {
+ touch ${UPEX4C_outputfile}.tmp
+ chown root:mail ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chown root:mail ${UPEX4C_outputfile}
+ chmod 640 ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chmod 640 ${UPEX4C_outputfile}
+}
+
+removecomments(){
+ if [ "x${UPEX4C_comments}" = "xno" ] ; then
+ egrep -v '^[[:space:]]*#' ;
+ else
+ cat
+ fi
+}
+
+. /etc/exim4/exim4.conf.defaults
+
+case "${listenonpublic}" in
+ false)
+ listenonpublic='local_interfaces = 127.0.0.1'
+ ;;
+ true|*)
+ listenonpublic='# if local_interfaces is unset, we listen on all interfaces'
+ ;;
+esac
+
+cat << EOF > ${UPEX4C_outputfile}.tmp
+#########
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# this file is generated dynamically
+# Any changes you make here will be lost.
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+#########
+EOF
+
+cat /etc/exim4/exim4.conf.source | \
+removecomments | \
+sed -e "sÄDEBCONFlocal_domainsDEBCONFÄ@:${local_domains}Äg" \
+ -e "sÄDEBCONFrelay_domainsDEBCONFÄ${relay_domains}Äg" \
+ -e "sÄDEBCONFrelay_netsDEBCONFÄ${relay_nets}Äg" \
+ -e "sÄDEBCONFvisiblenameDEBCONFÄ${mailname}Äg" \
+ -e "sÄDEBCONFreadhostDEBCONFÄ${readhost}Äg" \
+ -e "sÄDEBCONFsmarthostDEBCONFÄ${smarthost}Äg" \
+ -e "sÄDEBCONFconfigtypeDEBCONFÄ${eximconfig_configtype}Äg" \
+ -e "sÄDEBCONFlistenonpublicDEBCONFÄ${listenonpublic}Äg" \
+ >> ${UPEX4C_outputfile}.tmp
+
+# test validity if called without -o
+if [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] ; then
+ if ! ${EXIM} -C "${UPEX4C_outputfile}.tmp" -bV > /dev/null ; then
+ errormessage "Invalid new configfile ${UPEX4C_outputfile}.tmp"
+ errormessage "not installing ${UPEX4C_outputfile}.tmp to ${UPEX4C_outputfile}"
+ exit 1
+ fi
+fi
+
+mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.dirs b/debian/exim4-config-simple/debian/exim4-config-simple.dirs
new file mode 100644
index 0000000..76d4455
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.dirs
@@ -0,0 +1,5 @@
+/usr/sbin
+/etc/exim4
+/usr/share/doc/exim4-config-debian/examples
+/usr/share/man/man8
+/var/lib/exim4
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.manpages b/debian/exim4-config-simple/debian/exim4-config-simple.manpages
new file mode 100644
index 0000000..234e068
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.manpages
@@ -0,0 +1 @@
+debian/manpages/update-exim4.conf.8
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.postinst b/debian/exim4-config-simple/debian/exim4-config-simple.postinst
new file mode 100644
index 0000000..b4a7b85
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.postinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+
+case "$1" in
+ configure)
+ update-exim4.conf
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.postrm b/debian/exim4-config-simple/debian/exim4-config-simple.postrm
new file mode 100644
index 0000000..3bbd538
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.postrm
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ purge)
+ rm -f /var/lib/exim4/config.autogenerated
+
+ # remove empty directories in /etc/exim4
+ rmdir /etc/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config-simple/debian/exim4.conf.defaults b/debian/exim4-config-simple/debian/exim4.conf.defaults
new file mode 100644
index 0000000..e7c98d1
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4.conf.defaults
@@ -0,0 +1,7 @@
+local_domains=
+relay_domains=
+relay_nets=
+visiblename=paola-chroot
+readhost=paola-chroot
+smarthost=smtp
+listenonpublic=no
diff --git a/debian/exim4-config-simple/debian/exim4.conf.source b/debian/exim4-config-simple/debian/exim4.conf.source
new file mode 100644
index 0000000..5c743f4
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4.conf.source
@@ -0,0 +1,502 @@
+######################################################################
+# Runtime configuration file for Exim #
+######################################################################
+
+######################################################################
+# MAIN CONFIGURATION SETTINGS #
+######################################################################
+
+# Just for reference and scripts, on debian, the main binary is
+# installed as exim4
+exim_path = /usr/sbin/exim4
+
+# Let Exim autodetect this
+# primary_hostname =
+
+# The next three settings create two lists of domains and one list of hosts.
+# These lists are referred to later in this configuration using the syntax
+# +local_domains, +relay_to_domains, and +relay_from_hosts, respectively. They
+# are all colon-separated lists:
+
+# '@' refers to 'the name of the local host'
+
+domainlist local_domains = DEBCONFlocal_domainsDEBCONF
+
+domainlist relay_to_domains = DEBCONFrelay_domainsDEBCONF
+
+hostlist relay_from_hosts = 127.0.0.1 : ::::1 : DEBCONFrelay_netsDEBCONF
+
+
+# Specify the domain you want to be added to all unqualified addresses
+# here. An unqualified address is one that does not contain an "@" character
+# followed by a domain. For example, "caesar@rome.example" is a fully qualified
+# address, but the string "caesar" (i.e. just a login name) is an unqualified
+# email address. Unqualified addresses are accepted only from local callers by
+# default. See the recipient_unqualified_hosts option if you want to permit
+# unqualified addresses from remote sources. If this option is not set, the
+# primary_hostname value is used for qualification.
+qualify_domain = DEBCONFvisiblenameDEBCONF
+
+# only used for satellite-system
+DCreadhost = DEBCONFreadhostDEBCONF
+
+#for satellite and smarthost-systems
+DCsmarthost = DEBCONFsmarthostDEBCONF
+
+# listen on all all interfaces?
+DEBCONFlistenonpublicDEBCONF
+### EXPANSION-ends ######################
+
+# The default delivery method. See /etc/exim4/conf.d/transports/ for other
+# possibilities
+LOCAL_DELIVERY=mail_spool
+
+# The gecos field in /etc/passwd holds not only the name. see passwd(5).
+gecos_pattern = ^([^,:]*)
+gecos_name = $1
+
+
+
+
+# This option defines the access control list that is run when an
+# SMTP RCPT command is received.
+#
+acl_smtp_rcpt = acl_check_rcpt
+
+# If you want unqualified recipient addresses to be qualified with a different
+# domain to unqualified sender addresses, specify the recipient domain here.
+# If this option is not set, the qualify_domain value is used.
+#
+# qualify_recipient =
+
+# The following line must be uncommented if you want Exim to recognize
+# addresses of the form "user@[10.11.12.13]" that is, with a "domain literal"
+# (an IP address) instead of a named domain. The RFCs still require this form,
+# but it makes little sense to permit mail to be sent to specific hosts by
+# their IP address in the modern Internet. This ancient format has been used
+# by those seeking to abuse hosts by using them for unwanted relaying. If you
+# really do want to support domain literals, uncomment the following line, and
+# see also the "domain_literal" router below.
+#
+# allow_domain_literals
+
+# The setting below causes Exim to do a reverse DNS lookup on all incoming
+# IP calls, in order to get the true host name. If you feel this is too
+# expensive, you can specify the networks for which a lookup is done, or
+# remove the setting entirely.
+#
+host_lookup = *
+
+# The settings below, which are actually the same as the defaults in the
+# code, cause Exim to make RFC 1413 (ident) callbacks for all incoming SMTP
+# calls. You can limit the hosts to which these calls are made, and/or change
+# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
+# are disabled. RFC 1413 calls are cheap and can provide useful information
+# for tracing problem messages, but some hosts and firewalls have problems
+# with them. This can result in a timeout instead of an immediate refused
+# connection, leading to delays on starting up an SMTP session.
+#
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# By default, Exim expects all envelope addresses to be fully qualified, that
+# is, they must contain both a local part and a domain. If you want to accept
+# unqualified addresses (just a local part) from certain hosts, you can specify
+# these hosts by setting one or both of
+#
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+#
+# to control sender and recipient addresses, respectively. When this is done,
+# unqualified addresses are qualified using the settings of qualify_domain
+# and/or qualify_recipient (see above).
+
+# If you want Exim to support the "percent hack" for certain domains,
+# uncomment the following line and provide a list of domains. The "percent
+# hack" is the feature by which mail addressed to x%y@z (where z is one of
+# the domains listed) is locally rerouted to x@y and sent on. If z is not one
+# of the "percent hack" domains, x%y is treated as an ordinary local part. This
+# hack is rarely needed nowadays; you should not enable it unless you are sure
+# that you really need it.
+#
+# percent_hack_domains =
+
+# When Exim can neither deliver a message nor return it to sender, it "freezes"
+# the delivery error message (aka "bounce message"). There are also other
+# circumstances in which messages get frozen. They will stay on the queue for
+# ever unless one of the following options is set.
+
+# This option unfreezes frozen bounce messages after two days, tries
+# once more to deliver them, and ignores any delivery failures.
+#
+ignore_bounce_errors_after = 2d
+
+# This option cancels (removes) frozen messages that are older than a week.
+#
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+# uucp should be able to set envelope-from to arbitrary values
+trusted_users = uucp
+
+received_header_text = "Received: \
+ ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
+ {${if def:sender_ident {from ${sender_ident} }}\
+ ${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
+ by ${primary_hostname} \
+ ${if def:received_protocol {with ${received_protocol}}} \
+ (Exim ${version_number} #${compile_number} (Debian) [+prerelease])\n\t\
+ id ${message_id}\
+ ${if def:received_for {\n\tfor <$received_for>}}"
+
+
+
+# No deliveries will ever be run under the uids of these users (a colon-
+# separated list). An attempt to do so causes a panic error to be logged, and
+# the delivery to be deferred. This is a paranoic safety catch. Note that the
+# default setting means you cannot deliver mail addressed to root as if it
+# were a normal user. This isn't usually a problem, as most sites have an alias
+# for root that redirects such mail to a human administrator.
+#
+never_users = root
+
+######################################################################
+# ACL CONFIGURATION #
+# Specifies access control lists for incoming SMTP mail #
+######################################################################
+begin acl
+
+
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+ # Deny unless the sender address can be verified.
+ #
+ # require verify = sender
+
+ #############################################################################
+ # There are no checks on DNS "black" lists because the domains that contain
+ # these lists are changing all the time. However, here are two examples of
+ # how you could get Exim to perform a DNS black list lookup at this point.
+ # The first one denies, while the second just warns.
+ #
+ # deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
+ # dnslists = black.list.example
+ #
+ # warn message = X-Warning: $sender_host_address is in a black list at $dnslist_domain
+ # log_message = found in $dnslist_domain
+ # dnslists = black.list.example
+ #############################################################################
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
+
+
+
+######################################################################
+# ROUTERS CONFIGURATION #
+# Specifies how addresses are handled #
+######################################################################
+# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
+# An address is passed to each router in turn until it is accepted. #
+######################################################################
+
+begin routers
+
+
+# This router routes to remote hosts over SMTP by explicit IP address,
+# when an email address is given in "domain literal" form, for example,
+# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
+# little-known these days, and has been exploited by evil people seeking
+# to abuse SMTP relays. Consequently it is commented out in the default
+# configuration. If you uncomment this router, you also need to uncomment
+# allow_domain_literals above, so that Exim can recognize the syntax of
+# domain literal addresses.
+
+# domain_literal:
+# driver = ipliteral
+# domains = ! +local_domains
+# transport = remote_smtp
+
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * DCsmarthost
+ host_find_failed = defer
+ no_more
+
+# The "no_more" above means that all routers below here are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
+
+
+real_local:
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = LOCAL_DELIVERY
+
+
+# This router handles aliasing using a traditional /etc/aliases file.
+#
+##### NB You must ensure that /etc/aliases exists. It used to be the case
+##### NB that every Unix had that file, because it was the Sendmail default.
+##### NB These days, there are systems that don't have it. Your aliases
+##### NB file should at least contain an alias for "postmaster".
+#
+# If any of your aliases expand to pipes or files, you will need to set
+# up a user and a group for these deliveries to run under. You can do
+# this by uncommenting the "user" option below (changing the user name
+# as appropriate) and adding a "group" option if necessary. Alternatively, you
+# can specify "user" on the transports that are used. Note that the transports
+# listed below are the same as are used for .forward files; you might want
+# to set up different ones for pipe and file deliveries from aliases.
+#
+system_aliases:
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
+# user = list
+ file_transport = address_file
+ pipe_transport = address_pipe
+
+hub_user:
+ driver = redirect
+ data = ${local_part}@DCreadhost
+ check_local_user
+
+# This router handles forwarding using traditional .forward files in users'
+# home directories. If you want it also to allow mail filtering when a forward
+# file starts with the string "# Exim filter", uncomment the "allow_filter"
+# option.
+#
+# The no_verify setting means that this router is skipped when Exim is
+# verifying addresses. Similarly, no_expn means that this router is skipped if
+# Exim is processing an EXPN command.
+#
+# The check_ancestor option means that if the forward file generates an
+# address that is an ancestor of the current one, the current one gets
+# passed on instead. This covers the case where A is aliased to B and B
+# has a .forward file pointing to A.
+#
+# The three transports specified at the end are those that are used when
+# forwarding generates a direct delivery to a file, or to a pipe, or sets
+# up an auto-reply, respectively.
+#
+userforward:
+ driver = redirect
+ check_local_user
+ file = $home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+# allow_filter
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+
+
+procmail:
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
+
+# Use maildrop
+# maildrop:
+# driver = accept
+# check_local_user
+# transport = maildrop_pipe
+# require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop
+# no_verify
+# no_expn
+
+
+local_user:
+ driver = accept
+ check_local_user
+ transport = LOCAL_DELIVERY
+
+
+
+######################################################################
+# TRANSPORTS CONFIGURATION #
+######################################################################
+# ORDER DOES NOT MATTER #
+# Only one appropriate transport is called for each delivery. #
+######################################################################
+
+# A transport is used only when referenced from a router that successfully
+# handles an address.
+
+begin transports
+
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliasing or forwarding.
+#
+address_file:
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
+
+# This transport is used for handling pipe deliveries generated by alias or
+# .forward files. If the pipe generates any standard output, it is returned
+# to the sender of the message as a delivery error. Set return_fail_output
+# instead of return_output if you want this to happen only when the pipe fails
+# to complete normally. You can set different transports for aliases and
+# forwards if you want to - see the references to address_pipe in the routers
+# section above.
+#
+address_pipe:
+ driver = pipe
+ return_output
+
+
+# This transport is used for handling autoreplies generated by the filtering
+# option of the userforward router.
+#
+address_reply:
+ driver = autoreply
+
+
+# This transport is used for local delivery to user mailboxes in traditional
+# BSD mailbox format.
+#
+mail_spool:
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+
+
+# Use this instead of mail_spool if you want to to deliver to Maildir in
+# home-directory - change the definition of LOCAL_DELIVERY
+#
+maildir_home:
+ driver = appendfile
+ directory = $home/Maildir
+ maildir_format
+ mode = 0600
+
+
+maildrop_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+
+procmail_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+
+# This transport is used for delivering messages over SMTP connections.
+remote_smtp:
+ driver = smtp
+
+######################################################################
+# RETRY CONFIGURATION #
+######################################################################
+
+begin retry
+
+
+# This single retry rule applies to all domains and all errors. It specifies
+# retries every 15 minutes for 2 hours, then increasing retry intervals,
+# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
+# hours, then retries every 6 hours until 4 days have passed since the first
+# failed delivery.
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+
+
+######################################################################
+# REWRITE CONFIGURATION #
+######################################################################
+
+begin rewrite
+
+######################################################################
+# AUTHENTICATION CONFIGURATION #
+######################################################################
+
+begin authenticators
diff --git a/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8 b/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8
new file mode 100644
index 0000000..e1019ac
--- /dev/null
+++ b/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8
@@ -0,0 +1,75 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4.CONF 8 "February 4, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+update-exim4.conf \- Generate exim4 configuration files.
+.SH SYNOPSIS
+.B update-exim4.conf [-v|--verbose] [-h|--help] [--keepcomments] [--removecomments] [-o|--output file]
+
+.SH OPTIONS
+.TP
+.I -v|--verbose
+Enable verbose mode, tell about ignored, user modified files
+.TP
+.I -h|--help
+Show short help message and exit
+.TP
+.I --keepcomments
+Do not remove comment lines from the output file.
+.TP
+.I --removecomments
+Remove comment lines from the output file. [Default]
+.TP
+.I -o|--output file
+Write output to file instead of /var/lib/exim4/config.autogenerated. Be careful,
+
+.SH DESCRIPTION
+The script
+.B update-exim4.conf
+generates the main configuration files
+.I /var/lib/exim4/config.autogenerated
+for
+.B Exim v4
+by merging the data in the template files in the
+.I /etc/exim4/exim4.conf.source
+and
+.I /etc/exim4/exim4.conf.defaults
+files to the output file
+.I /var/lib/exim4/config.autogenerated.
+.PP
+
+.B update-exim4.conf
+exits silently and does nothing if /etc/exim4/exim4.conf exists.
+
+If
+.B update-exim4.conf
+is called without the option -o it checks the validity of the
+freshly generated configurationfile and exits with an error instead
+of installing the file to /var/lib/exim4/config.autogenerated.
+
+.SH FILES
+.B update-exim4.conf
+manages these files:
+.TP
+.I /var/lib/exim4/config.autogenerated
+Exim's main configuration file
+.SH SEE ALSO
+.BR exim (8)
+
+.SH AUTHOR
+Marc Haber <mh+debian-packages@zugschlus.de> using work prepared by
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/exim4-config-simple/debian/rules b/debian/exim4-config-simple/debian/rules
new file mode 100755
index 0000000..505a055
--- /dev/null
+++ b/debian/exim4-config-simple/debian/rules
@@ -0,0 +1,86 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+DEBIAN:=$(shell pwd)/debian
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+ touch build-indep-stamp
+
+build: build-indep
+
+clean: cleanfiles
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-indep-stamp configure-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ dh_clean
+
+install: install-stamp
+install-stamp: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ install -m 755 debian/debconf/update-exim4.conf debian/exim4-config-simple/usr/sbin
+ install -m 644 debian/exim4.conf.source debian/exim4-config-simple/etc/exim4
+ install -m 644 debian/exim4.conf.defaults debian/exim4-config-simple/etc/exim4
+
+# dh_movefiles
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ dh_installpam -i
+ dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_link -i
+ dh_compress -i
+# dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/exim4-config.config b/debian/exim4-config.config
new file mode 100644
index 0000000..e2dc96c
--- /dev/null
+++ b/debian/exim4-config.config
@@ -0,0 +1,424 @@
+#!/bin/sh
+set -e
+
+alias stripwhitespace="sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//'"
+
+. /usr/share/debconf/confmodule
+
+
+# store environment variables in debconf db.
+storevar2db() {
+ dc_eximconfig_configtype=`echo "${dc_eximconfig_configtype}" | stripwhitespace`
+ dc_listenonpublic=`echo "${dc_listenonpublic}" | stripwhitespace`
+ dc_other_hostnames=`echo "${dc_other_hostnames}" | stripwhitespace`
+ dc_readhost=`echo "${dc_readhost}" | stripwhitespace`
+ dc_relay_domains=`echo "${dc_relay_domains}" | stripwhitespace`
+ dc_relay_nets=`echo "${dc_relay_nets}" | stripwhitespace`
+ dc_smarthost=`echo "${dc_smarthost}" | stripwhitespace`
+ # store externally changed values to debconf.db
+ db_set exim4/dc_eximconfig_configtype "${dc_eximconfig_configtype}"
+ db_set exim4/dc_listenonpublic "${dc_listenonpublic}"
+ db_set exim4/dc_other_hostnames "${dc_other_hostnames}"
+ db_set exim4/dc_readhost "${dc_readhost}"
+ db_set exim4/dc_relay_domains "${dc_relay_domains}"
+ db_set exim4/dc_relay_nets "${dc_relay_nets}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+}
+
+# ipv6: replace double colons in colon-separated host lists with umlaut-o
+# replace ':' with ' : ', add leading and ending whitespace.
+# return empty string if custom delimiter was used:
+ # local_domains = <; 172.16.0.0/12; 3ffe:ffff:836f::/48
+# e.g: 'localhost : 172.16.0.1 :3ffe::ffff::836f::::: foo.org'
+# ===> ' localhost : 172.16.0.1 : 3ffeöffffö836föö : foo.org '
+alias coloncolon2oe="sed -e 's/[[:blank:]]*//g' -e '/^</d' -e 's/:::::/:öö/g' -e 's/::::/öö/g' -e 's/:::/:ö/g' -e 's/::/ö/g' -e 's/:/ : /g' -e 's/^/ /' -e 's/$/ /'"
+
+# try to parse exim3 configuration file - works only if it was generated
+# with eximconfig.
+parseexim3() {
+ dc_mailname=`head -1 /etc/mailname | stripwhitespace` || true
+
+ # get the .... entries from
+ # host_accept_relay = 127.0.0.1 : ::::1 : ......
+ # if they exist, ie. parse list, and remove "127.0.0.1", "::::1"
+ # and "localhost" from it.
+ #
+ dc_relay_nets=`cat $1 | grep -h '^host_accept_relay[[:blank:]]*=' | sed -e 's/^host_accept_relay[[:blank:]]*=//' | coloncolon2oe | sed -e 's/ 127\.0\.0\\.1 //g' -e 's/ localhost //g' -e 's/ öö1//g' -e 's/[[:blank:]]*//g' -e 's/::/:/g' -e 's/^://' -e 's/:$//' -e 's/ö/::/g'`
+
+ # 'local_domains = $colonhostnames', including mailname and "localhost"
+ #
+ dc_other_hostnames=`cat $1 | grep -h '^local_domains[[:blank:]]*=' | sed -e 's/^local_domains[[:blank:]]*=//' | coloncolon2oe | sed -e 's/ localhost //g' -e "s/ ${dc_mailname} //g" -e 's/[[:blank:]]*//g' -e 's/::/:/g' -e 's/^://' -e 's/:$//' -e 's/ö/::/g'`
+
+ # relay_domains = some.domain
+ dc_relay_domains=`cat $1 | grep -h '^relay_domains = ' | sed -e 's/^relay_domains[[:blank:]]*=[[:blank:]]*//' -e 's/[[:blank:]]*$//'`
+
+ # lookuphost router exist ---> dc_eximconfig_configtype=internet
+ #
+ if cat $1 | grep -h -A2 '^lookuphost:' | \
+ grep -h -A1 '[[:blank:]]*driver = lookuphost' | \
+ grep -h -q '[[:blank:]]*transport = remote_smtp' ; then
+ dc_eximconfig_configtype=internet
+ else
+ # smart:-director exists ---> dc_eximconfig_configtype=satellite
+ #
+ # Later we need the new_address directive to find dc_readhost.
+ # ' || true' is required for "set -e"
+ dc_readhost=`cat $1 | grep -h -A2 '^smart:' | grep -h -A1 '^[[:blank:]]*driver = smartuser' | grep -h '^[[:blank:]]*new_address' || true`
+
+ # smarthost router exists --> dc_eximconfig_configtype is satellite or smarthost
+ #
+ # we need the route_list directive to find dc_smarthost
+ # ' || true' is required for "set -e"
+ dc_smarthost=`cat $1 | grep -h -A3 '^smarthost:' | grep -h -A2 '[[:blank:]]*driver = domainlist' | grep -h -A1 '^[[:blank:]]*transport = remote_smtp' | grep -h '^[[:blank:]]*route_list = "' || true`
+
+ if [ ! -z "${dc_readhost}" ] ; then
+ dc_eximconfig_configtype=satellite
+ elif [ ! -z "${dc_smarthost}" ] ; then
+ dc_eximconfig_configtype=smarthost
+ elif ! cat "$1" | grep -h -q '^remote_smtp:'; then
+ # dc_eximconfig_configtype=local has no remote_smtp transport.
+ dc_eximconfig_configtype=local
+ else
+ # handcrafted config. We probably misparsed, reset values
+ # and exit.
+ dc_eximconfig_configtype=''
+ dc_listenonpublic=''
+ dc_other_hostnames=''
+ dc_readhost=''
+ dc_relay_domains=''
+ dc_relay_nets=''
+ dc_smarthost=''
+ return 1
+ fi
+ fi
+
+ case ${dc_eximconfig_configtype} in
+ internet|local)
+ #paranoia
+ dc_readhost=''
+ dc_smarthost=''
+ ;;
+ satellite)
+ # new_address = ${local_part}@$readhost
+ dc_readhost=`echo "${dc_readhost}" | sed -e 's/^.*@//' -e 's/[[:blank:]]*$//'`
+ # route_list = "* $smtphost bydns_a"
+ dc_smarthost=`echo "${dc_smarthost}" | \
+ sed -e 's/^ *route_list = "\* //' -e 's/ bydns_a"//' -e 's/[[:blank:]]*$//'`
+ ;;
+ smarthost)
+ # route_list = "* $smtphost bydns_a"
+ dc_smarthost=`echo "${dc_smarthost}" | \
+ sed -e 's/^ *route_list = "\* //' -e 's/ bydns_a"//' -e 's/[[:blank:]]*$//'`
+ ;;
+ esac
+}
+
+# REMOVEMEBEFORERELEASE begins
+# cruft from renaming debconf.results to update-exim4.conf.conf
+if [ -e /etc/exim4/debconf.results ] && \
+ [ ! -e /etc/exim4/update-exim4.conf.conf ]; then
+ cp -a /etc/exim4/debconf.results /etc/exim4/update-exim4.conf.conf
+fi
+# REMOVEMEBEFORERELEASE ends
+
+db_get exim4/dc_eximconfig_configtype
+dc_eximconfig_configtype="$RET"
+
+if [ -e /etc/exim4/update-exim4.conf.conf ] ; then
+ . /etc/exim4/update-exim4.conf.conf || true
+ # set defaults using these values
+ storevar2db
+else
+ # If there are no debconf answers (running first time) and we are
+ # making a cross upgrade from exim3, try to parse its config file
+ # to seed debconf db.
+ if [ "x${dc_eximconfig_configtype}" = "x" ] && [ -r /etc/exim/exim.conf ] ; then
+ # parse old configfile
+ if parseexim3 /etc/exim/exim.conf ; then
+ # set defaults using these values
+ storevar2db
+ fi
+ fi
+fi
+
+## set up default values, we cannot do this in templates file because
+## config script is called two times before update-exim4.conf.conf exists.
+[ "x${dc_eximconfig_configtype}" = "x" ] && \
+ dc_eximconfig_configtype="local" && \
+ db_set exim4/dc_eximconfig_configtype "${dc_eximconfig_configtype}"
+
+
+if [ -e /etc/mailname ] ; then
+ dc_mailname=`head -1 /etc/mailname | stripwhitespace` || true
+ # store values
+ db_set exim4/mailname "${dc_mailname}"
+else
+ db_get exim4/mailname
+ dc_mailname="$RET"
+fi
+
+
+#Set default mailname
+if [ "x${dc_mailname}" = "x" ] ; then
+ dc_mailname=`hostname --fqdn` || dc_mailname=`hostname` && \
+ dc_mailname=`echo "${dc_mailname}" | stripwhitespace` && \
+ db_set exim4/mailname "${dc_mailname}"
+fi
+if [ "x${dc_readhost}" = "x" ] ; then
+ db_get exim4/dc_readhost
+ dc_readhost="$RET"
+fi
+if [ "x${dc_smarthost}" = "x" ] ; then
+ db_get exim4/dc_smarthost
+ dc_smarthost="$RET"
+fi
+if [ "x${dc_listenonpublic}" = "x" ] ; then
+ db_get exim4/dc_listenonpublic
+ dc_listenonpublic="$RET"
+fi
+
+
+db_version 2.0
+
+db_capb backup
+# initial state
+STATE=1
+# last valid state
+STATELIMIT=29
+while [ "$STATE" != 0 -a "$STATE" -le "$STATELIMIT" ]; do
+ case "$STATE" in
+ 1)
+ db_input medium exim4/mailname || true
+ PREVSTATE=$STATE
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 2)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input critical exim4/dc_eximconfig_configtype || true
+ ;;
+ 3)
+ db_get exim4/dc_eximconfig_configtype
+ dc_eximconfig_configtype="$RET"
+ db_get exim4/mailname
+ dc_mailname="$RET"
+ db_subst exim4/dc_other_hostnames mailname ${dc_mailname}
+ PREVSTATE=$(($STATE - 1))
+ case "${dc_eximconfig_configtype}" in
+ none)
+ # dont ask more questions
+ NEXTSTATE=$(($STATELIMIT + 1))
+ ;;
+ internet)
+ NEXTSTATE=7
+ ;;
+ smarthost)
+ NEXTSTATE=14
+ ;;
+ satellite)
+ NEXTSTATE=21
+ ;;
+ local)
+ NEXTSTATE=28
+ ;;
+ *)
+ # Should not happen. Break loop
+ NEXTSTATE=$(($STATELIMIT + 1))
+ ;;
+ esac
+ ;;
+
+ 7)
+ # internet site
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_listenonpublic}" = "x" ] ; then
+ dc_listenonpublic=true
+ db_set exim4/dc_listenonpublic true
+ fi
+ db_input medium exim4/dc_listenonpublic || true
+ ;;
+ 8)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium exim4/dc_other_hostnames || true
+ ;;
+ 9)
+ db_input medium exim4/dc_relay_domains || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 10)
+ db_input medium exim4/dc_relay_nets || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ ;;
+
+ 14)
+ # internet site with smarthost
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_listenonpublic}" = "x" ] ; then
+ dc_listenonpublic=true
+ db_set exim4/dc_listenonpublic true
+ fi
+ db_input medium exim4/dc_listenonpublic || true
+ ;;
+ 15)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium exim4/dc_other_hostnames || true
+ ;;
+ 16)
+ db_input medium exim4/dc_relay_domains || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 17)
+ db_input medium exim4/dc_relay_nets || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 18)
+ if [ "x${dc_smarthost}" = "x" ] ; then
+ # default to mail.mailname
+ dc_smarthost="mail.${dc_mailname}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+ fi
+ db_input high exim4/dc_smarthost || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ ;;
+
+ 21)
+ # satellite
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_listenonpublic}" = "x" ] ; then
+ dc_listenonpublic=false
+ db_set exim4/dc_listenonpublic false
+ fi
+ db_input medium exim4/dc_listenonpublic || true
+ ;;
+ 22)
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium exim4/dc_other_hostnames || true
+ ;;
+ 23)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_readhost}" = "x" ] ; then
+ # default to domain of mailname
+ dc_readhost=`echo ${dc_mailname} | sed -e 's/^[^.][^.]*\.//'`
+ db_set exim4/dc_readhost "${dc_readhost}"
+ fi
+ db_input high exim4/dc_readhost || true
+ ;;
+ 24)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_get exim4/dc_readhost
+ dc_readhost="$RET"
+ if [ "x${dc_smarthost}" = "x" ] ; then
+ # default to read_host
+ dc_smarthost="${dc_readhost}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+ fi
+ db_input high exim4/dc_smarthost || true
+ ;;
+ 25)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ # satellite-system! Only ask for relay_nets/relay_domains if they are
+ # nonempty - we cannot distinguish whether they were set outside debconf
+ # or whether the user switched dc_eximconfig_configtype
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets="$RET"
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains="$RET"
+ if [ "x${dc_relay_nets}" != "x" ] ; then
+ db_input medium exim4/dc_relay_nets || true
+ NEXTSTATE=$(($STATE + 1))
+ fi
+ if [ "x${dc_relay_domains}" != "x" ] ; then
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input medium exim4/dc_relay_domains || true
+ fi
+ ;;
+
+ 28)
+ # local mail only
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_listenonpublic}" = "x" ] ; then
+ dc_listenonpublic=false
+ db_set exim4/dc_listenonpublic false
+ fi
+ db_input medium exim4/dc_listenonpublic || true
+ ;;
+ 29)
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ # local mail only -system! Only ask for relay_nets/relay_domains if they are
+ # nonempty - we cannot distinguish whether they were set outside debconf
+ # or whether the user switched dc_eximconfig_configtype
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets="$RET"
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains="$RET"
+
+ if [ "x${dc_relay_nets}" != "x" ] ; then
+ db_input medium exim4/dc_relay_nets || true
+ NEXTSTATE=$(($STATE + 1))
+ fi
+ if [ "x${dc_relay_domains}" != "x" ] ; then
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input medium exim4/dc_relay_domains || true
+ fi
+ ;;
+
+ esac
+ if db_go; then
+ STATE=$NEXTSTATE
+ else
+ STATE=$PREVSTATE
+ fi
+done
+
+if [ ! -e /etc/aliases ] ; then
+ db_input high exim4/dc_postmaster || true
+ db_go || true
+fi
+
+db_get exim4/dc_postmaster || true
+dc_postmaster=`echo "$RET" | stripwhitespace`
+
+if [ -e /etc/aliases ] &&
+ ! grep -q '^root:[[:space:]]*[[:alnum:]]' /etc/aliases && \
+ [ "x${dc_postmaster}" != "xnone" ]; then
+ # no alias for root and exim4/dc_postmaster != "none".
+ db_input high exim4/dc_noalias_regenerate || true
+ db_go || true
+ db_get exim4/dc_noalias_regenerate
+ dc_noalias_regenerate="$RET"
+ if [ "x${dc_noalias_regenerate}" = "xtrue" ] ; then
+ db_input high exim4/dc_postmaster || true
+ db_go || true
+ db_get exim4/dc_postmaster || true
+ dc_postmaster=`echo "$RET" | stripwhitespace`
+ fi
+fi
+
+if [ "x${dc_postmaster}" = "x" ] ; then
+ # FIXME convert empty string to "none"
+ db_set exim4/dc_postmaster "none"
+ dc_postmaster="none"
+fi
+
+# if [ "x${dc_eximconfig_configtype}" = "xsatellite" ] || [ "x${dc_eximconfig_configtype}" = "xlocal" ] ; then
+# # reset dc_relay_domains dc_relay_nets and dc_other_hostnames
+# db_set exim4/dc_relay_domains ""
+# db_set exim4/dc_relay_nets ""
+# db_set exim4/dc_other_hostnames ""
+# fi
diff --git a/debian/exim4-config.dirs b/debian/exim4-config.dirs
new file mode 100644
index 0000000..e3a0edd
--- /dev/null
+++ b/debian/exim4-config.dirs
@@ -0,0 +1,6 @@
+/usr/sbin
+/etc/exim4/conf.d
+/etc/ppp/ip-up.d
+/usr/share/doc/exim4-config/examples
+/usr/share/man/man8
+/var/lib/exim4
diff --git a/debian/exim4-config.docs b/debian/exim4-config.docs
new file mode 100644
index 0000000..daf4a23
--- /dev/null
+++ b/debian/exim4-config.docs
@@ -0,0 +1 @@
+debian/debconf/default_acl
diff --git a/debian/exim4-config.install b/debian/exim4-config.install
new file mode 100644
index 0000000..3939218
--- /dev/null
+++ b/debian/exim4-config.install
@@ -0,0 +1 @@
+debian/debconf/30_exim4-config_example_check_rcpt usr/share/doc/exim4-config/examples/acl
diff --git a/debian/exim4-config.manpages b/debian/exim4-config.manpages
new file mode 100644
index 0000000..6359efc
--- /dev/null
+++ b/debian/exim4-config.manpages
@@ -0,0 +1,2 @@
+debian/manpages/update-exim4.conf.8
+debian/manpages/update-exim4defaults.8
diff --git a/debian/exim4-config.postinst b/debian/exim4-config.postinst
new file mode 100644
index 0000000..4550b55
--- /dev/null
+++ b/debian/exim4-config.postinst
@@ -0,0 +1,148 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+
+db_version 2.0
+
+get_value() {
+ db_get $1
+ code="$?"
+ if [ "$code" -eq "0" ]; then
+ :
+ else
+ echo "Error getting debconf answer $1: debconf code=$code" >&2
+ exit $code
+ fi
+}
+
+write_header() {
+ cat <<EOF > /etc/exim4/update-exim4.conf.conf
+# /etc/exim4/update-exim4.conf.conf
+#
+# Edit this file and /etc/mailname by hand and execute update-exim4.conf
+# yourself or use 'dpkg-reconfigure exim4-config'
+#
+# comments will be lost.
+
+EOF
+}
+
+
+writealiases() {
+echo '# /etc/aliases' > /etc/aliases.tmp
+echo 'mailer-daemon: postmaster' >> /etc/aliases.tmp
+for i in postmaster nobody hostmaster usenet news webmaster www ftp abuse noc security ; do
+ echo "${i}: root"
+done >> /etc/aliases.tmp
+#poma=`echo "$1" | sed -e 's/^[^A-Za-z.0-9_-]*//' -e 's/[^A-Za-z.0-9_-]*$//' \
+# -e 's/ */,/g'`
+# remove leading and ending whitespace, shrink multiple whitespace, separate
+# entries with commas
+poma=`echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]][[:space:]]*/,/g'`
+if [ "xnone" != "x$poma" ] ; then
+ echo "root: $poma" >> /etc/aliases.tmp
+fi
+mv /etc/aliases.tmp /etc/aliases
+}
+
+alias stripwhitespace="sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//'"
+
+# REMOVEMEBEFORERELEASE begins
+# cruft from renaming debconf.results to update-exim4.conf.conf
+if [ -e /etc/exim4/debconf.results ] ; then
+ if [ ! -e /etc/exim4/update-exim4.conf.conf ]; then
+ mv /etc/exim4/debconf.results /etc/exim4/update-exim4.conf.conf
+ else
+ rm -f /etc/exim4/debconf.results
+ fi
+fi
+# REMOVEMEBEFORERELEASE ends
+
+case "$1" in
+ configure)
+ # Configure Exim##############################
+ ##############################################
+ # Generate config-file if it does yet not exist
+ if [ ! -e /etc/exim4/update-exim4.conf.conf ] ; then
+ write_header
+ for variable in dc_eximconfig_configtype dc_other_hostnames \
+ dc_readhost dc_relay_domains \
+ dc_relay_nets dc_smarthost ; do
+ echo "${variable}="
+ done >> /etc/exim4/update-exim4.conf.conf
+ fi
+
+ # generate dummy files, which will be overwritten by update-exim4.conf
+ for file in /etc/exim4/conf.d/main/03_exim4-config_neverusers /etc/exim4/conf.d/rewrite/30_exim4-config_email-addresses /etc/exim4/conf.d/rewrite/35_exim4-config_masquerade ; do
+ if [ ! -f "$file" ] ; then
+ echo "# d41d8cd98f00b204e9800998ecf8427e" > "$file"
+ chmod 644 "$file"
+ fi
+ done
+ # generate defaultfile
+ update-exim4defaults --init
+
+ # source /etc/exim4/update-exim4.conf.conf - needed for not
+ # debconf-managed values in there.
+ . /etc/exim4/update-exim4.conf.conf
+
+ # Substitute values from debconf db
+ db_get exim4/dc_eximconfig_configtype || true
+ dc_eximconfig_configtype=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_listenonpublic || true
+ dc_listenonpublic=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_other_hostnames || true
+ dc_other_hostnames=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_readhost || true
+ dc_readhost=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_smarthost || true
+ dc_smarthost=`echo "$RET" | stripwhitespace`
+ db_get exim4/mailname || true
+ mailname=`echo "$RET" | stripwhitespace`
+
+ [ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+ ### write configuration to files #
+ write_header
+ echo "dc_eximconfig_configtype='${dc_eximconfig_configtype}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_listenonpublic='${dc_listenonpublic}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_other_hostnames='${dc_other_hostnames}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_readhost='${dc_readhost}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_relay_domains='${dc_relay_domains}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_relay_nets='${dc_relay_nets}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "dc_smarthost='${dc_smarthost}'" >> /etc/exim4/update-exim4.conf.conf
+ echo "CFILEMODE='${CFILEMODE}'" >> /etc/exim4/update-exim4.conf.conf
+
+ echo $mailname > /etc/mailname
+ ### configuration files written ##
+
+ db_get exim4/dc_postmaster
+ dc_postmaster=`echo "$RET" | stripwhitespace`
+
+ if [ ! -e /etc/aliases ] ; then
+ writealiases "${dc_postmaster}"
+ #check whether /etc/aliases has a entry for root
+ elif ! grep -q '^root:[[:space:]]*[[:alnum:]]' /etc/aliases && \
+ [ "x${dc_postmaster}" != "xnone" ]; then
+ db_get exim4/dc_noalias_regenerate
+ dc_noalias_regenerate="$RET"
+ if [ "x${dc_noalias_regenerate}" = "xtrue" ] ; then
+ mv /etc/aliases /etc/aliases.0
+ writealiases "${dc_postmaster}"
+ fi
+ fi
+
+ if [ "${dc_eximconfig_configtype}" != "none" ] ; then
+ update-exim4.conf
+ fi
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config.postrm b/debian/exim4-config.postrm
new file mode 100644
index 0000000..a377248
--- /dev/null
+++ b/debian/exim4-config.postrm
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ purge)
+ rm -f /etc/exim4/update-exim4.conf.conf
+ rm -f /var/lib/exim4/config.autogenerated
+ rm -f /etc/exim4/conf.d/main/03_exim4-config_neverusers \
+ /etc/exim4/conf.d/rewrite/30_exim4-config_email-addresses \
+ /etc/exim4/conf.d/rewrite/35_exim4-config_masquerade
+
+ # remove empty directories in /etc/exim4
+ rmdir /etc/exim4/conf.d/auth /etc/exim4/conf.d/acl \
+ /etc/exim4/conf.d/transport /etc/exim4/conf.d/main \
+ /etc/exim4/conf.d/retry /etc/exim4/conf.d/rewrite \
+ /etc/exim4/conf.d/router /etc/exim4/conf.d \
+ /etc/exim4 /var/lib/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config.templates b/debian/exim4-config.templates
new file mode 100644
index 0000000..19346f3
--- /dev/null
+++ b/debian/exim4-config.templates
@@ -0,0 +1,140 @@
+Template: exim4/dc_eximconfig_configtype
+Type: select
+Choices: internet, smarthost, satellite, local, none
+Description: Which major configuration?
+ You must choose one of the options below:
+ .
+ Internet site; mail is sent and received directly using SMTP. If your
+ needs don't fit neatly into any category, you probably want to start
+ with this one and then edit the config file by hand.
+ .
+ Internet site using smarthost: You receive Internet mail on this
+ machine, either directly by SMTP or by running a utility such as
+ fetchmail. Outgoing mail is sent using a smarthost. optionally with
+ addresses rewritten. This is probably what you want for a dialup
+ system.
+ .
+ Satellite system: All mail is sent to another machine, called a "smart
+ host" for delivery. root and postmaster mail is delivered according
+ to /etc/aliases. No mail is received locally.
+ .
+ Local delivery only: You are not on a network. Mail for local users
+ is delivered.
+ .
+ No configuration: No configuration will be done now; your mail system
+ will be broken and cannot be used. You must do the configuration
+ yourself later by hand or by running "dpkg-reconfigure exim4-config"
+ as root.
+ .
+ Choose this option if you want to configure exim4 by hand instead of
+ with debconf or if you want to convert an existing handcrafted Exim v3
+ configuration to v4-format with exim_convert4r4(8). Consult
+ /usr/share/doc/exim4-base/examples/example.conf.gz and
+ /usr/share/doc/exim4-base/README.Debian!
+
+Template: exim4/mailname
+Type: string
+Description: `mail name' of your system, (not visible for satellite-system)
+ Please enter the `mail name' of your system. This is the
+ hostname portion of the address to be shown on outgoing
+ news and mail messages. If you are configuring this system as 'satellite'
+ this name won't appear on From: lines of mail, as rewriting is used.
+
+Template: exim4/dc_other_hostnames
+Type: string
+Default:
+Description: What other domain names to recognise?
+ Does this system have any other names which may appear on incoming
+ mail messages, apart from the mail name (${mailname}) and
+ localhost?
+ .
+ By default all domains will be treated the same; if you want different
+ domain names to be treated differently, you will need to edit the config
+ file afterwards.
+ .
+ If there are any more, enter them here, separated with colons.
+
+Template: exim4/dc_relay_domains
+Type: string
+Default:
+Description: Which domains to relay for?
+ All mail from here or specified other local machines to anywhere on
+ the internet will be accepted, as will mail from anywhere on the
+ internet to here.
+ .
+ Are there any domains you want to relay mail for---that is, you are
+ prepared to accept mail for them from anywhere on the internet, but
+ they are not local domains.
+ .
+ If there are any, enter them here, separated with colons. You
+ can use wildcards.
+
+Template: exim4/dc_relay_nets
+Type: string
+Default:
+Description: Which machines to allow relaying for?
+ Obviously, any machines that use us as a smarthost have to be excluded
+ from the relaying controls, as using us to relay mail for them is the
+ whole point.
+ .
+ Are there any networks of local machines you want to relay mail for?
+ .
+ If there are any, enter them here, separated with colons. You
+ should use the standard address/length format (e.g. 194.222.242.0/24)
+ .
+ You need to double the colons in IPv6 addreses (e.g. 5f03::1200::836f::::/48)
+
+Template: exim4/dc_readhost
+Type: string
+Description: Domain name for local users
+ Since this is going to be a satellite system, I need to know what domain
+ name to use for mail from local users; typically this is the machine on
+ which you normally receive your mail.
+ .
+ Where will your users read their mail?
+
+Template: exim4/dc_smarthost
+Type: string
+Description: Which machine will act as the smarthost and handle outgoing mail?
+ Enter the hostname of the machine to send outgoing mail to.
+
+Template: exim4/dc_postmaster
+Type: string
+Description: Who is to receive postmaster mail?
+ Mail for the "postmaster" and "root" accounts is usually redirected
+ to one or more user accounts, of the actual system administrators.
+ By default, I'll set things up so that mail for "postmaster" and for
+ various system accounts is redirected to "root", and mail for "root"
+ is redirected to a real user. This can be changed by editing /etc/aliases.
+ .
+ Note that postmaster-mail should usually be read on the system it is
+ directed to, rather than being forwarded elsewhere, so (at least one of)
+ the users you choose should not redirect their mail off this machine.
+ .
+ Which user account(s) should system administrator mail go to ?
+ Enter one or more usernames separated by spaces or commas . Enter
+ "none" if you want to leave this mail in "root"'s mailbox - NB this
+ is strongly discouraged. Also, note that usernames should be lowercase!
+
+Template: exim4/dc_noalias_regenerate
+Type: boolean
+Default: false
+Description: Overwrite existing /etc/aliases?
+ You already have an /etc/aliases file, but it does not redirect mail for
+ root to a user account, which is strongly recommended. Shall I overwrite it?
+ (the old one will be kept and renamed to aliases.O)?
+
+Template: exim4/dc_listenonpublic
+Type: boolean
+Description: Listen for SMTP connections on public network interfaces?
+ Exim listens per default for connection on the SMTP port of all
+ network interfaces. If this computer does not receive e-mail directly per
+ SMTP from other hosts, but only from local services like fetchmail or
+ your e-mail program (MUA) talking to localhost you can safely prohibit
+ external connections to Exim.
+ .
+ Should Exim listen for incoming connections on all interfaces?
+ .
+ You might want to answer `No' for dialup and satellite systems and
+ `Yes' for any machine that acts as smarthost for others. Say `Yes'
+ if you are not sure.
diff --git a/debian/exim4-daemon-custom.dirs b/debian/exim4-daemon-custom.dirs
new file mode 100644
index 0000000..45e1018
--- /dev/null
+++ b/debian/exim4-daemon-custom.dirs
@@ -0,0 +1,3 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
diff --git a/debian/exim4-daemon-custom.docs b/debian/exim4-daemon-custom.docs
new file mode 100644
index 0000000..bf9c376
--- /dev/null
+++ b/debian/exim4-daemon-custom.docs
@@ -0,0 +1 @@
+EDITME.exim4-custom
diff --git a/debian/exim4-daemon-custom.links b/debian/exim4-daemon-custom.links
new file mode 100644
index 0000000..4cc91fc
--- /dev/null
+++ b/debian/exim4-daemon-custom.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-custom/changelog.gz
diff --git a/debian/exim4-daemon-custom.postinst b/debian/exim4-daemon-custom.postinst
new file mode 100644
index 0000000..f76328a
--- /dev/null
+++ b/debian/exim4-daemon-custom.postinst
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ configure)
+
+ # needed for woody: "start" will fail on dpkg-reconfigure because
+ # daemon is already running.
+ # Afaik this has changed, dpkg-reconfigure from sid/sarge will call
+ # prerm on reconfigure.
+ # || true is needed for succesfull installation with configtype 'none'
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 start || invoke-rc.d exim4 reload || true
+ else
+ /etc/init.d/exim4 start || /etc/init.d/exim4 reload || true
+ fi
+ fi
+ db_stop
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-custom.prerm b/debian/exim4-daemon-custom.prerm
new file mode 100644
index 0000000..75c380b
--- /dev/null
+++ b/debian/exim4-daemon-custom.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ remove|upgrade)
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 stop
+ else
+ /etc/init.d/exim4 stop
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-heavy.dirs b/debian/exim4-daemon-heavy.dirs
new file mode 100644
index 0000000..1971556
--- /dev/null
+++ b/debian/exim4-daemon-heavy.dirs
@@ -0,0 +1,4 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
+/usr/lib/exim4/local_scan
diff --git a/debian/exim4-daemon-heavy.docs b/debian/exim4-daemon-heavy.docs
new file mode 100644
index 0000000..919678b
--- /dev/null
+++ b/debian/exim4-daemon-heavy.docs
@@ -0,0 +1,3 @@
+EDITME.exim4-heavy
+contrib/local-scan-perl/localscan-install.html
+debian/README.local_scan-perl
diff --git a/debian/exim4-daemon-heavy.install b/debian/exim4-daemon-heavy.install
new file mode 100644
index 0000000..d74aa36
--- /dev/null
+++ b/debian/exim4-daemon-heavy.install
@@ -0,0 +1 @@
+contrib/local-scan-perl/*so usr/lib/exim4/local_scan
diff --git a/debian/exim4-daemon-heavy.links b/debian/exim4-daemon-heavy.links
new file mode 100644
index 0000000..4bc0920
--- /dev/null
+++ b/debian/exim4-daemon-heavy.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-heavy/changelog.gz
diff --git a/debian/exim4-daemon-heavy.postinst b/debian/exim4-daemon-heavy.postinst
new file mode 100644
index 0000000..f76328a
--- /dev/null
+++ b/debian/exim4-daemon-heavy.postinst
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ configure)
+
+ # needed for woody: "start" will fail on dpkg-reconfigure because
+ # daemon is already running.
+ # Afaik this has changed, dpkg-reconfigure from sid/sarge will call
+ # prerm on reconfigure.
+ # || true is needed for succesfull installation with configtype 'none'
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 start || invoke-rc.d exim4 reload || true
+ else
+ /etc/init.d/exim4 start || /etc/init.d/exim4 reload || true
+ fi
+ fi
+ db_stop
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-heavy.prerm b/debian/exim4-daemon-heavy.prerm
new file mode 100644
index 0000000..75c380b
--- /dev/null
+++ b/debian/exim4-daemon-heavy.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ remove|upgrade)
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 stop
+ else
+ /etc/init.d/exim4 stop
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-light.dirs b/debian/exim4-daemon-light.dirs
new file mode 100644
index 0000000..45e1018
--- /dev/null
+++ b/debian/exim4-daemon-light.dirs
@@ -0,0 +1,3 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
diff --git a/debian/exim4-daemon-light.docs b/debian/exim4-daemon-light.docs
new file mode 100644
index 0000000..53db684
--- /dev/null
+++ b/debian/exim4-daemon-light.docs
@@ -0,0 +1 @@
+EDITME.exim4-light
diff --git a/debian/exim4-daemon-light.links b/debian/exim4-daemon-light.links
new file mode 100644
index 0000000..52bf604
--- /dev/null
+++ b/debian/exim4-daemon-light.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-light/changelog.gz
diff --git a/debian/exim4-daemon-light.postinst b/debian/exim4-daemon-light.postinst
new file mode 100644
index 0000000..f76328a
--- /dev/null
+++ b/debian/exim4-daemon-light.postinst
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ configure)
+
+ # needed for woody: "start" will fail on dpkg-reconfigure because
+ # daemon is already running.
+ # Afaik this has changed, dpkg-reconfigure from sid/sarge will call
+ # prerm on reconfigure.
+ # || true is needed for succesfull installation with configtype 'none'
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 start || invoke-rc.d exim4 reload || true
+ else
+ /etc/init.d/exim4 start || /etc/init.d/exim4 reload || true
+ fi
+ fi
+ db_stop
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-light.prerm b/debian/exim4-daemon-light.prerm
new file mode 100644
index 0000000..75c380b
--- /dev/null
+++ b/debian/exim4-daemon-light.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ remove|upgrade)
+ if [ -x /etc/init.d/exim4 ]; then
+ if [ -x /usr/sbin/invoke-rc.d ]; then
+ invoke-rc.d exim4 stop
+ else
+ /etc/init.d/exim4 stop
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4.links b/debian/exim4.links
new file mode 100644
index 0000000..9602836
--- /dev/null
+++ b/debian/exim4.links
@@ -0,0 +1 @@
+usr/share/doc/exim4-base usr/share/doc/exim4
diff --git a/debian/eximon4.dirs b/debian/eximon4.dirs
new file mode 100644
index 0000000..802fe2e
--- /dev/null
+++ b/debian/eximon4.dirs
@@ -0,0 +1,2 @@
+usr/sbin
+usr/lib/exim4
diff --git a/debian/eximon4.manpages b/debian/eximon4.manpages
new file mode 100644
index 0000000..4f0a832
--- /dev/null
+++ b/debian/eximon4.manpages
@@ -0,0 +1 @@
+debian/manpages/eximon.8
diff --git a/debian/eximonconf-patch b/debian/eximonconf-patch
new file mode 100644
index 0000000..2b00af7
--- /dev/null
+++ b/debian/eximonconf-patch
@@ -0,0 +1,7 @@
+--- exim_monitor/EDITME 2002-07-22 09:59:52.000000000 +0100
++++ config-eximon 2002-09-03 11:51:20.000000000 +0100
+@@ -1,3 +1,4 @@
++# -*- makefile -*-
+ ##################################################
+ # The Exim Monitor #
+ ##################################################
diff --git a/debian/ip-up.d b/debian/ip-up.d
new file mode 100644
index 0000000..dea0e3b
--- /dev/null
+++ b/debian/ip-up.d
@@ -0,0 +1,9 @@
+#!/bin/sh
+[ -x /usr/lib/exim4/exim4 ] || exit 0
+
+[ -f /etc/default/exim4 ] && . /etc/default/exim4
+
+if [ "x${QUEUERUNNER}" != "xno" ] ; then
+# Flush exim queue
+ /usr/sbin/exim4 -qf ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+fi
diff --git a/debian/manpages/exicyclog.8 b/debian/manpages/exicyclog.8
new file mode 100644
index 0000000..9d40f5c
--- /dev/null
+++ b/debian/manpages/exicyclog.8
@@ -0,0 +1,69 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXICYCLOG 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exicyclog \- Cycle exim's logfiles
+.SH SYNOPSIS
+.B eximcyclog
+.SH DESCRIPTION
+The
+.B exicyclog
+script can be used to cycle (rotate)
+.I mainlog
+and
+.I rejectlog
+files.
+This is not necessary if only syslog is being used.
+Some operating systems have their own standard mechanisms for log cycling,
+and these can be used instead of
+.B exicyclog
+if preferred.
+
+Each time
+.B exicyclog
+is run the file names get \(oqshuffled down\(cq by one.
+If the main log file name is mainlog (the default) then when
+.B exicyclog
+is run mainlog becomes mainlog.01, the previous mainlog.01 becomes mainlog.02
+and so on, up to a limit which is set in the script, and which defaults to 10.
+Reject logs are handled similarly.
+
+If no mainlog file exists, the script does nothing.
+Files that \(oqdrop off\(cq the end are deleted.
+All files with numbers greater than 01 are compressed, using a compression
+command which is configured by the COMPRESS_COMMAND setting in
+Local/Makefile.
+It is usual to run \(lqexicyclog\(rq daily from a root \(lqcrontab\(rq entry
+of the form
+
+ 1 0 * * * su exim \-c /usr/exim/bin/exicyclog
+
+assuming you have used the name \(oqexim\(cq for the Exim user.
+You can run
+.B exicyclog
+as root if you wish, but there is no need.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exigrep.8 b/debian/manpages/exigrep.8
new file mode 100644
index 0000000..f81a001
--- /dev/null
+++ b/debian/manpages/exigrep.8
@@ -0,0 +1,64 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIGREP 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+EXIGREP \- Search Exim's main log
+.SH SYNOPSIS
+.B exigrep
+.I [\-l] pattern [log file] ...
+
+.SH DESCRIPTION
+The
+.B exigrep
+utility is a Perl script that searches one or more main log files for
+entries that match a given pattern.
+When it finds a match, it extracts all the log entries for the relevant
+message, not just those that match the pattern.
+Thus,
+.B exigrep
+can extract complete log entries for a given message, or all mail for a given
+user, or for a given host, for example.
+
+The
+.I \-l
+flag means \(oqliteral\(cq, that is, treat all characters in the pattern as
+standing for themselves.
+Otherwise the pattern must be a Perl regular expression.
+The pattern match is case-insensitive.
+If no file names are given on the command line, the standard input is
+read.
+
+If the location of a
+.B zcat
+command is known from the definition of ZCAT_COMMAND in Local/Makefile,
+.B exigrep
+automatically passes any file whose
+name ends in COMPRESS_SUFFIX through
+.B zcat
+as it searches it.
+.SH SEE ALSO
+.BR exim (8),
+.BR perlre (1),
+/usr/share/doc/exim4\-base/
+
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_checkaccess.8 b/debian/manpages/exim_checkaccess.8
new file mode 100644
index 0000000..8a811c1
--- /dev/null
+++ b/debian/manpages/exim_checkaccess.8
@@ -0,0 +1,75 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_CHECKACCESS 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_checkaccess \- Check address acceptance from given IP
+.SH SYNOPSIS
+.B exim_checkaccess
+.I IP-address email@address [more Exim options]
+
+.SH DESCRIPTION
+.B Exim's
+.I \-bh
+command line argument allows you to run a fake SMTP session with debugging
+output, in order to check what Exim is doing when it is applying policy
+controls to incoming SMTP mail.
+However, not everybody is sufficiently familiar with the SMTP protocol to
+be able to make full use of \-bh, and sometimes you just want to answer the
+question \(lqDoes this address have access?\(rq without bothering with any
+further details.
+
+The
+.B exim_checkaccess
+utility is a \(oqpackaged\(cq version of
+.I \-bh.
+It takes two arguments, an IP address and an email address:
+
+ exim_checkaccess 10.9.8.7 A.User@a.domain.example
+
+The utility runs a call to
+.B Exim
+with the \-bh option, to test whether the given email address would be
+accepted in a RCPT command in a TCP/IP connection from the host with the
+given IP address.
+The output of the utility is either the word \(oqaccepted\(cq, or the SMTP error
+response, for example:
+
+ Rejected:
+ 550 Relay not permitted
+
+When running this test, the utility uses \(lq<>\(rq as the envelope sender
+address for the MAIL command, but you can change this by providing additional
+options. These are passed directly to the Exim command.
+For example, to specify that the test is to be run with the sender address
+\(lqhimself@there.example\(rq you can use:
+
+ exim_checkaccess 10.9.8.7 A.User@a.domain.example \\
+ \-f himself@there.example
+
+Note that these additional Exim command line items must be given after the
+two mandatory arguments.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_convert4r4.8 b/debian/manpages/exim_convert4r4.8
new file mode 100644
index 0000000..cab9e07
--- /dev/null
+++ b/debian/manpages/exim_convert4r4.8
@@ -0,0 +1,68 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_CONVERT4R4 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_convert4r4 \- Convert Exim configuration from v3 to v4 format
+.SH SYNOPSIS
+.B exim_convert4r4
+
+.SH DESCRIPTION
+This script is provided to assist in updating Exim configuration files.
+It reads an Exim 3 configuration file on the standard input, and writes a
+modified file on the standard output.
+It also writes comments about what it has done to the standard error file.
+It assumes that the input is a valid Exim 3 configuration file.
+A typical call to the conversion script might be
+
+.I exim_convert4r4 < /etc/exim/exim.conf > /etc/exim4/exim4.conf.new
+
+The output file
+.B MUST
+be checked and tested before trying to use it on a live system.
+The conversion script is just an aid which does a lot of the \(lqgrunt
+work\(rq.
+It does not guarantee to produce an Exim 4 configuration that behaves
+exactly the same as the Exim 3 configuration it reads.
+
+Each option change in the new file is preceded by an identifying comment.
+In fact, the conversion script tends to make quite a mess of your
+configuration, and you should expect to go through it afterwards and tidy
+it up by hand.
+
+Unless you are running a very straightforward configuration, the automatic
+conversion is likely to generate a non-optimal configuration.
+You should not only check it thoroughly, but also run as many tests as you
+can, to ensure that it is working as you expect.
+In particular, you should test address routing, using \-bt and \-bv, and the
+policy controls, using \-bh.
+If possible, you should also do some live tests (i.e. send and receive
+some messages) before putting Exim 4 into service.
+
+If you have a very complicated configuration, it is possible that
+exim_convert4r4 will break it in some situations, which is why thorough
+testing is strongly recommended.
+
+.SH SEE ALSO
+.BR exim (8),
+the files in /usr/share/doc/exim4\-base/, especially Exim4.upgrade.gz
+
+.SH AUTHOR
+This manual page was stitched together from Exim4.upgrade by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_db.8 b/debian/manpages/exim_db.8
new file mode 100644
index 0000000..625e4a4
--- /dev/null
+++ b/debian/manpages/exim_db.8
@@ -0,0 +1,164 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_DB 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_db \- Manage Exim's hint databases (exim_dumpdb, exim_fixdb, exim_tidydb)
+.SH SYNOPSIS
+.B exim_dumpdb
+.I spooldir database
+.br
+.B exim_fixdb
+.I spooldir database
+.br
+.B exim_tidydb
+.I [\-f] [\-t time] spooldir database
+
+.SH DESCRIPTION
+Three utility programs are provided for maintaining the DBM files that
+Exim uses to contain its delivery hint information.
+Each program requires two arguments.
+The first specifies the name of Exim's spool directory, and the second is
+the name of the database it is to operate on.
+These are as follows:
+.TP
+.B retry
+the database of retry information
+.TP
+.B wait\-<transport name>
+databases of information about messages waiting for remote hosts
+.TP
+.B misc
+other hints data (for example, for serializing ETRN runs)
+
+The entire contents of a database are written to the standard output by the
+.B exim_dumpdb
+program, which has no options or arguments other than the spool
+and database names.
+For example, to dump the retry database:
+
+.I exim_dumpdb /var/spool/exim retry
+
+Two lines of output are produced for each entry:
+.nf
+ T:mail.ref.example:192.168.242.242 146 77 Connection refused
+ 31-Oct-1995 12:00:12 02-Nov-1995 12:21:39 02-Nov-1995 20:21:39 *
+
+.fi
+The first item on the first line is the key of the record.
+It starts with one of the letters R, or T, depending on whether it refers
+to a routing or transport retry.
+For a local delivery, the next part is the local address; for a remote
+delivery it is the name of the remote host, followed by its failing IP
+address (unless \(lqno_retry_include_ip_address\(rq is set on the smtp
+transport).
+Then there follows an error code, an additional error code, and a
+textual description of the error.
+
+The three times on the second line are the time of first failure, the time of
+the last delivery attempt, and the computed time for the next attempt.
+The line ends with an asterisk if the cutoff time for the last retry rule
+has been exceeded.
+
+Each output line from
+.B exim_dumpdb
+for the
+.I wait\-xxx
+databases consists of a host name followed by a list of ids for messages
+that are or were waiting to be delivered to that host.
+If there are a very large number for any one host, continuation records,
+with a sequence number added to the host name, may be seen.
+The data in these records is often out of date, because a message may be
+routed to several alternative hosts, and Exim makes no effort to keep
+crossreferences.
+
+The
+.B exim_tidydb
+utility program is used to tidy up the contents of the hints databases.
+If run with no options, it removes all records from a database that are
+more than 30 days old.
+The cutoff date can be altered by means of the \-t option, which must be
+followed by a time.
+For example, to remove all records older than a week from the retry
+database:
+
+.I exim_tidydb \-t 7d /var/spool/exim retry
+
+Both the
+.I wait\-xxx
+and
+.I retry
+databases contain items that involve message ids.
+In the former these appear as data in records keyed by host - they were
+messages that were waiting for that host - and in the latter they are the
+keys for retry information for messages that have suffered certain types
+of error.
+When \(lqexim_tidydb\(rq is run, a check is made to ensure that message ids in
+database records are those of messages that are still on the queue.
+Message ids for messages that no longer exist are removed from \(lqwait\-\(rqxxx
+records, and if this leaves any records empty, they are deleted.
+For the \(lqretry\(rq database, records whose keys are non-existent message
+ids are removed.
+The
+.B exim_tidydb
+utility outputs comments on the standard output whenever it removes
+information from the database.
+
+Removing records from a DBM file does not normally make the file smaller, but
+all the common DBM libraries are able to re-use the space that is released.
+It is therefore suggested that
+.B exim_tidydb
+be run periodically on all the hints databases, but at a quiet time of day,
+because it requires a database to be locked (and therefore inaccessible to
+Exim) while it does its work.
+
+The
+.B exim_fixdb
+program is a utility for interactively modifying databases.
+Its main use is for testing Exim, but it might also be occasionally useful
+for getting round problems in a live system.
+It has no options, and its interface is somewhat crude.
+On entry, it prompts for input with a right angle-bracket.
+A key of a database record can then be entered, and the data for that
+record is displayed.
+
+If \(oqd\(cq is typed at the next prompt, the entire record is deleted.
+For all except the
+.I retry
+database, that is the only operation that can be carried out.
+For the
+.I retry
+database, each field is output preceded by a number, and data for individual
+fields can be changed by typing the field number followed by new data, for
+example:
+
+ > 4 951102:1000
+
+resets the time of the next delivery attempt.
+Time values are given as a sequence of digit pairs for year, month, day,
+hour, and minute.
+Colons can be used as optional separators.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_dbmbuild.8 b/debian/manpages/exim_dbmbuild.8
new file mode 100644
index 0000000..e4d34ca
--- /dev/null
+++ b/debian/manpages/exim_dbmbuild.8
@@ -0,0 +1,100 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_DBMBUILD 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_dbmbuild \- Build a DBM file.
+.SH SYNOPSIS
+.B exim_dbmbuild
+.I [\-nolc] [\-nozero] [\-noduperr] [\-nowarn] inputfile|\- outputfile
+
+.SH DESCRIPTION
+The
+.B exim_dbmbuild
+program reads an input file containing keys and data in
+the format used by the
+.I lsearch
+lookup (see section 9.1).
+It writes a DBM file using the lower-cased alias names as keys and the
+remainder of the information as data.
+The lower-casing can be prevented by calling the program with the
+.I \-nolc
+option.
+
+A terminating zero is included as part of the key string.
+This is expected by the dbm lookup type.
+However, if the option
+.I \-nozero
+is given,
+.B exim_dbmbuild
+creates files without terminating zeroes in either the key strings or the
+data strings.
+The
+.I dbmnz
+lookup type can be used with such files.
+
+The program requires two arguments: the name of the input file (which can
+be a single hyphen to indicate the standard input), and the name of the
+output file.
+It creates the output under a temporary name, and then renames it if all
+went well.
+If the native DB interface is in use (USE_DB is set in a compile-time
+configuration file - this is common in free versions of Unix) the two file
+names must be different, because in this mode the Berkeley DB functions
+create a single output file using exactly the name given.
+For example,
+
+ exim_dbmbuild /etc/aliases /etc/aliases.db
+
+reads the system alias file and creates a DBM version of it in
+/etc/aliases.db.
+
+In systems that use the
+.I ndbm
+routines (mostly proprietary versions of Unix), two files are used, with the
+suffixes .dir and .pag.
+In this environment, the suffixes are added to the second argument of
+.B exim_dbmbuild,
+so it can be the same as the first.
+This is also the case when the Berkeley functions are used in
+compatibility mode (though this is not recommended), because in that case
+it adds a .db suffix to the file name.
+
+If a duplicate key is encountered, the program outputs a warning, and when
+it finishes, its return code is 1 rather than zero, unless the
+.I \-noduperr
+option is used.
+By default, only the first of a set of duplicates is used - this makes it
+compatible with lsearch lookups.
+There is an option
+.I \-lastdup
+which causes it to use the data for the last duplicate instead.
+There is also an option
+.I \-nowarn,
+which stops it listing duplicate keys to \(lqstderr\(rq.
+For other errors, where it doesn't actually make a new file, the return
+code is 2.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_lock.8 b/debian/manpages/exim_lock.8
new file mode 100644
index 0000000..5e8ccf6
--- /dev/null
+++ b/debian/manpages/exim_lock.8
@@ -0,0 +1,132 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_LOCK 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_lock \- Mailbox maintenance
+.SH SYNOPSIS
+.B exim_lock
+.RI [ options ] mailbox-file
+
+.SH DESCRIPTION
+The
+.B exim_lock
+utility locks a mailbox file using the same algorithm as Exim.
+For a discussion of locking issues, see section 25.2.
+.B exim_lock
+can be used to prevent any modification of a mailbox by Exim or a user
+agent while investigating a problem.
+The utility requires the name of the file as its first argument.
+If the locking is successful, the second argument is run as a command
+(using C's \(lqsystem()\(rq function); if there is no second argument, the value
+of the SHELL environment variable is used; if this is unset or empty,
+/bin/sh is run.
+When the command finishes, the mailbox is unlocked and the utility ends.
+The following options are available:
+.TP
+.I \-fcntl
+Use \(lqfcntl()\(rq locking on the open mailbox.
+.TP
+.I \-interval
+This must be followed by a number, which is a number of seconds; it
+sets the interval to sleep between retries (default 3).
+.TP
+.I \-lockfile
+Create a lock file before opening the mailbox.
+.TP
+.I \-mbx
+Lock the mailbox using MBX rules.
+.TP
+.I \-q
+Suppress verification output.
+.TP
+.I \-retries
+This must be followed by a number; it sets the number of times to try
+to get the lock (default 10).
+.TP
+.I \-timeout
+This must be followed by a number, which is a number of seconds; it
+sets a timeout to be used with a blocking \(lqfcntl()\(rq lock.
+If it is not set (the default), a non-blocking call is used.
+.TP
+.I \-v
+Generate verbose output.
+
+If none of
+.I \-fcntl, \-lockfile
+or
+.I \-mbx
+are given, the default is to create a lock file and also use \(lqfcntl()\(rq locking
+on the mailbox, which is the same as
+.B Exim's
+default.
+The use of
+.I \-fcntl
+requires that the file be writeable; the use
+of
+.I \-lockfile
+requires that the directory containing the file be writeable.
+Locking by lock file does not last for ever; Exim assumes that a lock file
+is expired if it is more than 30 minutes old.
+
+The
+.I \-mbx
+option is mutually exclusive with
+.I \-fcntl.
+It causes a shared lock to be taken out on the open mailbox, and an
+exclusive lock on the file /tmp/.n.m where n and m are the device number
+and inode number of the mailbox file.
+When the locking is released, if an exclusive lock can be obtained for the
+mailbox, the file in /tmp is deleted.
+
+The default output contains verification of the locking that takes place.
+The
+.I \-v
+option causes some additional information to be given.
+The
+.I \-q
+option suppresses all output except error messages.
+.PP
+A command such as
+
+ exim_lock /var/spool/mail/spqr
+
+runs an interactive shell while the file is locked, whereas
+
+ exim_lock \-q /var/spool/mail/spqr <<End
+ <some commands>
+ End
+
+runs a specific non-interactive sequence of commands while the file is
+locked, suppressing all verification output.
+A single command can be run by a command such as
+
+ exim_lock \-q /var/spool/mail/spqr \
+ "cp /var/spool/mail/spqr /some/where"
+
+Note that if a command is supplied, it must be entirely contained within
+the second argument - hence the quotes.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/eximon.8 b/debian/manpages/eximon.8
new file mode 100644
index 0000000..5bb0810
--- /dev/null
+++ b/debian/manpages/eximon.8
@@ -0,0 +1,45 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIMON 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximon \- Monitor Exim
+.SH SYNOPSIS
+.B eximon
+
+.SH DESCRIPTION
+The Exim monitor is an application which displays in an X window information
+about the state of
+.B Exim's
+queue and what
+.B Exim is doing.
+An admin user can perform certain operations on messages from this GUI
+interface; however all such facilities are also available from the command
+line, and indeed, the monitor itself makes use of the command line to
+perform any actions requested.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+Eximon is documented extensivly in
+.B specification of the exim mail transfer agent.
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exinext.8 b/debian/manpages/exinext.8
new file mode 100644
index 0000000..9d757b0
--- /dev/null
+++ b/debian/manpages/exinext.8
@@ -0,0 +1,68 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXINEXT 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximnext \- Finding individual retry times
+.SH SYNOPSIS
+.B eximnext
+.I address|message-id
+
+.SH DESCRIPTION
+A utility called
+.B exinext
+(mostly a Perl script) provides the ability to fish specific information
+out of the retry database.
+Given a mail domain (or a complete address), it looks up the hosts for
+that domain, and outputs any retry information for the hosts or for the
+domain.
+At present, the retry information is obtained by running
+.B exim_dumpdb
+(see below) and postprocessing the output.
+For example:
+
+ exinext piglet@milne.fict.example
+ kanga.milne.fict.example:192.168.8.1 error 146: Connection refused
+ first failed: 21-Feb-1996 14:57:34
+ last tried: 21-Feb-1996 14:57:34
+ next try at: 21-Feb-1996 15:02:34
+ roo.milne.fict.example:192.168.8.3 error 146: Connection refused
+ first failed: 20-Jan-1996 13:12:08
+ last tried: 21-Feb-1996 11:42:03
+ next try at: 21-Feb-1996 19:42:03
+ past final cutoff time
+
+You can also give
+.B exinext
+a local part, without a domain, and it will give any retry information for
+that local part in your default domain.
+A message id can be used to obtain retry information pertaining to a
+specific message.
+This exists only when an attempt to deliver a message to a remote host
+suffers a message-specific error (see section 42.2).
+.B exinext
+is not particularly efficient, but then it isn't expected to be run very often.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exiqgrep.8 b/debian/manpages/exiqgrep.8
new file mode 100644
index 0000000..23084b3
--- /dev/null
+++ b/debian/manpages/exiqgrep.8
@@ -0,0 +1,83 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIQGREP 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exiqgrep \- Search in the exim queue
+.SH SYNOPSIS
+.B exiqgrep
+.I [\-a] [\-c]
+
+.SH DESCRIPTION
+The
+.B exiqgrep
+utility is a Perl script which offers possibilities to grep in the
+exim queue output. Unlike exiqsumm, it invokes exim \-bpu itself and
+does not need to be invoked in a pipe.
+
+.SH OPTIONS
+.TP 10
+\fB\-h\fR
+Print help
+.TP
+\fB\-f <regexp>\fR
+Match sender address (field is \(lq< >\(rq wrapped)
+.TP
+\fB\-r <regexp>\fR
+Match recipient address
+.TP
+\fB\-s <regexp>\fR
+Match against the site field from long output
+.TP
+\fB\-y <seconds>\fR
+Message younger than
+.TP
+\fB\-o <seconds>\fR
+Message older than
+.TP
+\fB\-z\fR
+Frozen messages only (exclude non-frozen)
+.TP
+\fB\-x\fR
+Non-frozen messages only (exclude frozen)
+.TP
+\fB\-c\fR
+Display match count
+.TP
+\fB\-l\fR
+Long Format [Default]
+.TP
+\fB\-i\fR
+Message IDs only
+.TP
+\fB\-b\fR
+Brief Format
+.TP
+\fB\-R\fR
+Reverse order
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from the source code by Marc
+Haber <mh+debian\-packages@zugschlus.de>, using the exiqsumm man page by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
+
diff --git a/debian/manpages/exiqsumm.8 b/debian/manpages/exiqsumm.8
new file mode 100644
index 0000000..0ed77ec
--- /dev/null
+++ b/debian/manpages/exiqsumm.8
@@ -0,0 +1,69 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIQSUMM 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exiqsumm \- Summarising the queue
+.SH SYNOPSIS
+.B exiqsumm
+.I [\-a] [\-c]
+
+.SH DESCRIPTION
+The
+.B exiqsumm
+utility is a Perl script which reads the output of
+.I exim \-bp
+and produces a summary of the messages on the queue.
+Thus, you use it by running a command such as
+
+ exim \-bp | exiqsumm
+
+The output consists of one line for each domain that has messages waiting
+for it, as in the following example:
+
+ 3 2322 74m 66m msn.com.example
+
+This lists the number of messages for the domain, their total volume, and
+the length of time that the oldest and the newest messages have been
+waiting.
+By default the output is sorted on the domain name, but
+.B exiqsumm
+has the options
+.I \-a
+and
+.I \-c,
+which cause the output to be sorted by oldest message and by count of
+messages, respectively.
+
+The output of
+.I exim \-bp
+contains the original addresses in the message, so this also applies to
+the output from
+.B exiqsumm.
+No domains from addresses generated by aliasing or forwarding are included
+(unless the \(lqone_time\(rq option of the redirect router has been used to
+convert them into \(oqtop level\(cq addresses).
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exiwhat.8 b/debian/manpages/exiwhat.8
new file mode 100644
index 0000000..c70c2fe
--- /dev/null
+++ b/debian/manpages/exiwhat.8
@@ -0,0 +1,97 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIWHAT 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximwhat \- Finding out what Exim processes are doing
+.SH SYNOPSIS
+.B eximwhat
+
+.SH DESCRIPTION
+On operating systems that can restart a system call after receiving a
+signal (most modern OS), an
+.B Exim
+process responds to the SIGUSR1 signal by writing a line describing what
+it is doing to the file exim-process.info in the Exim spool directory.
+The
+.B exiwhat
+script sends the signal to all
+.B Exim
+processes it can find, having first emptied the file.
+It then waits for one second to allow the
+.B Exim
+processes to react before displaying the results.
+In order to run
+.B exiwhat
+successfully you have to have sufficient privilege to send the signal to
+the
+.B Exim
+processes, so it is normally run as root.
+
+Unfortunately, the
+.B ps
+command which
+.B exiwhat
+uses to find
+.B Exim
+processes varies in different operating systems.
+Not only are different options used, but the format of the output is
+different.
+For this reason, there are some system configuration options that configure
+exactly how
+.B exiwhat
+works.
+If it doesn't seem to be working for you, check the following compile-time
+options:
+.TP
+.I EXIWHAT_PS_CMD
+the command for running \(lqps\(rq
+.TP
+.I EXIWHAT_PS_ARG
+the argument for \(lqps\(rq
+.TP
+.I EXIWHAT_EGREP_ARG
+the argument for \(lqegrep\(rq to select from \(lqps\(rq output
+.TP
+.I EXIWHAT_KILL_ARG
+the argument for the \(lqkill\(rq command
+.PP
+An example of typical output from
+.B exiwhat
+is
+
+.nf
+ 164 daemon: -q1h, listening on port 25
+10483 running queue: waiting for 0tAycK-0002ij-00 (10492)
+10492 delivering 0tAycK-0002ij-00 to mail.ref.example [10.19.42.42]
+ (editor@ref.example)
+10592 handling incoming call from [192.168.243.242]
+10628 accepting a local non-SMTP message
+.fi
+
+The first number in the output line is the process number.
+The third line has been split here, in order to fit it on the page.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/update-exim4.conf.8 b/debian/manpages/update-exim4.conf.8
new file mode 100644
index 0000000..cfc0614
--- /dev/null
+++ b/debian/manpages/update-exim4.conf.8
@@ -0,0 +1,142 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4.CONF 8 "March 25, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4.conf \- Generate exim4 configuration files.
+.SH SYNOPSIS
+.B update\-exim4.conf [\-v|\-\-verbose] [\-h|\-\-help] [\-\-keepcomments] [\-\-removecomments] [\-o|\-\-output file]
+
+.SH OPTIONS
+.TP
+.I \-v|\-\-verbose
+Enable verbose mode, tell about ignored, user modified files
+.TP
+.I \-h|\-\-help
+Show short help message and exit
+.TP
+.I \-\-keepcomments
+Do not remove comment lines from the output file.
+.TP
+.I \-\-removecomments
+Remove comment lines from the output file. [Default]
+.TP
+.I \-o|\-\-output file
+Write output to file instead of /var/lib/exim4/config.autogenerated. Be careful,
+.B update\-exim4.conf
+nevertheless changes files in /etc/exim4/conf.d!
+
+.SH DESCRIPTION
+The script
+.B update\-exim4.conf
+generates the main configuration files
+.I /var/lib/exim4/config.autogenerated
+for
+.B Exim v4
+by merging the data in the template files in the
+.I /etc/exim4/conf.d
+directory tree and
+.I /etc/exim4/update\-exim4.conf.conf
+to the output file
+.I /var/lib/exim4/config.autogenerated.
+Additionally the files
+.I /etc/exim4/conf.d/rewrite/30_exim4\-base_email\-addresses
+and
+.I /etc/exim4/conf.d/rewrite/35_exim4\-base_masquerade
+which contain rewriting rules for evaluation of /etc/email\-addresses and
+for masquerading satellite-systems and
+.I /etc/exim4/conf.d/main/03_exim4\-base_neverusers
+which sets never_users=root if possible are managed by this script.
+.PP
+.B update\-exim4.conf
+sorts the files in the subdirectories main, acl, router, transport, retry,
+rewrite and auth of /etc/exim4/conf.d in the lexical sort order, concatenates
+them and replaces the patterns DEBCONFsomethingDEBCONF.
+It does not change the other contents of these files.
+This makes it very simple to make small changes to the configuration and
+still have the benefits of debconf.
+
+On the other hand if you don't want to manage exim4.conf with debconf
+set
+.I dc_eximconfig_configtype=none
+in /etc/exim4/update\-exim4.conf.conf and place your own handcrafted version
+in /etc/exim4/exim4.conf.
+- Exim will use this file if it exists and ignore the autogenerated one.
+
+.B update\-exim4.conf
+exits silently and does nothing if /etc/exim4/exim4.conf exists.
+
+.B update\-exim4.conf
+ignores all files in the conf.d directory that have a filename which
+does not consist only of letters, numbers, underscores and hyphens
+([:alnum:]_\-), similar to
+.B run\-parts(8).
+For easy interaction with packages extending Exim additionally
+/etc/exim4/conf.d/foo/bar.rul is used instead of
+/etc/exim4/conf.d/foo/bar if it exists!
+
+If
+.B update\-exim4.conf
+is called without the option \-o it checks the validity of the
+freshly generated configurationfile and exits with an error instead
+of installing the file to /var/lib/exim4/config.autogenerated.
+
+.SH EXAMPLES
+You want to be able to check exim's queue as normal user: Generate a new
+file, e.g. /etc/exim4/conf.d/main/40_local_mailq, containing only the line
+.I queue_list_requires_admin = false
+
+.SH NOTES
+.B update\-exim4.conf
+changes the file permissions of the output file to the value of the environment
+variable CFILEMODE, if CFILEMODE is set neither in
+/etc/exim4/update\-exim4.conf.conf nor in the environment it defaults to 0644.
+Change this to 0640 if you're keeping sensible information (LDAP credentials
+et. al.) in there.
+
+.SH FILES
+.B update\-exim4.conf
+manages these files:
+.TP
+.I /var/lib/exim4/config.autogenerated
+Exim's main configuration file
+.TP
+.I /etc/exim4/conf.d/rewrite/30_exim4\-base_email\-addresses
+rewriting rules for evaluation of /etc/exim4/email\-addresses
+.TP
+.I /etc/exim4/conf.d/rewrite/35_exim4\-base_masquerade
+rewriting rules targeted for satellite system.
+.TP
+.I /etc/exim4/conf.d/main/03_exim4\-base_neverusers
+never_users = root.
+.PP
+The files in /etc/ are checked for user modifications and are not updated any
+more by update\-exim4.conf if the local adminstator has edited them. If you
+want to put such a file under update\-exim4.conf's control again run
+.B md5sum filename
+and note its output. Edit the file and add a line at the top of the file
+consisting only of a hash-mark (#), followed by a single space-character and
+the output of the md5sum command. For example
+# d41d8cd98f00b204e9800998ecf8427e
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/manpages/update-exim4defaults.8 b/debian/manpages/update-exim4defaults.8
new file mode 100644
index 0000000..48b4d1c
--- /dev/null
+++ b/debian/manpages/update-exim4defaults.8
@@ -0,0 +1,160 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4DEFAULTS 8 "March 26, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4defaults \- Manage exim4 daemon default file.
+.SH SYNOPSIS
+.B update\-exim4defaults
+.I [ \-\-qflags flags ]
+.I [ \-\-queuerunner combined|separate|no ]
+.I [ \-\-queuetime time ]
+.I [ \-\-commonoptions options ]
+.I [ \-\-queuerunneroptions options ]
+.I [ \-\-smtplisteneroptions options ]
+.I [ \-\-remove\-common options ]
+.I [ \-\-remove\-queue options ]
+.I [ \-\-remove\-smtp options ]
+.I [ \-\-force|\-f ]
+.I [ \-\-help|\-h ]
+.I [ \-\-init ]
+
+.SH DESCRIPTION
+.B update\-exim4defaults
+allows to set run parameters for the
+.B Exim
+daemon in
+.I /etc/default/exim4.
+Its main purpose is for interaction with packages enhancing
+.B Exim
+like virus-scanners that need to change the way the exim daemon is started.
+.PP
+
+.SH OPTIONS
+.TP
+.I \-\-help|\-h
+Print short usage instructions and exit.
+.TP
+.I \-\-qflags flags
+Set qflags, special flags given to exim directly after the \(lq\-q\(rq. See
+.B exim(8)
+for more information.
+.TP
+.I \-\-queuerunner combined|separate|no
+Should the init script start one daemon that listens on the smtp port for
+incoming connections and runs the queue at regular intervals
+.I (combined)
+, or should it start two separate daemons, one listening on the smtp port,
+the other running the queue
+.I (separate)
+, or shouldn't we run the queue at all, for example if you'd rather do this
+with
+.B cron?
+.TP
+.I \-\-queuetime time
+In which intervals should we run the queue? This passed as option
+.I \-q<qflags>time
+to Exim, e.g. \-q30m or \-qq1h.
+.TP
+.I \-\-commonoptions options
+Options passed both to queue\-running and listening instances of Exim.
+.TP
+.I \-\-queuerunneroptions options
+Options only passed to the instance of Exim running the queue.
+.TP
+.I \-\-smtplisteneroptions options
+Options only passed to the instance of Exim listening on the SMTP port.
+.TP
+.I \-\-force|\-f
+Without this option
+.B update\-exim4defaults
+exits with an error if at least one of the options \-\-queuetime,
+\-\-commonoptions, \-\-queuerunneroptions or \-\-smtplisteneroptions is used and the
+corresponding value in /etc/default/exim4 is
+.I already
+set to a nonempty value.
+.TP
+.I \-\-remove\-common option
+Try to remove the given option from COMMONOPTIONS.
+.TP
+.I \-\-remove\-queue option
+Try to remove the given option from QUEUERUNNEROPTIONS.
+.TP
+.I \-\-remove\-smtp option
+Try to remove the given option from SMTPLISTENEROPTIONS.
+.PP
+The \-\-remove\-commands cannot be used at the same time as any of \-\-commonoptions,
+\-\-queuerunneroptions or \-\-smtplisteneroptions. The \-\-remove\-commands will
+additionally remove whitespace at the begining and the end of the option and
+exchange multiple spaces wi a single one.
+.TP
+.I \-\-init
+create a default /etc/default/exim4 file and exit immediately. Unless
+.I \-\-force
+was also specified
+.B update\-exim4defaults
+exits (successfully) without doing anything if /etc/default/exim4 already
+exists. All other options are ignored.
+
+.SH EXIT STATUS
+.TP
+.I 0
+change was successfull or nothing needed to be done.
+.TP
+.I 1
+generic error: wrong options, unreadable configuration file, etc.
+.TP
+.I 2
+QUEUEINTERVAL was already set.
+.TP
+.I 4
+COMMONOPTIONS was already set.
+.TP
+.I 8
+QUEUERUNNEROPTIONS was already set.
+.TP
+.I 16
+SMTPLISTENEROPTIONS was already set.
+.TP
+.I 32
+QFLAGS was already set.
+.TP
+.I 64
+\-\-remove\-something failed, i.e. the value of the option was not changed.
+.PP
+Exit codes 2 to 32 will be summed up, if more than one unsuccesful option was
+given.
+
+.SH FILES
+.TP
+.I /etc/default/exim4
+The configuration file.
+.TP
+.I /etc/init.d/exim4
+The Exim init\-script.
+.TP
+.I /etc/ppp/ip\-up.d/exim4
+The queuerunner in this file also uses COMMONOPTIONS and QUEUERUNNEROPTIONS and
+does not run if QUEUERUNNER=no.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/patches/00list b/debian/patches/00list
new file mode 100644
index 0000000..6408ad8
--- /dev/null
+++ b/debian/patches/00list
@@ -0,0 +1,11 @@
+10_daemon_close_fds
+20_authplaincrash
+30_dontoverridecflags
+31_eximmanpage
+32_exim4
+33_eximon.binary
+34_eximstatsmanpage
+35_install
+36_pcre
+40_boolean_redefine_protect
+50_localscan_dlopen
diff --git a/debian/patches/10_daemon_close_fds.dpatch b/debian/patches/10_daemon_close_fds.dpatch
new file mode 100644
index 0000000..3da77b6
--- /dev/null
+++ b/debian/patches/10_daemon_close_fds.dpatch
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+## 10_daemon_close_fds.dpatch by Steve Haslam <araqnid@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Close FDs 0-254 when going into background
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch --dry-run -p0 < $0 && patch -f --no-backup-if-mismatch -p0 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p0 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+exit 0
+
+@DPATCH@
+--- ../old/src/daemon.c 2002-12-18 10:28:01.000000000 +0000
++++ src/daemon.c 2003-01-19 06:24:18.000000000 +0000
+@@ -42,6 +42,13 @@
+ static smtp_slot *smtp_slots;
+
+
++static void close_fds(void)
++{
++ int fd;
++ for (fd = 0; fd < 255; fd++) {
++ close(fd);
++ }
++}
+
+ /*************************************************
+ * SIGALRM Handler *
+@@ -662,9 +669,7 @@
+ {
+ log_close_all(); /* Just in case anything was logged earlier */
+ search_tidyup(); /* Just in case any were used in reading the config. */
+- close(0); /* Get rid of stdin/stdout/stderr */
+- close(1);
+- close(2);
++ close_fds();
+ log_stderr = NULL; /* So no attempt to copy paniclog output */
+
+ /* If the parent process of this one has pid == 1, we are re-initializing the
diff --git a/debian/patches/20_authplaincrash.dpatch b/debian/patches/20_authplaincrash.dpatch
new file mode 100755
index 0000000..932d97e
--- /dev/null
+++ b/debian/patches/20_authplaincrash.dpatch
@@ -0,0 +1,34 @@
+#! /bin/sh -e
+## 20_authplaincrash.dpatch by Philip Hazel <ph10@cus.cam.ac.uk>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: exim crashes on special AUTH PLAIN dialog.
+## DP: http://www.exim.org/pipermail/exim-users/Week-of-Mon-20030317/051346.html
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 10.exim4.tmp/src/auths/plaintext.c 10.exim4/src/auths/plaintext.c
+--- 10.exim4.tmp/src/auths/plaintext.c Thu Mar 13 13:29:58 2003
++++ 10.exim4/src/auths/plaintext.c Wed Mar 19 18:27:55 2003
+@@ -93,7 +93,7 @@
+ if (Ustrcmp(data, "=") == 0)
+ {
+ expand_nstring[++expand_nmax] = US"";
+- expand_nstring[expand_nmax] = 0;
++ expand_nlength[expand_nmax] = 0;
+ }
+ else
+ {
diff --git a/debian/patches/30_dontoverridecflags.dpatch b/debian/patches/30_dontoverridecflags.dpatch
new file mode 100644
index 0000000..cf7bc7b
--- /dev/null
+++ b/debian/patches/30_dontoverridecflags.dpatch
@@ -0,0 +1,36 @@
+#! /bin/sh -e
+## 30_dontoverridecflags.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Don't override CFLAGS in OS/Makefile-Linux, allow to set them
+## DP: e.g. in debian/rules
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/Makefile-Linux 30/OS/Makefile-Linux
+--- 30.tmp/OS/Makefile-Linux Mon Dec 30 10:06:45 2002
++++ 30/OS/Makefile-Linux Mon Dec 30 10:07:07 2002
+@@ -3,8 +3,9 @@
+
+ BASENAME_COMMAND=look_for_it
+
+-CFLAGS=-O
++# Assume Linuxes use gcc too
+
++CFLAGS ?= -O
+ DBMLIB = -ldb
+ USE_DB = yes
+
diff --git a/debian/patches/31_eximmanpage.dpatch b/debian/patches/31_eximmanpage.dpatch
new file mode 100644
index 0000000..207e524
--- /dev/null
+++ b/debian/patches/31_eximmanpage.dpatch
@@ -0,0 +1,197 @@
+#! /bin/sh -e
+## 31_newpatch.dpatch by <ametzler@logic.univie.ac.at>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add info about rmail, mailq, etc. to exim(8).
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 31.exim4.tmp/doc/exim.8 31.exim4/doc/exim.8
+--- 31.exim4.tmp/doc/exim.8 Wed Dec 18 11:28:05 2002
++++ 31.exim4/doc/exim.8 Sat Mar 1 09:30:34 2003
+@@ -3,6 +3,11 @@
+ exim - a Mail Transfer Agent
+ .SH SYNOPSIS
+ .B exim [options] arguments ...
++.B mailq [options] arguments ...
++.B rsmtp [options] arguments ...
++.B rmail [options] arguments ...
++.B runq [options] arguments ...
++.B newaliases [options] arguments ...
+
+ .SH DESCRIPTION
+ Exim is a mail transport agent (MTA) developed at the University of Cambridge.
+@@ -11,6 +16,27 @@
+ line options. It has been automatically generated from the reference manual
+ source, which is why the formatting is poor in some places.
+
++.SH SETTING OPTIONS BY PROGRAM NAME
++.TP 10
++\fBmailq\fR
++Behave as if the option \-bp were present before any other options.
++.TP
++\fBrsmtp\fR
++Behaves as if the option \-bS were present before any other options,
++for compatibility with Smail
++.TP
++\fBrmail\fR
++Behave as if the \-i and \-oee options were present before any other options,
++for compatibility with Smail.
++.TP
++\fBrunq\fR
++Behave as if the option \-q were present before any other options, for
++compatibility with Smail.
++.TP
++\fBnewaliases\fR
++Behave as if the option \-bi were present before any other options, for
++compatibility with Sendmail.
++
+ .SH OPTIONS
+ .TP 10
+ \fB--\fR
+@@ -53,7 +79,7 @@
+ When -oX is used on the command to start a listening daemon, the process id
+ is not written to the normal pid file path. However, -oP can be used to
+ specify a path on the command line if a pid file is required.
+-.nem
++.ne
+
+ .em
+ The SIGHUP signal can be used to cause the daemon to re-exec itself. This
+@@ -62,7 +88,7 @@
+ whenever a new version of Exim is installed. It is not necessary to do this
+ when other files that are referenced from the configuration (for example, alias
+ files) are changed, because these are reread each time they are used.
+-.nem
++.ne
+ .TP
+ \fB-bdf\fR
+ This option has the same effect as -bd except that it never disconnects from
+@@ -129,7 +155,7 @@
+ .em
+ Warning: You cannot test features of the configuration that rely on ident
+ (RFC 1413) callouts, because these are not done when testing using -bh.
+-.nem
++.ne
+
+ Messages supplied during the testing session are discarded, and nothing is
+ written to any of the real log files. There may be pauses when DNS (and other)
+@@ -523,7 +549,7 @@
+ White space between -f and the <address> is optional
+ .em
+ (that is, they can be given as two arguments or one combined argument).
+-.nem
++.ne
+ The sender of a locally-generated message can also be set (when permitted) by
+ an initial `From ' line in the message -- see the description of -bm above
+ -- but if -f is also present, it overrides `From '.
+@@ -577,7 +603,7 @@
+ This option is not intended for use by external callers. It is used internally
+ by Exim in conjunction with the -MC option. It signifies that the server to
+ which Exim is connected supports pipelining.
+-.nem
++.ne
+ .TP
+ \fB-MCQ <process id> <pipe fd>\fR
+ This option is not intended for use by external callers. It is used internally
+@@ -734,7 +760,7 @@
+ effect.
+ .em
+ This option overrides any setting of "queue_smtp_domains" or -odqs.
+-.nem
++.ne
+ .TP
+ \fB-odqs\fR
+ This option is a hybrid between -odb and -odq. A background delivery
+@@ -789,7 +815,7 @@
+ over TCP/IP). These options can be used by any caller in conjunction with the
+ -bh, -bf, -bF, -bt, or -bv testing options. In other
+ circumstances, they are ignored unless the caller is trusted.
+-.nem
++.ne
+
+ The -oMa option sets the sender host address. This may include a port number
+ at the end, after a full stop (period). For example:
+@@ -829,7 +855,7 @@
+ input, the protocol is determined by whether EHLO or HELO is used, and
+ is always either `local-esmtp' or `local-smtp'. For -bS (batch SMTP)
+ however, the protocol can be set by -oMr.
+-.nem
++.ne
+ .TP
+ \fB-oMs <host name>\fR
+ See -oMa above for general remarks about the -oM options. The -oMs
+@@ -857,7 +883,7 @@
+ written. When -oX is used with -bd, or when -q with a time is used
+ without -bd, this is the only way of causing Exim to write a pid file,
+ because in those cases, the normal pid file is not used.
+-.nem
++.ne
+ .TP
+ \fB-or <time>\fR
+ This option sets a timeout value for incoming non-SMTP messages. If it is not
+@@ -885,7 +911,7 @@
+ optionally ports) on which the daemon is to listen. In this case, the data is
+ in the same format as the value of "local_interfaces", and it overrides that
+ option.
+-.nem
++.ne
+ .TP
+ \fB-pd\fR
+ This option applies when an embedded Perl interpreter is linked with Exim. It overrides the setting of the "perl_at_start" option,
+@@ -997,7 +1023,7 @@
+ .em
+ When a daemon is started by -q with a time value, but without -db, no pid
+ file is written unless one is explicitly requested by the -oP option.
+-.nem
++.ne
+ .TP
+ \fB-qR<rsflags> <string>\fR
+ This option is synonymous with -R. It is provided for Sendmail
+@@ -1092,7 +1118,7 @@
+ way and some the other. With only a few clients that need the legacy support, a
+ convenient approach is to use a daemon for normal SMTP (with or without
+ STARTTLS) and inetd with "-tls-on-connect-" for the legacy clients.
+-.nem
++.ne
+ .TP
+ \fB-U\fR
+ Sendmail uses this option for `initial message submission', and its
+@@ -1114,3 +1140,24 @@
+ It sets -x when calling the MTA from its "mail" command. Exim ignores this
+ option.
+ .TP
++
++.SH SEE ALSO
++.BR exicyclog (8),
++.BR exigrep (8),
++.BR exim_checkaccess (8),
++.BR exim_convert4r4 (8),
++.BR exim_db (8),
++.BR exim_dbmbuild (8),
++.BR exim_lock (8),
++.BR eximon (8),
++.BR exinext (8),
++.BR exiqgrep (8),
++.BR exiqsumm (8),
++.BR exiwhat (8),
++.BR update\-exim4.conf (8),
++.BR update\-exim4defaults (8),
++/usr/share/doc/exim4\-base/.
++
++.SH AUTHOR
++This manual page was provided with the upstream Exim source package.
++It was enhanced for the Debian GNU/Linux system.
diff --git a/debian/patches/32_exim4.dpatch b/debian/patches/32_exim4.dpatch
new file mode 100755
index 0000000..9ef7965
--- /dev/null
+++ b/debian/patches/32_exim4.dpatch
@@ -0,0 +1,126 @@
+#! /bin/sh -e
+## 32_exim4.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: The main binary is installed as /usr/sbin/exim4
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/Makefile-Linux 30/OS/Makefile-Linux
+--- 30.tmp/OS/Makefile-Linux Mon Dec 30 10:35:43 2002
++++ 30/OS/Makefile-Linux Mon Dec 30 10:37:17 2002
+@@ -19,7 +19,7 @@
+ EXIWHAT_PS_ARG=ax
+ EXIWHAT_EGREP_ARG='/exim( |$$)'
+ EXIWHAT_MULTIKILL_CMD=killall
+-EXIWHAT_MULTIKILL_ARG=exim
++EXIWHAT_MULTIKILL_ARG=exim4
+ EXIWHAT_KILL_SIGNAL=-USR1
+
+ # End
+diff -urNad 30.tmp/src/exicyclog.src 30/src/exicyclog.src
+--- 30.tmp/src/exicyclog.src Mon Dec 30 10:35:43 2002
++++ 30/src/exicyclog.src Mon Dec 30 10:37:17 2002
+@@ -72,7 +72,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ log_file_path=`$exim_path -C $config -bP log_file_path | sed 's/.*=[ ]*//'`
+diff -urNad 30.tmp/src/exim_checkaccess.src 30/src/exim_checkaccess.src
+--- 30.tmp/src/exim_checkaccess.src Mon Dec 30 10:35:43 2002
++++ 30/src/exim_checkaccess.src Mon Dec 30 10:37:17 2002
+@@ -43,7 +43,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+
+
+ #########################################################################
+diff -urNad 30.tmp/src/eximon.src 30/src/eximon.src
+--- 30.tmp/src/eximon.src Mon Dec 30 10:35:43 2002
++++ 30/src/eximon.src Mon Dec 30 10:37:17 2002
+@@ -49,7 +49,7 @@
+
+ st=' '
+ EXIM_PATH=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$EXIM_PATH" = ""; then EXIM_PATH=BIN_DIRECTORY/exim; fi
++if test "$EXIM_PATH" = ""; then EXIM_PATH=BIN_DIRECTORY/exim4; fi
+
+ SPOOL_DIRECTORY=`$EXIM_PATH -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ LOG_FILE_PATH=`$EXIM_PATH -C $config -bP log_file_path | sed 's/.*=[ ]*//'`
+diff -urNad 30.tmp/src/exinext.src 30/src/exinext.src
+--- 30.tmp/src/exinext.src Mon Dec 30 10:35:43 2002
++++ 30/src/exinext.src Mon Dec 30 10:37:17 2002
+@@ -46,7 +46,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ qualify_domain=`$exim_path -C $config -bP qualify_domain | sed 's/.*=[ ]*//'`
+
+@@ -123,7 +123,7 @@
+
+ # Run exim_dumpdb to get out the retry data and pick off what we want
+
+- open(DATA, "${exim}_dumpdb $spool retry |") ||
++ open(DATA, "/usr/sbin/exim_dumpdb $spool retry |") ||
+ die "can't run exim_dumpdb";
+
+ while (<DATA>)
+diff -urNad 30.tmp/src/exiqgrep.src 30/src/exiqgrep.src
+--- 30.tmp/src/exiqgrep.src Mon Dec 30 10:35:43 2002
++++ 30/src/exiqgrep.src Mon Dec 30 10:37:17 2002
+@@ -12,7 +12,7 @@
+ use Getopt::Std;
+
+ # Have this variable point to your exim binary.
+-my $exim = 'BIN_DIRECTORY/exim';
++my $exim = 'BIN_DIRECTORY/exim4';
+ my $eargs = '-bpu';
+ my %id;
+ my %opt;
+diff -urNad 30.tmp/src/exiwhat.src 30/src/exiwhat.src
+--- 30.tmp/src/exiwhat.src Mon Dec 30 10:35:43 2002
++++ 30/src/exiwhat.src Mon Dec 30 10:37:17 2002
+@@ -68,7 +68,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+
+ # The file that Exim writes when sent the SIGUSR1 signal is called
+diff -urNad 30.tmp/src/globals.c 30/src/globals.c
+--- 30.tmp/src/globals.c Mon Dec 30 10:35:43 2002
++++ 30/src/globals.c Mon Dec 30 10:37:17 2002
+@@ -413,7 +413,7 @@
+
+ gid_t exim_gid = EXIM_GID;
+ BOOL exim_gid_set = TRUE; /* This gid is always set */
+-uschar *exim_path = US BIN_DIRECTORY "/exim"
++uschar *exim_path = US BIN_DIRECTORY "/exim4"
+ "\0<---------------Space to patch exim_path->";
+ uid_t exim_uid = EXIM_UID;
+ BOOL exim_uid_set = TRUE; /* This uid is always set */
diff --git a/debian/patches/33_eximon.binary.dpatch b/debian/patches/33_eximon.binary.dpatch
new file mode 100755
index 0000000..31568d0
--- /dev/null
+++ b/debian/patches/33_eximon.binary.dpatch
@@ -0,0 +1,33 @@
+#! /bin/sh -e
+## 33_eximon.binary.dpatch by Andreas Piesk
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: eximon.bin is installed in /usr/lib/exim4/ and not in path.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/eximon.conf-Default 30/OS/eximon.conf-Default
+--- 30.tmp/OS/eximon.conf-Default Mon Dec 30 10:14:03 2002
++++ 30/OS/eximon.conf-Default Mon Dec 30 10:15:04 2002
+@@ -5,7 +5,7 @@
+ # The name of the eximon binary, usually the same as the eximon script,
+ # with .bin stuck on the end.
+
+-EXIMON_BINARY=${EXIMON_BINARY-$0.bin}
++EXIMON_BINARY=/usr/lib/exim4/${EXIMON_BINARY-${0##*/}.bin}
+
+ # The remaining parameters are values likely to be changed to suit the
+ # user's taste. They are documented in the EDITME file.
diff --git a/debian/patches/34_eximstatsmanpage.dpatch b/debian/patches/34_eximstatsmanpage.dpatch
new file mode 100755
index 0000000..bd7c44a
--- /dev/null
+++ b/debian/patches/34_eximstatsmanpage.dpatch
@@ -0,0 +1,36 @@
+#! /bin/sh -e
+## 34_eximstatsmanpage.dpatch by Andreas Metzler <ametzler@downhill.at.eu.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add note about installing perl-modules on Debian to
+## DP: generated manpage
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/src/eximstats.src 30/src/eximstats.src
+--- 30.tmp/src/eximstats.src Wed Dec 18 11:28:01 2002
++++ 30/src/eximstats.src Sun Jan 12 14:50:23 2003
+@@ -277,6 +277,10 @@
+ make test
+ make install
+
++On B<Debian GNU/Linux> you can use
++C<apt-get install libgd-perl libgd-text-perl libgd-graph-perl>
++instead.
++
+ =item B<-chartdir>I <dir>
+
+ Create the charts in the directory <dir>
diff --git a/debian/patches/35_install.dpatch b/debian/patches/35_install.dpatch
new file mode 100755
index 0000000..161861b
--- /dev/null
+++ b/debian/patches/35_install.dpatch
@@ -0,0 +1,37 @@
+#! /bin/sh -e
+## 35_install.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Exim's installation scripts install the binary as exim-<version>
+## DP: - disable this feature.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/scripts/exim_install 30/scripts/exim_install
+--- 30.tmp/scripts/exim_install Mon Dec 30 10:19:59 2002
++++ 30/scripts/exim_install Mon Dec 30 10:20:21 2002
+@@ -172,8 +172,9 @@
+ # The exim binary is handled specially
+
+ if [ $name = exim${EXE} ]; then
+- version=exim-`./exim -bV -C /dev/null | \
+- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
++ version=exim
++# version=exim-`./exim -bV -C /dev/null | \
++# awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
+
+ # Do something only if newer than existing file, or no existing file
+
diff --git a/debian/patches/36_pcre.dpatch b/debian/patches/36_pcre.dpatch
new file mode 100755
index 0000000..0480b95
--- /dev/null
+++ b/debian/patches/36_pcre.dpatch
@@ -0,0 +1,91 @@
+#! /bin/sh -e
+## 36_pcre.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Link exim and eximon dynamically instead of statically
+## DP: pcre.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/Makefile-Base 30/OS/Makefile-Base
+--- 30.tmp/OS/Makefile-Base Mon Dec 30 10:28:54 2002
++++ 30/OS/Makefile-Base Mon Dec 30 10:29:28 2002
+@@ -94,7 +94,7 @@
+ # This is the real default target for all the various exim binaries and
+ # scripts, once the configuring stuff is done.
+
+-allexim: config.h buildpcre $(EXIM_MONITOR) exicyclog exinext exiwhat \
++allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
+ exigrep eximstats exiqgrep exiqsumm \
+ transport-filter.pl convert4r3 convert4r4 \
+ exim_checkaccess \
+@@ -255,7 +255,7 @@
+ store.o string.o tls.o tod.o transport.o tree.o verify.o \
+ local_scan.o $(EXIM_PERL)
+
+-exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \
++exim: lookups/lookups.a auths/auths.a \
+ routers/routers.a transports/transports.a \
+ $(OBJ_EXIM) version.c
+ @echo " "
+@@ -264,7 +264,7 @@
+ $(CC) -c $(CFLAGS) $(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) version.c
+ rm -f exim
+ $(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \
+- pcre/libpcre.a \
++ -lpcre \
+ routers/routers.a transports/transports.a lookups/lookups.a \
+ auths/auths.a \
+ $(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
+@@ -366,12 +366,12 @@
+
+ OBJ_MONBIN = util-spool_in.o util-store.o util-string.o tod.o tree.o $(MONBIN)
+
+-eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) pcre/libpcre.a \
++eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) \
+ ../exim_monitor/em_version.c
+ $(CC) -o em_version.o -c \
+ $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c
+ $(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \
+- $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 pcre/libpcre.a \
++ $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 -lpcre \
+ $(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc
+ @if [ x"$(STRIP_COMMAND)" != x"" ]; then \
+ echo $(STRIP_COMMAND) eximon.bin; \
+diff -urNad 30.tmp/exim_monitor/em_hdr.h 30/exim_monitor/em_hdr.h
+--- 30.tmp/exim_monitor/em_hdr.h Mon Dec 30 10:28:54 2002
++++ 30/exim_monitor/em_hdr.h Mon Dec 30 10:29:28 2002
+@@ -85,7 +85,7 @@
+
+ /* Regular expression include */
+
+-#include "pcre/pcre.h"
++#include <pcre.h>
+
+ /* Includes from the main source of Exim. We need to have MAXPACKET defined for
+ the benefit of structs.h. One of these days I should tidy up this interface so
+diff -urNad 30.tmp/src/exim.h 30/src/exim.h
+--- 30.tmp/src/exim.h Mon Dec 30 10:28:54 2002
++++ 30/src/exim.h Mon Dec 30 10:29:28 2002
+@@ -322,7 +322,7 @@
+
+ /* The header from the PCRE regex package */
+
+-#include "pcre/pcre.h"
++#include <pcre.h>
+
+ /* Exim includes are in several files */
+
diff --git a/debian/patches/40_boolean_redefine_protect.dpatch b/debian/patches/40_boolean_redefine_protect.dpatch
new file mode 100644
index 0000000..8523b2c
--- /dev/null
+++ b/debian/patches/40_boolean_redefine_protect.dpatch
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+## 40_boolean_redefine_protect.dpatch by Steve Haslam
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: boolean_redefine_protect
+## DP: [src/mytypes.h]
+## DP: Surround the definition of TRUE and FALSE macros with #ifndef
+## DP: /#endif, in case some other header defines them (from mixing
+## DP: Perl and Exim, istr)
+## DP: http://www.arise.demon.co.uk/exim-patches/
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 40.tmp/src/mytypes.h 40/src/mytypes.h
+--- 40.tmp/src/mytypes.h Sun Dec 29 14:31:27 2002
++++ 40/src/mytypes.h Sun Dec 29 14:40:41 2002
+@@ -14,9 +14,17 @@
+ #define MYTYPES_H
+
+
++#ifndef FALSE
+ #define FALSE 0
++#endif
++
++#ifndef TRUE
+ #define TRUE 1
++#endif
++
++#ifndef TRUE_UNSET
+ #define TRUE_UNSET 2
++#endif
+
+
+ /* If gcc is being used to compile Exim, we can use its facility for checking
diff --git a/debian/patches/50_localscan_dlopen.dpatch b/debian/patches/50_localscan_dlopen.dpatch
new file mode 100644
index 0000000..0af7eff
--- /dev/null
+++ b/debian/patches/50_localscan_dlopen.dpatch
@@ -0,0 +1,257 @@
+#! /bin/sh -e
+## 50_localscan_dlopen.dpatch by Marc Merlin
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Allow to use and switch between different local_scan functions without
+## DP: recompiling exim.
+## DP: http://marc.merlins.org/linux/exim/files/sa-exim-current/
+## DP: Original patch from David Woodhouse, modified first by Derrick 'dman'
+## DP: Hudson and then by Marc MERLIN.
+
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 50_localscan_dlopen.tmp/src/EDITME 50_localscan_dlopen/src/EDITME
+--- 50_localscan_dlopen.tmp/src/EDITME Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/EDITME Sun Dec 29 11:56:44 2002
+@@ -362,6 +362,20 @@
+
+
+ #------------------------------------------------------------------------------
++# On systems which support dynamic loading of shared libraries, Exim can
++# load a local_scan function specified in its config file instead of having
++# to be recompiled with the desired local_scan function. For a full
++# description of the API to this function, see the Exim specification.
++
++DLOPEN_LOCAL_SCAN=yes
++
++# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the
++# linker flags. Without it, the loaded .so won't be able to access any
++# functions from exim.
++
++LFLAGS=-rdynamic
++
++#------------------------------------------------------------------------------
+ # The default distribution of Exim contains only the plain text form of the
+ # documentation. Other forms are available separately. If you want to install
+ # the documentation in "info" format, first fetch the Texinfo documentation
+diff -urNad 50_localscan_dlopen.tmp/src/config.h.defaults 50_localscan_dlopen/src/config.h.defaults
+--- 50_localscan_dlopen.tmp/src/config.h.defaults Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/config.h.defaults Sun Dec 29 11:56:44 2002
+@@ -17,6 +17,8 @@
+ #define AUTH_PLAINTEXT
+ #define AUTH_SPA
+
++#define DLOPEN_LOCAL_SCAN
++
+ #define BIN_DIRECTORY
+
+ #define CONFIGURE_FILE
+diff -urNad 50_localscan_dlopen.tmp/src/globals.c 50_localscan_dlopen/src/globals.c
+--- 50_localscan_dlopen.tmp/src/globals.c Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/globals.c Sun Dec 29 11:56:44 2002
+@@ -100,6 +100,9 @@
+ uschar *tls_verify_hosts = NULL;
+ #endif
+
++#ifdef DLOPEN_LOCAL_SCAN
++uschar *local_scan_path = NULL;
++#endif
+
+ /* Input-reading functions for messages, so we can use special ones for
+ incoming TCP/IP. The defaults use stdin. We never need these for any
+diff -urNad 50_localscan_dlopen.tmp/src/globals.h 50_localscan_dlopen/src/globals.h
+--- 50_localscan_dlopen.tmp/src/globals.h Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/globals.h Sun Dec 29 11:56:44 2002
+@@ -66,6 +66,9 @@
+ extern uschar *tls_verify_hosts; /* Mandatory client verification */
+ #endif
+
++#ifdef DLOPEN_LOCAL_SCAN
++extern uschar *local_scan_path; /* Path to local_scan() library */
++#endif
+
+ /* Input-reading functions for messages, so we can use special ones for
+ incoming TCP/IP. */
+diff -urNad 50_localscan_dlopen.tmp/src/local_scan.c 50_localscan_dlopen/src/local_scan.c
+--- 50_localscan_dlopen.tmp/src/local_scan.c Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/local_scan.c Sun Dec 29 11:56:44 2002
+@@ -5,60 +5,99 @@
+ /* Copyright (c) University of Cambridge 1995 - 2002 */
+ /* See the file NOTICE for conditions of use and distribution. */
+
++#include "exim.h"
+
+-/******************************************************************************
+-This file contains a template local_scan() function that just returns ACCEPT.
+-If you want to implement your own version, you should copy this file to, say
+-Local/local_scan.c, and edit the copy. To use your version instead of the
+-default, you must set
+-
+-LOCAL_SCAN_SOURCE=Local/local_scan.c
+-
+-in your Local/Makefile. This makes it easy to copy your version for use with
+-subsequent Exim releases.
+-
+-For a full description of the API to this function, see the Exim specification.
+-******************************************************************************/
++#ifdef DLOPEN_LOCAL_SCAN
++#include <dlfcn.h>
++static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
++static int load_local_scan_library(void);
++#endif
+
++int
++local_scan(int fd, uschar **return_text)
++{
++fd = fd; /* Keep picky compilers happy */
++return_text = return_text;
++#ifdef DLOPEN_LOCAL_SCAN
++/* local_scan_path is defined AND not the empty string */
++if (local_scan_path && *local_scan_path)
++ {
++ if (!local_scan_fn)
++ {
++ if (!load_local_scan_library())
++ {
++ char *base_msg , *error_msg , *final_msg ;
++ int final_length = -1 ;
+
+-/* This is the only Exim header that you should include. The effect of
+-including any other Exim header is not defined, and may change from release to
+-release. Use only the documented interface! */
++ base_msg=US"Local configuration error - local_scan() library failure\n";
++ error_msg = dlerror() ;
+
+-#include "local_scan.h"
++ final_length = strlen(base_msg) + strlen(error_msg) + 1 ;
++ final_msg = (char*)malloc( final_length*sizeof(char) ) ;
++ *final_msg = '\0' ;
+
++ strcat( final_msg , base_msg ) ;
++ strcat( final_msg , error_msg ) ;
+
+-/* This is a "do-nothing" version of a local_scan() function. The arguments
+-are:
++ *return_text = final_msg ;
++ return LOCAL_SCAN_TEMPREJECT;
++ }
++ }
++ return local_scan_fn(fd, return_text);
++ }
++else
++#endif
++ return LOCAL_SCAN_ACCEPT;
++}
+
+- fd The file descriptor of the open -D file, which contains the
+- body of the message. The file is open for reading and
+- writing, but modifying it is dangerous and not recommended.
++#ifdef DLOPEN_LOCAL_SCAN
+
+- return_text A pointer to an unsigned char* variable which you can set in
+- order to return a text string. It is initialized to NULL.
++static int load_local_scan_library(void)
++{
++/* No point in keeping local_scan_lib since we'll never dlclose() anyway */
++void *local_scan_lib = NULL;
++int (*local_scan_version_fn)(void);
++int vers;
+
+-The return values of this function are:
++local_scan_lib = dlopen(local_scan_path, RTLD_NOW);
++if (!local_scan_lib)
++ {
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - "
++ "message temporarily rejected");
++ return FALSE;
++ }
+
+- LOCAL_SCAN_ACCEPT
+- The message is to be accepted. The return_text argument is
+- saved in $local_scan_data.
++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version");
++if (!local_scan_version_fn)
++ {
++ dlclose(local_scan_lib);
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
++ "local_scan_version() function - message temporarily rejected");
++ return FALSE;
++ }
+
+- LOCAL_SCAN_REJECT
+- The message is to be rejected. The returned text is used
+- in the rejection message.
++vers = local_scan_version_fn();
++if (vers != LOCAL_SCAN_ABI_VERSION)
++ {
++ dlclose(local_scan_lib);
++ local_scan_lib = NULL;
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has wrong version "
++ "number %d, expected %d", vers, LOCAL_SCAN_ABI_VERSION);
++ return FALSE;
++ }
+
+- LOCAL_SCAN_TEMPREJECT
+- This specifies a temporary rejection. The returned text
+- is used in the rejection message.
+-*/
++local_scan_fn = dlsym(local_scan_lib, "local_scan");
++if (!local_scan_fn)
++ {
++ dlclose(local_scan_lib);
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
++ "local_scan() function - message temporarily rejected");
++ return FALSE;
++ }
+
+-int
+-local_scan(int fd, uschar **return_text)
+-{
+-fd = fd; /* Keep picky compilers happy */
+-return_text = return_text;
+-return LOCAL_SCAN_ACCEPT;
++return TRUE;
+ }
++
++#endif /* DLOPEN_LOCAL_SCAN */
+
+ /* End of local_scan.c */
+diff -urNad 50_localscan_dlopen.tmp/src/local_scan.h 50_localscan_dlopen/src/local_scan.h
+--- 50_localscan_dlopen.tmp/src/local_scan.h Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/local_scan.h Sun Dec 29 11:56:44 2002
+@@ -86,6 +86,8 @@
+ uschar *errors_to; /* the errors_to address or NULL */
+ } recipient_item;
+
++/* local_scan() ABI version number for dynamic libraries */
++#define LOCAL_SCAN_ABI_VERSION 1
+
+ /* Global variables that are documented as visible in the function. */
+
+diff -urNad 50_localscan_dlopen.tmp/src/readconf.c 50_localscan_dlopen/src/readconf.c
+--- 50_localscan_dlopen.tmp/src/readconf.c Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/readconf.c Sun Dec 29 11:56:44 2002
+@@ -113,6 +113,9 @@
+ { "local_from_prefix", opt_stringptr, &local_from_prefix },
+ { "local_from_suffix", opt_stringptr, &local_from_suffix },
+ { "local_interfaces", opt_stringptr, &local_interfaces },
++#ifdef DLOPEN_LOCAL_SCAN
++ { "local_scan_path", opt_stringptr, &local_scan_path },
++#endif
+ { "local_scan_timeout", opt_time, &local_scan_timeout },
+ { "local_sender_retain", opt_bool, &local_sender_retain },
+ { "localhost_number", opt_stringptr, &host_number_string },
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..3f3a730
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,304 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+# Include dpatch stuff.
+include /usr/share/dpatch/dpatch.make
+
+DEBIAN:=$(shell pwd)/debian
+
+CFLAGS = -g -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -O0
+else
+CFLAGS += -O2
+endif
+
+export CFLAGS
+
+# Which packages should we build?
+buildbasepackages=yes
+
+builddaemonpackages=exim4-daemon-heavy
+# If you want to build a daemon with a configuration tailored to YOUR special
+# needs, call "fakeroot debian/rules unpack-configs", copy EDITME.exim4-light
+# to EDITME.exim4-custom and modify it.
+#
+# Afterwards EITHER disable the definition of builddaemonpackages 4 lines above
+# by adding a hash-mark (#) at the start of the line and enable the one
+# below instead by removing the hash-mark OR simply call
+# "fakeroot debian/rules buildbasepackages=no builddaemonpackages=exim4-daemon-custom binary"
+#builddaemonpackages=exim4-daemon-custom
+
+# If you want to build a source-package that builds the custom daemon call
+# "fakeroot debian/rules pack-configs" after customizing EDITME.exim4-custom
+
+ifeq ($(buildbasepackages),yes)
+buildpackages=exim4-base exim4-daemon-light eximon4 $(builddaemonpackages)
+else
+buildpackages=$(builddaemonpackages)
+endif
+
+# generate -pexim4-base -peximon4 ... commandline for debhelper
+dhbuildpackages=$(addprefix -p,$(buildpackages))
+# exim4-daemon-light --> build-exim4-daemon-light/exim
+daemonbinaries=$(addprefix build-,$(addsuffix /exim,$(builddaemonpackages)))
+debiandaemonbinaries=$(addprefix $(DEBIAN)/,$(addsuffix /usr/sbin/exim4,$(builddaemonpackages)))
+
+unpack-configs: patch
+ patch -o EDITME.exim4-light src/EDITME debian/EDITME.exim4-light.diff
+ patch -o EDITME.exim4-heavy EDITME.exim4-light debian/EDITME.exim4-heavy.diff
+ if [ -f debian/EDITME.exim4-custom.diff ]; then \
+ patch -o EDITME.exim4-custom EDITME.exim4-light debian/EDITME.exim4-custom.diff;\
+ fi
+ patch -o EDITME.eximon exim_monitor/EDITME debian/EDITME.eximon.diff
+
+pack-configs: patch
+ -diff -u src/EDITME EDITME.exim4-light > debian/EDITME.exim4-light.diff
+ -diff -u EDITME.exim4-light EDITME.exim4-heavy > debian/EDITME.exim4-heavy.diff
+ -if [ -f EDITME.exim4-custom ]; then \
+ diff -u EDITME.exim4-light EDITME.exim4-custom \
+ > debian/EDITME.exim4-custom.diff;\
+ fi
+ -diff -u exim_monitor/EDITME EDITME.eximon > debian/EDITME.eximon.diff
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp: patch-stamp
+ dh_testdir
+ # Add here commands to configure the package.
+ patch -o EDITME.exim4-light src/EDITME debian/EDITME.exim4-light.diff
+ patch -o EDITME.exim4-heavy EDITME.exim4-light debian/EDITME.exim4-heavy.diff
+ if [ -f debian/EDITME.exim4-custom.diff ]; then \
+ patch -o EDITME.exim4-custom EDITME.exim4-light debian/EDITME.exim4-custom.diff;\
+ fi
+ patch -o EDITME.eximon exim_monitor/EDITME debian/EDITME.eximon.diff
+
+ touch configure-stamp
+
+# Build binaries for the base package, the eximon4 package, and the
+# exim4-daemon-light package.
+build-exim4-daemon-light/exim: configure-stamp
+ echo build-exim4-daemon-light
+ dh_testdir
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-light Local/Makefile
+ cp EDITME.eximon Local/eximon.conf
+ $(MAKE)
+ mv build-$(buildname) build-exim4-daemon-light
+
+build-exim4-daemon-custom/exim: configure-stamp
+ echo build-exim4-daemon-custom
+ dh_testdir
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-custom Local/Makefile
+ $(MAKE) Local/Makefile configure
+ # This is a kludge. The upstream Makefile should be fixed, really.
+ $(MAKE) -C build-$(buildname) checklocalmake Makefile os.h os.c config.h buildpcre buildlookups buildrouters buildtransports buildauths exim
+ mv build-$(buildname) build-exim4-daemon-custom
+
+build-exim4-daemon-heavy/exim: configure-stamp
+ echo build-exim4-daemon-heavy
+ dh_testdir
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-heavy Local/Makefile
+ $(MAKE) Local/Makefile configure
+ # This is a kludge. The upstream Makefile should be fixed, really.
+ $(MAKE) -C build-$(buildname) checklocalmake Makefile os.h os.c config.h buildpcre buildlookups buildrouters buildtransports buildauths exim
+ mv build-$(buildname) build-exim4-daemon-heavy
+ # build perl localscan-plugin
+ make -C contrib/local-scan-perl
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+
+ # Add here command to compile/build the arch indep package.
+ # It's ok not to do anything here, if you don't need to build
+ # anything for this package.
+ #/usr/bin/docbook-to-man debian/exim.sgml > exim.1
+
+ touch build-indep-stamp
+
+build-arch: build-arch-stamp
+
+ifeq ($(buildbasepackages),yes)
+build-arch-stamp: build-exim4-daemon-light/exim $(daemonbinaries)
+else
+build-arch-stamp: $(daemonbinaries)
+endif
+ dh_testdir
+ touch build-arch-stamp
+
+build: build-arch build-indep
+
+clean: cleanfiles unpatch
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp installbase-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+ -$(MAKE) -C contrib/local-scan-perl clean
+ -rm -rf build-* doc/tmp
+ -rm -f EDITME.* Local/Makefile Local/eximon.conf
+
+ chmod 755 $(DEBIAN)/exim-gencert
+ dh_clean
+
+installbase-stamp: build-exim4-daemon-light/exim
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ rm -rf build-$(buildname)
+ ln -s build-exim4-daemon-light build-$(buildname)
+ $(MAKE) install \
+ INSTALL_ARG=-no_symlink \
+ inst_conf=$(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf \
+ inst_aliases=$(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/aliases \
+ inst_dest=$(DEBIAN)/exim4-base/usr/sbin
+ sed -e 's,PERL_COMMAND,/usr/bin/perl,' < src/convert4r4.src \
+ > $(DEBIAN)/exim4-base/usr/sbin/exim_convert4r4
+ chmod 755 $(DEBIAN)/exim4-base/usr/sbin/exim_convert4r4
+ mv $(DEBIAN)/exim4-base/usr/sbin/exim \
+ $(DEBIAN)/exim4-daemon-light/usr/sbin/exim4
+ mv $(DEBIAN)/exim4-base/usr/sbin/eximon \
+ $(DEBIAN)/eximon4/usr/sbin
+ mv $(DEBIAN)/exim4-base/usr/sbin/eximon.bin \
+ $(DEBIAN)/eximon4/usr/lib/exim4
+ pod2man --center=EXIM4 --section=8 \
+ $(DEBIAN)/exim4-base/usr/sbin/eximstats \
+ $(DEBIAN)/exim4-base/usr/share/man/man8/eximstats.8
+ # if you change anything here, you will have to change
+ # config-custom/debian/rules as well
+ sed -e \
+ "s/^UPEX4C_version=\"\"/UPEX4C_version=\"`dpkg-parsechangelog | sed -n '/^Version: /s/^Version: //p'`\"/" \
+ < $(DEBIAN)/debconf/update-exim4.conf \
+ > $(DEBIAN)/exim4-config/usr/sbin/update-exim4.conf
+ chmod 755 $(DEBIAN)/exim4-config/usr/sbin/update-exim4.conf
+ install -m 755 $(DEBIAN)/update-exim4defaults $(DEBIAN)/exim4-config/usr/sbin
+
+ cd $(DEBIAN)/debconf/conf.d && \
+ tar cf - `find \( -path '*/CVS/*' -prune \) -or \( -type f -print \)` | \
+ { cd $(DEBIAN)/exim4-config/etc/exim4/conf.d/ && \
+ tar xf - ; }
+
+ # ship a copy in examples
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/usr/share/doc/exim4-config/examples/exim4.conf.template.debconf
+ install -m644 debian/email-addresses debian/exim4-config/etc/exim4
+ install -m755 debian/ip-up.d debian/exim4-config/etc/ppp/ip-up.d/exim4
+# dh_movefiles
+ touch installbase-stamp
+
+
+# This dependency expands to
+# debian/exim4-daemon-heavy/usr/sbin/exim4: build-exim4-daemon-heavy/exim
+$(debiandaemonbinaries): $(DEBIAN)/%/usr/sbin/exim4: build-%/exim
+ dh_testdir
+ dh_testroot
+ dh_installdirs
+ install -m4755 -oroot -groot $< $@
+
+
+# Build architecture-independent files here.
+# this is just exim4-config and exim4.
+binary-indep: build $(install)
+ifeq ($(buildbasepackages),yes)
+ dh_testdir -i
+ dh_testroot -i
+ # upstream changelog is only in exim4-base
+ dh_link -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ #dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ #dh_installpam -i
+ #dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_compress -i
+ dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+endif
+
+# Build architecture-dependent files here.
+ifeq ($(buildbasepackages),yes)
+install=installbase-stamp $(debiandaemonbinaries)
+else
+install=$(debiandaemonbinaries)
+endif
+
+binary-arch: build $(install)
+ dh_testdir $(dhbuildpackages)
+ dh_testroot $(dhbuildpackages)
+ # upstream changelog is only in exim4-base, the other packages include
+ # a symlink
+ dh_installchangelogs -pexim4-base doc/ChangeLog
+ # remove "-pexim4-base" from "-pexim4-base -pexim4-daemon-light ..."
+ dh_installchangelogs $(subst -pexim4-base,,$(dhbuildpackages))
+ dh_installdocs $(dhbuildpackages)
+ dh_installexamples $(dhbuildpackages)
+ dh_installmenu $(dhbuildpackages)
+ dh_installdebconf $(dhbuildpackages)
+ dh_installlogrotate $(dhbuildpackages)
+# dh_installemacsen $(dhbuildpackages)
+ dh_installpam $(dhbuildpackages)
+ dh_installmime $(dhbuildpackages)
+ dh_installinit $(dhbuildpackages) --noscripts --init-script=exim4
+ dh_installcron $(dhbuildpackages)
+# dh_installinfo $(dhbuildpackages)
+# dh_undocumented $(dhbuildpackages)
+ dh_installman $(dhbuildpackages)
+ dh_install $(dhbuildpackages)
+ dh_strip $(dhbuildpackages)
+ dh_link $(dhbuildpackages)
+ dh_compress $(dhbuildpackages)
+ dh_fixperms $(dhbuildpackages) -Xusr/sbin/exim4
+# dh_makeshlibs $(dhbuildpackages)
+ dh_installdeb $(dhbuildpackages)
+# dh_perl $(dhbuildpackages)
+ dh_shlibdeps $(dhbuildpackages)
+ dh_gencontrol $(dhbuildpackages)
+ dh_md5sums $(dhbuildpackages)
+ dh_builddeb $(dhbuildpackages)
+
+binary: binary-arch binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/update-exim4defaults b/debian/update-exim4defaults
new file mode 100644
index 0000000..929d66b
--- /dev/null
+++ b/debian/update-exim4defaults
@@ -0,0 +1,269 @@
+#!/bin/sh
+# update-exim4defaults(8): manage entries in /etc/default/exim4
+# per script
+
+#set -x
+
+defaultfile=/etc/default/exim4
+
+EX4DEF_INIT=false
+EX4DEF_FORCE=false
+
+
+if [ -r ${defaultfile} ]; then
+ . ${defaultfile}
+fi
+
+
+# initialize variables
+EX4DEF_QUEUERUNNER="${QUEUERUNNER}"
+EX4DEF_QUEUEINTERVAL="${QUEUEINTERVAL}"
+EX4DEF_COMMONOPTIONS="${COMMONOPTIONS}"
+EX4DEF_QUEUERUNNEROPTIONS="${QUEUERUNNEROPTIONS}"
+EX4DEF_QFLAGS="${QFLAGS}"
+EX4DEF_SMTPLISTENEROPTIONS="${SMTPLISTENEROPTIONS}"
+
+EX4DEF_FLAGOPTIONS=false
+EX4DEF_FLAGREMOVE=false
+
+ex4def_usage ()
+{
+ echo "update-exim4defaults: manage entries in /etc/default/exim4"
+ echo " usage: update-exim4defaults [[--queuerunner combined|separate|no]"
+ echo " [--qflags flags ] [--queuetime time] [--commonoptions options]"
+ echo " [--queuerunneroptions options] [--smtplisteneroptions options]]"
+ echo " [--remove-common options] [--remove-queue options]"
+ echo " [--remove-smtp options]"
+ echo " [--force|-f] [--help|-h]"
+ echo " [--init]"
+}
+
+
+# used for initialzing and with --force.
+ex4def_write(){
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ cat << EOF > "${EX4DEF_TMP}"
+# /etc/default/exim4
+EX4DEF_VERSION='${EX4DEF_VERSION}'
+
+# 'combined' - one daemon running queue and listening on SMTP port
+# 'no' - no daemon running the queue
+# 'separate' - two separate daemons
+# setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4
+QUEUERUNNER='${EX4DEF_QUEUERUNNER}'
+# how often should we run the queue
+QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'
+# options common to quez-runner and listening daemon
+COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'
+# more options for the daemon/process running the queue (applies to the one
+# started in /etc/ppp/ip-up.d/exim4, too.
+QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'
+# special flags given to exim directly after the -q. See exim(8)
+QFLAGS='${EX4DEF_QFLAGS}'
+# options for daemon listening on port 25
+SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'
+EOF
+ cat "${EX4DEF_TMP}" > "${defaultfile}"
+ rm -f "${EX4DEF_TMP}"
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4defaults \
+ -l qflags:,queuerunner:,queuetime:,commonoptions:,queuerunneroptions:,smtplisteneroptions:,remove-common:,remove-queue:,remove-smtp:,force,help,init -- \
+ +fh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -f|--force)
+ EX4DEF_FORCE=true
+ ;;
+ -h|--help)
+ ex4def_usage
+ exit 0
+ ;;
+ --qflags)
+ shift
+ EX4DEF_QFLAGS="$1"
+ ;;
+ --queuerunner)
+ shift
+ EX4DEF_QUEUERUNNER="$1"
+ ;;
+ --queuetime)
+ shift
+ EX4DEF_QUEUETIME="$1"
+ ;;
+ --commonoptions)
+ shift
+ EX4DEF_COMMONOPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --queuerunneroptions)
+ shift
+ EX4DEF_QUEUERUNNEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --smtplisteneroptions)
+ shift
+ EX4DEF_SMTPLISTENEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --remove-common)
+ shift
+ EX4DEF_REMOVECOMMON="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-queue)
+ shift
+ EX4DEF_REMOVEQUEUE="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-smtp)
+ shift
+ EX4DEF_REMOVESMTP="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --init)
+ EX4DEF_INIT=true
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments allowed" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] && [ "${EX4DEF_FLAGOPTIONS}" = "true" ] ; then
+ echo "Cannot use --remove-something together with --somethingoptions" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+#if [ ! -r ${defaultfile} ]; then
+# echo "Cannot read ${defaultfile}, terminating" >&2
+# exit 1
+#fi
+
+if "${EX4DEF_INIT}" = "true" ] ; then
+ [ -e "${defaultfile}" ] && [ "${EX4DEF_FORCE}" != "true" ] && exit 0
+ # Reset to default values
+ EX4DEF_QUEUERUNNER='combined'
+ EX4DEF_QUEUEINTERVAL='30m'
+ EX4DEF_COMMONOPTIONS=''
+ EX4DEF_QUEUERUNNEROPTIONS=''
+ EX4DEF_QFLAGS=''
+ EX4DEF_SMTPLISTENEROPTIONS=''
+
+ ex4def_write
+ exit 0
+fi
+
+#Try removing
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] ; then
+ EX4DEF_REMOVEERROR="false"
+ if [ ! -z "${EX4DEF_REMOVECOMMON}" ] ; then
+ EX4DEF_COMMONOPTIONS=$(echo "${COMMONOPTIONS}" | \
+ sed -e "sÄ${EX4DEF_REMOVECOMMON}ÄÄ" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_COMMONOPTIONS}" = "${COMMONOPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVEQUEUE}" ] ; then
+ EX4DEF_QUEUERUNNEROPTIONS=$(echo "${QUEUERUNNEROPTIONS}" | \
+ sed -e "sÄ${EX4DEF_REMOVEQUEUE}ÄÄ" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_QUEUERUNNEROPTIONS}" = "${QUEUERUNNEROPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVESMTP}" ] ; then
+ EX4DEF_SMTPLISTENEROPTIONS=$(echo "${SMTPLISTENEROPTIONS}" | \
+ sed -e "sÄ${EX4DEF_REMOVESMTP}ÄÄ" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_SMTPLISTENEROPTIONS}" = "${SMTPLISTENEROPTIONS}"] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ "x${EX4DEF_REMOVEERROR}" = "xtrue" ] ; then
+ echo "$0: removing failed, no changes" >&2
+ exit 64
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "sÄ^QFLAGS=.*ÄQFLAGS='${EX4DEF_QFLAGS}'Ä" \
+ -e "sÄ^QUEUERUNNER=.*ÄQUEUERUNNER='${EX4DEF_QUEUERUNNER}'Ä" \
+ -e "sÄ^QUEUEINTERVAL=.*ÄQUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'Ä" \
+ -e "sÄ^COMMONOPTIONS=.*ÄCOMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'Ä" \
+ -e "sÄ^QUEUERUNNEROPTIONS=.*ÄQUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'Ä" \
+ -e "sÄ^SMTPLISTENEROPTIONS=.*ÄSMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'Ä" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+if [ "${EX4DEF_FORCE}" = "true" ] ; then
+ ex4def_write
+ exit 0
+
+else
+ EX4DEF_DOANYTHING=0
+ EX4DEF_NOTALLOWED=0
+ if [ "x${QUEUERUNNER}" != "x${EX4DEF_QUEUERUNNER}" ]; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+1))
+ # switching the QUEUERUNNER modus is always allowed
+ #[ -z "${QUEUERUNNER}" ] || EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+1))
+ fi
+ if [ "x${QUEUEINTERVAL}" != "x${EX4DEF_QUEUEINTERVAL}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+2))
+ [ -z "${QUEUEINTERVAL}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+2))
+ fi
+ if [ "x${COMMONOPTIONS}" != "x${EX4DEF_COMMONOPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+4))
+ [ -z "${COMMONOPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+4))
+ fi
+ if [ "x${QUEUERUNNEROPTIONS}" != "x${EX4DEF_QUEUERUNNEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+8))
+ [ -z "${QUEUERUNNEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+8))
+ fi
+ if [ "x${SMTPLISTENEROPTIONS}" != "x${EX4DEF_SMTPLISTENEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+16))
+ [ -z "${SMTPLISTENEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+16))
+ fi
+ if [ "x${QFLAGS}" != "x${EX4DEF_QFLAGS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+32))
+ [ -z "${QFLAGS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+32))
+ fi
+
+ [ ${EX4DEF_DOANYTHING} -eq 0 ] && exit 0
+ if [ ${EX4DEF_NOTALLOWED} -ne 0 ] ; then
+ echo "setting(s) conflict with current one, terminating" >&2
+ exit ${EX4DEF_NOTALLOWED}
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "sÄ^QFLAGS=.*ÄQFLAGS='${EX4DEF_QFLAGS}'Ä" \
+ -e "sÄ^QUEUERUNNER=.*ÄQUEUERUNNER='${EX4DEF_QUEUERUNNER}'Ä" \
+ -e "sÄ^QUEUEINTERVAL=.*ÄQUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'Ä" \
+ -e "sÄ^COMMONOPTIONS=.*ÄCOMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'Ä" \
+ -e "sÄ^QUEUERUNNEROPTIONS=.*ÄQUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'Ä" \
+ -e "sÄ^SMTPLISTENEROPTIONS=.*ÄSMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'Ä" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+
+