aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcsmk <csmk@cmsrv.org>2015-12-27 15:55:27 +0900
committercsmk <csmk@cmsrv.org>2015-12-27 15:55:27 +0900
commit4da252d5c7df41b3b134f1e5b28a1ea0040620e8 (patch)
tree86b573a59017109c3bd1168df1483e5d5857ddfd /mail-filter
parentUpdate Portage tarball for Travis CI (diff)
downloadlibressl-4da252d5c7df41b3b134f1e5b28a1ea0040620e8.tar.gz
libressl-4da252d5c7df41b3b134f1e5b28a1ea0040620e8.tar.bz2
libressl-4da252d5c7df41b3b134f1e5b28a1ea0040620e8.zip
Add mail-filter/spamassassin for LibreSSL >= 2.3.0
Diffstat (limited to 'mail-filter')
-rw-r--r--mail-filter/spamassassin/Manifest1
-rw-r--r--mail-filter/spamassassin/files/3.0.0-spamd.conf46
-rw-r--r--mail-filter/spamassassin/files/3.3.1-spamd.init46
-rw-r--r--mail-filter/spamassassin/files/secrets.cf14
-rw-r--r--mail-filter/spamassassin/files/spamassassin-3.4.1-no-ssl3.patch20
-rw-r--r--mail-filter/spamassassin/files/spamassassin.service14
-rw-r--r--mail-filter/spamassassin/files/spamassassin.service-r115
-rw-r--r--mail-filter/spamassassin/files/spamassassin.service.conf10
-rw-r--r--mail-filter/spamassassin/metadata.xml14
-rw-r--r--mail-filter/spamassassin/spamassassin-3.4.1-r2.ebuild225
10 files changed, 405 insertions, 0 deletions
diff --git a/mail-filter/spamassassin/Manifest b/mail-filter/spamassassin/Manifest
new file mode 100644
index 0000000..24589b7
--- /dev/null
+++ b/mail-filter/spamassassin/Manifest
@@ -0,0 +1 @@
+DIST Mail-SpamAssassin-3.4.1.tar.bz2 2710985 SHA256 a0c1c9808f0684b389594eb8b2ccbace6486546593493f9308c9554563d14651 SHA512 91d50e2ce6520e3e1c7bc66da133a0815be34ced15e26b6e6c17af5a03d5c62f41d8086f25f65084d6634497148cf5439977d7d4a44d7c3e307535beac6629af WHIRLPOOL 1465fcbc0456c9a671087d395c2a9998e3852a47153a0f6770158a2a311196490274c620aab89e2a6ff163defa72b8e785032f9450e7903df355544d957e8908
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..ac78e22
--- /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
+# $Id$
+
+# 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-3.4.1-no-ssl3.patch b/mail-filter/spamassassin/files/spamassassin-3.4.1-no-ssl3.patch
new file mode 100644
index 0000000..40b7367
--- /dev/null
+++ b/mail-filter/spamassassin/files/spamassassin-3.4.1-no-ssl3.patch
@@ -0,0 +1,20 @@
+--- spamc/libspamc.c.orig 2015-04-29 04:56:59.000000000 +0000
++++ spamc/libspamc.c 2015-12-26 20:08:43.478248146 +0000
+@@ -1216,7 +1216,7 @@
+ if (flags & SPAMC_TLSV1) {
+ meth = TLSv1_client_method();
+ } else {
+- meth = SSLv3_client_method(); /* default */
++ meth = SSLv23_client_method(); /* default */
+ }
+ SSL_load_error_strings();
+ ctx = SSL_CTX_new(meth);
+@@ -1604,7 +1604,7 @@
+ if (flags & SPAMC_USE_SSL) {
+ #ifdef SPAMC_SSL
+ SSLeay_add_ssl_algorithms();
+- meth = SSLv3_client_method();
++ meth = SSLv23_client_method();
+ SSL_load_error_strings();
+ ctx = SSL_CTX_new(meth);
+ #else
diff --git a/mail-filter/spamassassin/files/spamassassin.service b/mail-filter/spamassassin/files/spamassassin.service
new file mode 100644
index 0000000..5c9e9ed
--- /dev/null
+++ b/mail-filter/spamassassin/files/spamassassin.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Spamassassin daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/spamd.pid
+ExecStart=/usr/sbin/spamd -d --pidfile /var/run/spamd.pid -m 5 -c -H
+StandardOutput=syslog
+StandardError=syslog
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
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/metadata.xml b/mail-filter/spamassassin/metadata.xml
new file mode 100644
index 0000000..822c9ad
--- /dev/null
+++ b/mail-filter/spamassassin/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+<use>
+ <flag name='qmail'>Build qmail functionality and docs</flag>
+ <flag name='bayes'>
+ Require a database (MySQL, SQLite, Postgres, or BerkDB) backend to
+ enable the Bayesian filtering database.
+ </flag>
+</use>
+</pkgmetadata>
diff --git a/mail-filter/spamassassin/spamassassin-3.4.1-r2.ebuild b/mail-filter/spamassassin/spamassassin-3.4.1-r2.ebuild
new file mode 100644
index 0000000..51e8d20
--- /dev/null
+++ b/mail-filter/spamassassin/spamassassin-3.4.1-r2.ebuild
@@ -0,0 +1,225 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit perl-module toolchain-funcs eutils systemd readme.gentoo
+
+MY_P=Mail-SpamAssassin-${PV//_/-}
+S=${WORKDIR}/${MY_P}
+DESCRIPTION="An extensible mail filter which can identify and tag spam"
+HOMEPAGE="http://spamassassin.apache.org/"
+SRC_URI="mirror://apache/spamassassin/source/${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="+bayes berkdb libressl qmail ssl doc ldap mysql postgres sqlite ipv6"
+
+# You can do without a database unless you need the Bayes features.
+REQUIRED_USE="bayes? ( || ( berkdb mysql postgres sqlite ) )"
+
+DEPEND=">=dev-lang/perl-5.8.8-r8
+ virtual/perl-MIME-Base64
+ >=virtual/perl-Pod-Parser-1.510.0-r2
+ 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.23
+ app-crypt/gnupg
+ >=virtual/perl-IO-Zlib-1.04
+ >=dev-util/re2c-0.12.0
+ dev-perl/Mail-SPF
+ >=dev-perl/NetAddr-IP-4.0.1
+ dev-perl/Geo-IP
+ dev-perl/Encode-Detect
+ dev-perl/Net-Patricia
+ ssl? (
+ dev-perl/IO-Socket-SSL
+ !libressl? ( dev-libs/openssl:0 )
+ libressl? ( dev-libs/libressl )
+ )
+ 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
+ virtual/perl-IO-Socket-IP )
+ )"
+RDEPEND="${DEPEND}"
+
+SRC_TEST="do"
+
+src_prepare() {
+ # Fix for LibreSSL >= 2.3.0
+ epatch "${FILESDIR}/${P}-no-ssl3.patch"
+
+ # Merged upstream
+ #epatch "${FILESDIR}/net-dns-0.76_compatibility.patch"
+ perl-module_src_prepare
+}
+
+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"
+ myconf+=" 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
+ # <https://bugs.gentoo.org/show_bug.cgi?id=62276>
+ myconf+=" PERL_BIN=${EPREFIX}/usr/bin/perl"
+
+ # 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 "failed to disable plugins by default"
+
+ # 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" || die
+
+ dodoc sql/*_pg.sql
+ else
+ sed -i -e '/@USEPOSTGRES@/d' "${ED}/etc/init.d/spamd" || die
+ fi
+
+ if use mysql; then
+ sed -i -e 's:@USEMYSQL@::' "${ED}/etc/init.d/spamd" || die
+
+ dodoc sql/*_mysql.sql
+ else
+ sed -i -e '/@USEMYSQL@/d' "${ED}/etc/init.d/spamd" || die
+ 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
+
+ insinto /etc/mail/spamassassin/
+ insopts -m0400
+ newins "${FILESDIR}"/secrets.cf 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
+
+ insopts -m0644
+ doins "${T}/local.cf.example"
+}
+
+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."
+ elog
+ elog "If you build ${PN} with optional dependancy support,"
+ elog "you can enable them in /etc/mail/spamassassin/init.pre"
+ elog
+ 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."
+ elog
+ 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."
+ elog
+ 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:"
+ elog
+ 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."
+ elog
+ 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."
+ elog
+ elog "If 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"
+ elog
+}