diff options
Diffstat (limited to 'mail-mta/qpsmtpd')
-rw-r--r-- | mail-mta/qpsmtpd/Manifest | 10 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch | 11 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch | 10 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch | 12 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd.confd | 25 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd.envd | 2 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd.initd | 60 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/files/qpsmtpd.xinetd | 20 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/metadata.xml | 8 | ||||
-rw-r--r-- | mail-mta/qpsmtpd/qpsmtpd-0.82.ebuild | 84 |
10 files changed, 242 insertions, 0 deletions
diff --git a/mail-mta/qpsmtpd/Manifest b/mail-mta/qpsmtpd/Manifest new file mode 100644 index 0000000..f0a42a2 --- /dev/null +++ b/mail-mta/qpsmtpd/Manifest @@ -0,0 +1,10 @@ +AUX qpsmtpd-0.40-badhelo_disconnect.patch 520 RMD160 f4e72cbe1d769206f719d0f3eff3c14a9216a1b8 SHA1 24ec87ae2cf9e95a8850640081b1a6594a030360 SHA256 f93dff30d7a6837b8b3e5b4b6ef9b02bb4fdeb58499e54f4d94d43668ad82970 +AUX qpsmtpd-0.40-badrcptto_allowrelay.patch 498 RMD160 8afc719f895da5aeb9a8333daaf0b690eb44d56b SHA1 2f5d4d34560415000bc0319b5bfe993f6734ea43 SHA256 f0bc5f9d4865084ef673e5271725dd01ec1d3fbfcf4ea47988d728c5acd14acf +AUX qpsmtpd-0.40-clamd_conf.patch 707 RMD160 819b17f489ca014d3552243af15084ea6ec4fa56 SHA1 9dd3aed08fa07e7748342c9743bc29a5440e5f50 SHA256 bedc83603a4411670d4926366d0c23b0ebcf5ec00aed4621135e66c25319d927 +AUX qpsmtpd.confd 617 RMD160 3b95ace716df3f61f9280ca783dbef43e6ee23ac SHA1 b409a52c77fad35b1a6f3c4e7eb65a7fb78cea89 SHA256 7748b525d9c3a3e8cbeec66b8b5df48510a44a1d624168278ce71720e7de8bc0 +AUX qpsmtpd.envd 74 RMD160 963ae15c132be3f99226bf5efed7da5b8f3c2570 SHA1 3a9975274ee6b8cbf2158b5643bd692291625fe8 SHA256 bbf8f40198e8a87ff6103b5dc98cae561f0dc9738a6cda3492b00468fbfdfd8e +AUX qpsmtpd.initd 2068 RMD160 5a809569722c8930bd4cc4d6b8bfd458fca2056d SHA1 2ebdb7ef090fcf56a6eb69540bef88600edf15b6 SHA256 13473280234660bb314289d79c79c57a5e25a2be913469cdb4ab66fefcfc14ce +AUX qpsmtpd.xinetd 526 RMD160 040c159e3c637dc00f1816088852207766c286fa SHA1 81deb67094386ab4ae341572270c47c140f16e89 SHA256 45729911251be13007d95bb9e25b6c9c951a6419b8badae4e4097dfc603edcdd +DIST qpsmtpd-0.82.tar.gz 176806 RMD160 8d7642f1887278ce45b3355de7da7f6b2c98a7d4 SHA1 540155086c0b5e553f951ef4f8967886384dca24 SHA256 794af76a1be3cc766ce034311a351ff76b0323c2decc49af96d626e3f3de4df9 +EBUILD qpsmtpd-0.82.ebuild 2213 RMD160 019494407bad167bcdb8565f9311acab933a1904 SHA1 fc1056e4781b75953c84832118653af89a3a5d50 SHA256 61162e62c6d9e3c19a7e50959c43c7cede71cd08ba59c64c6e7c966a43da13f6 +MISC metadata.xml 372 RMD160 598ecf1aa54e627f258d0f7b82b324475053f5bb SHA1 363c6c940b1537527bae2f632d74da1997682a13 SHA256 9f3a32db335226556204e3ef71f85ea1d872430f7567fb5ae3cc0cfaf3ca313d diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch new file mode 100644 index 0000000..6d8b88c --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch @@ -0,0 +1,11 @@ +--- qpsmtpd-0.40/plugins/check_spamhelo.badhelo_disconnect 2007-06-14 11:57:24.000000000 -0600 ++++ qpsmtpd-0.40/plugins/check_spamhelo 2007-06-14 13:21:45.000000000 -0600 +@@ -23,7 +23,7 @@ + for my $bad ($self->qp->config('badhelo')) { + if ($host eq lc $bad) { + $self->log(LOGDEBUG, "Denying HELO from host claiming to be $bad"); +- return (DENY, "Sorry, I don't believe that you are $host."); ++ return (DENY_DISCONNECT, "Sorry, I don't believe that you are $host."); + } + } + return DECLINED; diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch new file mode 100644 index 0000000..1f9f33f --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch @@ -0,0 +1,10 @@ +--- qpsmtpd-0.40/plugins/check_badrcptto.badrcptto_allowrelay 2007-06-14 11:57:24.000000000 -0600 ++++ qpsmtpd-0.40/plugins/check_badrcptto 2007-06-14 13:26:42.000000000 -0600 +@@ -3,6 +3,7 @@ + + sub hook_rcpt { + my ($self, $transaction, $recipient, %param) = @_; ++ return (DECLINED) if $self->qp->connection->relay_client; + my @badrcptto = $self->qp->config("badrcptto") or return (DECLINED); + return (DECLINED) unless $recipient->host && $recipient->user; + my $host = lc $recipient->host; diff --git a/mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch new file mode 100644 index 0000000..b1e0f80 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch @@ -0,0 +1,12 @@ +diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.40/plugins/virus/clamav mezzanine_patched_qpsmtpd-0.40/plugins/virus/clamav +--- qpsmtpd-0.40/plugins/virus/clamav 2007-06-14 11:57:23.000000000 -0600 ++++ mezzanine_patched_qpsmtpd-0.40/plugins/virus/clamav 2007-06-15 13:37:26.000000000 -0600 +@@ -148,7 +148,7 @@ + $self->{_max_size} ||= 512 * 1024; + $self->{_spool_dir} ||= $self->spool_dir(); + $self->{_back_compat} ||= ''; # make sure something is set +- $self->{_clamd_conf} ||= '/etc/clamd/conf'; # make sure something is set ++ $self->{_clamd_conf} ||= '/etc/clamd.conf'; # make sure something is set + + unless ($self->{_spool_dir}) { + $self->log(LOGERROR, "No spool dir configuration found"); diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.confd b/mail-mta/qpsmtpd/files/qpsmtpd.confd new file mode 100644 index 0000000..9a82c71 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.confd @@ -0,0 +1,25 @@ +# Config file for /etc/init.d/qpsmtpd +# + +QPSMTPD_CONFIG="/etc/qpsmtpd" +QPSMTPD_NICELEVEL="0" + +# Select QPSMTPD server type +# - async +# Not all plugins work without problems with the async mode. +# - forkserver (default) +# - prefork +# Does not work 100%. Use at your own risk. +QPSMTPD_SERVER_TYPE="forkserver" + +# QPSMTPD options. This can be different depending on +# what QPSMTPD server you run. +# +# Typical forkserver +QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd" +# +# Typical prefork +# QPSMTPD_OPTIONS="--interface 0.0.0.0 --port 25 --user smtpd" +# +# Typical async +# QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd" diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.envd b/mail-mta/qpsmtpd/files/qpsmtpd.envd new file mode 100644 index 0000000..3665116 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.envd @@ -0,0 +1,2 @@ +QPSMTPD_CONFIG="/etc/qpsmtpd" +CONFIG_PROTECT="/usr/share/qpsmtpd/plugins" diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.initd b/mail-mta/qpsmtpd/files/qpsmtpd.initd new file mode 100644 index 0000000..4624304 --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.initd @@ -0,0 +1,60 @@ +#!/sbin/runscript + +depend() { + use logger dns ypbind amavisd mysql postgresql antivirus postfix_greylist net saslauthd + provide mta +} + +checkconfig() { + if ! [ -d "${QPSMTPD_CONFIG:-/etc/qpsmtpd}" ]; then + eerror "Configuration directory ${QPSMTPD_CONFIG:-/etc/qpsmtpd} does not exist." + return 1 + fi + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + HOME="/var/spool/qpsmtpd" + local QPSMTPD_SERVER_BIN="" + local myopts="" + export QPSMTPD_CONFIG=${QPSMTPD_CONFIG} + for foo in PERL_UNICODE LANG LC_TIME LC_ALL BASH_ENV ENV CDPATH IFS + do + unset ${foo} + done + case "${QPSMTPD_SERVER_TYPE}" in + prefork) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-prefork" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + # Option --pid-file is mentioned in the help of the prefork server + # but does not work when specified. + # QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file /var/run/qpsmtpd.pid" + myopts="${myopts} --make-pidfile --pidfile /var/run/qpsmtpd.pid" + ;; + async) + QPSMTPD_SERVER_BIN="/usr/sbin/qpsmtpd-async" + myopts="${myopts} --background --make-pidfile --pidfile /var/run/qpsmtpd.pid" + ;; + forkserver|*) + QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-forkserver" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-d[\t ]\{1,99\}|[\t ]\{1,99\}\-d[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-\detach[\t ]\{1,99\}|[\t ]\{1,99\}\-\-detach[\t ]\{0,99\}::gI")" + QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file /var/run/qpsmtpd.pid --detach" + myopts="${myopts} --pidfile /dev/null" + ;; + esac + start-stop-daemon --start --nicelevel ${QPSMTPD_NICELEVEL:-0} \ + --quiet ${myopts} \ + --exec ${QPSMTPD_SERVER_BIN} \ + -- ${QPSMTPD_OPTIONS} + eend $? +} + +stop() { + ebegin "Stopping qpsmtpd [${QPSMTPD_SERVER_TYPE}] server" + start-stop-daemon --stop --quiet --pidfile /var/run/qpsmtpd.pid + eend $? +} diff --git a/mail-mta/qpsmtpd/files/qpsmtpd.xinetd b/mail-mta/qpsmtpd/files/qpsmtpd.xinetd new file mode 100644 index 0000000..71cb21c --- /dev/null +++ b/mail-mta/qpsmtpd/files/qpsmtpd.xinetd @@ -0,0 +1,20 @@ +# default: off +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. + +service smtp +{ + flags = REUSE + socket_type = stream + wait = no + user = smtpd + group = smtpd + groups = yes + log_on_failure += USERID HOST + disable = yes + rlimit_as = 128M + instances = 40 + per_source = 10 + cps = 50 10 + server = /usr/bin/qpsmtpd +} diff --git a/mail-mta/qpsmtpd/metadata.xml b/mail-mta/qpsmtpd/metadata.xml new file mode 100644 index 0000000..65c65bb --- /dev/null +++ b/mail-mta/qpsmtpd/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<use> + <flag name='async'>Add deps + support for asynchronous mail reception/processing as well as preforked daemon</flag> + <flag name='postfix'>create user with permissions for proper postfix interaction</flag> +</use> +</pkgmetadata> diff --git a/mail-mta/qpsmtpd/qpsmtpd-0.82.ebuild b/mail-mta/qpsmtpd/qpsmtpd-0.82.ebuild new file mode 100644 index 0000000..6db9622 --- /dev/null +++ b/mail-mta/qpsmtpd/qpsmtpd-0.82.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +inherit eutils + +DESCRIPTION="qpsmtpd is a flexible smtpd daemon written in Perl" +HOMEPAGE="http://smtpd.develooper.com" +SRC_URI="http://smtpd.develooper.com/files/${P}.tar.gz" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="postfix ipv6 syslog" + +RDEPEND=">=dev-lang/perl-5.8.0 + dev-perl/Net-DNS + virtual/perl-MIME-Base64 + dev-perl/MailTools + dev-perl/IPC-Shareable + dev-perl/Socket6 + dev-perl/Danga-Socket + dev-perl/ParaDNS + ipv6? ( dev-perl/IO-Socket-INET6 ) + syslog? ( virtual/perl-Sys-Syslog ) + virtual/inetd" + +pkg_setup() { + enewgroup smtpd + local additional_groups + if use postfix; then + additional_groups="${additional_groups},postdrop" + fi + enewuser smtpd -1 -1 /var/spool/qpsmtpd smtpd${additional_groups} +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-0.40-badhelo_disconnect.patch + epatch "${FILESDIR}"/${PN}-0.40-badrcptto_allowrelay.patch + epatch "${FILESDIR}"/${PN}-0.40-clamd_conf.patch +} + +src_compile() { + perl Makefile.PL PREFIX=/usr || die "Running Makefile.PL failed" + emake || die "make failed" +} + +src_install() { + emake install DESTDIR="${D}" || die "emake install failed" + + insinto /etc/xinetd.d + newins "${FILESDIR}"/qpsmtpd.xinetd qpsmtpd + + dodir /usr/share/qpsmtpd + cp -Rf plugins "${D}"/usr/share/qpsmtpd/ + + diropts -m 0755 -o smtpd -g smtpd + dodir /var/spool/qpsmtpd + keepdir /var/spool/qpsmtpd + + dodir /etc/qpsmtpd + insinto /etc/qpsmtpd + doins config.sample/* + + echo "/usr/share/qpsmtpd/plugins" > "${D}"/etc/qpsmtpd/plugin_dirs + echo "/var/spool/qpsmtpd" > "${D}"/etc/qpsmtpd/spool_dir + if use syslog; then + echo "logging/syslog loglevel LOGINFO priority LOG_NOTICE" > "${D}"/etc/qpsmtpd/logging + else + diropts -m 0755 -o smtpd -g smtpd + dodir /var/log/qpsmtpd + keepdir /var/log/qpsmtpd + echo "logging/file loglevel LOGINFO /var/log/qpsmtpd/%Y-%m-%d" > "${D}"/etc/qpsmtpd/logging + fi + + newenvd "${FILESDIR}"/qpsmtpd.envd 99qpsmtpd + + newconfd "${FILESDIR}"/qpsmtpd.confd qpsmtpd || die "Installing conf.d file" + newinitd "${FILESDIR}"/qpsmtpd.initd qpsmtpd || die "Installing init.d file" + + dodoc CREDITS Changes README README.plugins STATUS +} |