diff --git a/mail-filter/amavisd-new/Manifest b/mail-filter/amavisd-new/Manifest new file mode 100644 index 0000000..a4370b0 --- /dev/null +++ b/mail-filter/amavisd-new/Manifest @@ -0,0 +1 @@ +DIST amavisd-new-2.8.2-rc1.tar.xz 739016 SHA256 08abdfeab90481d1a61b005d989b46b14567a6c9b612fdc725b5425574ddbf6e SHA512 ca381e9cbdf4bead864ab22df585681c6f737c3412664cf2eb59326907d767bccee6846baae5f177dff57c30548347af637ea63197166c753b927fb57a7b24dc WHIRLPOOL da32731370dac54e122fc77ff2e10b3b247eab348e5ec9dfc9794d60b5d46c144ab8dd05dd33f81f29eafa9aa6666e12da6b3ba9737b70eeaf0b589117150adc diff --git a/mail-filter/amavisd-new/amavisd-new-2.8.2_rc1.ebuild b/mail-filter/amavisd-new/amavisd-new-2.8.2_rc1.ebuild new file mode 100644 index 0000000..dbd362e --- /dev/null +++ b/mail-filter/amavisd-new/amavisd-new-2.8.2_rc1.ebuild @@ -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}" +} diff --git a/mail-filter/amavisd-new/files/amavis-mc.initd b/mail-filter/amavisd-new/files/amavis-mc.initd new file mode 100644 index 0000000..f859dba --- /dev/null +++ b/mail-filter/amavisd-new/files/amavis-mc.initd @@ -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 $? +} diff --git a/mail-filter/amavisd-new/files/amavisd.initd-r1 b/mail-filter/amavisd-new/files/amavisd.initd-r1 new file mode 100644 index 0000000..c456ff4 --- /dev/null +++ b/mail-filter/amavisd-new/files/amavisd.initd-r1 @@ -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 $? +} diff --git a/mail-filter/spamassassin/Manifest b/mail-filter/spamassassin/Manifest new file mode 100644 index 0000000..2ff2301 --- /dev/null +++ b/mail-filter/spamassassin/Manifest @@ -0,0 +1 @@ +DIST Mail-SpamAssassin-3.4.0.tar.bz2 1065544 SHA256 553b39bae969b4ba20854c0a0fa1eba2a6aa0f4e103b530e0da4e152cdce4714 SHA512 4a04604a0331a9c23cd10d4fb58e5ca5d3e592bbeffacf0f89b379e5b46118f8b1500d671606a2407115f90fb633a713c8ed557f0db155f4645e263175b0946c WHIRLPOOL 401d61a0ab8bd906b14effb0125aeb3b1a87cdd115484b0787410a03208208e6dfb3c7a440c82ff2334c093555ac7e4eae8b9fc735de5e503f1396a172cec927 diff --git a/mail-filter/spamassassin/files/3.0.0-spamd.conf b/mail-filter/spamassassin/files/3.0.0-spamd.conf new file mode 100644 index 0000000..b3cd1ac --- /dev/null +++ b/mail-filter/spamassassin/files/3.0.0-spamd.conf @@ -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 diff --git a/mail-filter/spamassassin/files/3.3.1-spamd.init b/mail-filter/spamassassin/files/3.3.1-spamd.init new file mode 100644 index 0000000..98ac8ae --- /dev/null +++ b/mail-filter/spamassassin/files/3.3.1-spamd.init @@ -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 $? +} diff --git a/mail-filter/spamassassin/files/secrets.cf b/mail-filter/spamassassin/files/secrets.cf new file mode 100644 index 0000000..efa31a6 --- /dev/null +++ b/mail-filter/spamassassin/files/secrets.cf @@ -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 diff --git a/mail-filter/spamassassin/files/spamassassin.service-r1 b/mail-filter/spamassassin/files/spamassassin.service-r1 new file mode 100644 index 0000000..3d14581 --- /dev/null +++ b/mail-filter/spamassassin/files/spamassassin.service-r1 @@ -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 diff --git a/mail-filter/spamassassin/files/spamassassin.service.conf b/mail-filter/spamassassin/files/spamassassin.service.conf new file mode 100644 index 0000000..9fc1f62 --- /dev/null +++ b/mail-filter/spamassassin/files/spamassassin.service.conf @@ -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" diff --git a/mail-filter/spamassassin/spamassassin-3.4.0.ebuild b/mail-filter/spamassassin/spamassassin-3.4.0.ebuild new file mode 100644 index 0000000..fb08df9 --- /dev/null +++ b/mail-filter/spamassassin/spamassassin-3.4.0.ebuild @@ -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 + # + 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" +}