# ChangeLog for mail-filter/dspam
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.33 2005/01/04 01:32:07 st_lim Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.34 2005/01/05 01:17:46 st_lim Exp $
+
+*dspam-3.2.3 (05 Jan 2005)
+
+ 05 Jan 2005; Lim Swee Tat <st_lim@gentoo.org> -dspam-3.0.0.ebuild,
+ -dspam-3.1.2.ebuild, -dspam-3.2.0.ebuild, -dspam-3.2.1.ebuild,
+ -dspam-3.2.2.ebuild, -dspam-3.2.3.ebuild:
+ Version bump URL Fixed Removed older versions of dspam because the latest
+ version 3.2.4 is finally stable.
04 Jan 2005; Lim Swee Tat <st_lim@gentoo.org> :
There was a bug fix in dspam for 3.2.4. Upgrade!! Upgrade!!
-MD5 9bb5367091eb1c2645c483cb18af145d ChangeLog 6733
-MD5 b85e5b2e14865172b86d76e1fa086103 dspam-3.0.0.ebuild 7029
-MD5 ae3a18b7d28e4909c83eca378f4f24a3 dspam-3.1.2.ebuild 14858
-MD5 467d22f8a29fe39450f5714c03636233 dspam-3.2.0.ebuild 15966
-MD5 0345cf2710fb19921e8470e36d87a7ce dspam-3.2.1.ebuild 15929
-MD5 40c21d559878fc5660195238df4f3548 dspam-3.2.2.ebuild 15833
-MD5 aa3a9d65c3f6c069935b6af7b1780c1d dspam-3.2.3.ebuild 15833
-MD5 2d6dd5e0676ed656f06bd6010c6cd741 dspam-3.2.4.ebuild 15775
-MD5 46b13b8be6491525bd4515b389668292 dspam-3.3.8.ebuild 15847
+MD5 33d0b176b47e12e6f83e5e5682b9cd30 ChangeLog 7051
+MD5 455e041c22771d506be8ee070817d3e5 dspam-3.2.4.ebuild 15739
+MD5 6c5807c5b4023fba43a9479ddc5d3ca3 dspam-3.3.8.ebuild 15811
+MD5 e81394692ceae2b5ab3755579e74c762 dspam-3.3.9.ebuild 15811
MD5 dbfbe5a3bbe3347938107f5f5bd2197e metadata.xml 308
MD5 c12a54112c6fec3530a7b1a368d04ac8 files/README.postfix 309
MD5 e0469b961385fda4305602dc2519d319 files/README.qmail 2317
MD5 e6d1b8232199f288fe75501251ade317 files/trusted.users 19
MD5 2cd345708a9889a04c472a9e5be7400e files/untrusted.mailer_args 24
MD5 8b68501138fbe92e10bbd93a03c9f2ab files/upgrade.sql 807
-MD5 05dce5dc8cf516655657aa2a4cc5f1da files/digest-dspam-3.0.0 63
-MD5 4b7bb6bbede742676e3e7017210104c5 files/digest-dspam-3.2.0 63
-MD5 4d666bbdf8092d4bd49428ea31eadbfb files/digest-dspam-3.2.1 63
-MD5 a8c089a75fb1ee3c2b4f32ffc04c638e files/digest-dspam-3.1.2 63
-MD5 5e423ac033f04ebc7dcc1d61e77c34fa files/digest-dspam-3.2.2 63
-MD5 e8b69a8c4c9e136977f8b1485a914d18 files/digest-dspam-3.2.3 63
MD5 ea56d34fd80be48f9b308655b5620c2f files/digest-dspam-3.2.4 63
MD5 ad704c9a2372dd9ab4d112a8c687873e files/digest-dspam-3.3.8 63
+MD5 82573c9fd08e0adbfc7fa0936fde6498 files/digest-dspam-3.3.9 63
+++ /dev/null
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.0.0.ebuild,v 1.11 2005/01/04 01:32:07 st_lim Exp $
-
-inherit eutils
-
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${P}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
-LICENSE="GPL-2"
-
-IUSE="debug mysql neural procmail cyrus exim maildrop"
-DEPEND="mysql? ( >=dev-db/mysql-3.23 ) || ( >=sys-libs/db-4.0 )
- procmail? ( >=mail-filter/procmail-3.22 )
- x86? ( cyrus? ( >=net-mail/cyrus-imapd-2.1.15 ) )
- maildrop? ( >=mail-filter/maildrop-1.5.3 )
- exim? ( >=mail-mta/exim-4.34 )
- "
-RDEPEND="virtual/cron
- app-admin/logrotate"
-KEYWORDS="~x86 ~ppc"
-SLOT="0"
-
-# some FHS-like structure
-HOMEDIR="/etc/mail/dspam"
-DATADIR="/var/spool/dspam"
-LOGDIR="/var/log/dspam"
-CONFIGDIR="${HOMEDIR}/config"
-
-MYSQL_TABLE_TYPE="space.optimized"
-
-pkg_setup() {
- id dspam 2>/dev/null || enewgroup dspam 65532
- id dspam 2>/dev/null || enewuser dspam 65532 /bin/bash ${HOMEDIR} dspam
-}
-
-src_compile() {
- local myconf
- local agent
-
- # these are the default settings
- myconf="${myconf} --with-signature-life=14"
- if use cyrus; then
- agent="/usr/lib/cyrus/deliver %u"
- elif use exim; then
- agent="/usr/sbin/exim -oMr spam-scanned %u"
- elif use maildrop; then
- agent="/usr/bin/maildrop -d %u"
- elif use procmail; then
- agent="/usr/bin/procmail"
- else
- agent="/usr/sbin/sendmail"
- fi
- myconf="${myconf} --enable-homedir-dotfiles"
- myconf="${myconf} --enable-spam-subject"
- myconf="${myconf} --enable-chi-square"
- myconf="${myconf} --enable-robinson"
- myconf="${myconf} --enable-robinson-pvalues"
- myconf="${myconf} --enable-source-address-tracking"
-
- # ${HOMEDIR}/data is a symlink to ${DATADIR}
- myconf="${myconf} --with-dspam-home=${HOMEDIR}"
- myconf="${myconf} --with-dspam-mode=4755"
- myconf="${myconf} --with-dspam-owner=dspam"
- myconf="${myconf} --with-dspam-group=dspam"
- myconf="${myconf} --with-dspam-home-owner=dspam"
- myconf="${myconf} --with-dspam-home-group=dspam"
-
- # enables support for debugging (touch /etc/dspam/.debug to turn on)
- # optional: even MORE debugging output, use with extreme caution!
- use debug && myconf="${myconf} --enable-debug --enable-verbose-debug"
-
- # select storage driver
- if use mysql ; then
- myconf="${myconf} --with-storage-driver=mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/lib/mysql"
- myconf="${myconf} --with-client-compression"
-
- # an experimental feature available with MySQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- else
- myconf="${myconf} --with-storage-driver=libdb4_drv"
- myconf="${myconf} --with-db4-includes=/usr/include"
- myconf="${myconf} --with-db4-libraries=/usr/lib"
- fi
-
- econf ${myconf} \
- --with-delivery-agent="${agent}" || die
- emake || die
-
-}
-
-src_install () {
- # open up perms on /etc/mail/dspam
- diropts -m0775 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}
-
- # keeps dspam data in /var
- diropts -m0775 -o dspam -g dspam
- dodir ${DATADIR}
- keepdir ${DATADIR}
-
- # keeps dspam log in /var/log
- diropts -m0775 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
-
- # make install
- make DESTDIR=${D} install || die
- chmod 4755 /usr/bin/dspam
-
- # documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
- dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
- if use mysql ; then
- newdoc tools.mysql_drv/README README.MYSQL
- fi
-
- # install some initial configuration
- insinto ${HOMEDIR}
- insopts -m0664 -o dspam -g dspam
- doins ${FILESDIR}/trusted.users
- if use cyrus; then
- echo "/usr/lib/cyrus/deliver %u" > ${T}/untrusted.mailer_args
- elif use exim; then
- echo "/usr/sbin/exim -oMr spam-scanned" > ${T}/untrusted.mailer_args
- elif use maildrop; then
- echo "/usr/bin/maildrop -d %u" > ${T}/untrusted.mailer_args
- elif use procmail; then
- echo "/usr/bin/procmail -d %u" > ${T}/untrusted.mailer_args
- else
- echo "/usr/sbin/sendmail" > ${T}/untrusted.mailer_args
- fi
-
- # database related configuration and scripts
- if use mysql ; then
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # Replace some variables in the configuration files
- sed -e "s,@HOMEDIR@,${HOMEDIR},g" \
- -e "s,@confdir@,${CONFIGDIR},g" \
- ${FILESDIR}/crontab.mysql > ${T}/dspam.cron
-
- sed -e "s,@password@,${PASSWORD},g" \
- ${FILESDIR}/mysql.data > ${T}/mysql.data
-
- sed -e "s,@password@,${PASSWORD},g" \
- ${FILESDIR}/mysql_create_user.sql > ${T}/mysql_setup.sql
- cat ${S}/tools.mysql_drv/mysql_objects.sql.${MYSQL_TABLE_TYPE} >> ${T}/mysql_setup.sql
-
- sed -e "s,@HOMEDIR@,${HOMEDIR},g" \
- -e "s,@confdir@,${CONFIGDIR},g" \
- ${FILESDIR}/mysql_install_db > ${T}/mysql_install_db
-
- sed -e "s,@HOMEDIR@,${HOMEDIR},g" \
- -e "s,@password@,${PASSWORD},g" \
- -e "s,@confdir@,${CONFIGDIR},g" \
- ${FILESDIR}/mysql_purge_db > ${T}/mysql_purge_db
-
- insinto ${CONFIGDIR}
- insopts -m644 -o dspam -g dspam
- doins ${T}/mysql.data
- doins ${T}/mysql_setup.sql
- doins ${FILESDIR}/upgrade.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
-
- exeinto ${CONFIGDIR}
- exeopts -m755 -o dspam -g dspam
- doexe ${T}/mysql_install_db
- doexe ${T}/mysql_purge_db
-
- einfo "Fresh install: run ${HOMEDIR}/mysql_install_db to setup the dspam database"
- einfo "Upgrades from 2.x: See the README for instructions on updating your tables for dspam-3.0"
- else
- cp ${FILESDIR}/crontab.db4 ${T}/dspam.cron
- fi
-
- # installs the cron job to the cron directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/cron.daily
- keepdir /etc/cron.daily
- exeinto /etc/cron.daily
- exeopts -m0755 -o dspam -g dspam
- doexe ${T}/dspam.cron
-
- # installs the logrotation scripts to the logrotate.d directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/logrotate.d
- keepdir /etc/logrotate.d
- insinto /etc/logrotate.d
- insopts -m0755 -o dspam -g dspam
- newins ${FILESDIR}/logrotate.dspam dspam
-
- # Symlinks data to HOMEDIR
- dosym ${DATADIR} ${HOMEDIR}/data
-
- # Log files for symlinks
- diropts -m0755 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
- touch ${D}${LOGDIR}/sql.errors
- touch ${D}${LOGDIR}/system.log
- touch ${D}${LOGDIR}/dspam.debug
- touch ${D}${LOGDIR}/dspam.messages
-
- # dspam still wants to write to a few files in it's home dir
- dosym ${LOGDIR}/sql.errors ${HOMEDIR}/sql.errors
- dosym ${LOGDIR}/system.log ${HOMEDIR}/system.log
- dosym ${LOGDIR}/dspam.debug ${HOMEDIR}/dspam.debug
- dosym ${LOGDIR}/dspam.messages ${HOMEDIR}/dspam.messages
-}
-
-pkg_postinst() {
- if use mysql ; then
- einfo "To setup dspam to run out-of-the-box on your system with a mysql database, run:"
- einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
- fi
- if use exim ; then
- echo
- einfo "To use dspam in conjunction with your exim system, you should read the README"
- fi
-}
-
-pkg_config () {
- if use mysql ; then
- ${CONFIGDIR}/mysql_install_db
- mv ${CONFIGDIR}/mysql.data ${HOMEDIR}
- fi
-}
+++ /dev/null
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.1.2.ebuild,v 1.6 2005/01/04 01:32:07 st_lim Exp $
-
-inherit eutils
-
-MY_PV=${PV/_beta20/.beta.2}
-S=${WORKDIR}/${PN}-${MY_PV}
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${MY_PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
-LICENSE="GPL-2"
-
-IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail"
-DEPEND="exim? ( >=mail-mta/exim-4.34 )
- mysql? ( >=dev-db/mysql-3.23 ) || ( >=sys-libs/db-4.0 )
- maildrop? ( >=mail-filter/maildrop-1.5.3 )
- postgres? ( >=dev-db/postgresql-7.4.3 )
- procmail? ( >=mail-filter/procmail-3.22 )
- x86? ( cyrus? ( >=net-mail/cyrus-imapd-2.1.15 ) )
- "
-RDEPEND="virtual/cron
- app-admin/logrotate"
-KEYWORDS="~x86 ~ppc"
-SLOT="0"
-
-# some FHS-like structure
-HOMEDIR="/etc/mail/dspam"
-DATADIR="/var/spool/dspam"
-LOGDIR="/var/log/dspam"
-CONFIGDIR="${HOMEDIR}/config"
-
-pkg_setup() {
- if (use mysql && use postgres) || \
- (use mysql && use oci8) || \
- (use postgres && use oci8); then
- echo
- ewarn "You have two of either \"mysql\", \"postgres\" or \"oci\" in your USE flags."
- ewarn "Will default to MySQL as your dspam database backend."
- ewarn "If you want to build with Postgres support; hit Control-C now."
- ewarn "Change your USE flag -mysql and emerge again."
- echo
- has_version ">=sys-apps/portage-2.0.50" && (
- einfo "It would be best practice to add the set of USE flags that you use for this"
- einfo "package to the file: /etc/portage/package.use. Example:"
- einfo "\`echo \"net-mail/dspam -mysql postgres\" >> /etc/portage/package.use\`"
- einfo "to build dspam with Postgres database as your dspam backend."
- )
- echo
- ewarn "Waiting 30 seconds before starting..."
- ewarn "(Control-C to abort)..."
- epause 30
- fi
- id dspam 2>/dev/null || enewgroup dspam 65532
- id dspam 2>/dev/null || enewuser dspam 65532 /bin/bash ${HOMEDIR} dspam
-}
-
-src_compile() {
- local myconf
- local agent
-
- # these are the default settings
- myconf="${myconf} --with-signature-life=14"
- if use cyrus; then
- agent="/usr/lib/cyrus/deliver %u"
- elif use exim; then
- agent="/usr/sbin/exim -oMr spam-scanned %u"
- elif use maildrop; then
- agent="/usr/bin/maildrop -d %u"
- elif use procmail; then
- agent="/usr/bin/procmail"
- else
- agent="/usr/sbin/sendmail"
- fi
- myconf="${myconf} --enable-source-address-tracking"
- myconf="${myconf} --enable-large-scale"
- myconf="${myconf} --enable-long-username"
- myconf="${myconf} --enable-spam-subject"
- myconf="${myconf} --enable-signature-headers"
- myconf="${myconf} --enable-whitelist"
- #myconf="${myconf} --enable-chi-square"
- #myconf="${myconf} --enable-robinson"
- #myconf="${myconf} --enable-robinson-pvalues"
-
- # ${HOMEDIR}/data is a symlink to ${DATADIR}
- myconf="${myconf} --with-dspam-home=${HOMEDIR}"
- myconf="${myconf} --with-dspam-mode=4755"
- myconf="${myconf} --with-dspam-owner=dspam"
- myconf="${myconf} --with-dspam-group=dspam"
- myconf="${myconf} --with-dspam-home-owner=dspam"
- myconf="${myconf} --with-dspam-home-group=dspam"
- myconf="${myconf} --with-dspam-home-mode=4755"
-
- # enables support for debugging (touch /etc/dspam/.debug to turn on)
- # optional: even MORE debugging output, use with extreme caution!
- use debug && myconf="${myconf} --enable-debug --enable-verbose-debug"
-
- # select storage driver
- if use mysql ; then
- myconf="${myconf} --with-storage-driver=mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/lib/mysql"
- myconf="${myconf} --with-client-compression"
- myconf="${myconf} --enable-virtual-users"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use postgres ; then
- myconf="${myconf} --with-storage-driver=pgsql_drv"
- myconf="${myconf} --with-pgsql-includes=/usr/include/postgresql"
- myconf="${myconf} --with-pgsql-libraries=/usr/lib/postgresql"
- myconf="${myconf} --enable-virtual-users"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use oci8 ; then
- myconf="${myconf} --with-storage-driver=ora_drv"
- myconf="${myconf} --with-oracle-home=${ORACLE_HOME}"
- myconf="${myconf} --enable-virtual-users"
-
- # I am in no way a Oracle specialist. If someone knows
- # how to query the version of Oracle, then let me know.
- if (expr ${ORACLE_HOME/*\/} : 10 1>/dev/null 2>&1)
- then
- --with-oracle-version=MAJOR
- myconf="${myconf} --with-oracle-version=10"
- fi
- else
- myconf="${myconf} --with-storage-driver=libdb4_drv"
- myconf="${myconf} --with-db4-includes=/usr/include"
- myconf="${myconf} --with-db4-libraries=/usr/lib"
- fi
-
- econf ${myconf} \
- --with-delivery-agent="${agent}" || die
- emake || die
-
-}
-
-src_install () {
- # open up perms on /etc/mail/dspam
- diropts -m0775 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}
-
- # keeps dspam data in /var
- diropts -m0775 -o dspam -g dspam
- dodir ${DATADIR}
- keepdir ${DATADIR}
-
- # keeps dspam log in /var/log
- diropts -m0775 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
-
- # make install
- make DESTDIR=${D} install || die
- chmod 4755 ${D}/usr/bin/dspam
-
- # documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
- dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
- if use mysql ; then
- newdoc tools.mysql_drv/README README.MYSQL
- elif use postgres ; then
- newdoc tools.pgsql_drv/README README.PGSQL
- elif use oci8 ; then
- newdoc tools.ora_drv/README README.ORACLE
- fi
-
- # build some initial configuration data
- (echo "trainingMode=TEFT"
- echo "spamAction=deliver"
- echo "spamSubject=[SPAM]"
- echo "statisticalSedation=5"
- echo "enableBNR=on"
- echo "enableWhitelist=on") >${T}/default.prefs
- echo "groupname:classification:*globaluser" >${T}/group
- if use cyrus; then
- echo "/usr/lib/cyrus/deliver %u" > ${T}/untrusted.mailer_args
- elif use exim; then
- echo "/usr/sbin/exim -oMr spam-scanned" > ${T}/untrusted.mailer_args
- elif use maildrop; then
- echo "/usr/bin/maildrop -d %u" > ${T}/untrusted.mailer_args
- elif use procmail; then
- echo "/usr/bin/procmail -d %u" > ${T}/untrusted.mailer_args
- else
- echo "/usr/sbin/sendmail" > ${T}/untrusted.mailer_args
- fi
-
- # install some initial configuration
- insinto ${HOMEDIR}
- insopts -m0664 -o dspam -g dspam
- [ ! -f ${HOMEDIR}/trusted.users ] && doins ${FILESDIR}/trusted.users
- doins ${T}/untrusted.mailer_args
- doins ${T}/default.prefs
- doins ${T}/group
-
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # database related configuration and scripts
- if use mysql ; then
- insinto ${CONFIGDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/mysql.data | head -n 1 )"
- else
- # Create the mysql.data file
- echo "127.0.0.1" >${T}/mysql.data
- echo "3306" >>${T}/mysql.data
- echo "dspam" >>${T}/mysql.data
- echo "${PASSWORD}" >>${T}/mysql.data
- echo "dspam" >>${T}/mysql.data
- doins ${T}/mysql.data
- fi
-
- newins tools.mysql_drv/mysql_objects.sql.speed.optimized mysql_objects.sql.speed.optimized
- newins tools.mysql_drv/mysql_objects.sql.space.optimized mysql_objects.sql.space.optimized
- newins tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
- newins ${FILESDIR}/upgrade.sql mysql_upgrade.sql
- elif use postgres ; then
- insinto ${CONFIGDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/pgsql.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "127.0.0.1" >${T}/pgsql.data
- echo "5432" >>${T}/pgsql.data
- echo "dspam" >>${T}/pgsql.data
- echo "${PASSWORD}" >>${T}/pgsql.data
- echo "dspam" >>${T}/pgsql.data
- doins ${T}/pgsql.data
- fi
-
- newins tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- newins tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- newins tools.pgsql_drv/purge.sql pgsql_purge.sql
-
- elif use oci8 ; then
- insinto ${CONFIGDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/oracle.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/oracle.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))" >${T}/oracle.data
- echo "dspam" >>${T}/oracle.data
- echo "${PASSWORD}" >>${T}/oracle.data
- echo "dspam" >>${T}/oracle.data
- doins ${T}/oracle.data
- fi
-
- newins tools.ora_drv/oral_objects.sql ora_objects.sql
- newins tools.ora_drv/virtual_users.sql ora_virtual_users.sql
- newins tools.ora_drv/purge.sql ora_purge.sql
- fi
-
- # installs the cron job to the cron directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/cron.daily
- keepdir /etc/cron.daily
- exeinto /etc/cron.daily
- exeopts -m0755 -o dspam -g dspam
- doexe ${FILESDIR}/dspam.cron
-
- # installs the logrotation scripts to the logrotate.d directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/logrotate.d
- keepdir /etc/logrotate.d
- insinto /etc/logrotate.d
- insopts -m0755 -o dspam -g dspam
- newins ${FILESDIR}/logrotate.dspam dspam
-
- # Symlinks data to HOMEDIR
- dosym ${DATADIR} ${HOMEDIR}/data
-
- # Log files for symlinks
- diropts -m0755 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
- touch ${T}/empty.file
- newins ${T}/empty.file sql.errors
- newins ${T}/empty.file system.log
- newins ${T}/empty.file dspam.debug
- newins ${T}/empty.file dspam.messages
-
- # dspam still wants to write to a few files in it's home dir
- dosym ${LOGDIR}/sql.errors ${HOMEDIR}/sql.errors
- dosym ${LOGDIR}/system.log ${HOMEDIR}/system.log
- dosym ${LOGDIR}/dspam.debug ${HOMEDIR}/dspam.debug
- dosym ${LOGDIR}/dspam.messages ${HOMEDIR}/dspam.messages
-
- # dspam enviroment
- echo -ne "CONFIG_PROTECT_MASK=\"${HOMEDIR} ${CONFIGDIR}\"\n\n" > ${T}/40dspam
- doenvd ${T}/40dspam || die
-}
-
-pkg_postinst() {
- if use mysql || use postgres; then
- einfo "To setup dspam to run out-of-the-box on your system with a mysql or pgsql database, run:"
- einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
- fi
- if use exim ; then
- echo
- einfo "To use dspam in conjunction with your exim system, you should read the README"
- fi
-}
-
-pkg_config () {
- if use mysql ; then
- [[ -f ${CONFIGDIR}/mysql.data ]] && mv -f ${CONFIGDIR}/mysql.data ${HOMEDIR}
- DSPAM_MySQL_USER="$(cat ${HOMEDIR}/mysql.data|head -n 3|tail -n 1)"
- DSPAM_MySQL_PWD="$(cat ${HOMEDIR}/mysql.data|head -n 4|tail -n 1)"
- DSPAM_MySQL_DB="$(cat ${HOMEDIR}/mysql.data|head -n 5|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your MySQL root password"
- ewarn ""
-
- einfo "Creating DSPAM MySQL database \"${DSPAM_MySQL_DB}\""
- /usr/bin/mysqladmin -u root -p create ${DSPAM_MySQL_DB}
-
- 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" ]] && break
- done
-
- if [ "${DSPAM_MySQL_DB_Type}" == "1" ]
- then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${CONFIGDIR}/mysql_objects.sql.space.optimized
- else
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${CONFIGDIR}/mysql_objects.sql.speed.optimized
- fi
-
- einfo "Creating DSPAM MySQL database for virtual users"
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${CONFIGDIR}/mysql_virtual_users.sql
-
- einfo "Creating DSPAM MySQL user \"${DSPAM_MySQL_USER}\""
- /usr/bin/mysql -u root -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
- elif use postgres ; then
- [[ -f ${CONFIGDIR}/pgsql.data ]] && mv -f ${CONFIGDIR}/pgsql.data ${HOMEDIR}
- DSPAM_PgSQL_USER="$(cat ${HOMEDIR}/pgsql.data|head -n 3|tail -n 1)"
- DSPAM_PgSQL_PWD="$(cat ${HOMEDIR}/pgsql.data|head -n 4|tail -n 1)"
- DSPAM_PgSQL_DB="$(cat ${HOMEDIR}/pgsql.data|head -n 5|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your PgSQL postgres password"
- ewarn ""
-
- einfo "Creating DSPAM PostgreSQL user \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE USER ${DSPAM_PgSQL_USER} WITH PASSWORD '${DSPAM_PgSQL_PWD}' NOCREATEDB NOCREATEUSER;" 1>/dev/null 2>&1
-
- einfo "Creating DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE DATABASE ${DSPAM_PgSQL_DB};" 1>/dev/null 2>&1
-
- einfo "Getting DSPAM PostgreSQL userid for \"${DSPAM_PgSQL_USER}\""
- DSPAM_PgSQL_USERID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT usesysid FROM pg_user WHERE usename='${DSPAM_PgSQL_USER}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " UserID: ${DSPAM_PgSQL_USERID}"
-
- einfo "Getting DSPAM PostgreSQL databaseid for \"${DSPAM_PgSQL_DB}\""
- DSPAM_PgSQL_DBID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT datdba FROM pg_database WHERE datname='${DSPAM_PgSQL_DB}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " DBID: ${DSPAM_PgSQL_DBID}"
-
- einfo "Changing owner of DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\" to \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "UPDATE pg_database SET datdba=${DSPAM_PgSQL_USERID} WHERE datname='${DSPAM_PgSQL_DB}';" 1>/dev/null 2>&1
-
- 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 ${CONFIGDIR}/pgsql_objects.sql 1>/dev/null 2>&1
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${CONFIGDIR}/pgsql_virtual_users.sql 1>/dev/null 2>&1
-
- einfo "Grant privileges to DSPAM PostgreSQL objects to \"${DSPAM_PgSQL_USER}\""
- for foo in $(/usr/bin/psql -t -d ${DSPAM_PgSQL_DB} -U postgres -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'dspam\%';")
- do
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON TABLE ${foo} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- done
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE ${DSPAM_PgSQL_DB} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON SCHEMA public TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- elif use oci8 ; then
- [[ -f ${CONFIGDIR}/oracle.data ]] && mv -f ${CONFIGDIR}/oracle.data ${HOMEDIR}
- fi
-
-}
+++ /dev/null
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.0.ebuild,v 1.9 2005/01/04 01:32:07 st_lim Exp $
-
-inherit eutils
-
-S=${WORKDIR}/${PN}-${PV}
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
-LICENSE="GPL-2"
-
-IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite"
-DEPEND="exim? ( >=mail-mta/exim-4.34 )
- mysql? ( >=dev-db/mysql-3.23 ) || ( >=sys-libs/db-4.0 )
- sqlite? ( >=dev-db/sqlite-3.0.6 )
- maildrop? ( >=mail-filter/maildrop-1.5.3 )
- postgres? ( >=dev-db/postgresql-7.4.3 )
- procmail? ( >=mail-filter/procmail-3.22 )
- x86? ( cyrus? ( >=net-mail/cyrus-imapd-2.1.15 ) )
- "
-RDEPEND="virtual/cron
- app-admin/logrotate"
-KEYWORDS="~x86 ~ppc"
-SLOT="0"
-
-# some FHS-like structure
-HOMEDIR="/etc/mail/dspam"
-DATADIR="/var/spool/dspam"
-LOGDIR="/var/log/dspam"
-
-pkg_setup() {
- if (use mysql && use postgres) || \
- (use mysql && use oci8) || \
- (use mysql && use sqlite) || \
- (use postgres && use oci8) || \
- (use postgres && use sqlite) || \
- (use sqlite && use oci8); then
- echo
- ewarn "You have two of either \"mysql\", \"postgres\", \"oci8\" or \"sqlite\" in your USE flags."
- ewarn "Will default to MySQL as your dspam database backend."
- ewarn "If you want to build with Postgres/Oracle/SQLite support; hit Control-C now."
- ewarn "Change your USE flag -mysql and emerge again."
- echo
- has_version ">=sys-apps/portage-2.0.50" && (
- einfo "It would be best practice to add the set of USE flags that you use for this"
- einfo "package to the file: /etc/portage/package.use. Example:"
- einfo "\`echo \"net-mail/dspam -mysql postgres -oci8 -sqlite\" >> /etc/portage/package.use\`"
- einfo "to build dspam with Postgres database as your dspam backend."
- )
- echo
- ewarn "Waiting 30 seconds before starting..."
- ewarn "(Control-C to abort)..."
- epause 30
- fi
- id dspam 2>/dev/null || enewgroup dspam 65532
- id dspam 2>/dev/null || enewuser dspam 65532 /bin/bash ${HOMEDIR} dspam
-}
-
-src_compile() {
- local myconf
-
- # these are the default settings
- myconf="${myconf} --with-signature-life=14"
- myconf="${myconf} --enable-broken-return-codes"
- myconf="${myconf} --enable-experimental"
- myconf="${myconf} --enable-long-username"
- myconf="${myconf} --enable-robinson"
- #myconf="${myconf} --enable-chi-square"
- myconf="${myconf} --enable-robinson-pvalues"
- #myconf="${myconf} --enable-broken-mta"
- myconf="${myconf} --enable-large-scale"
- #myconf="${myconf} --enable-domain-scale"
-
- myconf="${myconf} --with-dspam-mode=4755"
- myconf="${myconf} --with-dspam-owner=dspam"
- myconf="${myconf} --with-dspam-group=dspam"
- myconf="${myconf} --enable-homedir --with-dspam-home=${HOMEDIR} --sysconfdir=${HOMEDIR}"
- myconf="${myconf} --with-logdir=${LOGDIR}"
-
- # enables support for debugging (touch /etc/dspam/.debug to turn on)
- # optional: even MORE debugging output, use with extreme caution!
- use debug && myconf="${myconf} --enable-debug --enable-verbose-debug"
-
- # select storage driver
- if use mysql; then
- myconf="${myconf} --with-storage-driver=mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/lib/mysql"
- myconf="${myconf} --with-client-compression"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use postgres ; then
- myconf="${myconf} --with-storage-driver=pgsql_drv"
- myconf="${myconf} --with-pgsql-includes=/usr/include/postgresql"
- myconf="${myconf} --with-pgsql-libraries=/usr/lib/postgresql"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use oci8 ; then
- myconf="${myconf} --with-storage-driver=ora_drv"
- myconf="${myconf} --with-oracle-home=${ORACLE_HOME}"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # I am in no way a Oracle specialist. If someone knows
- # how to query the version of Oracle, then let me know.
- if (expr ${ORACLE_HOME/*\/} : 10 1>/dev/null 2>&1)
- then
- --with-oracle-version=MAJOR
- myconf="${myconf} --with-oracle-version=10"
- fi
- elif use sqlite ; then
- myconf="${myconf} --with-storage-driver=sqlite_drv"
- myconf="${myconf} --enable-virtual-users"
-
- else
- myconf="${myconf} --with-storage-driver=libdb4_drv"
- fi
-
- econf ${myconf} || die
- emake || die
-
-}
-
-src_install () {
- # open up perms on /etc/mail/dspam
- diropts -m0775 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}
-
- # keeps dspam data in /var
- diropts -m0775 -o dspam -g dspam
- dodir ${DATADIR}
- keepdir ${DATADIR}
- # ${HOMEDIR}/data is a symlink to ${DATADIR}
- dosym ${DATADIR} ${HOMEDIR}/data
-
- # keeps dspam log in /var/log
- diropts -m0775 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
-
- # make install
- sed -e 's/rm -f ..mandir.\(.*\)/rm -f ${D}${mandir}\1/g' \
- -e 's/ln -s ..mandir.\(.*\) ..mandir.\(.*3\)/ln -s ${mandir}\1.gz ${D}${mandir}\2.gz/g' \
- -i Makefile
- make DESTDIR=${D} etcdest=${D}${HOMEDIR} sysconfdir=${D}${HOMEDIR} install || die
- chmod 4755 ${D}/usr/bin/dspam
-
- # documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
- dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
- if use mysql; then
- newdoc tools.mysql_drv/README
- elif use postgres ; then
- newdoc tools.pgsql_drv/README
- elif use oci8 ; then
- newdoc tools.ora_drv/README
- elif use sqlite ; then
- newdoc tools.sqlite_drv/README
- fi
-
- # build some initial configuration data
- [ -f ${HOMEDIR}/dspam.conf ] && cp ${HOMEDIR}/dspam.conf ${D}${HOMEDIR}/dspam.conf
- if [ ! -f ${HOMEDIR}/dspam.conf ]; then
- if use cyrus; then
- echo "UntrustedDeliveryAgent /usr/lib/cyrus/deliver %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/lib/cyrus/deliver %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use exim; then
- echo "UntrustedDeliveryAgent /usr/sbin/exim -oMr spam-scanned %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/exim -oMr spam-scanned %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use maildrop; then
- echo "UntrustedDeliveryAgent /usr/bin/maildrop -d %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/bin/maildrop -d %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use procmail; then
- echo "UntrustedDeliveryAgent /usr/bin/procmail" >> ${D}${HOMEDIR}/dspam.conf
- else
- echo "UntrustedDeliveryAgent /usr/sbin/sendmail" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/sendmail:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- fi
- fi
- chown dspam.dspam ${D}${HOMEDIR}/dspam.conf
- chmod 644 ${D}${HOMEDIR}/dspam.conf
-
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # database related configuration and scripts
- if use mysql; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/mysql.data | head -n 1 )"
- else
- # Create the mysql.data file
- echo "MySQLServer /var/run/mysqld/mysqld.sock" >> ${T}/mysql.data
- echo "MySQLPort" >> ${T}/mysql.data
- echo "MySQLUser dspam" >> ${T}/mysql.data
- echo "MySQLPass ${PASSWORD}" >> ${T}/mysql.data
- echo "MySQLDb dspam" >> ${T}/mysql.data
- echo "MySQLCompress true" >> ${T}/mysql.data
- [ -z "`grep '^MySQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/mysql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^MySQL[A-Za-z]* *//g' -i ${T}/mysql.data
- doins ${T}/mysql.data
- fi
-
- newins tools.mysql_drv/mysql_objects-space.sql mysql_objects-space.sql
- newins tools.mysql_drv/mysql_objects-speed.sql mysql_objects-speed.sql
- newins tools.mysql_drv/mysql_objects-4.1.sql mysql_objects-4.1.sql
- newins tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins tools.mysql_drv/neural.sql mysql_neural.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
- newins tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
- newins ${FILESDIR}/upgrade.sql mysql_upgrade.sql
- elif use postgres ; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/pgsql.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "PgSQLServer 127.0.0.1" >> ${T}/pgsql.data
- echo "PgSQLPort 5432" >> ${T}/pgsql.data
- echo "PgSQLUser dspam" >> ${T}/pgsql.data
- echo "PgSQLPass ${PASSWORD}" >> ${T}/pgsql.data
- echo "PgSQLDb dspam" >> ${T}/pgsql.data
- [ -z "`grep '^PgSQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/pgsql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^PgSQL[A-Za-z]* *//g' -i ${T}/pgsql.data
- doins ${T}/pgsql.data
- fi
-
- newins tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- newins tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- newins tools.pgsql_drv/purge.sql pgsql_purge.sql
-
- elif use oci8 ; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/oracle.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/oracle.data | head -n 1 )"
- else
- # Create the oracle.data file
- echo "OraServer (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))" >>${T}/oracle.data
- echo "OraUser dspam" >>${T}/oracle.data
- echo "OraPass ${PASSWORD}" >>${T}/oracle.data
- echo "OraSchema dspam" >>${T}/oracle.data
- [ -z "`grep '^Ora' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/oracle.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^Ora[A-Za-z]* *//g' -i ${T}/oracle.data
- doins ${T}/oracle.data
- fi
-
- newins tools.ora_drv/oral_objects.sql ora_objects.sql
- newins tools.ora_drv/virtual_users.sql ora_virtual_users.sql
- newins tools.ora_drv/purge.sql ora_purge.sql
- elif use sqlite ; then
- newins tools.sqlite_drv/purge.sql sqlite_purge.sql
- fi
-
- # installs the cron job to the cron directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/cron.daily
- keepdir /etc/cron.daily
- exeinto /etc/cron.daily
- exeopts -m0755 -o dspam -g dspam
- doexe ${FILESDIR}/dspam.cron
-
- # installs the logrotation scripts to the logrotate.d directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/logrotate.d
- keepdir /etc/logrotate.d
- insinto /etc/logrotate.d
- insopts -m0755 -o dspam -g dspam
- newins ${FILESDIR}/logrotate.dspam dspam
-
- # dspam enviroment
- echo -ne "CONFIG_PROTECT_MASK=\"${HOMEDIR}\"\n\n" > ${T}/40dspam
- doenvd ${T}/40dspam || die
-}
-
-pkg_postinst() {
- if use mysql || use postgres; then
- einfo "To setup dspam to run out-of-the-box on your system with a mysql or pgsql database, run:"
- einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
- fi
- if use exim ; then
- echo
- einfo "To use dspam in conjunction with your exim system, you should read the README"
- fi
-}
-
-pkg_config () {
- if use mysql ; then
- [[ -f ${HOMEDIR}/mysql.data ]] && mv -f ${HOMEDIR}/mysql.data ${HOMEDIR}
- DSPAM_MySQL_USER="$(head -n 3 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_PWD="$(head -n 4 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_DB="$(head -n 5 ${HOMEDIR}/mysql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your MySQL root password"
- ewarn ""
-
- einfo "Creating DSPAM MySQL database \"${DSPAM_MySQL_DB}\""
- /usr/bin/mysqladmin -u root -p create ${DSPAM_MySQL_DB}
-
- 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" ]] && break
- done
-
- if [ "${DSPAM_MySQL_DB_Type}" == "1" ]
- then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-space.sql
- else
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-speed.sql
- fi
-
- einfo "Creating DSPAM MySQL database for virtual users"
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_virtual_users.sql
-
- if use neural ; then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_neural.sql
- fi
-
- einfo "Creating DSPAM MySQL user \"${DSPAM_MySQL_USER}\""
- /usr/bin/mysql -u root -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
- elif use postgres ; then
- [[ -f ${HOMEDIR}/pgsql.data ]] && mv -f ${HOMEDIR}/pgsql.data ${HOMEDIR}
- DSPAM_PgSQL_USER="$(head -n 3 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_PWD="$(head -n 4 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_DB="$(head -n 5 ${HOMEDIR}/pgsql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your PgSQL postgres password"
- ewarn ""
-
- einfo "Creating DSPAM PostgreSQL user \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE USER ${DSPAM_PgSQL_USER} WITH PASSWORD '${DSPAM_PgSQL_PWD}' NOCREATEDB NOCREATEUSER;" 1>/dev/null 2>&1
-
- einfo "Creating DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE DATABASE ${DSPAM_PgSQL_DB};" 1>/dev/null 2>&1
-
- einfo "Getting DSPAM PostgreSQL userid for \"${DSPAM_PgSQL_USER}\""
- DSPAM_PgSQL_USERID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT usesysid FROM pg_user WHERE usename='${DSPAM_PgSQL_USER}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " UserID: ${DSPAM_PgSQL_USERID}"
-
- einfo "Getting DSPAM PostgreSQL databaseid for \"${DSPAM_PgSQL_DB}\""
- DSPAM_PgSQL_DBID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT datdba FROM pg_database WHERE datname='${DSPAM_PgSQL_DB}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " DBID: ${DSPAM_PgSQL_DBID}"
-
- einfo "Changing owner of DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\" to \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "UPDATE pg_database SET datdba=${DSPAM_PgSQL_USERID} WHERE datname='${DSPAM_PgSQL_DB}';" 1>/dev/null 2>&1
-
- 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 ${HOMEDIR}/pgsql_objects.sql 1>/dev/null 2>&1
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${HOMEDIR}/pgsql_virtual_users.sql 1>/dev/null 2>&1
-
- einfo "Grant privileges to DSPAM PostgreSQL objects to \"${DSPAM_PgSQL_USER}\""
- for foo in $(/usr/bin/psql -t -d ${DSPAM_PgSQL_DB} -U postgres -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'dspam\%';")
- do
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON TABLE ${foo} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- done
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE ${DSPAM_PgSQL_DB} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON SCHEMA public TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- elif use oci8 ; then
- [[ -f ${HOMEDIR}/oracle.data ]] && mv -f ${HOMEDIR}/oracle.data ${HOMEDIR}
- elif use sqlite ; then
- einfo "sqlite_drv will automatically create the necessary database"
- einfo "objects for each user upon first use of DSPAM by that user."
- fi
-
-}
+++ /dev/null
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.1.ebuild,v 1.7 2005/01/04 01:32:07 st_lim Exp $
-
-inherit eutils
-
-S=${WORKDIR}/${PN}-${PV}
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
-LICENSE="GPL-2"
-
-IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite"
-DEPEND="exim? ( >=mail-mta/exim-4.34 )
- mysql? ( >=dev-db/mysql-3.23 ) || ( >=sys-libs/db-4.0 )
- sqlite? ( >=dev-db/sqlite-3.0.6 )
- maildrop? ( >=mail-filter/maildrop-1.5.3 )
- postgres? ( >=dev-db/postgresql-7.4.3 )
- procmail? ( >=mail-filter/procmail-3.22 )
- x86? ( cyrus? ( >=net-mail/cyrus-imapd-2.1.15 ) )
- "
-RDEPEND="virtual/cron
- app-admin/logrotate"
-KEYWORDS="~x86 ~ppc ~alpha ~ia64"
-SLOT="0"
-
-# some FHS-like structure
-HOMEDIR="/etc/mail/dspam"
-DATADIR="/var/spool/dspam"
-LOGDIR="/var/log/dspam"
-
-pkg_setup() {
- if (use mysql && use postgres) || \
- (use mysql && use oci8) || \
- (use mysql && use sqlite) || \
- (use postgres && use oci8) || \
- (use postgres && use sqlite) || \
- (use sqlite && use oci8); then
- echo
- ewarn "You have two of either \"mysql\", \"postgres\", \"oci8\" or \"sqlite\" in your USE flags."
- ewarn "Will default to MySQL as your dspam database backend."
- ewarn "If you want to build with Postgres/Oracle/SQLite support; hit Control-C now."
- ewarn "Change your USE flag -mysql and emerge again."
- echo
- has_version ">=sys-apps/portage-2.0.50" && (
- einfo "It would be best practice to add the set of USE flags that you use for this"
- einfo "package to the file: /etc/portage/package.use. Example:"
- einfo "\`echo \"net-mail/dspam -mysql postgres -oci8 -sqlite\" >> /etc/portage/package.use\`"
- einfo "to build dspam with Postgres database as your dspam backend."
- )
- echo
- ewarn "Waiting 30 seconds before starting..."
- ewarn "(Control-C to abort)..."
- epause 30
- fi
- id dspam 2>/dev/null || enewgroup dspam 65532
- id dspam 2>/dev/null || enewuser dspam 65532 /bin/bash ${HOMEDIR} dspam
-}
-
-src_compile() {
- local myconf
-
- # these are the default settings
- myconf="${myconf} --with-signature-life=14"
- myconf="${myconf} --enable-broken-return-codes"
- myconf="${myconf} --enable-experimental"
- myconf="${myconf} --enable-long-username"
- myconf="${myconf} --enable-robinson"
- #myconf="${myconf} --enable-chi-square"
- myconf="${myconf} --enable-robinson-pvalues"
- #myconf="${myconf} --enable-broken-mta"
- myconf="${myconf} --enable-large-scale"
- #myconf="${myconf} --enable-domain-scale"
-
- myconf="${myconf} --with-dspam-mode=4755"
- myconf="${myconf} --with-dspam-owner=dspam"
- myconf="${myconf} --with-dspam-group=dspam"
- myconf="${myconf} --enable-homedir --with-dspam-home=${HOMEDIR} --sysconfdir=${HOMEDIR}"
- myconf="${myconf} --with-logdir=${LOGDIR}"
-
- # enables support for debugging (touch /etc/dspam/.debug to turn on)
- # optional: even MORE debugging output, use with extreme caution!
- use debug && myconf="${myconf} --enable-debug --enable-verbose-debug"
-
- # select storage driver
- if use mysql; then
- myconf="${myconf} --with-storage-driver=mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/lib/mysql"
- myconf="${myconf} --with-client-compression"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use postgres ; then
- myconf="${myconf} --with-storage-driver=pgsql_drv"
- myconf="${myconf} --with-pgsql-includes=/usr/include/postgresql"
- myconf="${myconf} --with-pgsql-libraries=/usr/lib/postgresql"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use oci8 ; then
- myconf="${myconf} --with-storage-driver=ora_drv"
- myconf="${myconf} --with-oracle-home=${ORACLE_HOME}"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # I am in no way a Oracle specialist. If someone knows
- # how to query the version of Oracle, then let me know.
- if (expr ${ORACLE_HOME/*\/} : 10 1>/dev/null 2>&1)
- then
- --with-oracle-version=MAJOR
- myconf="${myconf} --with-oracle-version=10"
- fi
- elif use sqlite ; then
- myconf="${myconf} --with-storage-driver=sqlite_drv"
- myconf="${myconf} --enable-virtual-users"
-
- else
- myconf="${myconf} --with-storage-driver=libdb4_drv"
- fi
-
- econf ${myconf} || die
- emake || die
-
-}
-
-src_install () {
- # open up perms on /etc/mail/dspam
- diropts -m0775 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}
-
- # keeps dspam data in /var
- diropts -m0775 -o dspam -g dspam
- dodir ${DATADIR}
- keepdir ${DATADIR}
-
- # keeps dspam log in /var/log
- diropts -m0775 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
- # ${HOMEDIR}/data is a symlink to ${DATADIR}
- dosym ${DATADIR} ${HOMEDIR}/data
-
- # make install
- sed -e 's/rm -f ..mandir.\(.*\)/rm -f ${D}${mandir}\1/g' \
- -e 's/ln -s ..mandir.\(.*\) ..mandir.\(.*3\)/ln -s ${mandir}\1.gz ${D}${mandir}\2.gz/g' \
- -i Makefile
- make DESTDIR=${D} install || die
- chmod 4755 ${D}/usr/bin/dspam
-
- # documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
- dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
- if use mysql; then
- newdoc tools.mysql_drv/README
- elif use postgres ; then
- newdoc tools.pgsql_drv/README
- elif use oci8 ; then
- newdoc tools.ora_drv/README
- elif use sqlite ; then
- newdoc tools.sqlite_drv/README
- fi
-
- # build some initial configuration data
- [ -f ${HOMEDIR}/dspam.conf ] && cp ${HOMEDIR}/dspam.conf ${D}${HOMEDIR}/dspam.conf
- if [ ! -f ${HOMEDIR}/dspam.conf ]; then
- if use cyrus; then
- echo "UntrustedDeliveryAgent /usr/lib/cyrus/deliver %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/lib/cyrus/deliver %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use exim; then
- echo "UntrustedDeliveryAgent /usr/sbin/exim -oMr spam-scanned %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/exim -oMr spam-scanned %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use maildrop; then
- echo "UntrustedDeliveryAgent /usr/bin/maildrop -d %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/bin/maildrop -d %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use procmail; then
- echo "UntrustedDeliveryAgent /usr/bin/procmail" >> ${D}${HOMEDIR}/dspam.conf
- else
- echo "UntrustedDeliveryAgent /usr/sbin/sendmail" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/sendmail:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- fi
- fi
- chown dspam.dspam ${D}${HOMEDIR}/dspam.conf
- chmod 644 ${D}${HOMEDIR}/dspam.conf
-
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # database related configuration and scripts
- if use mysql; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/mysql.data | head -n 1 )"
- else
- # Create the mysql.data file
- echo "MySQLServer /var/run/mysqld/mysqld.sock" >> ${T}/mysql.data
- echo "MySQLPort" >> ${T}/mysql.data
- echo "MySQLUser dspam" >> ${T}/mysql.data
- echo "MySQLPass ${PASSWORD}" >> ${T}/mysql.data
- echo "MySQLDb dspam" >> ${T}/mysql.data
- echo "MySQLCompress true" >> ${T}/mysql.data
- [ -z "`grep '^MySQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/mysql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^MySQL[A-Za-z]* *//g' -i ${T}/mysql.data
- doins ${T}/mysql.data
- fi
-
- newins tools.mysql_drv/mysql_objects-space.sql mysql_objects-space.sql
- newins tools.mysql_drv/mysql_objects-speed.sql mysql_objects-speed.sql
- newins tools.mysql_drv/mysql_objects-4.1.sql mysql_objects-4.1.sql
- newins tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins tools.mysql_drv/neural.sql mysql_neural.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
- newins tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
- newins ${FILESDIR}/upgrade.sql mysql_upgrade.sql
- elif use postgres ; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/pgsql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/pgsql.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "PgSQLServer 127.0.0.1" >> ${T}/pgsql.data
- echo "PgSQLPort 5432" >> ${T}/pgsql.data
- echo "PgSQLUser dspam" >> ${T}/pgsql.data
- echo "PgSQLPass ${PASSWORD}" >> ${T}/pgsql.data
- echo "PgSQLDb dspam" >> ${T}/pgsql.data
- [ -z "`grep '^PgSQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/pgsql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^PgSQL[A-Za-z]* *//g' -i ${T}/pgsql.data
- doins ${T}/pgsql.data
- fi
-
- newins tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- newins tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- newins tools.pgsql_drv/purge.sql pgsql_purge.sql
-
- elif use oci8 ; then
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
-
- if [ -f ${HOMEDIR}/oracle.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/oracle.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "OraServer (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))" >>${T}/oracle.data
- echo "OraUser dspam" >>${T}/oracle.data
- echo "OraPass ${PASSWORD}" >>${T}/oracle.data
- echo "OraSchema dspam" >>${T}/oracle.data
- [ -z "`grep '^Ora' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/oracle.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^Ora[A-Za-z]* *//g' -i ${T}/oracle.data
- doins ${T}/oracle.data
- fi
-
- newins tools.ora_drv/oral_objects.sql ora_objects.sql
- newins tools.ora_drv/virtual_users.sql ora_virtual_users.sql
- newins tools.ora_drv/purge.sql ora_purge.sql
- elif use sqlite ; then
- newins tools.sqlite_drv/purge.sql sqlite_purge.sql
- fi
-
- # installs the cron job to the cron directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/cron.daily
- keepdir /etc/cron.daily
- exeinto /etc/cron.daily
- exeopts -m0755 -o dspam -g dspam
- doexe ${FILESDIR}/dspam.cron
-
- # installs the logrotation scripts to the logrotate.d directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/logrotate.d
- keepdir /etc/logrotate.d
- insinto /etc/logrotate.d
- insopts -m0755 -o dspam -g dspam
- newins ${FILESDIR}/logrotate.dspam dspam
-
- # dspam enviroment
- echo -ne "CONFIG_PROTECT_MASK=\"${HOMEDIR}\"\n\n" > ${T}/40dspam
- doenvd ${T}/40dspam || die
-}
-
-pkg_postinst() {
- if use mysql || use postgres; then
- einfo "To setup dspam to run out-of-the-box on your system with a mysql or pgsql database, run:"
- einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
- fi
- if use exim ; then
- echo
- einfo "To use dspam in conjunction with your exim system, you should read the README"
- fi
-}
-
-pkg_config () {
- if use mysql ; then
- [[ -f ${HOMEDIR}/mysql.data ]] && mv -f ${HOMEDIR}/mysql.data ${HOMEDIR}
- DSPAM_MySQL_USER="$(head -n 3 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_PWD="$(head -n 4 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_DB="$(head -n 5 ${HOMEDIR}/mysql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your MySQL root password"
- ewarn ""
-
- einfo "Creating DSPAM MySQL database \"${DSPAM_MySQL_DB}\""
- /usr/bin/mysqladmin -u root -p create ${DSPAM_MySQL_DB}
-
- 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" ]] && break
- done
-
- if [ "${DSPAM_MySQL_DB_Type}" == "1" ]
- then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-space.sql
- else
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-speed.sql
- fi
-
- einfo "Creating DSPAM MySQL database for virtual users"
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_virtual_users.sql
-
- if use neural ; then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_neural.sql
- fi
-
- einfo "Creating DSPAM MySQL user \"${DSPAM_MySQL_USER}\""
- /usr/bin/mysql -u root -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
- elif use postgres ; then
- [[ -f ${HOMEDIR}/pgsql.data ]] && mv -f ${HOMEDIR}/pgsql.data ${HOMEDIR}
- DSPAM_PgSQL_USER="$(head -n 3 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_PWD="$(head -n 4 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_DB="$(head -n 5 ${HOMEDIR}/pgsql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your PgSQL postgres password"
- ewarn ""
-
- einfo "Creating DSPAM PostgreSQL user \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE USER ${DSPAM_PgSQL_USER} WITH PASSWORD '${DSPAM_PgSQL_PWD}' NOCREATEDB NOCREATEUSER;" 1>/dev/null 2>&1
-
- einfo "Creating DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE DATABASE ${DSPAM_PgSQL_DB};" 1>/dev/null 2>&1
-
- einfo "Getting DSPAM PostgreSQL userid for \"${DSPAM_PgSQL_USER}\""
- DSPAM_PgSQL_USERID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT usesysid FROM pg_user WHERE usename='${DSPAM_PgSQL_USER}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " UserID: ${DSPAM_PgSQL_USERID}"
-
- einfo "Getting DSPAM PostgreSQL databaseid for \"${DSPAM_PgSQL_DB}\""
- DSPAM_PgSQL_DBID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT datdba FROM pg_database WHERE datname='${DSPAM_PgSQL_DB}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " DBID: ${DSPAM_PgSQL_DBID}"
-
- einfo "Changing owner of DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\" to \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "UPDATE pg_database SET datdba=${DSPAM_PgSQL_USERID} WHERE datname='${DSPAM_PgSQL_DB}';" 1>/dev/null 2>&1
-
- 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 ${HOMEDIR}/pgsql_objects.sql 1>/dev/null 2>&1
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${HOMEDIR}/pgsql_virtual_users.sql 1>/dev/null 2>&1
-
- einfo "Grant privileges to DSPAM PostgreSQL objects to \"${DSPAM_PgSQL_USER}\""
- for foo in $(/usr/bin/psql -t -d ${DSPAM_PgSQL_DB} -U postgres -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'dspam\%';")
- do
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON TABLE ${foo} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- done
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE ${DSPAM_PgSQL_DB} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON SCHEMA public TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- elif use oci8 ; then
- [[ -f ${HOMEDIR}/oracle.data ]] && mv -f ${HOMEDIR}/oracle.data ${HOMEDIR}
- elif use sqlite ; then
- einfo "sqlite_drv will automatically create the necessary database"
- einfo "objects for each user upon first use of DSPAM by that user."
- fi
-
-}
+++ /dev/null
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.3.ebuild,v 1.2 2005/01/04 01:32:07 st_lim Exp $
-
-inherit eutils
-
-S=${WORKDIR}/${PN}-${PV}
-DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
-LICENSE="GPL-2"
-
-IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite large-domain"
-DEPEND="exim? ( >=mail-mta/exim-4.34 )
- mysql? ( >=dev-db/mysql-3.23 ) || ( >=sys-libs/db-4.0 )
- sqlite? ( >=dev-db/sqlite-2.7.7 )
- maildrop? ( >=mail-filter/maildrop-1.5.3 )
- postgres? ( >=dev-db/postgresql-7.4.3 )
- procmail? ( >=mail-filter/procmail-3.22 )
- x86? ( cyrus? ( >=net-mail/cyrus-imapd-2.1.15 ) )
- "
-RDEPEND="sys-apps/cronbase
- app-admin/logrotate"
-KEYWORDS="~x86 ~ppc ~alpha ~ia64"
-SLOT="0"
-
-# some FHS-like structure
-HOMEDIR="/etc/mail/dspam"
-DATADIR="/var/spool/dspam"
-LOGDIR="/var/log/dspam"
-
-pkg_setup() {
- if (use mysql && use postgres) || \
- (use mysql && use oci8) || \
- (use mysql && use sqlite) || \
- (use postgres && use oci8) || \
- (use postgres && use sqlite) || \
- (use sqlite && use oci8); then
- echo
- ewarn "You have two of either \"mysql\", \"postgres\", \"oci8\" or \"sqlite\" in your USE flags."
- ewarn "Will default to MySQL as your dspam database backend."
- ewarn "If you want to build with Postgres/Oracle/SQLite support; hit Control-C now."
- ewarn "Change your USE flag -mysql and emerge again."
- echo
- has_version ">=sys-apps/portage-2.0.50" && (
- einfo "It would be best practice to add the set of USE flags that you use for this"
- einfo "package to the file: /etc/portage/package.use. Example:"
- einfo "\`echo \"net-mail/dspam -mysql postgres -oci8 -sqlite\" >> /etc/portage/package.use\`"
- einfo "to build dspam with Postgres database as your dspam backend."
- )
- echo
- ewarn "Waiting 30 seconds before starting..."
- ewarn "(Control-C to abort)..."
- epause 30
- fi
- id dspam 2>/dev/null || enewgroup dspam 65532
- id dspam 2>/dev/null || enewuser dspam 65532 /bin/bash ${HOMEDIR} dspam
-}
-
-src_compile() {
- local myconf
-
- # these are the default settings
- myconf="${myconf} --with-signature-life=14"
- myconf="${myconf} --enable-broken-return-codes"
- myconf="${myconf} --enable-experimental"
- myconf="${myconf} --enable-long-username"
- myconf="${myconf} --enable-robinson"
- #myconf="${myconf} --enable-chi-square"
- myconf="${myconf} --enable-robinson-pvalues"
- #myconf="${myconf} --enable-broken-mta"
- use large-domain && myconf="${myconf} --enable-large-scale" || myconf="${myconf} --enable-domain-scale"
-
- myconf="${myconf} --with-dspam-mode=4755"
- myconf="${myconf} --with-dspam-owner=dspam"
- myconf="${myconf} --with-dspam-group=dspam"
- myconf="${myconf} --with-dspam-home=${HOMEDIR} --sysconfdir=${HOMEDIR}"
- myconf="${myconf} --with-logdir=${LOGDIR}"
-
- # enables support for debugging (touch /etc/dspam/.debug to turn on)
- # optional: even MORE debugging output, use with extreme caution!
- use debug && myconf="${myconf} --enable-debug --enable-verbose-debug"
-
- # select storage driver
- if use mysql; then
- myconf="${myconf} --with-storage-driver=mysql_drv"
- myconf="${myconf} --with-mysql-includes=/usr/include/mysql"
- myconf="${myconf} --with-mysql-libraries=/usr/lib/mysql"
- myconf="${myconf} --with-client-compression"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use postgres ; then
- myconf="${myconf} --with-storage-driver=pgsql_drv"
- myconf="${myconf} --with-pgsql-includes=/usr/include/postgresql"
- myconf="${myconf} --with-pgsql-libraries=/usr/lib/postgresql"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # an experimental feature available with MySQL and PgSQL backend
- if use neural ; then
- myconf="${myconf} --enable-neural-networking"
- fi
- elif use oci8 ; then
- myconf="${myconf} --with-storage-driver=ora_drv"
- myconf="${myconf} --with-oracle-home=${ORACLE_HOME}"
- myconf="${myconf} --enable-virtual-users"
- myconf="${myconf} --enable-preferences-extension"
-
- # I am in no way a Oracle specialist. If someone knows
- # how to query the version of Oracle, then let me know.
- if (expr ${ORACLE_HOME/*\/} : 10 1>/dev/null 2>&1)
- then
- --with-oracle-version=MAJOR
- myconf="${myconf} --with-oracle-version=10"
- fi
- elif use sqlite ; then
- myconf="${myconf} --with-storage-driver=sqlite_drv"
- myconf="${myconf} --enable-virtual-users"
-
- else
- myconf="${myconf} --with-storage-driver=libdb4_drv"
- fi
-
- econf ${myconf} || die
- emake || die
-
-}
-
-src_install () {
- # open up perms on /etc/mail/dspam
- diropts -m0775 -o dspam -g dspam
- dodir ${HOMEDIR}
- keepdir ${HOMEDIR}
-
- # keeps dspam data in /var
- diropts -m0775 -o dspam -g dspam
- dodir ${DATADIR}
- keepdir ${DATADIR}
-
- # keeps dspam log in /var/log
- diropts -m0775 -o dspam -g dspam
- dodir ${LOGDIR}
- keepdir ${LOGDIR}
- # ${HOMEDIR}/data is a symlink to ${DATADIR}
- dosym ${DATADIR} ${HOMEDIR}/data
-
- # make install
- sed -e 's/rm -f ..mandir.\(.*\)/rm -f ${D}${mandir}\1/g' \
- -e 's/ln -s ..mandir.\(.*\) ..mandir.\(.*3\)/ln -s ${mandir}\1.gz ${D}${mandir}\2.gz/g' \
- -i Makefile
- make DESTDIR=${D} install || die
- chmod 4755 ${D}/usr/bin/dspam
-
- # documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
- dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
- if use mysql; then
- dodoc tools.mysql_drv/README
- elif use postgres ; then
- dodoc tools.pgsql_drv/README
- elif use oci8 ; then
- dodoc tools.ora_drv/README
- elif use sqlite ; then
- dodoc tools.sqlite_drv/README
- fi
-
- # build some initial configuration data
- [ -f ${HOMEDIR}/dspam.conf ] && cp ${HOMEDIR}/dspam.conf ${D}${HOMEDIR}/dspam.conf
- if [ ! -f ${HOMEDIR}/dspam.conf ]; then
- if use cyrus; then
- echo "UntrustedDeliveryAgent /usr/lib/cyrus/deliver %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/lib/cyrus/deliver %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use exim; then
- echo "UntrustedDeliveryAgent /usr/sbin/exim -oMr spam-scanned %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/exim -oMr spam-scanned %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use maildrop; then
- echo "UntrustedDeliveryAgent /usr/bin/maildrop -d %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/bin/maildrop -d %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- elif use procmail; then
- echo "UntrustedDeliveryAgent /usr/bin/procmail" >> ${D}${HOMEDIR}/dspam.conf
- else
- echo "UntrustedDeliveryAgent /usr/sbin/sendmail" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/sendmail:g' \
- -i ${D}${HOMEDIR}/dspam.conf
- fi
- fi
- chown dspam.dspam ${D}${HOMEDIR}/dspam.conf
- chmod 644 ${D}${HOMEDIR}/dspam.conf
-
- local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
-
- # database related configuration and scripts
- insinto ${HOMEDIR}
- insopts -m644 -o dspam -g dspam
- if use mysql; then
-
- if [ -f ${HOMEDIR}/mysql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/mysql.data | head -n 1 )"
- else
- # Create the mysql.data file
- echo "MySQLServer /var/run/mysqld/mysqld.sock" >> ${T}/mysql.data
- echo "MySQLPort" >> ${T}/mysql.data
- echo "MySQLUser dspam" >> ${T}/mysql.data
- echo "MySQLPass ${PASSWORD}" >> ${T}/mysql.data
- echo "MySQLDb dspam" >> ${T}/mysql.data
- echo "MySQLCompress true" >> ${T}/mysql.data
- [ -z "`grep '^MySQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/mysql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^MySQL[A-Za-z]* *//g' -i ${T}/mysql.data
- doins ${T}/mysql.data
- fi
-
- newins tools.mysql_drv/mysql_objects-space.sql mysql_objects-space.sql
- newins tools.mysql_drv/mysql_objects-speed.sql mysql_objects-speed.sql
- newins tools.mysql_drv/mysql_objects-4.1.sql mysql_objects-4.1.sql
- newins tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins tools.mysql_drv/neural.sql mysql_neural.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
- newins tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
- newins ${FILESDIR}/upgrade.sql mysql_upgrade.sql
- elif use postgres ; then
- if [ -f ${HOMEDIR}/pgsql.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/pgsql.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "PgSQLServer 127.0.0.1" >> ${T}/pgsql.data
- echo "PgSQLPort 5432" >> ${T}/pgsql.data
- echo "PgSQLUser dspam" >> ${T}/pgsql.data
- echo "PgSQLPass ${PASSWORD}" >> ${T}/pgsql.data
- echo "PgSQLDb dspam" >> ${T}/pgsql.data
- [ -z "`grep '^PgSQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/pgsql.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^PgSQL[A-Za-z]* *//g' -i ${T}/pgsql.data
- doins ${T}/pgsql.data
- fi
-
- newins tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- newins tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- newins tools.pgsql_drv/purge.sql pgsql_purge.sql
-
- elif use oci8 ; then
- if [ -f ${HOMEDIR}/oracle.data ]; then
- # Use an existing password
- PASSWORD="$(tail -n 2 ${HOMEDIR}/oracle.data | head -n 1 )"
- else
- # Create the pgsql.data file
- echo "OraServer (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))" >>${T}/oracle.data
- echo "OraUser dspam" >>${T}/oracle.data
- echo "OraPass ${PASSWORD}" >>${T}/oracle.data
- echo "OraSchema dspam" >>${T}/oracle.data
- [ -z "`grep '^Ora' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/oracle.data >> ${D}/${HOMEDIR}/dspam.conf
- sed -e 's/^Ora[A-Za-z]* *//g' -i ${T}/oracle.data
- doins ${T}/oracle.data
- fi
-
- newins tools.ora_drv/oral_objects.sql ora_objects.sql
- newins tools.ora_drv/virtual_users.sql ora_virtual_users.sql
- newins tools.ora_drv/purge.sql ora_purge.sql
- elif use sqlite ; then
- newins tools.sqlite_drv/purge.sql sqlite_purge.sql
- fi
-
- # installs the cron job to the cron directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/cron.daily
- keepdir /etc/cron.daily
- exeinto /etc/cron.daily
- exeopts -m0755 -o dspam -g dspam
- doexe ${FILESDIR}/dspam.cron
-
- # installs the logrotation scripts to the logrotate.d directory
- diropts -m0755 -o dspam -g dspam
- dodir /etc/logrotate.d
- keepdir /etc/logrotate.d
- insinto /etc/logrotate.d
- insopts -m0755 -o dspam -g dspam
- newins ${FILESDIR}/logrotate.dspam dspam
-
- # dspam enviroment
- echo -ne "CONFIG_PROTECT_MASK=\"${HOMEDIR}\"\n\n" > ${T}/40dspam
- doenvd ${T}/40dspam || die
-}
-
-pkg_postinst() {
- if use mysql || use postgres; then
- einfo "To setup dspam to run out-of-the-box on your system with a mysql or pgsql database, run:"
- einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
- fi
- if use exim ; then
- echo
- einfo "To use dspam in conjunction with your exim system, you should read the README"
- fi
-}
-
-pkg_config () {
- if use mysql ; then
- [[ -f ${HOMEDIR}/mysql.data ]] && mv -f ${HOMEDIR}/mysql.data ${HOMEDIR}
- DSPAM_MySQL_USER="$(head -n 3 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_PWD="$(head -n 4 ${HOMEDIR}/mysql.data|tail -n 1)"
- DSPAM_MySQL_DB="$(head -n 5 ${HOMEDIR}/mysql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your MySQL root password"
- ewarn ""
-
- einfo "Creating DSPAM MySQL database \"${DSPAM_MySQL_DB}\""
- /usr/bin/mysqladmin -u root -p create ${DSPAM_MySQL_DB}
-
- 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" ]] && break
- done
-
- if [ "${DSPAM_MySQL_DB_Type}" == "1" ]
- then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-space.sql
- else
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_objects-speed.sql
- fi
-
- einfo "Creating DSPAM MySQL database for virtual users"
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_virtual_users.sql
-
- if use neural ; then
- /usr/bin/mysql -u root -p ${DSPAM_MySQL_DB} < ${HOMEDIR}/mysql_neural.sql
- fi
-
- einfo "Creating DSPAM MySQL user \"${DSPAM_MySQL_USER}\""
- /usr/bin/mysql -u root -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
- elif use postgres ; then
- [[ -f ${HOMEDIR}/pgsql.data ]] && mv -f ${HOMEDIR}/pgsql.data ${HOMEDIR}
- DSPAM_PgSQL_USER="$(head -n 3 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_PWD="$(head -n 4 ${HOMEDIR}/pgsql.data|tail -n 1)"
- DSPAM_PgSQL_DB="$(head -n 5 ${HOMEDIR}/pgsql.data|tail -n 1)"
-
- ewarn "When prompted for a password, please enter your PgSQL postgres password"
- ewarn ""
-
- einfo "Creating DSPAM PostgreSQL user \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE USER ${DSPAM_PgSQL_USER} WITH PASSWORD '${DSPAM_PgSQL_PWD}' NOCREATEDB NOCREATEUSER;" 1>/dev/null 2>&1
-
- einfo "Creating DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\""
- /usr/bin/psql -d template1 -U postgres -c "CREATE DATABASE ${DSPAM_PgSQL_DB};" 1>/dev/null 2>&1
-
- einfo "Getting DSPAM PostgreSQL userid for \"${DSPAM_PgSQL_USER}\""
- DSPAM_PgSQL_USERID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT usesysid FROM pg_user WHERE usename='${DSPAM_PgSQL_USER}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " UserID: ${DSPAM_PgSQL_USERID}"
-
- einfo "Getting DSPAM PostgreSQL databaseid for \"${DSPAM_PgSQL_DB}\""
- DSPAM_PgSQL_DBID=$(/usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -t -c "SELECT datdba FROM pg_database WHERE datname='${DSPAM_PgSQL_DB}';" | head -n1 | sed "s/^[ ]*\([^ ]*\).*/\1/g")
- einfo " DBID: ${DSPAM_PgSQL_DBID}"
-
- einfo "Changing owner of DSPAM PostgreSQL database \"${DSPAM_PgSQL_DB}\" to \"${DSPAM_PgSQL_USER}\""
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "UPDATE pg_database SET datdba=${DSPAM_PgSQL_USERID} WHERE datname='${DSPAM_PgSQL_DB}';" 1>/dev/null 2>&1
-
- 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 ${HOMEDIR}/pgsql_objects.sql 1>/dev/null 2>&1
- PGUSER=${DSPAM_PgSQL_USER} PGPASSWORD=${DSPAM_PgSQL_PWD} /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U ${DSPAM_PgSQL_USER} -f ${HOMEDIR}/pgsql_virtual_users.sql 1>/dev/null 2>&1
-
- einfo "Grant privileges to DSPAM PostgreSQL objects to \"${DSPAM_PgSQL_USER}\""
- for foo in $(/usr/bin/psql -t -d ${DSPAM_PgSQL_DB} -U postgres -c "SELECT tablename FROM pg_tables WHERE tablename LIKE 'dspam\%';")
- do
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON TABLE ${foo} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- done
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE ${DSPAM_PgSQL_DB} TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- /usr/bin/psql -d ${DSPAM_PgSQL_DB} -U postgres -c "GRANT ALL PRIVILEGES ON SCHEMA public TO ${DSPAM_PgSQL_USER};" 1>/dev/null 2>&1
- elif use oci8 ; then
- [[ -f ${HOMEDIR}/oracle.data ]] && mv -f ${HOMEDIR}/oracle.data ${HOMEDIR}
- elif use sqlite ; then
- einfo "sqlite_drv will automatically create the necessary database"
- einfo "objects for each user upon first use of DSPAM by that user."
- fi
-
-}
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.4.ebuild,v 1.1 2005/01/04 01:32:07 st_lim Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.4.ebuild,v 1.2 2005/01/05 01:17:46 st_lim Exp $
inherit eutils
S=${WORKDIR}/${PN}-${PV}
DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
+SRC_URI="http://dspam.nuclearelephant.com/sources/${PN}-${PV}.tar.gz"
+HOMEPAGE="http://dspam.nuclearelephant.com/"
LICENSE="GPL-2"
IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite large-domain"
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.3.8.ebuild,v 1.2 2005/01/04 01:32:07 st_lim Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.3.8.ebuild,v 1.3 2005/01/05 01:17:46 st_lim Exp $
inherit eutils
S=${WORKDIR}/${PN}-${PV}
DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
+SRC_URI="http://dspam.nuclearelephant.com/sources/${PN}-${PV}.tar.gz"
+HOMEPAGE="http://dspam.nuclearelephant.com/"
LICENSE="GPL-2"
IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite large-domain"
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.2.2.ebuild,v 1.3 2005/01/04 01:32:07 st_lim Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/dspam-3.3.9.ebuild,v 1.1 2005/01/05 01:17:46 st_lim Exp $
inherit eutils
S=${WORKDIR}/${PN}-${PV}
DESCRIPTION="A statistical-algorithmic hybrid anti-spam filter"
-SRC_URI="http://www.nuclearelephant.com/projects/dspam/sources/${PN}-${PV}.tar.gz"
-HOMEPAGE="http://www.nuclearelephant.com/projects/dspam/index.html"
+SRC_URI="http://dspam.nuclearelephant.com/sources/${PN}-${PV}.tar.gz"
+HOMEPAGE="http://dspam.nuclearelephant.com/"
LICENSE="GPL-2"
IUSE="cyrus debug exim mysql maildrop neural oci8 postgres procmail sqlite large-domain"
chmod 4755 ${D}/usr/bin/dspam
# documentation
- dodoc CHANGELOG LICENSE README RELEASE.NOTES
+ dodoc CHANGELOG LICENSE README* RELEASE.NOTES
dodoc ${FILESDIR}/README.postfix ${FILESDIR}/README.qmail
if use mysql; then
- dodoc tools.mysql_drv/README
+ dodoc src/tools.mysql_drv/README
elif use postgres ; then
- dodoc tools.pgsql_drv/README
+ dodoc src/tools.pgsql_drv/README
elif use oci8 ; then
- dodoc tools.ora_drv/README
+ dodoc src/tools.ora_drv/README
elif use sqlite ; then
- dodoc tools.sqlite_drv/README
+ dodoc src/tools.sqlite_drv/README
fi
+ doman man/dspam*
# build some initial configuration data
- [ -f ${HOMEDIR}/dspam.conf ] && cp ${HOMEDIR}/dspam.conf ${D}${HOMEDIR}/dspam.conf
+ # Copy existing dspam.conf
+ [ -f ${HOMEDIR}/dspam.conf ] && cp ${HOMEDIR}/dspam.conf ${T}/dspam.conf
+ # If no existing dspam.conf
if [ ! -f ${HOMEDIR}/dspam.conf ]; then
+ cp ${D}${HOMEDIR}/dspam.conf ${T}/dspam.conf
if use cyrus; then
- echo "UntrustedDeliveryAgent /usr/lib/cyrus/deliver %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/lib/cyrus/deliver %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
+ echo "UntrustedDeliveryAgent /usr/lib/cyrus/deliver %u" >> ${T}/dspam.conf
+ dosed 's:/usr/bin/procmail:/usr/lib/cyrus/deliver %u:g' ${T}/dspam.conf
elif use exim; then
- echo "UntrustedDeliveryAgent /usr/sbin/exim -oMr spam-scanned %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/exim -oMr spam-scanned %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
+ echo "UntrustedDeliveryAgent /usr/sbin/exim -oMr spam-scanned %u" >> ${T}/dspam.conf
+ dosed 's:/usr/bin/procmail:/usr/sbin/exim -oMr spam-scanned %u:g' ${T}/dspam.conf
elif use maildrop; then
- echo "UntrustedDeliveryAgent /usr/bin/maildrop -d %u" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/bin/maildrop -d %u:g' \
- -i ${D}${HOMEDIR}/dspam.conf
+ echo "UntrustedDeliveryAgent /usr/bin/maildrop -d %u" >> ${T}/dspam.conf
+ dosed 's:/usr/bin/procmail:/usr/bin/maildrop -d %u:g' ${T}/dspam.conf
elif use procmail; then
- echo "UntrustedDeliveryAgent /usr/bin/procmail" >> ${D}${HOMEDIR}/dspam.conf
+ echo "UntrustedDeliveryAgent /usr/bin/procmail" >> ${T}/dspam.conf
else
- echo "UntrustedDeliveryAgent /usr/sbin/sendmail" >> ${D}${HOMEDIR}/dspam.conf
- sed -e 's:/usr/bin/procmail:/usr/sbin/sendmail:g' \
- -i ${D}${HOMEDIR}/dspam.conf
+ echo "UntrustedDeliveryAgent /usr/sbin/sendmail" >> ${T}/dspam.conf
+ sed 's:/usr/bin/procmail:/usr/sbin/sendmail:g' ${T}/dspam.conf
fi
fi
- chown dspam.dspam ${D}${HOMEDIR}/dspam.conf
- chmod 644 ${D}${HOMEDIR}/dspam.conf
local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}"
echo "MySQLPass ${PASSWORD}" >> ${T}/mysql.data
echo "MySQLDb dspam" >> ${T}/mysql.data
echo "MySQLCompress true" >> ${T}/mysql.data
- [ -z "`grep '^MySQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/mysql.data >> ${D}/${HOMEDIR}/dspam.conf
+ [ -z "`grep '^MySQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/mysql.data >> ${T}/dspam.conf
sed -e 's/^MySQL[A-Za-z]* *//g' -i ${T}/mysql.data
doins ${T}/mysql.data
fi
- newins tools.mysql_drv/mysql_objects-space.sql mysql_objects-space.sql
- newins tools.mysql_drv/mysql_objects-speed.sql mysql_objects-speed.sql
- newins tools.mysql_drv/mysql_objects-4.1.sql mysql_objects-4.1.sql
- newins tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
- newins tools.mysql_drv/neural.sql mysql_neural.sql
- newins tools.mysql_drv/purge.sql mysql_purge.sql
- newins tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
+ 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
+ newins src/tools.mysql_drv/virtual_users.sql mysql_virtual_users.sql
+ newins src/tools.mysql_drv/neural.sql mysql_neural.sql
+ newins src/tools.mysql_drv/purge.sql mysql_purge.sql
+ newins src/tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql
newins ${FILESDIR}/upgrade.sql mysql_upgrade.sql
elif use postgres ; then
if [ -f ${HOMEDIR}/pgsql.data ]; then
echo "PgSQLUser dspam" >> ${T}/pgsql.data
echo "PgSQLPass ${PASSWORD}" >> ${T}/pgsql.data
echo "PgSQLDb dspam" >> ${T}/pgsql.data
- [ -z "`grep '^PgSQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/pgsql.data >> ${D}/${HOMEDIR}/dspam.conf
+ [ -z "`grep '^PgSQL' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/pgsql.data >> ${T}/dspam.conf
sed -e 's/^PgSQL[A-Za-z]* *//g' -i ${T}/pgsql.data
doins ${T}/pgsql.data
fi
- newins tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
- newins tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
- newins tools.pgsql_drv/purge.sql pgsql_purge.sql
+ newins src/tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql
+ newins src/tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql
+ newins src/tools.pgsql_drv/purge.sql pgsql_purge.sql
elif use oci8 ; then
if [ -f ${HOMEDIR}/oracle.data ]; then
echo "OraUser dspam" >>${T}/oracle.data
echo "OraPass ${PASSWORD}" >>${T}/oracle.data
echo "OraSchema dspam" >>${T}/oracle.data
- [ -z "`grep '^Ora' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/oracle.data >> ${D}/${HOMEDIR}/dspam.conf
+ [ -z "`grep '^Ora' ${D}/${HOMEDIR}/dspam.conf`" ] && cat ${T}/oracle.data >> ${T}/dspam.conf
sed -e 's/^Ora[A-Za-z]* *//g' -i ${T}/oracle.data
doins ${T}/oracle.data
fi
- newins tools.ora_drv/oral_objects.sql ora_objects.sql
- newins tools.ora_drv/virtual_users.sql ora_virtual_users.sql
- newins tools.ora_drv/purge.sql ora_purge.sql
+ newins src/tools.ora_drv/oral_objects.sql ora_objects.sql
+ newins src/tools.ora_drv/virtual_users.sql ora_virtual_users.sql
+ newins src/tools.ora_drv/purge.sql ora_purge.sql
elif use sqlite ; then
- newins tools.sqlite_drv/purge.sql sqlite_purge.sql
+ newins src/tools.sqlite_drv/purge.sql sqlite_purge.sql
fi
+ insinto ${HOMEDIR}
+ insopts -m644 -o dspam -g dspam
+ doins ${T}/dspam.conf
# installs the cron job to the cron directory
diropts -m0755 -o dspam -g dspam
+++ /dev/null
-MD5 f5b568e8fea50faaf4c1fcabee177934 dspam-3.0.0.tar.gz 575382
+++ /dev/null
-MD5 49c9a343422ea721905f3bec9e7703fb dspam-3.1.2.tar.gz 616504
+++ /dev/null
-MD5 6ebcbc130afde2ef0dc00e95051ab362 dspam-3.2.0.tar.gz 617716
+++ /dev/null
-MD5 a4357c02ca39a68480719adf47fca67a dspam-3.2.1.tar.gz 618780
+++ /dev/null
-MD5 882f9ce3879fc71cec47bf2dcbc4f392 dspam-3.2.2.tar.gz 619691
+++ /dev/null
-MD5 0c5d62df8746332906d487d5c5ad9926 dspam-3.2.3.tar.gz 620153
--- /dev/null
+MD5 827a3613202c8685baaeb6bd012f82b1 dspam-3.3.9.tar.gz 656327