summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-filter')
-rw-r--r--mail-filter/spamassassin/spamassassin-3.4.1-r8.ebuild (renamed from mail-filter/spamassassin/spamassassin-3.4.1-r7.ebuild)87
1 files changed, 56 insertions, 31 deletions
diff --git a/mail-filter/spamassassin/spamassassin-3.4.1-r7.ebuild b/mail-filter/spamassassin/spamassassin-3.4.1-r8.ebuild
index 00838ba58fcd..78eb6b5d3e72 100644
--- a/mail-filter/spamassassin/spamassassin-3.4.1-r7.ebuild
+++ b/mail-filter/spamassassin/spamassassin-3.4.1-r8.ebuild
@@ -4,7 +4,7 @@
EAPI=6
-inherit toolchain-funcs systemd
+inherit perl-functions systemd toolchain-funcs
MY_P="Mail-SpamAssassin-${PV//_/-}"
S="${WORKDIR}/${MY_P}"
@@ -20,31 +20,43 @@ IUSE="+bayes berkdb cron ipv6 ldap libressl mysql postgres qmail sqlite ssl test
# You can do without a database unless you need the Bayes features.
REQUIRED_USE="bayes? ( || ( berkdb mysql postgres sqlite ) )"
+# The Makefile.PL script checks for dependencies, but only fails if a
+# required (i.e. not optional) dependency is missing. We therefore
+# require most of the optional modules only at runtime.
+REQDEPEND="dev-lang/perl
+ dev-perl/HTML-Parser
+ dev-perl/Net-DNS
+ dev-perl/NetAddr-IP
+ virtual/perl-Archive-Tar
+ virtual/perl-Digest-SHA
+ virtual/perl-IO-Zlib
+ virtual/perl-Time-HiRes
+ ssl? (
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl )
+ )"
+
# SpamAssassin doesn't use libwww-perl except as a fallback for when
# curl/wget are missing, so we depend on one of those instead. Some
# mirrors use https, so we need those utilities to support SSL.
#
# re2c is needed to compile the rules (sa-compile).
#
-DEPEND="app-crypt/gnupg
- dev-lang/perl
+# We still need the old Digest-SHA1 because razor2 has not been ported
+# to Digest-SHA.
+OPTDEPEND="app-crypt/gnupg
dev-perl/Digest-SHA1
dev-perl/Encode-Detect
dev-perl/Geo-IP
- dev-perl/HTML-Parser
dev-perl/HTTP-Date
dev-perl/Mail-DKIM
dev-perl/Mail-SPF
- dev-perl/Net-DNS
dev-perl/Net-Patricia
- dev-perl/NetAddr-IP
+ dev-perl/Net-CIDR-Lite
dev-util/re2c
|| ( net-misc/wget[ssl] net-misc/curl[ssl] )
- virtual/perl-Archive-Tar
- virtual/perl-IO-Zlib
virtual/perl-MIME-Base64
virtual/perl-Pod-Parser
- virtual/perl-Time-HiRes
berkdb? ( virtual/perl-DB_File )
ipv6? ( dev-perl/IO-Socket-INET6 )
ldap? ( dev-perl/perl-ldap )
@@ -60,18 +72,14 @@ DEPEND="app-crypt/gnupg
dev-perl/DBI
dev-perl/DBD-SQLite
)
- ssl? (
- dev-perl/IO-Socket-SSL
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- )"
-
-RDEPEND="${DEPEND}
- dev-perl/Net-CIDR-Lite"
+ ssl? ( dev-perl/IO-Socket-SSL )"
-# Some spamd tests fail, and it looks like the whole suite eventually
-# hangs.
-RESTRICT=test
+DEPEND="${REQDEPEND}
+ test? (
+ ${OPTDEPEND}
+ virtual/perl-Test-Harness
+ )"
+RDEPEND="${REQDEPEND} ${OPTDEPEND}"
PATCHES=(
"${FILESDIR}/spamassassin-3.4.1-bug_7199.patch"
@@ -80,13 +88,22 @@ PATCHES=(
"${FILESDIR}/spamassassin-3.4.1-bug_7265.patch"
)
-src_configure() {
- # spamc can be built with ssl support.
- local use_ssl="no"
- if use ssl; then
- use_ssl="yes"
- fi
+src_prepare() {
+ default
+
+ # The sa_compile test does some weird stuff like hopping around in
+ # the directory tree and calling "make" to create a dist tarball
+ # from ${S}. It fails, and is more trouble than it's worth...
+ perl_rm_files t/sa_compile.t || die 'failed to remove sa_compile test'
+
+ # The spamc tests (which need the networked spamd daemon) fail for
+ # irrelevant reasons. It's too hard to disable them (unlike the
+ # spamd tests themselves -- see src_test), so use a crude
+ # workaround.
+ perl_rm_files t/spamc_*.t || die 'failed to remove spamc tests'
+}
+src_configure() {
# Set SYSCONFDIR explicitly so we can't get bitten by bug 48205 again
# (just to be sure, nobody knows how it could happen in the first place).
#
@@ -98,9 +115,9 @@ src_configure() {
SYSCONFDIR="${EPREFIX}/etc" \
DATADIR="${EPREFIX}/usr/share/spamassassin" \
PERL_BIN="${EPREFIX}/usr/bin/perl" \
- ENABLE_SSL="${use_ssl}" \
+ ENABLE_SSL="$(usex ssl)" \
DESTDIR="${D}" \
- || die "Unable to build!"
+ || die 'failed to create a Makefile using Makefile.PL'
# Now configure spamc.
emake CC="$(tc-getCC)" LDFLAGS="${LDFLAGS}" spamc/Makefile
@@ -133,12 +150,12 @@ src_install () {
# Disable plugin by default
sed -i -e 's/^loadplugin/\#loadplugin/g' \
- "${ED}"/etc/mail/spamassassin/init.pre \
+ "${ED}/etc/mail/spamassassin/init.pre" \
|| die "failed to disable plugins by default"
# Add the init and config scripts.
- newinitd "${FILESDIR}"/3.4.1-spamd.init spamd
- newconfd "${FILESDIR}"/3.4.1-spamd.conf spamd
+ newinitd "${FILESDIR}/3.4.1-spamd.init" spamd
+ newconfd "${FILESDIR}/3.4.1-spamd.conf" spamd
systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
systemd_install_serviced "${FILESDIR}/${PN}.service.conf"
@@ -197,6 +214,14 @@ src_install () {
fi
}
+src_test() {
+ # Trick the test suite into skipping the spamd tests. Setting
+ # SPAMD_HOST to a non-localhost value causes SKIP_SPAMD_TESTS to be
+ # set in SATest.pm.
+ export SPAMD_HOST=disabled
+ default
+}
+
pkg_postinst() {
elog
elog 'No rules are installed by default. You will need to run sa-update'