[mail-filter] bump amavis and spamassassin to new versions

This commit is contained in:
Robert Förster 2014-02-10 17:01:22 +01:00
parent e40c772624
commit ef69245ab5
11 changed files with 595 additions and 0 deletions

View File

@ -0,0 +1 @@
DIST amavisd-new-2.8.2-rc1.tar.xz 739016 SHA256 08abdfeab90481d1a61b005d989b46b14567a6c9b612fdc725b5425574ddbf6e SHA512 ca381e9cbdf4bead864ab22df585681c6f737c3412664cf2eb59326907d767bccee6846baae5f177dff57c30548347af637ea63197166c753b927fb57a7b24dc WHIRLPOOL da32731370dac54e122fc77ff2e10b3b247eab348e5ec9dfc9794d60b5d46c144ab8dd05dd33f81f29eafa9aa6666e12da6b3ba9737b70eeaf0b589117150adc

View File

@ -0,0 +1,185 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
inherit eutils user
MY_P="${P/_/-}"
DESCRIPTION="High-performance interface between the MTA and content checkers."
HOMEPAGE="http://www.ijs.si/software/amavisd/"
SRC_URI="http://www.ijs.si/software/amavisd/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
IUSE="courier dkim ldap mysql postgres qmail razor snmp spamassassin zmq"
DEPEND=">=sys-apps/sed-4
>=dev-lang/perl-5.8.2"
RDEPEND="${DEPEND}
>=sys-apps/coreutils-5.0-r3
app-arch/cpio
app-arch/gzip
app-arch/bzip2
app-arch/arc
app-arch/cabextract
app-arch/freeze
app-arch/lha
app-arch/lrzip
app-arch/lzop
app-arch/ncompress
app-arch/p7zip
app-arch/pax
app-arch/unarj
app-arch/unrar
app-arch/xz-utils
app-arch/zoo
net-mail/ripole
>=dev-perl/Archive-Zip-1.14
>=virtual/perl-IO-Compress-1.35
>=virtual/perl-Compress-Raw-Zlib-2.017
dev-perl/Convert-TNEF
>=dev-perl/Convert-UUlib-1.08
virtual/perl-MIME-Base64
>=dev-perl/MIME-tools-5.415
>=dev-perl/MailTools-1.58
>=dev-perl/net-server-0.91
virtual/perl-Digest-MD5
dev-perl/IO-stringy
dev-perl/IO-Socket-IP
>=virtual/perl-Time-HiRes-1.49
dev-perl/Unix-Syslog
sys-apps/file
>=sys-libs/db-4.4.20
dev-perl/BerkeleyDB
dev-perl/Convert-BinHex
>=dev-perl/Mail-DKIM-0.31
virtual/mta
ldap? ( >=dev-perl/perl-ldap-0.33 )
mysql? ( dev-perl/DBD-mysql )
postgres? ( dev-perl/DBD-Pg )
razor? ( mail-filter/razor )
snmp? ( net-analyzer/net-snmp[perl] )
spamassassin? ( mail-filter/spamassassin )
zmq? ( dev-perl/ZMQ-LibZMQ2 )"
AMAVIS_ROOT="/var/amavis"
S="${WORKDIR}/${MY_P}"
src_prepare() {
if use courier ; then
epatch amavisd-new-courier.patch
fi
if use qmail ; then
epatch amavisd-new-qmqpqq.patch
fi
sed -i \
-e '/daemon/s/vscan/amavis/' \
-e "s:'/var/virusmails':\"\$MYHOME/quarantine\":" \
"${S}/amavisd.conf" "${S}/amavis-mc" || die
if ! use dkim ; then
sed -i -e '/enable_dkim/s/1/0/' "${S}/amavisd.conf" \
|| die "missing conf file"
fi
if use zmq ; then
sed -i -e '/enable_zmq/s/# //' "${S}/amavisd.conf"
fi
}
src_install() {
dosbin amavisd amavisd-agent amavisd-nanny amavisd-release \
amavisd-signer amavisd-status
dobin p0f-analyzer.pl amavisd-submit
if use snmp ; then
dosbin amavisd-snmp-subagent
use zmq && dosbin amavisd-snmp-subagent-zmq
dodoc AMAVIS-MIB.txt
fi
if use zmq ; then
dosbin amavis-services amavis-mc
newinitd "${FILESDIR}"/amavis-mc.initd amavis-mc
fi
insinto /etc
insopts -m0640
doins amavisd.conf
newinitd "${FILESDIR}/amavisd.initd-r1" amavisd
keepdir "${AMAVIS_ROOT}"
keepdir "${AMAVIS_ROOT}/db"
keepdir "${AMAVIS_ROOT}/quarantine"
keepdir "${AMAVIS_ROOT}/tmp"
keepdir "${AMAVIS_ROOT}/var"
dodoc AAAREADME.first INSTALL MANIFEST RELEASE_NOTES TODO \
amavisd.conf-default amavisd-custom.conf
docinto README_FILES
dodoc README_FILES/README*
dohtml README_FILES/*.{html,css}
docinto README_FILES/images
dodoc README_FILES/images/*.png
docinto README_FILES/images/callouts
dodoc README_FILES/images/callouts/*.png
docinto test-messages
dodoc test-messages/README
dodoc test-messages/sample.tar.gz.compl
#for i in whitelist blacklist spam_lovers; do
# if [ -f ${AMAVIS_ROOT}/${i} ]; then
# cp "${AMAVIS_ROOT}/${i}" "${D}/${AMAVIS_ROOT}"
# else
# touch "${D}"/${AMAVIS_ROOT}/${i}
# fi
#done
if use ldap ; then
dodir /etc/openldap/schema
insinto /etc/openldap/schema
insopts -o root -g root -m 644
newins LDAP.schema ${PN}.schema || die
fi
}
pkg_preinst() {
enewgroup amavis
enewuser amavis -1 -1 "${AMAVIS_ROOT}" amavis
if use razor ; then
if [ ! -d "${ROOT}${AMAVIS_ROOT}/.razor" ] ; then
elog "Setting up initial razor config files..."
razor-admin -create -home="${D}/${AMAVIS_ROOT}/.razor"
sed -i -e "s:debuglevel\([ ]*\)= .:debuglevel\1= 0:g" \
"${D}/${AMAVIS_ROOT}/.razor/razor-agent.conf"
fi
fi
if ! use spamassassin ; then
elog "Disabling anti-spam code in amavisd.conf..."
sed -i -e \
"/^#[[:space:]]*@bypass_spam_checks_maps[[:space:]]*=[[:space:]]*(1)/s/^#//" \
"${D}/etc/amavisd.conf"
fi
if has_version "<${CATEGORY}/${PN}-2.7.0" ; then
elog "Amavisd-new ships with a short and condensed config file now."
elog "Transferring your current settings to the new format is"
elog "recommended for ease of future upgrades."
fi
}
pkg_postinst() {
chown root:amavis "${ROOT}/etc/amavisd.conf"
chown -R amavis:amavis "${ROOT}/${AMAVIS_ROOT}"
}

View File

@ -0,0 +1,24 @@
#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/mail-filter/amavisd-new/files/amavis-mc.initd,v 1.1 2012/11/07 12:55:15 eras Exp $
prog="/usr/sbin/amavis-mc"
progname="amavis-mc"
depend() {
use logger
before amavisd-new snmpd
}
start() {
ebegin "Starting ${progname}"
start-stop-daemon --start --exec ${prog}
eend $?
}
stop() {
ebegin "Stopping ${progname}"
start-stop-daemon --stop --interpreted --exec ${prog}
eend $?
}

View File

@ -0,0 +1,45 @@
#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/mail-filter/amavisd-new/files/amavisd.initd-r1,v 1.1 2012/11/07 12:55:15 eras Exp $
extra_started_commands="reload"
extra_commands="debug debug_sa"
prog="/usr/sbin/amavisd"
progname="amavisd-new"
depend() {
use net logger antivirus snmpd
before mta
}
start() {
ebegin "Starting ${progname}"
"${prog}" start
eend $?
}
stop() {
ebegin "Stopping ${progname}"
"${prog}" stop 1>/dev/null
eend $?
}
reload() {
ebegin "Reloading ${progname}"
"${prog}" reload 1>/dev/null
eend $?
}
debug() {
ebegin "Starting ${progname} in debug mode"
"${prog}" debug
eend $?
}
debug_sa() {
ebegin "Starting ${progname} in debug-sa mode"
"${prog}" debug-sa
eend $?
}

View File

@ -0,0 +1 @@
DIST Mail-SpamAssassin-3.4.0.tar.bz2 1065544 SHA256 553b39bae969b4ba20854c0a0fa1eba2a6aa0f4e103b530e0da4e152cdce4714 SHA512 4a04604a0331a9c23cd10d4fb58e5ca5d3e592bbeffacf0f89b379e5b46118f8b1500d671606a2407115f90fb633a713c8ed557f0db155f4645e263175b0946c WHIRLPOOL 401d61a0ab8bd906b14effb0125aeb3b1a87cdd115484b0787410a03208208e6dfb3c7a440c82ff2334c093555ac7e4eae8b9fc735de5e503f1396a172cec927

View File

@ -0,0 +1,46 @@
# Config file for /etc/init.d/spamd
# ***WARNING***
# spamd was not designed to listed to an untrusted network. spamd
# is vulnerable to DoS attacks (and eternal doom) if used to listen
# to an untrusted network.
#
# Some options:
#
# -c to create a per user configuration file
# -H [dir] to switch home dirs for helper apps, dir optional
# -i [ip] to listen on the specified IP,
# 127.0.0.1 if omitted,
# 0.0.0.0 (ie. all) if given without value;
# must be used in combination with -A to actually allow
# connections from anybody but localhost
# -m limit to set the number of children, default 5
# -u user the user to run spamd as
# -L if you want to run no net tests
#
# for more help look in man spamd
#
# Note: if you plan on using the -u flag to spamd you will need to
# make sure the location of the PID file is writable by that user.
# This can be done by making the directory /var/run/spamd and
# changing the owner to the UID that runs spamd. You will then
# need to edit $pidfile in /etc/init.d/spamd. This should fix the
# problem with stop/restart in the init scripts.
#
# See http://bugs.gentoo.org/show_bug.cgi?id=70124 for a full
# explanation.
SPAMD_OPTS="-m 5 -c -H"
# spamd stores its pid in this file. If you use the -u option to
# run spamd under another user, you might need to adjust it.
PIDFILE="/run/spamd.pid"
# SPAMD_NICELEVEL lets you set the 'nice'ness of the running
# spamd process
# SPAMD_NICELEVEL=5

View File

@ -0,0 +1,46 @@
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/files/3.3.1-spamd.init,v 1.6 2013/10/17 11:44:12 zlogene Exp $
# NB: Config is in /etc/conf.d/spamd
# Provide a default location if they haven't in /etc/conf.d/spamd
PIDFILE=${PIDFILE:-/run/spamd.pid}
extra_started_commands="reload"
depend() {
need net
before mta
use logger
@USEPOSTGRES@ use postgresql
@USEMYSQL@ use mysql
}
start() {
ebegin "Starting spamd"
start-stop-daemon --start --quiet \
--name spamd \
--nicelevel ${SPAMD_NICELEVEL:-0} \
--pidfile ${PIDFILE} \
--exec /usr/sbin/spamd -- -d -r ${PIDFILE} \
${SPAMD_OPTS}
retval=$?
if ! [ -f "${PIDFILE}" ]; then
sleep 1
fi
eend ${retval} "Failed to start spamd"
}
stop() {
ebegin "Stopping spamd"
start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
eend $? "Failed to stop spamd"
}
reload() {
ebegin "Reloading configuration"
start-stop-daemon --signal HUP --quiet --pidfile ${PIDFILE}
eend $?
}

View File

@ -0,0 +1,14 @@
# The below sample from bug 91430 is an example of using mysql
# for spam filter storage
#(Tell Spamassissin to use MySQL for bayes data
#bayes_store_module Mail::SpamAssassin::BayesStore::SQL
#bayes_sql_dsn DBI:mysql:sa_bayes:localhost:3306
#bayes_sql_username db_name
#bayes_sql_password another_very_secret_password
#(Tell Spamassissin to use MySQL for AWL data
#auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
#user_awl_dsn DBI:mysql:sa_bayes:localhost:3306
#user_awl_sql_username db_name
#user_awl_sql_password another_very_secret_password

View File

@ -0,0 +1,15 @@
[Unit]
Description=Spamassassin daemon
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/run/spamd.pid
ExecStart=/usr/sbin/spamd -d --pidfile /run/spamd.pid -m 5 $SPAMD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=syslog
StandardError=syslog
Restart=always
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,10 @@
# Here you can append some options to spamd process, please
# double check that you make needed changes in service file if
# you use options requiring it
# Some options:
#
# -c to create a per user configuration file
# -H [dir] to switch home dirs for helper apps, dir optional
[Service]
Environment="SPAMD_OPTS= -c -H"

View File

@ -0,0 +1,208 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
inherit perl-module toolchain-funcs eutils systemd
MY_P=Mail-SpamAssassin-${PV//_/-}
S=${WORKDIR}/${MY_P}
DESCRIPTION="SpamAssassin is an extensible email filter which is used to identify spam"
HOMEPAGE="http://spamassassin.apache.org/"
#SRC_URI="mirror://apache/spamassassin/source/${MY_P}.tar.bz2"
SRC_URI="http://people.apache.org/~kmcgrail/devel/${MY_P}.tar.bz2"
LICENSE="Apache-2.0 GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos"
IUSE="berkdb qmail ssl doc ldap mysql postgres sqlite ipv6"
DEPEND=">=dev-lang/perl-5.8.8-r8
virtual/perl-MIME-Base64
>=virtual/perl-PodParser-1.32
virtual/perl-Storable
virtual/perl-Time-HiRes
>=dev-perl/HTML-Parser-3.43
>=dev-perl/Mail-DKIM-0.37
>=dev-perl/Net-DNS-0.53
dev-perl/Digest-SHA1
dev-perl/libwww-perl
>=virtual/perl-Archive-Tar-1.26
app-crypt/gnupg
>=virtual/perl-IO-Zlib-1.04
>=dev-util/re2c-0.12.0
dev-perl/Mail-SPF
dev-perl/NetAddr-IP
ssl? (
dev-perl/IO-Socket-SSL
dev-libs/openssl
)
berkdb? (
virtual/perl-DB_File
)
ldap? ( dev-perl/perl-ldap )
mysql? (
dev-perl/DBI
dev-perl/DBD-mysql
)
postgres? (
dev-perl/DBI
dev-perl/DBD-Pg
)
sqlite? (
dev-perl/DBI
dev-perl/DBD-SQLite
)
ipv6? (
dev-perl/IO-Socket-INET6
)"
RDEPEND="${DEPEND}"
SRC_TEST="do"
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).
myconf="SYSCONFDIR=${EPREFIX}/etc DATADIR=${EPREFIX}/usr/share/spamassassin"
# If ssl is enabled, spamc can be built with ssl support
if use ssl; then
myconf+=" ENABLE_SSL=yes"
else
myconf+=" ENABLE_SSL=no"
fi
# Set the path to the Perl executable explictly. This will be used to
# create the initial sharpbang line in the scripts and might cause
# a versioned app name end in there, see
# <http://bugs.gentoo.org/show_bug.cgi?id=62276>
myconf+=" PERL_BIN=${EPREFIX}/usr/bin/perl"
# Add Gentoo tag to make it easy for the upstream devs to spot
# possible modifications or patches.
#version_tag="g${PV:6}${PR}"
#version_str="${PV//_/-}-${version_tag}"
# Create the Gentoo config file before Makefile.PL is called so it
# is copied later on.
#echo "version_tag ${version_tag}" > rules/11_gentoo.cf
# Setting the following env var ensures that no questions are asked.
perl-module_src_configure
# Configure spamc
emake CC="$(tc-getCC)" LDFLAGS="${LDFLAGS}" spamc/Makefile
}
src_compile() {
export PERL_MM_USE_DEFAULT=1
# Now compile all the stuff selected.
perl-module_src_compile
if use qmail; then
emake spamc/qmail-spamc
fi
}
src_install () {
perl-module_src_install
# Create the stub dir used by sa-update and friends
keepdir /var/lib/spamassassin
# Move spamd to sbin where it belongs.
dodir /usr/sbin
mv "${ED}"/usr/bin/spamd "${ED}"/usr/sbin/spamd || die "move spamd failed"
if use qmail; then
dobin spamc/qmail-spamc
fi
ln -s mail/spamassassin "${ED}"/etc/spamassassin || die
# Disable plugin by default
sed -i -e 's/^loadplugin/\#loadplugin/g' "${ED}"/etc/mail/spamassassin/init.pre || die
# Add the init and config scripts.
newinitd "${FILESDIR}"/3.3.1-spamd.init spamd
newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd
systemd_newunit "${FILESDIR}"/${PN}.service-r1 ${PN}.service
systemd_install_serviced "${FILESDIR}"/${PN}.service.conf
if use postgres; then
sed -i -e 's:@USEPOSTGRES@::' "${ED}/etc/init.d/spamd"
dodoc sql/*_pg.sql
else
sed -i -e '/@USEPOSTGRES@/d' "${ED}/etc/init.d/spamd"
fi
if use mysql; then
sed -i -e 's:@USEMYSQL@::' "${ED}/etc/init.d/spamd"
dodoc sql/*_mysql.sql
else
sed -i -e '/@USEMYSQL@/d' "${ED}/etc/init.d/spamd"
fi
dodoc NOTICE TRADEMARK CREDITS INSTALL.VMS UPGRADE USAGE \
sql/README.bayes sql/README.awl procmailrc.example sample-nonspam.txt \
sample-spam.txt spamd/PROTOCOL spamd/README.vpopmail \
spamd-apache2/README.apache
# Rename some docu files so they don't clash with others
newdoc spamd/README README.spamd
newdoc sql/README README.sql
newdoc ldap/README README.ldap
if use qmail; then
dodoc spamc/README.qmail
fi
cp "${FILESDIR}"/secrets.cf "${ED}"/etc/mail/spamassassin/secrets.cf.example || die
fperms 0400 /etc/mail/spamassassin/secrets.cf.example
cat <<-EOF > "${T}/local.cf.example"
# Sensitive data, such as database connection info, should be stored in
# /etc/mail/spamassassin/secrets.cf with appropriate permissions
EOF
insinto /etc/mail/spamassassin/
doins "${T}/local.cf.example"
}
pkg_postinst() {
perl-module_pkg_postinst
elog "If you plan on using the -u flag to spamd, please read the notes"
elog "in /etc/conf.d/spamd regarding the location of the pid file.\n"
elog "If you build ${PN} with optional dependancy support,"
elog "you can enable them in /etc/mail/spamassassin/init.pre\n"
elog "You need to configure your database to be able to use Bayes filter"
elog "with database backend, otherwise it will still use (and need) the"
elog "Berkeley DB support."
elog "Look at the sql/README.bayes file in the documentation directory"
elog "for how to configure it.\n"
elog "If you plan to use Vipul's Razor, note that versions up to and"
elog "including version 2.82 include a bug that will slow down the entire"
elog "perl interpreter. Version 2.83 or later fixes this."
elog "If you do not plan to use this plugin, be sure to comment out"
elog "its loadplugin line in /etc/mail/spamassassin/v310.pre.\n"
elog "The DKIM plugin is now enabled by default for new installs,"
elog "if the perl module Mail::DKIM is installed."
elog "However, installation of SpamAssassin will not overwrite existing"
elog ".pre configuration files, so to use DKIM when upgrading from a"
elog "previous release that did not use DKIM, a directive:\n"
elog "loadplugin Mail::SpamAssassin::Plugin::DKIM"
elog "will need to be uncommented in file 'v312.pre', or added"
elog "to some other .pre file, such as local.pre.\n"
ewarn "Rules are no longer included with SpamAssassin out of the box".
ewarn "You will need to immediately run sa-update, or download"
ewarn "the additional rules .tgz package and run sa-update --install"
ewarn "with it, to get a ruleset.\n"
elog "If when you run sa-update and receive a GPG validation error."
elog "Then you need to import an updated sa-update key."
elog "sa-update --import /usr/share/spamassassin/sa-update-pubkey.txt\n"
}