summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Năstac <mrness@gentoo.org>2007-11-12 10:09:31 +0000
committerAlin Năstac <mrness@gentoo.org>2007-11-12 10:09:31 +0000
commit31c70a4afc80de26e0e80b6e1c508f82b1e7a320 (patch)
tree113a36c10efde7e8e77716119d77e1165c4d435e /mail-filter
parentRemove old versions (diff)
downloadgentoo-2-31c70a4afc80de26e0e80b6e1c508f82b1e7a320.tar.gz
gentoo-2-31c70a4afc80de26e0e80b6e1c508f82b1e7a320.tar.bz2
gentoo-2-31c70a4afc80de26e0e80b6e1c508f82b1e7a320.zip
Remove obsolete revision.
(Portage version: 2.1.3.16)
Diffstat (limited to 'mail-filter')
-rw-r--r--mail-filter/dspam/ChangeLog6
-rw-r--r--mail-filter/dspam/dspam-3.8.0-r6.ebuild452
-rw-r--r--mail-filter/dspam/files/digest-dspam-3.8.0-r69
-rw-r--r--mail-filter/dspam/files/dspam.cron419
4 files changed, 5 insertions, 881 deletions
diff --git a/mail-filter/dspam/ChangeLog b/mail-filter/dspam/ChangeLog
index 7972e88da909..87a566d3d26f 100644
--- a/mail-filter/dspam/ChangeLog
+++ b/mail-filter/dspam/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for mail-filter/dspam
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.102 2007/11/05 16:57:04 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.103 2007/11/12 10:09:30 mrness Exp $
+
+ 12 Nov 2007; Alin Năstac <mrness@gentoo.org> -files/dspam.cron,
+ -dspam-3.8.0-r6.ebuild:
+ Remove obsolete revision.
05 Nov 2007; Raúl Porcel <armin76@gentoo.org> dspam-3.8.0-r7.ebuild:
sparc stable wrt #196753
diff --git a/mail-filter/dspam/dspam-3.8.0-r6.ebuild b/mail-filter/dspam/dspam-3.8.0-r6.ebuild
deleted file mode 100644
index 14ca5d4348e4..000000000000
--- a/mail-filter/dspam/dspam-3.8.0-r6.ebuild
+++ /dev/null
@@ -1,452 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.8.0-r6.ebuild,v 1.1 2007/09/10 04:06:01 mrness Exp $
-
-WANT_AUTOCONF="latest"
-WANT_AUTOMAKE="latest"
-
-inherit eutils autotools flag-o-matic multilib
-
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-HOMEPAGE="http://dspam.nuclearelephant.com/"
-SRC_URI="http://dspam.nuclearelephant.com/sources/${P}.tar.gz
- mirror://gentoo/${P}-patches-20070909.tar.gz
- http://dspam.nuclearelephant.com/sources/extras/dspam_sa_trainer.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="clamav daemon debug large-domain ldap logrotate mysql postgres \
- sqlite sqlite3 virtual-users user-homedirs"
-
-DEPEND="clamav? ( >=app-antivirus/clamav-0.90.2 )
- ldap? ( >=net-nds/openldap-2.2 )
- mysql? ( virtual/mysql )
- postgres? ( >=dev-db/postgresql-7.4.3 )
- sqlite? ( <dev-db/sqlite-3 )
- sqlite3? ( =dev-db/sqlite-3* )"
-
-RDEPEND="${DEPEND}
- sys-process/cronbase
- virtual/logger
- logrotate? ( app-admin/logrotate )"
-
-KEYWORDS="~alpha ~amd64 ~ppc sparc x86"
-
-# some FHS-like structure
-HOMEDIR="/var/spool/dspam"
-CONFDIR="/etc/mail/dspam"
-LOGDIR="/var/log/dspam"
-DSPAMPERMS=2511
-
-create_dspam_usergroup() {
- local egid euid
- #Need a UID and GID >= 1000, for being able to use suexec in apache
- for euid in $(seq 1000 5000 ) ; do
- [[ -z $(egetent passwd ${euid}) ]] && break
- done
- for egid in $(seq 1000 5000 ) ; do
- [[ -z $(egetent group ${egid}) ]] && break
- done
-
- enewgroup dspam ${egid}
- enewuser dspam ${euid} -1 ${HOMEDIR} dspam,mail
-}
-
-pkg_setup() {
- if use virtual-users && use user-homedirs ; then
- eerror "If the users are virtual, then they probably should not have home directories."
- die "Incompatible USE flag selection"
- fi
-
- create_dspam_usergroup
-}
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
-
- EPATCH_SUFFIX="patch"
- epatch "${WORKDIR}"/patches
-
- # Fix Lazy bindings
- append-flags $(bindnow-flags)
-
- AT_M4DIR="${S}/m4"
- eautoreconf
-}
-
-src_compile() {
- local myconf="--enable-long-usernames --enable-syslog"
-
- use large-domain && myconf="${myconf} --enable-large-scale" || \
- myconf="${myconf} --enable-domain-scale"
-
- use user-homedirs && myconf="${myconf} --enable-homedir"
-
- use debug && myconf="${myconf} --enable-debug --enable-bnr-debug"
-
- if use virtual-users ; then
- if use mysql || use postgres ; then
- myconf="${myconf} --enable-virtual-users"
- fi
- fi
-
- if use mysql || use postgres ; then
- myconf="${myconf} --enable-preferences-extension"
- fi
-
- local STORAGE="hash_drv"
- # select storage driver
- if use sqlite ; then
- STORAGE="${STORAGE},sqlite_drv"
- fi
- if use sqlite3 ; then
- STORAGE="${STORAGE},sqlite3_drv"
- fi
- if use mysql; then
- STORAGE="${STORAGE},mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/$(get_libdir)/mysql"
- fi
- if use postgres ; then
- STORAGE="${STORAGE},pgsql_drv"
- myconf="${myconf} --with-pgsql-includes=/usr/include/postgresql"
- myconf="${myconf} --with-pgsql-libraries=/usr/$(get_libdir)/postgresql"
- fi
-
- econf ${myconf} --with-storage-driver=${STORAGE} \
- --with-dspam-home=${HOMEDIR} \
- --sysconfdir=${CONFDIR} \
- $(use_enable daemon) \
- $(use_enable ldap) \
- $(use_enable clamav) \
- --with-dspam-group=dspam \
- --with-dspam-home-group=dspam \
- --with-dspam-mode=${DSPAMPERMS} \
- --with-logdir=${LOGDIR} || die "econf failed"
- emake || die "emake failed"
-}
-
-src_install () {
- diropts -m0770 -o dspam -g dspam
- dodir ${CONFDIR}
- insinto ${CONFDIR}
- insopts -m640 -o dspam -g dspam
- doins src/dspam.conf
-
- dosym /etc/mail/dspam /etc/dspam
-
- # make install
- make DESTDIR="${D}" install || die "make install failed"
-
- diropts -m0755 -o dspam -g dspam
- keepdir /var/run/dspam
-
- # create logdir
- if use debug ; then
- diropts -m0770 -o dspam -g dspam
- keepdir ${LOGDIR}
- fi
-
- #clean options
- diropts -m0755
- insopts -m0644
-
- if use daemon; then
- # We use sockets for the daemon instead of tcp port 24
- sed -e 's:^#*\(ServerDomainSocketPath[\t ]\{1,\}\).*:\1\"/var/run/dspam/dspam.sock\":gI' \
- -e 's:^#*\(ServerPID[\t ]\{1,\}\).*:\1/var/run/dspam/dspam.pid:gI' \
- -e 's:^#*\(ClientHost[\t ]\{1,\}\)/.*:\1\"/var/run/dspam/dspam.sock\":gI' \
- -i "${D}/${CONFDIR}/dspam.conf"
-
- newinitd "${FILESDIR}/dspam.rc" dspam
-
- fowners root:dspam /usr/bin/dspamc
- fperms u=rx,g=xs,o=x /usr/bin/dspamc
- fi
-
- # generate random password
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # database related configuration and scripts
- if use sqlite; then
- insinto ${CONFDIR}
- newins src/tools.sqlite_drv/purge-2.sql sqlite_purge.sql
- fi
- if use sqlite3; then
- insinto ${CONFDIR}
- newins src/tools.sqlite_drv/purge-3.sql sqlite3_purge.sql
- fi
- if use mysql; then
- DSPAM_DB_DATA[0]="/var/run/mysqld/mysqld.sock"
- DSPAM_DB_DATA[1]=""
- DSPAM_DB_DATA[2]="dspam"
- DSPAM_DB_DATA[3]="${PASSWORD}"
- DSPAM_DB_DATA[4]="dspam"
- DSPAM_DB_DATA[5]="true"
-
- # Modify configuration and create mysql.data file
- sed -e "s:^#*\(MySQLServer[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[0]}:gI" \
- -e "s:^#*\(MySQLPort[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[1]}:gI" \
- -e "s:^#*\(MySQLUser[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[2]}:gI" \
- -e "s:^#*\(MySQLPass[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[3]}:gI" \
- -e "s:^#*\(MySQLDb[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[4]}:gI" \
- -e "s:^#*\(MySQLCompress[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[5]}:gI" \
- -i "${D}"/${CONFDIR}/dspam.conf
- for DB_DATA_INDEX in $(seq 0 $((${#DSPAM_DB_DATA[@]} - 1))); do
- echo "${DSPAM_DB_DATA[$DB_DATA_INDEX]}" >> "${D}"/${CONFDIR}/mysql.data
- done
-
- insinto ${CONFDIR}
- newins src/tools.mysql_drv/mysql_objects-space.sql mysql_objects-space.sql
- newins src/tools.mysql_drv/mysql_objects-speed.sql mysql_objects-speed.sql
- newins src/tools.mysql_drv/mysql_objects-4.1.sql mysql_objects-4.1.sql
- if use virtual-users ; then
- newins src/tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins src/tools.mysql_drv/virtual_user_aliases.sql mysql_virtual_user_aliases.sql
- fi
- newins src/tools.mysql_drv/purge.sql mysql_purge.sql
- newins src/tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
-
- fperms 640 ${CONFDIR}/mysql.data
- fowners root:dspam ${CONFDIR}/mysql.data
- fi
- if use postgres ; then
- DSPAM_DB_DATA[0]="127.0.0.1"
- DSPAM_DB_DATA[1]="5432"
- DSPAM_DB_DATA[2]="dspam"
- DSPAM_DB_DATA[3]="${PASSWORD}"
- DSPAM_DB_DATA[4]="dspam"
-
- # Modify configuration and create pgsql.data file
- sed -e "s:^#*\(PgSQLServer[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[0]}:gI" \
- -e "s:^#*\(PgSQLPort[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[1]}:gI" \
- -e "s:^#*\(PgSQLUser[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[2]}:gI" \
- -e "s:^#*\(PgSQLPass[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[3]}:gI" \
- -e "s:^#*\(PgSQLDb[\t ]\{1,\}\).*:\1${DSPAM_DB_DATA[4]}:gI" \
- -e "s:^#*\(PgSQLConnectionCache[\t ]*.\):\1:gI" \
- -i "${D}"/${CONFDIR}/dspam.conf
- for DB_DATA_INDEX in $(seq 0 $((${#DSPAM_DB_DATA[@]} - 1))); do
- echo "${DSPAM_DB_DATA[$DB_DATA_INDEX]}" >> "${D}"/${CONFDIR}/pgsql.data
- done
-
- insinto ${CONFDIR}
- newins src/tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- if use virtual-users ; then
- newins src/tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- fi
- newins src/tools.pgsql_drv/purge.sql pgsql_purge.sql
-
- fperms 640 ${CONFDIR}/pgsql.data
- fowners root:dspam ${CONFDIR}/pgsql.data
- fi
-
- sed -e "s:^\(Purge.*\):###\1:g" \
- -e "s:^#\(Purge.*\):\1:g" \
- -e "s:^###\(Purge.*\):#\1:g" \
- -i "${D}"/${CONFDIR}/dspam.conf
- if ! ( use mysql || use postgres || use sqlite || use sqlite3 ) ; then
- # When only one storage driver is compiled, it is linked statically with dspam
- # thus you should not set the StorageDriver at all
- # Also, hash_drv requires certain tokenizer and PValue (see bug #185718)
- sed -e "s:^\(StorageDriver .*\)$:#\1:" \
- -e "s:^Tokenizer .*$:Tokenizer sbph:" \
- -e "/^#PValue/d" \
- -e "s:^PValue .*$:PValue markov:" \
- -i "${D}"/${CONFDIR}/dspam.conf
- fi
-
- # installs the notification messages
- # -> The documentation is wrong! The files need to be in ./txt
- echo "Scanned and tagged as SPAM with DSPAM ${PV} by Your ISP.com">"${T}"/msgtag.spam
- echo "Scanned and tagged as non-SPAM with DSPAM ${PV} by Your ISP.com">"${T}"/msgtag.nonspam
- insinto ${CONFDIR}/txt
- doins "${S}"/txt/*.txt
- doins "${T}"/msgtag.*
-
- # Create the opt-in / opt-out directories
- diropts -m0770 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}/opt-in
- keepdir ${HOMEDIR}/opt-out
- diropts -m0755
-
- # logrotation scripts
- if use logrotate && use debug ; then
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate.dspam" dspam
- fi
-
- # dspam cron job
- exeinto /etc/cron.daily
- newexe "${FILESDIR}/dspam.cron" dspam.cron
-
- # documentation
- dodoc CHANGELOG README* RELEASE.NOTES UPGRADING
- docinto doc
- dodoc doc/*.txt
- docinto gentoo
- dodoc "${FILESDIR}"/README.{postfix,qmail}
- docinto sa_train
- dodoc "${WORKDIR}"/dspam_sa_trainer/*
- doman man/dspam*
-}
-
-pkg_preinst() {
- # Preserve *.data files
- local installed_datafiles="${ROOT}"/${CONFDIR}/*.data
- if [[ "${installed_datafiles}" != *"*.data" ]]; then
- cp "${ROOT}"/${CONFDIR}/*.data "${D}"/${CONFDIR}
- fi
-}
-
-pkg_postinst() {
- # need enewgroup/enewuser in this function for binary install.
- create_dspam_usergroup
-
- ewarn "The hash_drv storage backend has the following requirements:"
- ewarn " - PValue must be set to 'markov'; Do not use this pvalue with any other storage backend!"
- ewarn " - Tokenizer must be either 'sbph' or 'osb'"
- ewarn "See markov.txt for more info."
-
- if use mysql || use postgres; then
- elog
- elog "To setup DSPAM to run out-of-the-box on your system with a MySQL"
- elog "or PostgreSQL database, run:"
- elog "emerge --config =${PF}"
- fi
-
- if use postgres && has_version ">dev-db/postgresql-8.0"; then
- elog
- elog "Before executing the configuration command mentioned above you have"
- elog "to execute the following command:"
- elog "createlang plpgsql -U postgres dspam"
- fi
-
- if use daemon; then
- elog
- elog "If you want to run DSPAM in the new daemon mode remember"
- elog "to make the DSPAM daemon start during boot:"
- elog " rc-update add dspam default"
- fi
- if use daemon ; then
- elog
- elog "To use the DSPAM daemon mode, the used storage driver must be thread-safe."
- fi
-
- elog
- elog "Edit /etc/mail/dspam.conf with your delivery agent"
- elog "See http://dspamwiki.expass.de/Installation for more info"
- elog
-}
-
-pkg_config () {
- local AVAIL_BACKENDS=()
- use mysql && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} mysql )
- use postgres && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} postgres )
- use sqlite && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} sqlite )
- use sqlite3 && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} sqlite3 )
- local USE_BACKEND
- read -p "Which backend do you want to configure? (available backends are ${AVAIL_BACKENDS[*]}) " USE_BACKEND
- if [[ " ${AVAIL_BACKENDS[*]} " != *" ${USE_BACKEND} "* ]]
- then
- eerror "The '${USE_BACKEND}' backend is not available."
- return 1
- fi
-
- case "${USE_BACKEND}" in
-
- sqlite | sqlite3)
- einfo "sqlite_drv will automatically create the necessary database"
- ;;
-
- mysql)
- DSPAM_DB_DATA=( $(sed "s:^[\t ]*$:###:gI" "${ROOT}${CONFDIR}/mysql.data") )
- for DB_DATA_INDEX in $(seq 0 $((${#DSPAM_DB_DATA[@]} - 1))); do
- [[ "${DSPAM_DB_DATA[$DB_DATA_INDEX]}" = "###" ]] && DSPAM_DB_DATA[$DB_DATA_INDEX]=""
- done
- DSPAM_MySQL_USER="${DSPAM_DB_DATA[2]}"
- DSPAM_MySQL_PWD="${DSPAM_DB_DATA[3]}"
- DSPAM_MySQL_DB="${DSPAM_DB_DATA[4]}"
-
- local MYSQL_ROOT_USER=""
- echo -n "Please enter your administrative MySQL account (default root): "
- read MYSQL_ROOT_USER
- if [[ -z "${MYSQL_ROOT_USER}" ]]; then
- MYSQL_ROOT_USER="root"
- fi
- ewarn "When prompted for a password, please enter your MySQL ${MYSQL_ROOT_USER} password"
- ewarn
-
- einfo "Creating DSPAM MySQL database \"${DSPAM_MySQL_DB}\""
- /usr/bin/mysqladmin -u ${MYSQL_ROOT_USER} -p create ${DSPAM_MySQL_DB}
-
- if has_version ">=virtual/mysql-4.1"; then
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p ${DSPAM_MySQL_DB} < ${CONFDIR}/mysql_objects-4.1.sql
- else
- einfo "Creating DSPAM MySQL tables for data objects"
- einfo " Please select what kind of object database you like to use."
- einfo " [1] Space optimized database"
- einfo " [2] Speed optimized database"
- einfo
- while true
- do
- read -n 1 -s -p " Press 1 or 2 on the keyboard to select database" DSPAM_MySQL_DB_Type
- [[ "${DSPAM_MySQL_DB_Type}" == "1" || "${DSPAM_MySQL_DB_Type}" == "2" ]] && echo && break
- done
-
- if [[ "${DSPAM_MySQL_DB_Type}" == "1" ]]; then
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p ${DSPAM_MySQL_DB} < ${CONFDIR}/mysql_objects-space.sql
- else
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p ${DSPAM_MySQL_DB} < ${CONFDIR}/mysql_objects-speed.sql
- fi
- fi
-
- if use virtual-users ; then
- einfo "Creating DSPAM MySQL database for virtual-users users"
- einfo " Please select what kind of virtual_uids table you like to use."
- einfo " [1] Virtual users added automatically (use this if this server is the primary MX)"
- einfo " [2] Virtual users added manually (use it if this server is a secondary MX)"
- einfo
- while true; do
- read -n 1 -s -p " Press 1 or 2 on the keyboard to select table type" DSPAM_MySQL_DB_Type
- [[ "${DSPAM_MySQL_DB_Type}" == "1" || "${DSPAM_MySQL_DB_Type}" == "2" ]] && echo && break
- done
-
- if [[ "${DSPAM_MySQL_DB_Type}" == "1" ]]; then
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p ${DSPAM_MySQL_DB} < ${CONFDIR}/mysql_virtual_users.sql
- else
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p ${DSPAM_MySQL_DB} < ${CONFDIR}/mysql_virtual_user_aliases.sql
- fi
- fi
-
- einfo "Creating DSPAM MySQL user \"${DSPAM_MySQL_USER}\""
- /usr/bin/mysql -u ${MYSQL_ROOT_USER} -p -e "GRANT SELECT,INSERT,UPDATE,DELETE ON ${DSPAM_MySQL_DB}.* TO ${DSPAM_MySQL_USER}@localhost IDENTIFIED BY '${DSPAM_MySQL_PWD}';FLUSH PRIVILEGES;" -D mysql
- ;;
-
- postgres)
- DSPAM_DB_DATA=( $(sed "s:^[\t ]*$:###:gI" "${ROOT}${CONFDIR}/pgsql.data") )
- for DB_DATA_INDEX in $(seq 0 $((${#DSPAM_DB_DATA[@]} - 1))); do
- [[ "${DSPAM_DB_DATA[$DB_DATA_INDEX]}" = "###" ]] && DSPAM_DB_DATA[$DB_DATA_INDEX]=""
- done
- DSPAM_PgSQL_USER="${DSPAM_DB_DATA[2]}"
- DSPAM_PgSQL_PWD="${DSPAM_DB_DATA[3]}"
- DSPAM_PgSQL_DB="${DSPAM_DB_DATA[4]}"
-
- ewarn "When prompted for a password, please enter your PgSQL postgres password"
- ewarn
-
- einfo "Creating DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\" and user \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -h localhost -d template1 -U postgres -c "CREATE USER ${DSPAM_PgSQL_USER} WITH PASSWORD '${DSPAM_PgSQL_PWD}' NOCREATEDB NOCREATEUSER; CREATE DATABASE ${DSPAM_PgSQL_DB}; GRANT ALL PRIVILEGES ON DATABASE ${DSPAM_PgSQL_DB} TO ${DSPAM_PgSQL_USER}; GRANT ALL PRIVILEGES ON SCHEMA public TO ${DSPAM_PgSQL_USER}; UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='${DSPAM_PgSQL_USER}') WHERE datname='${DSPAM_PgSQL_DB}';"
-
- einfo "Creating DSPAM PostgreSQL tables"
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${CONFDIR}/pgsql_objects.sql 1>/dev/null 2>&1
-
- if use virtual-users ; then
- einfo "Creating DSPAM PostgreSQL database for virtual-users users"
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${CONFDIR}/pgsql_virtual_users.sql 1>/dev/null 2>&1
- fi
- ;;
-
- esac
-}
diff --git a/mail-filter/dspam/files/digest-dspam-3.8.0-r6 b/mail-filter/dspam/files/digest-dspam-3.8.0-r6
deleted file mode 100644
index a8b8a87b8423..000000000000
--- a/mail-filter/dspam/files/digest-dspam-3.8.0-r6
+++ /dev/null
@@ -1,9 +0,0 @@
-MD5 5e0e9a8641d622239c5a5dfcd73e77c6 dspam-3.8.0-patches-20070909.tar.gz 7978
-RMD160 7cc8d84fd74b7158a4b3d292f37b5cae5bb5fe43 dspam-3.8.0-patches-20070909.tar.gz 7978
-SHA256 23401c5c85d50c48d4e7a286807d5bc45bd8afc78d9ca2c4816fb8aa746765d2 dspam-3.8.0-patches-20070909.tar.gz 7978
-MD5 056b8c8b3ad9415a52c01b22ff1e64cf dspam-3.8.0.tar.gz 726160
-RMD160 e7831e2415e30e819dd9cbc0ba3f269e113e2fb9 dspam-3.8.0.tar.gz 726160
-SHA256 84a227934a7aee73516bdb82c33ee7b359e955c8cd95a1544a9a13069f79bfc7 dspam-3.8.0.tar.gz 726160
-MD5 8ffe9d41e6104a4c6d19067528193145 dspam_sa_trainer.tar.gz 1230
-RMD160 c3d0fca7169d23ecf9d44c850ee255b42d97d818 dspam_sa_trainer.tar.gz 1230
-SHA256 8fb6b1ebe592acf00a028737ef8e174544af166768b987d29048b2319bc5a215 dspam_sa_trainer.tar.gz 1230
diff --git a/mail-filter/dspam/files/dspam.cron b/mail-filter/dspam/files/dspam.cron
deleted file mode 100644
index f17b4dc87fa9..000000000000
--- a/mail-filter/dspam/files/dspam.cron
+++ /dev/null
@@ -1,419 +0,0 @@
-#!/bin/sh
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-#
-# Remove old signatures and unimportant tokens from the DSPAM database.
-# Purge old log entries in user logs.
-#
-
-#
-# Parse optional command line parameters
-#
-for foo in $@
-do
- case "${foo}" in
- --logdays=*) LOGROTATE_AGE="${foo#--logdays=}";;
- --sigdays=*) SIGNATURE_AGE="${foo#--sigdays=}";;
- esac
-done
-
-#
-# Parameters
-#
-[ -z "${LOGROTATE_AGE}" ] && LOGROTATE_AGE=30 # Delete log entries older than $LOGROTATE_AGE days
-[ -z "${SIGNATURE_AGE}" ] && SIGNATURE_AGE=30 # Delete signatures older than $SIGNATURE_AGE days
-
-#
-# Function to run dspam_clean
-#
-run_dspam_clean() {
- if [ ! -e "/usr/bin/dspam_clean" ]
- then
- echo "Can not run DSPAM clean application:"
- echo " /usr/bin/dspam_clean does not exist"
- return 1
- else
- /usr/bin/dspam_clean -s${SIGNATURE_AGE} -p${SIGNATURE_AGE} -u${SIGNATURE_AGE},${SIGNATURE_AGE},${SIGNATURE_AGE},${SIGNATURE_AGE} >/dev/null 2>&1
- return $?
- fi
-}
-
-
-#
-# Function to check if we have all needed tools
-#
-check_for_tools() {
- local myrc=0
- for foo in awk cut sed getent
- do
- if ! which ${foo} >/dev/null 2>&1
- then
- echo "Command ${foo} not found!"
- myrc=1
- fi
- done
- return ${myrc}
-}
-
-
-#
-# Function to clean DSPAM MySQL data
-#
-clean_mysql_drv() {
- #
- # MySQL
- #
- if [ -f "${DSPAM_CONFIGDIR}/mysql.data" ]
- then
- if [ ! -e "/usr/bin/mysql_config" ]
- then
- echo "Can not run MySQL purge script:"
- echo " /usr/bin/mysql_config does not exist"
- return 1
- fi
- DSPAM_MySQL_PURGE_SQL=
- DSPAM_MySQL_VER=$(/usr/bin/mysql_config --version | sed "s:[^0-9.]*::g")
- DSPAM_MySQL_MAJOR=$(echo "${DSPAM_MySQL_VER}" | cut -d. -f1)
- DSPAM_MySQL_MINOR=$(echo "${DSPAM_MySQL_VER}" | cut -d. -f2)
- DSPAM_MySQL_MICRO=$(echo "${DSPAM_MySQL_VER}" | cut -d. -f3)
- DSPAM_MySQL_INT=$(($DSPAM_MySQL_MAJOR * 65536 + $DSPAM_MySQL_MINOR * 256 + $DSPAM_MySQL_MICRO))
-
- # For MySQL >= 4.1 use the new purge script
- if [ "${DSPAM_MySQL_INT}" -ge "262400" ]
- then
- if [ -f "${DSPAM_CONFIGDIR}/config/mysql_purge-4.1-optimized.sql" -o -f "${DSPAM_CONFIGDIR}/mysql_purge-4.1-optimized.sql" ]
- then
- # See: http://securitydot.net/txt/id/32/type/articles/
- [ -f "${DSPAM_CONFIGDIR}/config/mysql_purge-4.1-optimized.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/config/mysql_purge-4.1-optimized.sql"
- [ -f "${DSPAM_CONFIGDIR}/mysql_purge-4.1-optimized.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/mysql_purge-4.1-optimized.sql"
- else
- [ -f "${DSPAM_CONFIGDIR}/config/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/config/mysql_purge-4.1.sql"
- [ -f "${DSPAM_CONFIGDIR}/mysql_purge-4.1.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/mysql_purge-4.1.sql"
- fi
- else
- [ -f "${DSPAM_CONFIGDIR}/config/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/config/mysql_purge.sql"
- [ -f "${DSPAM_CONFIGDIR}/mysql_purge.sql" ] && DSPAM_MySQL_PURGE_SQL="${DSPAM_CONFIGDIR}/mysql_purge.sql"
- fi
-
- if [ -z "${DSPAM_MySQL_PURGE_SQL}" ]
- then
- echo "Can not run MySQL purge script:"
- echo " No mysql_purge SQL script found"
- return 1
- fi
-
- if [ ! -e "/usr/bin/mysql" ]
- then
- echo "Can not run MySQL purge script:"
- echo " /usr/bin/mysql does not exist"
- return 1
- fi
-
- # Get DSPAM MySQL username and password
- DSPAM_MySQL_HOST=$(sed "1q;d" "${DSPAM_CONFIGDIR}/mysql.data")
- DSPAM_MySQL_PORT=$(sed "2q;d" "${DSPAM_CONFIGDIR}/mysql.data")
- DSPAM_MySQL_USER=$(sed "3q;d" "${DSPAM_CONFIGDIR}/mysql.data")
- DSPAM_MySQL_PWD=$(sed "4q;d" "${DSPAM_CONFIGDIR}/mysql.data")
- DSPAM_MySQL_DB=$(sed "5q;d" "${DSPAM_CONFIGDIR}/mysql.data")
-
- # Check if MySQL is remote or using a socket
- if [ -S "${DSPAM_MySQL_HOST}" ]
- then
- DSPAM_MySQL_HOSTCMD="--socket"
- else
- DSPAM_MySQL_HOSTCMD="--host"
- fi
-
- # Run the MySQL purge script
- /usr/bin/mysql --silent --user="${DSPAM_MySQL_USER}" --password="${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_HOSTCMD}="${DSPAM_MySQL_HOST}" ${DSPAM_MySQL_DB} < ${DSPAM_MySQL_PURGE_SQL}
- _RC=$?
- if [ ${_RC} != 0 ]
- then
- echo "MySQL purge script returned error code ${_RC}"
- fi
-
- # Optimize the MySQL tables for DSPAM
- for foo in $(/usr/bin/mysql --user="${DSPAM_MySQL_USER}" --password="${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_HOSTCMD}="${DSPAM_MySQL_HOST}" --silent --skip-column-names --batch ${DSPAM_MySQL_DB} -e 'SHOW TABLES;' 2>&1)
- do
- /usr/bin/mysql --user="${DSPAM_MySQL_USER}" --password="${DSPAM_MySQL_PWD}" ${DSPAM_MySQL_HOSTCMD}="${DSPAM_MySQL_HOST}" ${DSPAM_MySQL_DB} -e "OPTIMIZE TABLE ${foo};" 1>/dev/null 2>&1
- _RC=$?
- if [ ${_RC} != 0 ]
- then
- echo "MySQL optimize script for table \"${foo}\" returned error code ${_RC}"
- fi
- done
-
- return 0
- fi
-}
-
-
-#
-# Function to clean DSPAM PostgreSQL data
-#
-clean_pgsql_drv() {
- #
- # PostgreSQL
- #
- if [ -f "${DSPAM_CONFIGDIR}/pgsql.data" ]
- then
- DSPAM_PgSQL_PURGE_SQL=""
- [ -f "${DSPAM_CONFIGDIR}/config/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_CONFIGDIR}/config/pgsql_purge.sql"
- [ -f "${DSPAM_CONFIGDIR}/pgsql_purge.sql" ] && DSPAM_PgSQL_PURGE_SQL="${DSPAM_CONFIGDIR}/pgsql_purge.sql"
-
- if [ -z "${DSPAM_PgSQL_PURGE_SQL}" ]
- then
- echo "Can not run PostgreSQL purge script:"
- echo " No pgsql_purge SQL script found"
- return 1
- fi
-
- if [ ! -e "/usr/bin/psql" ]
- then
- echo "Can not run PostgreSQL purge script:"
- echo " /usr/bin/psql does not exist"
- return 1
- fi
-
- # Get DSPAM PostgreSQL username and password
- DSPAM_PgSQL_HOST=$(sed "1q;d" "${DSPAM_CONFIGDIR}/pgsql.data")
- DSPAM_PgSQL_PORT=$(sed "2q;d" "${DSPAM_CONFIGDIR}/pgsql.data")
- DSPAM_PgSQL_USER=$(sed "3q;d" "${DSPAM_CONFIGDIR}/pgsql.data")
- DSPAM_PgSQL_PWD=$(sed "4q;d" "${DSPAM_CONFIGDIR}/pgsql.data")
- DSPAM_PgSQL_DB=$(sed "5q;d" "${DSPAM_CONFIGDIR}/pgsql.data")
-
- # Run the PostgreSQL purge script
- PGUSER="${DSPAM_PgSQL_USER}" PGPASSWORD="${DSPAM_PgSQL_PWD}" /usr/bin/psql -q -U "${DSPAM_PgSQL_USER}" -d "${DSPAM_PgSQL_DB}" -p "${DSPAM_PgSQL_PORT}" -h "${DSPAM_PgSQL_HOST}" -f "${DSPAM_PgSQL_PURGE_SQL}" >/dev/null 2>&1
- _RC=$?
- if [ ${_RC} != 0 ]
- then
- echo "PostgreSQL purge script returned error code ${_RC}"
- fi
-
- # Optimize the PostgreSQL tables for DSPAM
- for foo in dspam_preferences dspam_signature_data dspam_stats dspam_token_data dspam_virtual_uids
- do
- PGUSER="${DSPAM_PgSQL_USER}" PGPASSWORD="${DSPAM_PgSQL_PWD}" /usr/bin/vacuumdb -q -U "${DSPAM_PgSQL_USER}" -d "${DSPAM_PgSQL_DB}" -p "${DSPAM_PgSQL_PORT}" -h "${DSPAM_PgSQL_HOST}" -z -t "${foo}" >/dev/null 2>&1
- _RC=$?
- if [ ${_RC} != 0 ]
- then
- echo "PostgreSQL vacuumdb script for table \"public.${foo}\" returned error code ${_RC}"
- fi
- done
-
- return 0
- fi
-
-}
-
-
-#
-# Function to clean DSPAM Hash data
-#
-clean_hash_drv() {
- #
- # Hash
- #
- if [ -d "${DSPAM_HOMEDIR}/data" ]
- then
- find ${DSPAM_HOMEDIR}/data/ -maxdepth 4 -mindepth 1 -type f -name "*.css" | while read name
- do
- /usr/bin/csscompress "${name}" 1>/dev/null 2>&1
- /usr/bin/cssclean "${name}" 1>/dev/null 2>&1
- # chown dspam:dspam "${name}"
- done
- find ${DSPAM_HOMEDIR}/data/ -maxdepth 4 -mindepth 1 -type d -name "*.sig" | while read name
- do
- find "${name}" -maxdepth 1 -mindepth 1 -type f -mtime +${SIGNATURE_AGE} -name "*.sig" -exec /bin/rm "{}" ";"
- done
- return 0
- else
- return 1
- fi
-}
-
-
-#
-# Function to clean DSPAM SQLite3 data
-#
-clean_sqlite3_drv() {
- #
- # SQLite3
- #
- # if ( grep -q "^[[:space:]]*StorageDriver[[:space:]]*.*libsqlite3_drv" "${DSPAM_CONFIGDIR}/dspam.conf" )
- # then
- DSPAM_SQLite3_PURGE_SQL=""
- [ -f "${DSPAM_CONFIGDIR}/config/sqlite3_purge.sql" ] && DSPAM_SQLite3_PURGE_SQL="${DSPAM_CONFIGDIR}/config/sqlite3_purge.sql"
- [ -f "${DSPAM_CONFIGDIR}/sqlite3_purge.sql" ] && DSPAM_SQLite3_PURGE_SQL="${DSPAM_CONFIGDIR}/sqlite3_purge.sql"
-
- if [ -z "${DSPAM_SQLite3_PURGE_SQL}" ]
- then
- echo "Can not run SQLite3 purge script:"
- echo " No sqlite_purge SQL script found"
- return 1
- fi
-
- if [ ! -e "/usr/bin/sqlite3" ]
- then
- echo "Can not run SQLite3 purge script:"
- echo " /usr/bin/sqlite3 does not exist"
- return 1
- fi
-
- # Run the SQLite3 purge script and optimize database
- find "${DSPAM_HOMEDIR}" -name "*.sdb" -print | while read name
- do
- /usr/bin/sqlite3 "$name" < "${DSPAM_SQLite3_PURGE_SQL}"
- /usr/bin/sqlite3 "$name" vacuum
- done 1>/dev/null 2>&1
-
- return 0
- # fi
-
-}
-
-
-#
-# Function to clean DSPAM SQLite data
-#
-clean_sqlite_drv() {
- #
- # SQLite
- #
- # if ( grep -q "^[[:space:]]*StorageDriver[[:space:]]*.*libsqlite_drv" "${DSPAM_CONFIGDIR}/dspam.conf" )
- # then
- DSPAM_SQLite_PURGE_SQL=""
- [ -f "${DSPAM_CONFIGDIR}/config/sqlite_purge.sql" ] && DSPAM_SQLite_PURGE_SQL="${DSPAM_CONFIGDIR}/config/sqlite_purge.sql"
- [ -f "${DSPAM_CONFIGDIR}/sqlite_purge.sql" ] && DSPAM_SQLite_PURGE_SQL="${DSPAM_CONFIGDIR}/sqlite_purge.sql"
-
- if [ -z "${DSPAM_SQLite_PURGE_SQL}" ]
- then
- echo "Can not run SQLite purge script:"
- echo " No sqlite_purge SQL script found"
- return 1
- fi
-
- if [ ! -e "/usr/bin/sqlite" ]
- then
- echo "Can not run SQLite purge script:"
- echo " /usr/bin/sqlite does not exist"
- return 1
- fi
-
- # Run the SQLite purge script and optimize database
- find "${DSPAM_HOMEDIR}" -name "*.sdb" -print | while read name
- do
- /usr/bin/sqlite "$name" < "${DSPAM_SQLite_PURGE_SQL}"
- /usr/bin/sqlite "$name" vacuum
- done 1>/dev/null 2>&1
-
- return 0
- # fi
-}
-
-
-#
-# Acquire lock file and start processing
-#
-DSPAM_CRON_LOCKFILE="/var/run/$(basename $0 .sh).pid"
-if ( set -o noclobber; echo "$$" > "${DSPAM_CRON_LOCKFILE}") 2> /dev/null; then
-
- trap 'rm -f "${DSPAM_CRON_LOCKFILE}"; exit $?' INT TERM EXIT
-
- #
- # Check for needed tools
- #
- if ! check_for_tools
- then
- # We have not all needed tools installed. Run just the dspam_clean part.
- run_dspam_clean
- exit $?
- fi
-
- #
- # Try to get DSPAM config directory
- #
- DSPAM_CONFIGDIR=$(getent passwd dspam | awk -F : '{print $6}')
- if [ ! -f "${DSPAM_CONFIGDIR}/dspam.conf" ]
- then
- # Something is wrong in passwd! Check if /etc/mail/dspam exists instead.
- if [ -f /etc/mail/dspam/dspam.conf ]
- then
- DSPAM_CONFIGDIR="/etc/mail/dspam"
- fi
- fi
- if [ ! -d "${DSPAM_CONFIGDIR}" ]
- then
- echo "Configuration directory not found!"
- exit 2
- fi
-
- #
- # Try to get DSPAM data home directory
- #
- DSPAM_HOMEDIR=$(awk 'tolower($1) ~ /^home$/ {print $2}' "${DSPAM_CONFIGDIR}/dspam.conf")
- if [ ! -d "${DSPAM_HOMEDIR}" ]
- then
- # Something is wrong in dspam.conf! Check if /var/spool/dspam exists instead.
- if [ -d /var/spool/dspam ]
- then
- DSPAM_HOMEDIR="/var/spool/dspam"
- fi
- fi
- if [ ! -d "${DSPAM_HOMEDIR}" ]
- then
- echo "Home directory not found! Please fix your dspam.conf."
- exit 2
- fi
-
- #
- # User log purging
- #
- if [ -d "${DSPAM_CONFIGDIR}/data" ]
- then
- dspam_logrotate -a ${LOGROTATE_AGE} -d "${DSPAM_CONFIGDIR}/data" >/dev/null # 2>&1
- fi
-
- if [ ! -e "/usr/bin/dspam" ]
- then
- echo "Can not run DSPAM application:"
- echo " /usr/bin/dspam does not exist"
- return 1
- fi
-
- #
- # Process all available storage drivers
- #
- for foo in $(/usr/bin/dspam --version 2>&1 | sed -n "s:,: :g;s:^.*\-\-with\-storage\-driver=\([^\'\]*\).*:\1:gIp")
- do
- case "${foo}" in
- hash_drv)
- clean_hash_drv
- ;;
- mysql_drv)
- clean_mysql_drv
- ;;
- pgsql_drv)
- clean_pgsql_drv
- ;;
- sqlite3_drv)
- clean_sqlite3_drv
- ;;
- sqlite_drv)
- clean_sqlite_drv
- ;;
- esac
- done
-
- #
- # Run the dspam_clean command
- #
- run_dspam_clean
-
-
- #
- # Release lock
- #
- /bin/rm -f "${DSPAM_CRON_LOCKFILE}"
- trap - INT TERM EXIT
-fi