From 1b5be17619a723fb409062cf052776a5e9d21787 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 13 Jan 2000 20:15:03 +0000 Subject: [PATCH] Update exim to version 3.12 * Version 2.12 is no longer available on the primary or mirror sites o The configuration file format has changed. For those upgrading, please see the documentation and consider using the upgrade script to help automate the config files change. This upgrade script is built as part of the source, but *not* installed - as it should only be needed once. o The X11 eximon program will be built with this port/package - this assumes that X is installed. Would someone with more ports experience consider helping me here and writing the right kind of Makefile check to see if files/eximon.conf should be copied to the build directories. o Perl support is included as standard as is support for additional mail delivery formats. These are not the default in vanilla exim 3.12 o Finally, another plea for help. This port does not make as usuable package, as I could not get support for the creation of a config file working. I intend to look at this further, but as the old version was completely useless, I felt it was better to get this in the tree sooner rather than later. --- mail/exim/files/Makefile | 140 +++++++++++++++++++++------- mail/exim/files/eximon.conf | 179 ++++++++++++++++++++++++++++++++++++ mail/exim/files/md5 | 12 +-- mail/exim/patches/patch-aa | 25 ----- mail/exim/pkg/COMMENT | 2 +- mail/exim/pkg/DESCR | 24 ++--- mail/exim/pkg/PLIST | 13 ++- 7 files changed, 308 insertions(+), 87 deletions(-) create mode 100644 mail/exim/files/eximon.conf delete mode 100644 mail/exim/patches/patch-aa diff --git a/mail/exim/files/Makefile b/mail/exim/files/Makefile index 5ac8237992e..5d9a23b4298 100644 --- a/mail/exim/files/Makefile +++ b/mail/exim/files/Makefile @@ -34,14 +34,14 @@ # (dynamic run-time library). # Another area of variability between systems is the type and location of the -# dbm library package. Exim has support for ndbm, gdbm, and Berkeley db. By -# default it assumes ndbm; this often works with gdbm or db, provided they +# dbm library package. Exim has support for ndbm, gdbm, and Berkeley DB. By +# default it assumes ndbm; this often works with gdbm or DB, provided they # are correctly installed, via their compatibility interfaces. However, Exim -# can also be configured to use the native calls for Berkeley db 1.85, and -# this is defaulted for some operating systems. The defaults are set in -# OS/Makefile-Default, and can be changed by putting things into an OS-specific -# Makefile, or indeed into the main Local/Makefile if Exim is being compiled -# for a single OS only. +# can also be configured to use the native calls for Berkeley DB 1.85 or +# Berkeley DB version 2.x, and this is defaulted for some operating systems. +# The defaults are set in OS/Makefile-Default, and can be changed by putting +# things into an OS-specific Makefile, or indeed into the main Local/Makefile +# if Exim is being compiled for a single OS only. # See also the file doc/dbm.discuss.txt for discussion about different dbm # libraries. @@ -84,6 +84,15 @@ # AR=ar cq +# Exim has some support for the AUTH extension of SMTP (RFC 2554). If you want +# to use this you must uncomment at least one of the following macros so that +# appropriate code is included in the binary. You then need to set up the +# runtime configuration to make use of the mechanism(s) selected. + +AUTH_CRAM_MD5=yes +AUTH_PLAINTEXT=yes + + # The binary directory: This variable defines where the exim binary will be # installed by "make install" or "exim_install". It is also used internally # by exim when it needs to re-invoke itself, either to send an error message, @@ -113,6 +122,12 @@ COMPRESS_COMMAND=/usr/bin/gzip COMPRESS_SUFFIX=gz +# If the exigrep utility is fed compressed log files, it tries to uncompress +# them using this command. + +ZCAT_COMMAND=/usr/bin/gzcat + + # The runtime configuration file: This variable defines where Exim's runtime # configuration file is. There is no default built into the source files, so # there must be a setting in one of the local configuration files. The @@ -194,11 +209,14 @@ DIRECTOR_SMARTUSER=yes EXICYCLOG_MAX=10 -# Running Exim not as root: A uid and gid for Exim can be specified here. These -# are compiled into the binary, but can be changed by settings in the runtime -# configuration file. If EXIM_UID is not defined, the default in the code is to -# run as root unless specified otherwise at run time. Specifying 0 at -# run time has the effect of unsetting the values build into the binary. +# Running Exim without it being root all the time: A uid and gid for Exim can +# be specified here, and this is strongly recommended. These values are +# compiled into the binary. It is possible to change them by settings in the +# runtime configuration file, but setting them here is preferred. If EXIM_UID +# is not defined, the default in the code is to run as root (unless specified +# otherwise at run time) except when doing local deliveries, when it always +# runs as the appropriate local user. Specifying 0 at run time has the effect +# of unsetting the values build into the binary. # The settings here must be numeric; the run time file allows names to # be used. When this uid and gid are set, the Exim binary still has to be @@ -220,7 +238,7 @@ EXICYCLOG_MAX=10 # are defaulted in the OS/Makefile-Default file, and can be overridden # in local OS-specific make files. -# EXIM_MONITOR=eximon.bin +EXIM_MONITOR=eximon.bin # Compiling in support for embedded Perl: If you want to be able to @@ -240,12 +258,13 @@ EXIM_PERL=perl.o # PERL_LIBS= -# The maximum length of header line that Exim is prepared to process. There -# is a limit in order to catch rogue mailers out there that might connect to -# the SMTP port, start off a header line, and then just pump junk for ever -# at it. The default is 8192. +# This parameter sets the maximum length of the header portion of a message +# that Exim is prepared to process. The default setting is one megabyte. There +# is a limit in order to catch rogue mailers that might connect to your SMTP +# port, start off a header line, and then just pump junk at it for ever. The +# message_size_limit option would also catch this, but it may not be set. -# HEADER_MAXLENGTH=8192 +# HEADER_MAXSIZE=(1024*1024) # The mode of the input directory: The input directory is where messages are @@ -259,10 +278,10 @@ EXIM_PERL=perl.o # single log directory. You can define the directory and the form of the # log file name here, by setting LOG_FILE_PATH to a path name containing one # occurrence of %s. This will be replaced by one of the strings "main", -# "panic", "process" or "reject" to form the final file name. For example, -# some installations may want something like this: +# "panic", or "reject" to form the final file name. For example, some +# installations may want something like this: -LOG_FILE_PATH=/var/log/exim/%s.log +# LOG_FILE_PATH=/var/log/exim_%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 @@ -303,12 +322,37 @@ LOG_FILE_PATH=/var/log/exim/%s.log LOOKUP_DBM=yes LOOKUP_LSEARCH=yes -# LOOKUP_CDB=yes +LOOKUP_CDB=yes # LOOKUP_DNSDB=yes # LOOKUP_LDAP=yes -# LOOKUP_NIS=yes +# LOOKUP_MYSQL=yes +LOOKUP_NIS=yes # LOOKUP_NISPLUS=yes +# Additional libraries and include directories may be required for some +# lookup styles, e.g. LDAP or MYSQL. LOOKUP_LIBS is included only on the +# command for linking Exim itself, not on any auxiliary programs. You +# don't need to set LOOKUP_INCLUDE if the relevant directories are already +# specified in INCLUDE. + +# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include +# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient + +# If you have set LDAP=yes, you should set LDAP_LIB_TYPE to indicate which LDAP +# library you have. Unfortunately, though most of their functions are the +# same, there is a difference in error handling. Currently Exim knows about +# three LDAP libraries: the one from the University of Michigan, the Netscape +# SDK library, and the library that comes with Solaris 7. Uncomment whichever +# of these you are using. + +# LDAP_LIB_TYPE=UMICHIGAN +# LDAP_LIB_TYPE=NETSCAPE +# LDAP_LIB_TYPE=SOLARIS7 + +# If you don't set any of these, Exim applies a heuristic to distinguish the +# University of Michigan library, but it cannot distinguish between the other +# two. + # The TESTDB lookup is for performing tests on the handling of lookup # results, and is not useful for general running. It should be included # only when debugging the code of Exim. @@ -316,6 +360,19 @@ LOOKUP_LSEARCH=yes # LOOKUP_TESTDB=yes +# Network interfaces: Unless you set the local_interfaces option in the runtime +# configuration file to restrict Exim to certain interfaces only, it will run +# code to find all the interfaces there are on your host. Unfortunately, +# the call to the OS that does this requires a buffer large enough to hold +# data for all the interfaces - it was designed of course in the days when a +# host rarely had more than three or four at most. Nowadays hosts can have +# very many virtual interfaces running on the same hardware. If you have more +# than 250 virtual interfaces, you will need to uncomment this setting and +# increase the value. + +# MAXINTERFACES=250 + + # Per-message logs: While a message is in the process of being delivered, # comments on its progress are written to a message log, for the benefit of # human administrators. These logs are held in a directory called "msglog" @@ -346,12 +403,6 @@ PID_FILE_PATH=/var/run/exim%s.pid # then whichever of the two options it does have is added to the file name, # whether obtained from PID_FILE_PATH or by default. -# If you set PID_FILE_PATH, then it is your responsibility to ensure that -# Exim is capable of writing to the relevant files. If you have defined -# EXIM_UID and EXIM_GID above, then that uid/gid combination must be able to -# create and write to the files. If the attempt to open the file fails, Exim -# just refrains from trying to write the data. - # The pid file path does not have to be set here; it can be also be set by an # option in the runtime configuration file, which takes precedence over any # setting here. @@ -424,9 +475,30 @@ SPOOL_DIRECTORY=/var/spool/exim # of formats. The code for three specialist formats, maildir, mailstore, and # MBX, is included only when requested by the following settings: -# SUPPORT_MAILDIR=yes -# SUPPORT_MAILSTORE=yes -# SUPPORT_MBX=yes +SUPPORT_MAILDIR=yes +SUPPORT_MAILSTORE=yes +SUPPORT_MBX=yes + + +# Moving frozen messages: If the following is uncommented, Exim is compiled +# with support for automatically moving frozen messages out of the main spool +# directory, a facility that is found useful by some large installations. A +# runtime 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 for PAM (Pluggable Authentication Modules), a facility +# which is available in the latest releases of Solaris and in some GNU/Linux +# distributions (see http://ftp.at.kernel.org/pub/linux/libs/pam/). The Exim +# 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 + +# You probably need to add -lpam to EXTRALIBS, and in some releases of +# GNU/Linux -ldl is also needed. # Included transports: These variables determine which individual transport @@ -443,7 +515,9 @@ TRANSPORT_PIPE=yes TRANSPORT_SMTP=yes -# TCP wrappers: +# TCP wrappers: If you want to use tcpwrappers from within Exim, uncomment +# this setting. See the manual section entitled "Use of tcpwrappers" in the +# chapter on building and installing Exim. # USE_TCP_WRAPPERS=yes diff --git a/mail/exim/files/eximon.conf b/mail/exim/files/eximon.conf new file mode 100644 index 00000000000..5105e7f9597 --- /dev/null +++ b/mail/exim/files/eximon.conf @@ -0,0 +1,179 @@ +################################################## +# The Exim Monitor # +################################################## + +# This is the template for the Exim monitor's main build-time configuration +# file. It contains settings that are independent of any operating system. It +# should be edited and then saved to a file called Local/eximon.conf before +# running the make command to build the monitor, if any settings are required. +# Local/eximon.conf can be empty if no changes are needed. The examples given +# here (commented out) are the default settings. + +# Any settings made in the configuration file can be overridden at run time +# by setting up an environment variable with the same name as any of these +# options, but preceded by EXIMON_, for example, EXIMON_WINDOW_TITLE. + + +################################################################## +# Set these variables as appropriate for your system # +################################################################## + +# The qualifying name for your domain. The only use made of this is for +# testing that certain addresses are the same when displaying the +# log tail, and for shortening sender addresses in the queue display. + +# QUALIFY_DOMAIN= + +# The default minimum width and height for the whole window are 103 and +# 162 pixels respectively. This is enough to hold the left-most stripchart +# and the quit button. The values can be changed here. + +# MIN_HEIGHT=162 +# MIN_WIDTH=103 + +# If you uncomment the following setting, the window will start up at +# its minimum size, instead of the default maximum. There may be a quick +# flash during the start-up process. Defining it this way allows it to be +# overridden by an environment variable. + +# START_SMALL=${EXIMON_START_SMALL-yes} + +# The title for eximon's main display window. It is possible to have +# host name of the machine you are running on substituted into the +# title string. If you include the string ${fullhostname} then the +# complete name is used. If you include ${hostname} then the full +# host name will have the string contained in the DOMAIN variable +# stripped from its right-hand end before being substituted. Any other +# shell or environment variables may also be included. + +# If you use any substitutions, remember to ensure that the $ and {} +# characters are escaped from the shell, e.g. by using single quotes. + +# WINDOW_TITLE="${hostname} eximon" + +# The domain that you want to be stripped from the machine's full hostname +# when forming the short host name for the eximon window title, as +# described above. + +# DOMAIN= + +# Parameters for the rolling display of the tail of the exim log file. +# The width and depth are measured in pixels; LOG_BUFFER specifies the +# amount of store to set aside for holding the log tail, which is displayed +# in a scrolling window. When this store is full, the earlier 50% of it +# is discarded - this is much more efficient that throwing it away line +# by line. The number given can be followed by the letter K to indicate +# that the value is in kilobytes. A minimum value of 1K is enforced. + +# LOG_DEPTH=300 +# LOG_WIDTH=950 +# LOG_BUFFER=20K + +# The font which is used in the log tail display. This is defined in +# the normal X manner. It must be a "character cell" font, because this +# is required by the text widget. + +# LOG_FONT=-misc-fixed-medium-r-normal-*-14-140-*-*-*-*-iso8859-1 + +# Parameters for the display of message that are on the exim queue. +# The width and depth are measured in pixels. + +# QUEUE_DEPTH=200 +# QUEUE_WIDTH=950 + +# The font which is used in the queue display. + +# QUEUE_FONT=$LOG_FONT + +# When a message has more than one undelivered address, they are listed +# one below the other. A limit can be placed on the number of addresses +# displayed for any one message. If there are more, then "..." is used +# to indicate this. + +# QUEUE_MAX_ADDRESSES=10 + +# The display of the contents of the queue is updated every QUEUE_INTERVAL +# seconds by default (there is a button to request update). + +# QUEUE_INTERVAL=300 + +# The size of the popup text window that is used for looking at the +# contents of messages, etc. + +# TEXT_DEPTH=200 + +# The keystroke/mouse-operation that is used to pop up the menu in the +# queue window is configurable. The default is Shift with the lefthand +# mouse button. The name of an alternative can be specified in the standard +# X way of naming these things. With the default configuration for the monitor, +# individuals can override this by setting the EXIMON_MENU_EVENT environment +# variable. + +# MENU_EVENT='Shift' + +# When the menu is used to perform an operation on a message, the output +# from the exim command that is generated is displayed in a separate window +# by default. Set this option to "no" if you don't want to see the output - +# the result of the operation is normally visible in the log window in any +# case. This does not apply to the output generated from attempting to +# deliver a message. That is always shown. + +# ACTION_OUTPUT=yes + +# When some action is taken on a message, such as freezing it, or changing +# its recipients, the queue display is normally automatically updated. On +# systems that have very large queues, this can take some time and be dis- +# tracting. If this option is set to "no", the queue display is no longer +# automatically updated after an action is applied to a message. + +# ACTION_QUEUE_UPDATE=yes + +# When the menu item to display a message's body is invoked, the amount +# of data is limited to BODY_MAX bytes. This limit is a safety precaution +# to save the screen scrolling for ever on an enormous message. + +# BODY_MAX=20000 + +# The stripcharts are updated every STRIPCHART_INTERVAL seconds. + +# STRIPCHART_INTERVAL=60 + +# A stripchart showing the count of messages in the queue is always +# displayed on the left of eximon's window. Its name is "queue" by +# default, but can be changed by this variable. + +# QUEUE_STRIPCHART_NAME=queue + +# The following variable may be set to the name of a disc partition. If +# it is, a stripchart showing the percentage fullness of the partition +# will be displayed as the second stripchart. This can be used to keep +# a display of a mail spool partition on the screen. + +# SIZE_STRIPCHART=/var/mail + +# The name of the size stripchar will be the last component of SIZE_STRIPCHART +# unless the following variable is set to override it. + +# SIZE_STRIPCHART_NAME=space + +# The following variable contains a specification of which stripcharts +# you want eximon to display based on log entries. The string consists of +# pairs of strings, delimited by slash characters. The first string in each +# pair is a regular expression that matches some distinguishing feature in a +# exim log entry. + +# Entries that match the expression will be counted and displayed in a +# stripchart whose title is given by the second string. The string may +# be continued over several input lines, provided that it is split +# after a slash, and an additional slash (optionally preceded by white +# space) is included at the start of the continuation line. + +# Stripcharts configured by the following parameter are displayed to the +# right of the queue and size stripcharts, in the order defined here. + +# LOG_STRIPCHARTS='/ <= /in/ +# / => /out/ +# / => .+ D=/local/ +# / => .+ T=[^ ]*smtp/smtp/' + +# End of exim_monitor/EDITME diff --git a/mail/exim/files/md5 b/mail/exim/files/md5 index c7df917e165..ebde2238e90 100644 --- a/mail/exim/files/md5 +++ b/mail/exim/files/md5 @@ -1,6 +1,6 @@ -SHA1 (exim-2.12.tar.gz) = 967633516821410fcd066bd7b7ef8565d25fcb72 -RMD160 (exim-2.12.tar.gz) = 8bd688bc9d037599d7c7f1ff740f73b46338fd09 -MD5 (exim-2.12.tar.gz) = 0fb2147e34752cb84d450b61ac89e3fc -SHA1 (exim-texinfo-2.10.tar.gz) = 30432018d0e53cb3dacfd99b26f288082dc558c2 -RMD160 (exim-texinfo-2.10.tar.gz) = 99c16c19cc562cc06eb1e1a5a17f83bbc43c5d05 -MD5 (exim-texinfo-2.10.tar.gz) = ece154c4c8c95e3983d11c5de186005c +SHA1 (exim-texinfo-3.10.tar.gz) = 2c89fb3073dd079c19682d33a56a46c9fd863978 +RMD160 (exim-texinfo-3.10.tar.gz) = b2cab8092eb776a1551f418e6af94a9ccc8f2023 +MD5 (exim-texinfo-3.10.tar.gz) = c8c2596e6a303f774e0a627e61b4dffc +SHA1 (exim-3.12.tar.gz) = 658c01610d11d61be41cc758d8ef16724cdcd12b +RMD160 (exim-3.12.tar.gz) = 1510405939c306b51cacee4cf5f5ddf018486d32 +MD5 (exim-3.12.tar.gz) = 336cd605cb121703af4f22a8c34bb333 diff --git a/mail/exim/patches/patch-aa b/mail/exim/patches/patch-aa deleted file mode 100644 index 5cbd26f3582..00000000000 --- a/mail/exim/patches/patch-aa +++ /dev/null @@ -1,25 +0,0 @@ ---- scripts/exim_install.orig Fri Feb 26 15:55:44 1999 -+++ scripts/exim_install Fri Feb 26 15:56:58 1999 -@@ -226,19 +226,19 @@ - echo $com Info installation directory is ${INFO_DIRECTORY} - echo $com "" - -- makeinfo --no-split --output exim_overview.info ../doc/oview.texinfo -+ makeinfo --force --no-split --output exim_overview.info ../doc/oview.texinfo - echo ${CP} exim_overview.info ${INFO_DIRECTORY} - ${real} ${CP} exim_overview.info ${INFO_DIRECTORY} - install-info --section="Exim" \ - --entry "* Overview: (exim_overview). Overview of the Exim system" \ - ${INFO_DIRECTORY}/exim_overview.info ${INFO_DIRECTORY}/dir -- makeinfo --no-split --output exim.info ../doc/spec.texinfo -+ makeinfo --force --no-split --output exim.info ../doc/spec.texinfo - echo ${CP} exim.info ${INFO_DIRECTORY} - ${real} ${CP} exim.info ${INFO_DIRECTORY} - install-info --section="Exim" \ - --entry "* User guide: (exim). Exim manual" \ - ${INFO_DIRECTORY}/exim.info ${INFO_DIRECTORY}/dir -- makeinfo --no-split --output exim_filter.info ../doc/filter.texinfo -+ makeinfo --force --no-split --output exim_filter.info ../doc/filter.texinfo - echo ${CP} exim_filter.info ${INFO_DIRECTORY} - ${real} ${CP} exim_filter.info ${INFO_DIRECTORY} - install-info --section="Exim" \ diff --git a/mail/exim/pkg/COMMENT b/mail/exim/pkg/COMMENT index 978f88ee2c3..f9e4ade5430 100644 --- a/mail/exim/pkg/COMMENT +++ b/mail/exim/pkg/COMMENT @@ -1 +1 @@ -high performance MTA for Unix systems on the Internet +Exim is a MTA for use on systems connected to the Internet. diff --git a/mail/exim/pkg/DESCR b/mail/exim/pkg/DESCR index 5ab3f4fe30b..c852846efe5 100644 --- a/mail/exim/pkg/DESCR +++ b/mail/exim/pkg/DESCR @@ -1,17 +1,7 @@ -Exim is a mail transfer agent for Unix systems connected to the Internet. - - . Exim is intended for use as an Internet mailer, and therefore handles - addresses in RFC 822 domain format only. (No bangpaths!) - - . The only external transport currently implemented is an SMTP transport - over a TCP/IP network (using sockets). A pipe transport is available, - and this could be used to send messages to some other transport mechanism. - - . Exim is very configurable, and its management is very powerful. It can - be configured to be "fussy" about certain hosts or domains, and - can easily serve multiple domains. - - . Exim is an excellent mailer for an ISP, as its control and flexibility - are very good. - - . Its requeuing and retry algorithms are very powerful. +Exim is a mail transfer agent (MTA) developed at the University of Cambridge +for use on Unix systems connected to the Internet. It is freely available +under the terms of the GNU General Public Licence. In overall style it is +similar to Smail 3, but its facilities are more extensive. It contains +facilities for verifying incoming sender and recipient addresses, for refusing +mail from specified hosts, networks, or senders, and for controlling mail +relaying. diff --git a/mail/exim/pkg/PLIST b/mail/exim/pkg/PLIST index d72c4d53439..50322ad6cb9 100644 --- a/mail/exim/pkg/PLIST +++ b/mail/exim/pkg/PLIST @@ -1,4 +1,6 @@ sbin/exim +sbin/eximon +sbin/eximon.bin sbin/exim_dumpdb sbin/exim_fixdb sbin/exim_tidydb @@ -16,10 +18,11 @@ sbin/exim_lock info/exim_overview.info info/exim.info info/exim_filter.info -/etc/exim/configure @exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir -@exec install-info %D/info/exim_overview.info %D/info/dir -@exec install-info %D/info/exim.info %D/info/dir -@exec install-info %D/info/exim_filter.info %D/info/dir +@exec install-info --section="Exim" --entry "* Overview: (exim_overview). Overview of the Exim system" %D/info/exim_overview.info %D/info/dir +@exec install-info --section="Exim" --entry "* User guide: (exim). Exim manual" %D/info/exim.info %D/info/dir +@exec install-info --section="Exim" --entry "* Filtering: (exim_filter). Filtering mail with Exim" %D/info/exim_filter.info %D/info/dir @exec [ -d /etc/exim ] || install -d /etc/exim -@exec [ -f /etc/exim/configure ] || install -m 644 %D/src/configure.default /etc/exim/configure +@cwd /etc/exim +configure.sample +@exec [ -f %D/configure ] || install -m 644 %D/configure.sample %D/configure