diff options
author | Ben Lutgens <lamer@gentoo.org> | 2002-05-25 22:05:44 +0000 |
---|---|---|
committer | Ben Lutgens <lamer@gentoo.org> | 2002-05-25 22:05:44 +0000 |
commit | b9c9eb9b9146f0978dbfee2e3a321ed0e3c5cbc0 (patch) | |
tree | 4f98519232e3b1eec9bfea17ecee617a10cf3f30 /net-mail/exim | |
parent | Masked exim-4.04 because it needs more testing. Specifically with mta-ldap (diff) | |
download | gentoo-2-b9c9eb9b9146f0978dbfee2e3a321ed0e3c5cbc0.tar.gz gentoo-2-b9c9eb9b9146f0978dbfee2e3a321ed0e3c5cbc0.tar.bz2 gentoo-2-b9c9eb9b9146f0978dbfee2e3a321ed0e3c5cbc0.zip |
Added exim4. Now with AUTH_SPA, mailstore, mbx support.
Diffstat (limited to 'net-mail/exim')
-rw-r--r-- | net-mail/exim/exim-4.04.ebuild | 166 | ||||
-rw-r--r-- | net-mail/exim/files/auth_conf.sub | 3 | ||||
-rw-r--r-- | net-mail/exim/files/digest-exim-4.04 | 1 | ||||
-rw-r--r-- | net-mail/exim/files/smtp-auth-tls-client-configure | 441 |
4 files changed, 611 insertions, 0 deletions
diff --git a/net-mail/exim/exim-4.04.ebuild b/net-mail/exim/exim-4.04.ebuild new file mode 100644 index 000000000000..1e413844668e --- /dev/null +++ b/net-mail/exim/exim-4.04.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2000 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# Author Jerry Alexandratos <jerry@gentoo.org> +# Updated to exim-4 by Ben Lutgens <lamer@gentoo.org> +# $Header: /var/cvsroot/gentoo-x86/net-mail/exim/exim-4.04.ebuild,v 1.1 2002/05/25 22:05:44 lamer Exp $ + +S=${WORKDIR}/${P} +DESCRIPTION="A highly configurable, drop-in replacement for sendmail" +SRC_URI="ftp://ftp.exim.org/pub/exim/exim4/${P}.tar.gz" +HOMEPAGE="http://www.exim.org/" + +DEPEND="virtual/glibc + >=sys-libs/db-3.2 + >=sys-devel/perl-5.6.0 + >=dev-libs/libpcre-3.4 + pam? ( >=sys-libs/pam-0.75 ) + tcpd? ( sys-apps/tcp-wrappers ) + mta-tls? ( >=dev-libs/openssl-0.9.6 ) + mta-ldap? ( >=net-nds/openldap-2.0.7 ) + mta-mysql? ( >=dev-db/mysql-3.23.28 )" + +RDEPEND="${DEPEND} + !virtual/mta + >=net-mail/mailbase-0.00" + +PROVIDE="virtual/mta" + + +src_unpack() { + + local myconf + unpack ${A} + cd ${S} + + # Don't need this in exim4 dir exists + #mkdir Local + sed -e "48i\CFLAGS=${CFLAGS}" \ + -e "s:# AUTH_CRAM_MD5=yes:AUTH_CRAM_MD5=yes:" \ + -e "s:# AUTH_PLAINTEXT=yes:AUTH_PLAINTEXT=yes:" \ + -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=/usr/sbin:" \ + -e "s:COMPRESS_COMMAND=/opt/gnu/bin/gzip:COMPRESS_COMMAND=/usr/bin/gzip:" \ + -e "s:ZCAT_COMMAND=/opt/gnu/bin/zcat:ZCAT_COMMAND=/usr/bin/zcat:" \ + -e "s:CONFIGURE_FILE=/usr/exim/configure:CONFIGURE_FILE=/etc/exim/configure:" \ + -e "s:EXIM_MONITOR=eximon.bin:# EXIM_MONITOR=eximon.bin:" \ + -e "s:# EXIM_PERL=perl.o:EXIM_PERL=perl.o:" \ + -e "s:# INFO_DIRECTORY=/usr/local/info:INFO_DIRECTORY=/usr/share/info:" \ + -e "s:# LOG_FILE_PATH=syslog:LOG_FILE_PATH=syslog:" \ + -e "s:LOG_FILE_PATH=syslog\:/var/log/exim_%slog::" \ + -e "s:# PID_FILE_PATH=/var/lock/exim%s.pid:PID_FILE_PATH=/var/run/exim%s.pid:" \ + -e "s:# SPOOL_DIRECTORY=/var/spool/exim:SPOOL_DIRECTORY=/var/spool/exim:" \ + -e "s:# SUPPORT_MAILDIR=yes:SUPPORT_MAILDIR=yes:" \ + -e "s:# SUPPORT_MAILSTOR=yes:SUPPORT_MAILSTORE=yes:" \ + -e "s:# SUPPORT_MBX=yes:SUPPORT_MBX=yes:" \ + -e "s:EXIM_USER=:EXIM_USER=mail:" \ + -e "s:# AUTH_SPA=yes:AUTH_SPA=yes:" \ + src/EDITME > Local/Makefile + + cd Local + if use pam; then + cp Makefile Makefile.orig + sed -e "s:# SUPPORT_PAM=yes:SUPPORT_PAM=yes:" Makefile.orig > Makefile + myconf="${myconf} -lpam" + fi + if use tcpd; then + cp Makefile Makefile.orig + sed -e "s:# USE_TCP_WRAPPERS=yes:USE_TCP_WRAPPERS=yes:" Makefile.orig > Makefile + myconf="${myconf} -lwrap" + fi + if [ -n "$myconf" ] ; then + echo "EXTRALIBS=${myconf}" >> Makefile + fi + + cd ${S} + if use mta-tls; then + cp Local/Makefile Local/Makefile.tmp + sed -e "s:# SUPPORT_TLS=yes:SUPPORT_TLS=yes:" \ + -e "s:# TLS_LIBS=-lssl -lcrypto:TLS_LIBS=-lssl -lcrypto:" Local/Makefile.tmp > Local/Makefile + fi + if use mta-ldap; then + cp Local/Makefile Local/Makefile.tmp + sed -e "s:# LOOKUP_LDAP=yes:LOOKUP_LDAP=yes:" \ + -e "s:# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include:LOOKUP_INCLUDE=-I/usr/include/ldap -I/usr/include/mysql:" \ + -e "s:# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq:LOOKUP_LIBS=-L/usr/lib -lldap -llber -lmysqlclient -lpq:" \ + -e "s:# LDAP_LIB_TYPE=OPENLDAP2:LDAP_LIB_TYPE=OPENLDAP2:" Local/Makefile.tmp >| Local/Makefile + fi + if use mta-mysql; then + cp Local/Makefile Local/Makefile.tmp + sed -e "s:# LOOKUP_MYSQL=yes:LOOKUP_MYSQL=yes:" \ + -e "s:# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq:LOOKUP_LIBS=-L/usr/lib -lldap -llber -lmysqlclient -lpq:" Local/Makefile.tmp >| Local/Makefile + fi + cat Makefile | sed -e 's/^buildname=.*/buildname=exim-gentoo/g' > Makefile.gentoo && mv -f Makefile.gentoo Makefile +} + + +src_compile() { + make || die +} + + +src_install () { + + cd ${S}/build-exim-gentoo + insopts -o root -g root -m 4755 + insinto /usr/sbin + doins exim + + dodir /usr/bin /usr/sbin /usr/lib + dosym /usr/sbin/exim /usr/bin/mailq + dosym /usr/sbin/exim /usr/bin/newaliases + dosym /usr/sbin/exim /usr/bin/mail + dosym /usr/sbin/exim /usr/lib/sendmail + dosym /usr/sbin/exim /usr/sbin/sendmail + + exeinto /usr/sbin + for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \ + exim_tidydb exinext exiwhat exigrep eximstats exiqsumm + do + doexe $i + done + + # This stuff shows up in ${S}/exim-build-gentoo now. Wierd. + #cd ${S}/util + #exeinto /usr/sbin + #for i in exigrep eximstats exiqsumm + #do + # doexe $i + #done + + dodir /etc/exim /etc/exim/samples + + insopts -o root -g root -m 0644 + insinto /etc/exim/samples + doins ${FILESDIR}/smtp-auth-tls-client-configure + cd ${S}/src + insopts -o root -g root -m 0644 + insinto /etc/exim + doins configure.default + + dodoc ${S}/doc/* + doman ${S}/doc/exim.8 + # INSTALL a pam.d file for SMTP AUTH that works with gentoo's pam + insinto /etc/pam.d + doins ${FILESDIR}/pam.d-exim + + # A nice filter for exim to protect your windows clients. + insinto /etc/exim + doins ${FILESDIR}/system_filter.exim + dodoc ${FILESDIR}/auth_conf.sub + + exeinto /etc/init.d + newexe ${FILESDIR}/exim.rc6 exim + insinto /etc/conf.d + newins ${FILESDIR}/exim.confd exim +} + + +pkg_config() { + + ${ROOT}/usr/sbin/rc-update add exim +} +pkg_postinst() { + einfo "Read the bottom of /etc/exim/system_filter.exim for usage." + einfo "/usr/share/doc/${P}/auth_conf.sub.gz contains the configuration sub for using smtp auth." + einfo "Please create /etc/exim/configure from /etc/exim/configure.default." + einfo "Also see /etc/exim/samples dir for example configs." +} diff --git a/net-mail/exim/files/auth_conf.sub b/net-mail/exim/files/auth_conf.sub index 7f413d3249e8..fb744a5a67a1 100644 --- a/net-mail/exim/files/auth_conf.sub +++ b/net-mail/exim/files/auth_conf.sub @@ -20,3 +20,6 @@ login: server_prompts = "Username:: : Password::" server_condition = "${if pam{$1:$2}{1}{0}}" server_set_id = $1 + +# FIXME +# Need to add authenticator for SPA!! diff --git a/net-mail/exim/files/digest-exim-4.04 b/net-mail/exim/files/digest-exim-4.04 new file mode 100644 index 000000000000..3a9c1aaa7444 --- /dev/null +++ b/net-mail/exim/files/digest-exim-4.04 @@ -0,0 +1 @@ +MD5 cfe70a927d66a4bd5ec075b5127d3529 exim-4.04.tar.gz 1338993 diff --git a/net-mail/exim/files/smtp-auth-tls-client-configure b/net-mail/exim/files/smtp-auth-tls-client-configure new file mode 100644 index 000000000000..e1b469532711 --- /dev/null +++ b/net-mail/exim/files/smtp-auth-tls-client-configure @@ -0,0 +1,441 @@ +#!!# This file is output from the convert4r4 script, which tries +#!!# to convert Exim 3 configurations into Exim 4 configurations. +#!!# However, it is not perfect, especially with non-simple +#!!# configurations. You must check it before running it. + + +#!!# These options specify the Access Control Lists (ACLs) that +#!!# are used for incoming SMTP messages - after the RCPT and DATA +#!!# commands, respectively. + +acl_smtp_rcpt = check_recipient +acl_smtp_data = check_message + +#!!# This setting defines a named domain list called +#!!# local_domains, created from the old options that +#!!# referred to local domains. It will be referenced +#!!# later on by the syntax "+local_domains". +#!!# Other domain and host lists may follow. + +domainlist local_domains = @ : \ + localhost : \ + rtfm.sistina.com + +hostlist relay_hosts = localhost + +# This is the main exim configuration file. +# It was originally generated by `eximconfig', part of the exim RPM, but it +# may edited by the mail system administrator. +# This file originally generated by eximconfig at Sat Feb 16 17:35:38 CST 2002 +# See exim info section for details of the things that can be configured here. + +# Please see the manual for a complete list +# of all the runtime configuration options that can be included in a +# configuration file. + +# This file is divided into several parts, all but the last of which are +# terminated by a line containing the word "end". The parts must appear +# in the correct order, and all must be present (even if some of them are +# in fact empty). Blank lines, and lines starting with # are ignored. + +###################################################################### +# MAIN CONFIGURATION SETTINGS # +###################################################################### + +# Specify the domain you want to be added to all unqualified addresses +# here. Unqualified addresses are accepted only from local callers by +# default. See the receiver_unqualified_{hosts,nets} options if you want +# to permit unqualified addresses from remote sources. If this option is +# not set, the primary_hostname value is used for qualification. +primary_hostname = rtfm.sistina.com +qualify_domain = sistina.com + +# 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 = + +# Specify your local domains as a colon-separated list here. If this option +# is not set (i.e. not mentioned in the configuration file), the +# qualify_recipient value is used as the only local domain. If you do not want +# to do any local deliveries, uncomment the following line, but do not supply +# any data for it. This sets local_domains to an empty string, which is not +# the same as not mentioning it at all. An empty string specifies that there +# are no local domains; not setting it at all causes the default value (the +# setting of qualify_recipient) to be used. + + +# Allow mail addressed to our hostname, or to our IP address. + + +# Domains we relay for; that is domains that aren't considered local but we +# accept mail for them. + +#relay_domains = + +# If this is uncommented, we accept and relay mail for all domains we are +# in the DNS as an MX for. + +#relay_domains_include_local_mx = true + +# No local deliveries will ever be run under the uids of these users (a colon- +# separated list). An attempt to do so gets changed so that it runs under the +# uid of "nobody" instead. This is a paranoic safety catch. Note 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 + +# 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 = * + +# Exim contains support for the Realtime Blocking List (RBL) that is being +# maintained as part of the DNS. See http://maps.vix.com/rbl/ for background. +# Uncommenting the following line will make Exim reject mail from any +# host whose IP address is blacklisted in the RBL at maps.vix.com. + +#rbl_domains = rbl.maps.vix.com +#rbl_reject_recipients = false +#rbl_warn_header = true + +# The setting below allows your host to be used as a mail relay only by +# localhost: it locks out the use of your host as a mail relay by any +# other host. See the section of the manual entitled "Control of relaying" +# for more info. + + +# If you want Exim to support the "percent hack" for all your local domains, +# uncomment the following line. This is the feature by which mail addressed +# to x%y@z (where z is one of your local domains) is locally rerouted to +# x@y and sent on. Otherwise x%y is treated as an ordinary local part + +# percent_hack_domains=* + +# If this option is set, then any process that is running as one of the +# listed users may pass a message to Exim and specify the sender's +# address using the "-f" command line option, without Exim's adding a +# "Sender" header. + +trusted_users = mail + +# If this option is true, the SMTP command VRFY is supported on incoming +# SMTP connections; otherwise it is not. + + +# Some operating systems use the "gecos" field in the system password file +# to hold other information in addition to users' real names. Exim looks up +# this field when it is creating "sender" and "from" headers. If these options +# are set, exim uses "gecos_pattern" to parse the gecos field, and then +# expands "gecos_name" as the user's name. $1 etc refer to sub-fields matched +# by the pattern. + +gecos_pattern = ^([^,:]*) +gecos_name = $1 + +# This sets the maximum number of messages that will be accepted in one +# connection. The default is 10, which is probably enough for most purposes, +# but is too low on dialup SMTP systems, which often have many more mails +# queued for them when they connect. + +smtp_accept_queue_per_connection = 100 + +# Send a mail to the postmaster when a message is frozen. There are many +# reasons this could happen; one is if exim cannot deliver a mail with no +# return address (normally a bounce) another that may be common on dialup +# systems is if a DNS lookup of a smarthost fails. Read the documentation +# for more details: you might like to look at the auto_thaw option + +#!!# freeze_tell_mailmaster replaced by freeze_tell +freeze_tell = postmaster + +# This string defines the contents of the \`Received' message header that +# is added to each message, except for the timestamp, which is automatically +# added on at the end, preceded by a semicolon. The string is expanded each +# time it is used. + +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))\n\t\ + id ${message_id}\ + ${if def:received_for {\n\tfor <$received_for>}}" + +#!!#######################################################!!# +#!!# This new section of the configuration contains ACLs #!!# +#!!# (Access Control Lists) derived from the Exim 3 #!!# +#!!# policy control options. #!!# +#!!#######################################################!!# + +#!!# These ACLs are crudely constructed from Exim 3 options. +#!!# They are almost certainly not optimal. You should study +#!!# them and rewrite as necessary. + +begin acl + +#!!# ACL that is used after the RCPT command +check_recipient: + # Exim 3 had no checking on -bs messages, so for compatibility + # we 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 = : + accept domains = +local_domains + accept hosts = +relay_hosts + deny message = relay not permitted + +#!!# ACL that is used after the DATA command +check_message: + accept + +##################################################################### +# AUTHENTICATION CONFIGURATION # +##################################################################### + + +begin authenticators + +plain: + driver = plaintext + public_name = LOGIN + client_send = blutgens : quo7quee + + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### + + +# There are no rewriting specifications in this default configuration file. + + +# This is an example of a useful rewriting rule---it looks up the real +# address of all local users in a file + +# *@rtfm.sistina.com ${lookup{$1}lsearch{/etc/email-addresses}\ +# {$value}fail} bcfrF + +begin rewrite + +*@rtfm.sistina.com $1@sistina.com Ffrs + +#!!#######################################################!!# +#!!# Here follow routers created from the old routers, #!!# +#!!# for handling non-local domains. #!!# +#!!#######################################################!!# + +begin routers + + + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how remote addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A remote address is passed to each in turn until it is accepted. # +###################################################################### + +# Remote addresses are those with a domain that does not match any item +# in the "local_domains" setting above. + +# Send all mail to a smarthost + +smarthost: + driver = manualroute + domains = ! +local_domains + route_list = * mail.sistina.com bydns + transport = remote_smtp + no_more + + +#!!#######################################################!!# +#!!# Here follow routers created from the old directors, #!!# +#!!# for handling local domains. #!!# +#!!#######################################################!!# + + +###################################################################### +# DIRECTORS CONFIGURATION # +# Specifies how local addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A local address is passed to each in turn until it is accepted. # +###################################################################### + +# This allows local delivery to be forced, avoiding alias files and +# forwarding. + +real_local: +#!!# prefix renamed local_part_prefix + driver = accept + check_local_user + local_part_prefix = real- + transport = local_delivery + +# This director handles aliasing using a traditional /etc/aliases file. +# 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. + +system_aliases: + driver = redirect + allow_defer + allow_fail + data = ${lookup{$local_part}lsearch{/etc/aliases}} + file_transport = address_file + pipe_transport = address_pipe + retry_use_local_part +# user = list +# Uncomment the above line if you are running smartlist + +# This director handles forwarding using traditional .forward files. +# It also allows mail filtering when a forward file starts with the +# string "# Exim filter": to disable filtering, uncomment the "filter" +# option. 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. + +# For standard debian setup of one group per user, it is acceptable---normal +# even---for .forward to be group writable. If you have everyone in one +# group, you should comment out the "modemask" line. Without it, the exim +# default of 022 will apply, which is probably what you want. + +userforward: +#!!# filter renamed allow_filter + driver = redirect + allow_filter + check_ancestor + check_local_user + file = $home/.forward + directory_transport = address_directory + modemask = 002 + user = ${local_part} + pipe_transport = address_pipe + reply_transport = address_reply + no_verify + +# This director matches local user mailboxes. + +localuser: + driver = accept + check_local_user + transport = local_delivery + + + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +# ORDER DOES NOT MATTER # +# Only one appropriate transport is called for each delivery. # +###################################################################### + +# This transport is used for local delivery to user mailboxes. On debian +# systems group mail is used so we can write to the /var/spool/mail +# directory. (The alternative, which most other unixes use, is to deliver +# as the user's own group, into a sticky-bitted directory) + +begin transports + +local_delivery: + driver = appendfile + envelope_to_add + maildir_format + directory = /home/${local_part}/.maildir/ + group = mail + mode = 0660 + no_mode_fail_narrower + +# This transport is used for handling pipe addresses generated by alias +# or .forward files. It has a conventional name, since it is not actually +# mentioned elsewhere in this configuration file. (A different name *can* +# be specified via the "address_pipe_transport" option if you really want +# to.) 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 if you +# want this to happen only when the pipe fails to complete normally. + +address_pipe: + driver = pipe + return_output + +# This transport is used for handling file addresses generated by alias +# or .forward files. It has a conventional name, since it is not actually +# mentioned elsewhere in this configuration file. + +address_file: + driver = appendfile + +address_directory: + driver = appendfile + maildir_format +# 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. Each message is then delivered +# to a unique file in the directory. If instead you want all such deliveries to +# be in the "maildir" format that is used by some other mail software, +# uncomment the final option below. If this is done, the directory specified +# in the .forward or alias file is the base maildir directory. +# +# Should you want to be able to specify either maildir or non-maildir +# directory-style deliveries, then you must set up yet another transport, +# called address_directory2. This is used if the path ends in "//" so should +# be the one used for maildir, as the double slash suggests another level +# of directory. In the absence of address_directory2, paths ending in // +# are passed to address_directory. + +address_directory: +#!!# prefix renamed message_prefix +#!!# suffix renamed message_suffix +#!!# no_from_hack replaced by check_string + driver = appendfile + check_string = + message_prefix = "" + message_suffix = "" +# maildir_format + +# This transport is used for handling autoreplies generated by the filtering +# option of the forwardfile director. It has a conventional name, since it +# is not actually mentioned elsewhere in this configuration file. + +address_reply: + driver = autoreply + +# This transport is used for delivering messages over SMTP connections. +remote_smtp: +#!!# authenticate_hosts renamed hosts_try_auth + driver = smtp + hosts_try_auth = * + + + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### + +# 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 2 hours and increasing each time by a factor of 1.5, up to 16 +# hours, then retries every 8 hours until 4 days have passed since the first +# failed delivery. + +# Domain Error Retries +# ------ ----- ------- + + +begin retry + +* * F,2h,15m; G,16h,2h,1.5; F,4d,8h + + +# End of Exim 4 configuration |