diff options
author | Alin Năstac <mrness@gentoo.org> | 2009-01-12 07:57:52 +0000 |
---|---|---|
committer | Alin Năstac <mrness@gentoo.org> | 2009-01-12 07:57:52 +0000 |
commit | 09cbfe0fe9cc2d0a388e06a7fdbc7db115cb07d7 (patch) | |
tree | d8fe04e64e8aafd5308c9689cce651d594fc0841 | |
parent | EAPI=2; add use-based dep for media-libs/sdl-image (bug #206393) (diff) | |
download | historical-09cbfe0fe9cc2d0a388e06a7fdbc7db115cb07d7.tar.gz historical-09cbfe0fe9cc2d0a388e06a7fdbc7db115cb07d7.tar.bz2 historical-09cbfe0fe9cc2d0a388e06a7fdbc7db115cb07d7.zip |
Remove obsolete versions.
Package-Manager: portage-2.1.4.5
-rw-r--r-- | mail-filter/dspam/ChangeLog | 8 | ||||
-rw-r--r-- | mail-filter/dspam/Manifest | 15 | ||||
-rw-r--r-- | mail-filter/dspam/dspam-3.8.0-r13.ebuild | 529 | ||||
-rw-r--r-- | mail-filter/dspam/dspam-3.8.0-r14.ebuild | 529 |
4 files changed, 17 insertions, 1064 deletions
diff --git a/mail-filter/dspam/ChangeLog b/mail-filter/dspam/ChangeLog index 424b7ec2e146..8b2ca282a2e6 100644 --- a/mail-filter/dspam/ChangeLog +++ b/mail-filter/dspam/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for mail-filter/dspam -# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.125 2008/11/07 10:25:06 armin76 Exp $ +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/mail-filter/dspam/ChangeLog,v 1.126 2009/01/12 07:57:52 mrness Exp $ + + 12 Jan 2009; Alin Năstac <mrness@gentoo.org> -dspam-3.8.0-r13.ebuild, + -dspam-3.8.0-r14.ebuild: + Remove obsolete versions. 07 Nov 2008; Raúl Porcel <armin76@gentoo.org> dspam-3.8.0-r15.ebuild: sparc stable wrt #244232 diff --git a/mail-filter/dspam/Manifest b/mail-filter/dspam/Manifest index 0628f8c05fef..b6b1335a456f 100644 --- a/mail-filter/dspam/Manifest +++ b/mail-filter/dspam/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + AUX README.postfix 309 RMD160 34f35ffa4e393ba1791cef2800bc8b4d4f49df5b SHA1 c004a3e7d54dfdd6fae8a654e44d0b9240935739 SHA256 e0928cf2d734e79419c30a4ee829962351ef5a1247ed1d1ddf3b58410e14828b AUX README.qmail 2317 RMD160 ebdd90be77441540848caf39b6fcde3d332b2b93 SHA1 081b28b6c261644fe3f799e3bbb5aedf59b00b8f SHA256 c70a32eb183401f3d36b8e13c1e298875692b8a9d3f34151ae42b172dd6f064a AUX dspam.cron-r3 9269 RMD160 8063c0d0b5a7150a4aa9ba98e62795adca154e20 SHA1 6c1657aefc2a2e391a20c19ffc82475f88d39515 SHA256 e6a1a4194818a6ede5065979227b6b092ef2bea26cad6767f41de1a1952c840d @@ -5,12 +8,16 @@ AUX dspam.rc 1025 RMD160 d223977cf390b1e89392462f06b31b0722810fa3 SHA1 6b243ffac AUX logrotate.dspam 155 RMD160 17e0f5401843ccac1d349b938b1e9b755f847108 SHA1 7462edc16642aa3b43263f8a7ce093de7f4a2ade SHA256 dd5bce638b92936e02ff02faf781cbf903faac7b73c61c1c666eb06cfb56bfac AUX pgsql_createdb.py 4520 RMD160 bcabe6298a0e97c4b3c10c48f98c5d09eb4a063b SHA1 0fe09f67a4f431dd9bf57a3e6c9ef6662f837403 SHA256 dc107ae72a3832b6ebce1066c5e84a0b164bcc01be74bb7dc1ee28c9135e9768 AUX pgsql_purge.py 1236 RMD160 0fcc6154527932ded25397b093d40d113bb44335 SHA1 198add2080c5d229c77c518ff49b372a6f6f2b93 SHA256 3e996ed8ed5fdbdf3a65504ead870c742be7c0d05f4760e3d7d798205b6cdc1b -DIST dspam-3.8.0-patches-20080715.tar.gz 15620 RMD160 714eca562026b2db05aedb82296112b51269d041 SHA1 24d99cabdb97cda7b823f52c8c872b3095008de2 SHA256 a6981635bd848333d2f312ed7fc0f65bae70473dd1928433c53151a21975a7f5 DIST dspam-3.8.0-patches-20080913.tar.gz 15852 RMD160 fdab4fe182950040a40a9afeb2684481ff710524 SHA1 175e4e1cb669f0fbee5879d2350dd2e0ebf31b15 SHA256 968017b85645a81cf10718805455358ea888d37fb441b29421c64909f067242b DIST dspam-3.8.0.tar.gz 726160 RMD160 e7831e2415e30e819dd9cbc0ba3f269e113e2fb9 SHA1 d1de7ee2134522adaf52f49167accecf1589fa96 SHA256 84a227934a7aee73516bdb82c33ee7b359e955c8cd95a1544a9a13069f79bfc7 DIST dspam_sa_trainer.tar.gz 1230 RMD160 c3d0fca7169d23ecf9d44c850ee255b42d97d818 SHA1 71a002f26a888bdfe47759cf1f780cd6478dacac SHA256 8fb6b1ebe592acf00a028737ef8e174544af166768b987d29048b2319bc5a215 -EBUILD dspam-3.8.0-r13.ebuild 19766 RMD160 edf9ef8d3867a31108886a1d6cca0cb8d04e9c9e SHA1 6cc76de2272bc7b0f7faff734aaaa1ae43c0becb SHA256 38cc0f33e37d577030b2df8fb6a236ccb256eacd52bde261b3d5d1c9f569ec0b -EBUILD dspam-3.8.0-r14.ebuild 19767 RMD160 63ed843a8f15a29c5b3c8d4ff7b4423a5d460989 SHA1 4cf5e8ba72a560de09efc896be9f83b63d6fbaa1 SHA256 0190af919841b5b0538b960ecd4db4cbc10857878d80e681a389615724b184db EBUILD dspam-3.8.0-r15.ebuild 19804 RMD160 ac2de794705b4dbb636185c40ca5eb78ecbf3bb2 SHA1 e93c27643034db2c4175623cfbc8ca15c727d5bf SHA256 b8e4bf7a26d2e6b7a88432768964a2cf77caf464d0b49eaf1a51235fa4b9a202 -MISC ChangeLog 22001 RMD160 724efb21540c0127356b62da00264bc3b5340a4d SHA1 8b678919dc33778cff726a4c9eb1e436b4a11feb SHA256 ef94242e15c2a7abda85ba0c5dbd2c7a76c23260c7cc68db519ae9f098e061ff +MISC ChangeLog 22129 RMD160 65aabc59ceef573337656631264eee6f195e7875 SHA1 c9bb91b9e2150c6c0a8dfb23a8022269c6319997 SHA256 1cd2a01159b417e5246f6eeedddea303d499c5959c6a12da0144383e557bb74e MISC metadata.xml 1036 RMD160 3b2e93686e16df39df1459789554f7b13c1bc9a0 SHA1 ecc04cc4c541aae8ed056601089c026185168fd5 SHA256 e3d1fb4f2c60cf80228bea9c5289f6fcda0d25d4b18d662af3ec32c83aba3223 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.9 (GNU/Linux) + +iEYEARECAAYFAklq+AoACgkQts85UDFmaOWpewCfaaopqFolRSb6iyw7omraCM7R +1FIAnRFNuzrNbJQRiG5mUwW3z8wxR4z9 +=2joA +-----END PGP SIGNATURE----- diff --git a/mail-filter/dspam/dspam-3.8.0-r13.ebuild b/mail-filter/dspam/dspam-3.8.0-r13.ebuild deleted file mode 100644 index 300e0a6e1619..000000000000 --- a/mail-filter/dspam/dspam-3.8.0-r13.ebuild +++ /dev/null @@ -1,529 +0,0 @@ -# Copyright 1999-2008 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-r13.ebuild,v 1.3 2008/08/21 17:54:05 bluebird Exp $ - -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" - -inherit eutils autotools 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-20080715.tar.gz - http://dspam.nuclearelephant.com/sources/extras/dspam_sa_trainer.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 ~ppc sparc x86" -IUSE="clamav daemon debug ldap mysql postgres sqlite syslog \ - large-domain virtual-users user-homedirs" - -COMMON_DEPEND="clamav? ( >=app-antivirus/clamav-0.90.2 ) - ldap? ( >=net-nds/openldap-2.2 ) - mysql? ( virtual/mysql ) - sqlite? ( =dev-db/sqlite-3* )" -DEPEND="${COMMON_DEPEND} - postgres? ( >=virtual/postgresql-base-8 )" -RDEPEND="${COMMON_DEPEND} - postgres? ( || ( dev-python/psycopg >=virtual/postgresql-server-8 ) ) - sys-process/cronbase - virtual/logger" - -# some FHS-like structure -DSPAM_HOMEDIR="/var/spool/dspam" -DSPAM_CONFDIR="/etc/mail/dspam" -DSPAM_LOGDIR="/var/log/dspam" -DSPAM_MODE=2511 - -pkg_setup() { - # Delete these lines some time after -r6 removal - if has_version "<=mail-filter/dspam-3.8.0-r6" && - built_with_use "<=mail-filter/dspam-3.8.0-r6" sqlite && - grep -q "^StorageDriver.*libsqlite_drv.so" "${ROOT}${DSPAM_CONFDIR}"/dspam.conf; then - eerror "Sqlite2 support has been removed. Please upgrade your database to sqlite3" - eerror "and select libsqlite3_drv.so in dspam.conf before proceeding with update." - die "sqlite-2 no longer supported" - fi - - 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 "${DSPAM_HOMEDIR}" dspam,mail -} - -src_unpack() { - unpack ${A} - cd "${S}" - - EPATCH_SUFFIX="patch" - epatch "${WORKDIR}"/patches - - AT_M4DIR="${S}/m4" - eautoreconf -} - -src_compile() { - local myconf="" - - if use mysql || use postgres; then - myconf="${myconf} $(use_enable virtual-users) --enable-preferences-extension" - if use virtual-users; then - myconf="${myconf} --disable-homedir" - use user-homedirs && ewarn "user-homedirs support has been disabled (not compatible with --enable-virtual-users)" - else - myconf="${myconf} $(use_enable user-homedirs homedir)" - fi - else - myconf="${myconf} --disable-virtual-users --disable-preferences-extension \ - $(use_enable user-homedirs homedir)" - use virtual-users && ewarn "virtual-users support has been disabled (available only for mysql and postgres storage drivers)" - fi - - if ! use syslog; then - myconf="${myconf} --with-logfile=${DSPAM_LOGDIR}/dspam.log" - fi - - local STORAGE="hash_drv" - # select storage driver - if use sqlite ; 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)" - fi - - econf --with-storage-driver=${STORAGE} \ - --with-dspam-home="${DSPAM_HOMEDIR}" \ - --sysconfdir="${DSPAM_CONFDIR}" \ - $(use_enable daemon) \ - $(use_enable ldap) \ - $(use_enable clamav) \ - $(use_enable large-domain large-scale) \ - $(use_enable !large-domain domain-scale) \ - $(use_enable syslog) \ - $(use_enable debug) \ - $(use_enable debug bnr-debug) \ - $(use_enable debug verbose-debug) \ - --enable-long-usernames \ - --with-dspam-group=dspam \ - --with-dspam-home-group=dspam \ - --with-dspam-mode=${DSPAM_MODE} \ - --with-logdir="${DSPAM_LOGDIR}" \ - ${myconf} || die "econf failed" - emake || die "emake failed" -} - -src_install () { - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_CONFDIR}" - insinto "${DSPAM_CONFDIR}" - insopts -m640 -o dspam -g dspam - doins src/dspam.conf - dosym /etc/mail/dspam /etc/dspam - - # make install - emake DESTDIR="${D}" install || die "emake install failed" - - # necessary for dovecot-dspam - insopts -m644 - insinto /usr/include/dspam && doins src/pref.h - - diropts -m0755 -o dspam -g dspam - dodir /var/run/dspam - - # create logdir (used only when syslog support has been disabled or build with --enable-debug) - if ! use syslog || use debug ; then - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_LOGDIR}" - diropts -m0755 - insinto /etc/logrotate.d - newins "${FILESDIR}/logrotate.dspam" dspam || die "failed to install logrotate.d file" - fi - - 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}/${DSPAM_CONFDIR}/dspam.conf" - - newinitd "${FILESDIR}/dspam.rc" dspam || die "failed to install init script" - - fowners root:dspam /usr/bin/dspamc && - fperms u=rx,g=xs,o=x /usr/bin/dspamc || - die "failed to alter dspamc owner:group or mode" - fi - - # database related configuration and scripts - local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}" DSPAM_DB_DATA=() - if use sqlite; then - insinto "${DSPAM_CONFDIR}" - newins src/tools.sqlite_drv/purge-3.sql sqlite3_purge.sql || die "failed to install sqlite3_purge.sql script" - 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]="false" - - # Activate mysql database configuration - 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}/${DSPAM_CONFDIR}/dspam.conf" - - insinto "${DSPAM_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 && - newins src/tools.mysql_drv/purge.sql mysql_purge.sql && - newins src/tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql || - die "failed to install mysql*.sql scripts" - 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 || - die "failed to install mysql_virtual_user*.sql scripts" - fi - 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" - - # Activate pgsql database configuration - 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}/${DSPAM_CONFDIR}"/dspam.conf - - insinto "${DSPAM_CONFDIR}" - newins src/tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql && - newins src/tools.pgsql_drv/purge.sql pgsql_purge.sql || - die "failed to install pgsql*.sql scripts" - if use virtual-users ; then - newins src/tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql || - die "failed to install pgsql_virtual_users.sql scripts" - fi - - # Install psycopg scripts needed when postgresql is not installed - exeinto "${DSPAM_CONFDIR}" - doexe "${FILESDIR}"/pgsql_{createdb,purge}.py || die "failed to install psycopg scripts" - fi - - # Set default storage - local DEFAULT_STORAGE - if use sqlite ; then - DEFAULT_STORAGE=sqlite3 - elif use mysql ; then - DEFAULT_STORAGE=mysql - elif use postgres ; then - DEFAULT_STORAGE=pgsql - fi - if [[ -z "${DEFAULT_STORAGE}" ]]; 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[\t ].*\)$:#\1:" \ - -e "s:^Tokenizer .*$:Tokenizer sbph:" \ - -e "/^#PValue/d" \ - -e "s:^PValue .*$:PValue markov:" \ - -i "${D}/${DSPAM_CONFDIR}"/dspam.conf - else - # Set the storage driver and use purge configuration for SQL-based installations - sed -e "s:^\(Purge.*\):###\1:g" \ - -e "s:^#\(Purge.*\):\1:g" \ - -e "s:^###\(Purge.*\):#\1:g" \ - -e "s:^\(StorageDriver[\t ].*\)libhash_drv.so:\1lib${DEFAULT_STORAGE}_drv.so:" \ - -i "${D}/${DSPAM_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 "${DSPAM_CONFDIR}"/txt - doins "${S}"/txt/*.txt - doins "${T}"/msgtag.* - - # Create the opt-in / opt-out directories - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_HOMEDIR}" - keepdir "${DSPAM_HOMEDIR}"/opt-in - keepdir "${DSPAM_HOMEDIR}"/opt-out - diropts -m0755 - - # dspam cron job - exeinto /etc/cron.daily - newexe "${FILESDIR}/dspam.cron-r3" dspam.cron || die "failed to install cron script" - - # 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() { - # Delete these lines some time after -r6 removal - if has_version "<=mail-filter/dspam-3.8.0-r6" ; then - # Remove obsolete *.data files - local f - for f in "${ROOT}${DSPAM_CONFDIR}"/{mysql,pgsql}.data ; do - f=${f/\/\//\/} - if [[ -f "${f}" ]]; then - rm "${f}" && - elog "Obsolete ${f} has been removed" || - eerror "Failed to remove ${f}" - fi - done - fi -} - -pkg_postinst() { - 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 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" - elog - elog "To use the DSPAM daemon mode, the used storage driver must be thread-safe." - fi - - elog - elog "See http://dspamwiki.expass.de/Installation for more info" -} - -# Edits interactively one or more parameters from "${ROOT}${DSPAM_CONFDIR}/dspam.conf" -# Usage: edit_dspam_params param_name1 [param_name2 ..] -edit_dspam_params() { - local PARAMETER OLD_VALUE VALUE - for PARAMETER in $@ ; do - OLD_VALUE=$(awk "BEGIN { IGNORECASE=1; } \$1==\"${PARAMETER}\" { print \$2; exit; }" "${ROOT}${DSPAM_CONFDIR}/dspam.conf") - [[ $? == 0 ]] || return 1 - if [[ "${PARAMETER}" == *"Pass" ]]; then - read -r -p "${PARAMETER} (default ${OLD_VALUE:-none}; enter random for generating a new random password): " VALUE - [[ "${VALUE}" == "random" ]] && VALUE="${RANDOM}${RANDOM}${RANDOM}${RANDOM}" - else - read -r -p "${PARAMETER} (default ${OLD_VALUE:-none}): " VALUE - fi - - if [[ -z "${VALUE}" ]] ; then - VALUE=${OLD_VALUE} - else - sed -e "s:^#*${PARAMETER}\([\t ].*\)\?\$:${PARAMETER} ${VALUE}:gI" \ - -i "${ROOT}${DSPAM_CONFDIR}/dspam.conf" - [[ $? == 0 ]] || return 2 - fi - eval $PARAMETER=\"${VALUE}\" - done - return 0 -} - -# Selects the storage driver in "${ROOT}${DSPAM_CONFDIR}/dspam.conf" -# usage: set_storage_driver { hash | sqlite3 | mysql | pgsql } -set_storage_driver() { - sed -e "s:^[#\t ]*\(StorageDriver[\t ].*\)lib[a-z1-9]\+_drv.so:\1lib${1}_drv.so:" \ - -i "${ROOT}${DSPAM_CONFDIR}"/dspam.conf && - einfo "Storage driver lib${1}_drv.so has been selected" -} - -pkg_config () { - local AVAIL_BACKENDS=( hash ) - use sqlite && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} sqlite ) - use mysql && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} mysql ) - use postgres && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} postgres ) - 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 - - hash) - einfo "hash driver will automatically create the necessary databases" - set_storage_driver hash - ;; - - sqlite) - einfo "sqlite driver will automatically create the necessary databases" - set_storage_driver sqlite3 - ;; - - mysql) - local MySQLServer MySQLPort MySQLUser MySQLPass MySQLDb MySQLCompress - edit_dspam_params MySQLServer MySQLPort MySQLUser MySQLPass MySQLDb MySQLCompress || return $? - if [[ -z "${MySQLServer}" || -z "${MySQLUser}" || -z "${MySQLPass}" || -z "${MySQLDb}" ]]; then - eerror "Following parameters are required: MySQLServer MySQLUser MySQLPass MySQLDb" - return 1 - fi - - local MySQL_DB_Type MySQL_Virtuser_Type - einfo " Please select what kind of database you like to create:" - einfo " [0] Don't create the database, I will do it myself" - einfo " [1] Database will be hosted on a mysql-4.1 server or above" - einfo " [2] Space optimized database on a mysql-4.0 server or below" - einfo " [3] Speed optimized database on a mysql-4.0 server or below" - einfo - while read -n 1 -s -p " Press 0, 1, 2 or 3 on the keyboard to select database " MySQL_DB_Type; do - if [[ "${MySQL_DB_Type}" == "0" ]] ; then - echo - set_storage_driver mysql - return 0 - fi - [[ "${MySQL_DB_Type}" == "1" || "${MySQL_DB_Type}" == "2" || "${MySQL_DB_Type}" == "3" ]] && echo && break - done - if use virtual-users ; then - einfo " Please select what kind of virtual_uids table you like to use:" - einfo " [1] Virtual users added automatically (use it if this server is the primary MX)" - einfo " [2] Virtual users added manually (use it if this server is a secondary MX)" - einfo - while read -n 1 -s -p " Press 1 or 2 on the keyboard to select table type " MySQL_Virtuser_Type; do - [[ "${MySQL_Virtuser_Type}" == "1" || "${MySQL_Virtuser_Type}" == "2" ]] && echo && break - done - fi - - local MYSQL_ROOT_USER - read -r -p "Your administrative MySQL account (default root): " MYSQL_ROOT_USER - if [[ -z "${MYSQL_ROOT_USER}" ]]; then - MYSQL_ROOT_USER="root" - fi - einfo "When prompted for a password, please enter your MySQL ${MYSQL_ROOT_USER} password" - - local MYSQL_CMD_LINE="/usr/bin/mysql -u ${MYSQL_ROOT_USER} -p" - [[ "${MySQLServer}" != "/"* ]] && MYSQL_CMD_LINE="${MYSQL_CMD_LINE} -h ${MySQLServer}" - [[ -n "${MySQLPort}" ]] && MYSQL_CMD_LINE="${MYSQL_CMD_LINE} -P ${MySQLPort}" - { - echo "CREATE DATABASE ${MySQLDb};" - echo "USE ${MySQLDb};" - case ${MySQL_DB_Type} in - 1) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-4.1.sql ;; - 2) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-space.sql ;; - 3) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-speed.sql ;; - esac - if use virtual-users ; then - case ${MySQL_Virtuser_Type} in - 1) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_virtual_users.sql ;; - 2) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_virtual_user_aliases.sql ;; - esac - fi - echo "GRANT SELECT,INSERT,UPDATE,DELETE ON ${MySQLDb}.* TO '${MySQLUser}'@'%' IDENTIFIED BY '${MySQLPass}';" - echo "FLUSH PRIVILEGES;" - } | ${MYSQL_CMD_LINE} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - - einfo "MySQL database created successfully" - set_storage_driver mysql - ;; - - postgres) - local PgSQLServer PgSQLPort PgSQLUser PgSQLPass PgSQLDb - edit_dspam_params PgSQLServer PgSQLPort PgSQLUser PgSQLPass PgSQLDb || return $? - if [[ -z "${PgSQLServer}" || -z "${PgSQLUser}" || -z "${PgSQLPass}" || -z "${PgSQLDb}" ]]; then - eerror "Following parameters are required: PgSQLServer PgSQLUser PgSQLPass PgSQLDb" - return 1 - fi - - local PgSQL_DB_Create - einfo " Do you want PgSQL database be automatically created for you?" - while read -n 1 -s -p " Press y or n " PgSQL_DB_Create; do - if [[ "${PgSQL_DB_Create}" == "n" || "${PgSQL_DB_Create}" == "N" ]] ; then - echo - set_storage_driver pgsql - return 0 - fi - [[ "${PgSQL_DB_Create}" == "y" || "${PgSQL_DB_Create}" == "Y" ]] && echo && break - done - - local PGSQL_ROOT_USER - read -r -p "Your administrative PgSQL account (default postgres): " PGSQL_ROOT_USER - if [[ -z "${PGSQL_ROOT_USER}" ]]; then - PGSQL_ROOT_USER="postgres" - fi - einfo "When prompted for a password, please enter your PgSQL ${PGSQL_ROOT_USER} password" - - if [[ -x /usr/bin/psql ]]; then - # Create database using psql - local PGSQL_CMD_LINE="/usr/bin/psql -h ${PgSQLServer}" - [[ -n "${PgSQLPort}" ]] && PGSQL_CMD_LINE="${PGSQL_CMD_LINE} -p ${PgSQLPort}" - - { - echo "\\set ON_ERROR_STOP = on;" - echo "CREATE USER ${PgSQLUser} WITH PASSWORD '${PgSQLPass}' NOCREATEDB NOCREATEUSER;" - echo "CREATE DATABASE ${PgSQLDb};" - echo "GRANT ALL PRIVILEGES ON DATABASE ${PgSQLDb} TO ${PgSQLUser};" - echo "GRANT ALL PRIVILEGES ON SCHEMA public TO ${PgSQLUser};" - echo "UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='${PgSQLUser}') WHERE datname='${PgSQLDb}';" - echo "\\c ${PgSQLDb};" - echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '\$libdir/plpgsql', 'plpgsql_call_handler' LANGUAGE c;" - echo "CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '\$libdir/plpgsql', 'plpgsql_validator' LANGUAGE c;" - echo "CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator;" - } | ${PGSQL_CMD_LINE} -d template1 -U ${PGSQL_ROOT_USER} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - - { - echo "\\set ON_ERROR_STOP = on;" - cat "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql - use virtual-users && cat "${ROOT}${DSPAM_CONFDIR}"/pgsql_virtual_users.sql - } | PGUSER="${PgSQLUser}" PGPASSWORD="${PgSQLPass}" ${PGSQL_CMD_LINE} -d "${PgSQLDb}" -U ${PgSQLUser} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - else - # Create database using psycopg script - if use virtual-users ; then - DSPAM_PgSQLPass="${PgSQLPass}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_createdb.py "${PgSQLServer}" "${PgSQLPort}" "${PGSQL_ROOT_USER}" \ - "${PgSQLUser}" "${PgSQLDb}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql "${ROOT}${DSPAM_CONFDIR}"/pgsql_virtual_users.sql - else - DSPAM_PgSQLPass="${PgSQLPass}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_createdb.py "${PgSQLServer}" "${PgSQLPort}" "${PGSQL_ROOT_USER}" \ - "${PgSQLUser}" "${PgSQLDb}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql - fi - [[ $? == 0 ]] || return $? - fi - - einfo "PgSQL database created successfully" - set_storage_driver pgsql - ;; - - esac -} diff --git a/mail-filter/dspam/dspam-3.8.0-r14.ebuild b/mail-filter/dspam/dspam-3.8.0-r14.ebuild deleted file mode 100644 index b3d47c5f5844..000000000000 --- a/mail-filter/dspam/dspam-3.8.0-r14.ebuild +++ /dev/null @@ -1,529 +0,0 @@ -# Copyright 1999-2008 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-r14.ebuild,v 1.1 2008/09/13 18:48:15 mrness Exp $ - -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" - -inherit eutils autotools 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-20080913.tar.gz - http://dspam.nuclearelephant.com/sources/extras/dspam_sa_trainer.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" -IUSE="clamav daemon debug ldap mysql postgres sqlite syslog \ - large-domain virtual-users user-homedirs" - -COMMON_DEPEND="clamav? ( >=app-antivirus/clamav-0.90.2 ) - ldap? ( >=net-nds/openldap-2.2 ) - mysql? ( virtual/mysql ) - sqlite? ( =dev-db/sqlite-3* )" -DEPEND="${COMMON_DEPEND} - postgres? ( >=virtual/postgresql-base-8 )" -RDEPEND="${COMMON_DEPEND} - postgres? ( || ( dev-python/psycopg >=virtual/postgresql-server-8 ) ) - sys-process/cronbase - virtual/logger" - -# some FHS-like structure -DSPAM_HOMEDIR="/var/spool/dspam" -DSPAM_CONFDIR="/etc/mail/dspam" -DSPAM_LOGDIR="/var/log/dspam" -DSPAM_MODE=2511 - -pkg_setup() { - # Delete these lines some time after -r6 removal - if has_version "<=mail-filter/dspam-3.8.0-r6" && - built_with_use "<=mail-filter/dspam-3.8.0-r6" sqlite && - grep -q "^StorageDriver.*libsqlite_drv.so" "${ROOT}${DSPAM_CONFDIR}"/dspam.conf; then - eerror "Sqlite2 support has been removed. Please upgrade your database to sqlite3" - eerror "and select libsqlite3_drv.so in dspam.conf before proceeding with update." - die "sqlite-2 no longer supported" - fi - - 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 "${DSPAM_HOMEDIR}" dspam,mail -} - -src_unpack() { - unpack ${A} - cd "${S}" - - EPATCH_SUFFIX="patch" - epatch "${WORKDIR}"/patches - - AT_M4DIR="${S}/m4" - eautoreconf -} - -src_compile() { - local myconf="" - - if use mysql || use postgres; then - myconf="${myconf} $(use_enable virtual-users) --enable-preferences-extension" - if use virtual-users; then - myconf="${myconf} --disable-homedir" - use user-homedirs && ewarn "user-homedirs support has been disabled (not compatible with --enable-virtual-users)" - else - myconf="${myconf} $(use_enable user-homedirs homedir)" - fi - else - myconf="${myconf} --disable-virtual-users --disable-preferences-extension \ - $(use_enable user-homedirs homedir)" - use virtual-users && ewarn "virtual-users support has been disabled (available only for mysql and postgres storage drivers)" - fi - - if ! use syslog; then - myconf="${myconf} --with-logfile=${DSPAM_LOGDIR}/dspam.log" - fi - - local STORAGE="hash_drv" - # select storage driver - if use sqlite ; 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)" - fi - - econf --with-storage-driver=${STORAGE} \ - --with-dspam-home="${DSPAM_HOMEDIR}" \ - --sysconfdir="${DSPAM_CONFDIR}" \ - $(use_enable daemon) \ - $(use_enable ldap) \ - $(use_enable clamav) \ - $(use_enable large-domain large-scale) \ - $(use_enable !large-domain domain-scale) \ - $(use_enable syslog) \ - $(use_enable debug) \ - $(use_enable debug bnr-debug) \ - $(use_enable debug verbose-debug) \ - --enable-long-usernames \ - --with-dspam-group=dspam \ - --with-dspam-home-group=dspam \ - --with-dspam-mode=${DSPAM_MODE} \ - --with-logdir="${DSPAM_LOGDIR}" \ - ${myconf} || die "econf failed" - emake || die "emake failed" -} - -src_install () { - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_CONFDIR}" - insinto "${DSPAM_CONFDIR}" - insopts -m640 -o dspam -g dspam - doins src/dspam.conf - dosym /etc/mail/dspam /etc/dspam - - # make install - emake DESTDIR="${D}" install || die "emake install failed" - - # necessary for dovecot-dspam - insopts -m644 - insinto /usr/include/dspam && doins src/pref.h - - diropts -m0755 -o dspam -g dspam - dodir /var/run/dspam - - # create logdir (used only when syslog support has been disabled or build with --enable-debug) - if ! use syslog || use debug ; then - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_LOGDIR}" - diropts -m0755 - insinto /etc/logrotate.d - newins "${FILESDIR}/logrotate.dspam" dspam || die "failed to install logrotate.d file" - fi - - 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}/${DSPAM_CONFDIR}/dspam.conf" - - newinitd "${FILESDIR}/dspam.rc" dspam || die "failed to install init script" - - fowners root:dspam /usr/bin/dspamc && - fperms u=rx,g=xs,o=x /usr/bin/dspamc || - die "failed to alter dspamc owner:group or mode" - fi - - # database related configuration and scripts - local PASSWORD="${RANDOM}${RANDOM}${RANDOM}${RANDOM}" DSPAM_DB_DATA=() - if use sqlite; then - insinto "${DSPAM_CONFDIR}" - newins src/tools.sqlite_drv/purge-3.sql sqlite3_purge.sql || die "failed to install sqlite3_purge.sql script" - 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]="false" - - # Activate mysql database configuration - 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}/${DSPAM_CONFDIR}/dspam.conf" - - insinto "${DSPAM_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 && - newins src/tools.mysql_drv/purge.sql mysql_purge.sql && - newins src/tools.mysql_drv/purge-4.1.sql mysql_purge-4.1.sql || - die "failed to install mysql*.sql scripts" - 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 || - die "failed to install mysql_virtual_user*.sql scripts" - fi - 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" - - # Activate pgsql database configuration - 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}/${DSPAM_CONFDIR}"/dspam.conf - - insinto "${DSPAM_CONFDIR}" - newins src/tools.pgsql_drv/pgsql_objects.sql pgsql_objects.sql && - newins src/tools.pgsql_drv/purge.sql pgsql_purge.sql || - die "failed to install pgsql*.sql scripts" - if use virtual-users ; then - newins src/tools.pgsql_drv/virtual_users.sql pgsql_virtual_users.sql || - die "failed to install pgsql_virtual_users.sql scripts" - fi - - # Install psycopg scripts needed when postgresql is not installed - exeinto "${DSPAM_CONFDIR}" - doexe "${FILESDIR}"/pgsql_{createdb,purge}.py || die "failed to install psycopg scripts" - fi - - # Set default storage - local DEFAULT_STORAGE - if use sqlite ; then - DEFAULT_STORAGE=sqlite3 - elif use mysql ; then - DEFAULT_STORAGE=mysql - elif use postgres ; then - DEFAULT_STORAGE=pgsql - fi - if [[ -z "${DEFAULT_STORAGE}" ]]; 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[\t ].*\)$:#\1:" \ - -e "s:^Tokenizer .*$:Tokenizer sbph:" \ - -e "/^#PValue/d" \ - -e "s:^PValue .*$:PValue markov:" \ - -i "${D}/${DSPAM_CONFDIR}"/dspam.conf - else - # Set the storage driver and use purge configuration for SQL-based installations - sed -e "s:^\(Purge.*\):###\1:g" \ - -e "s:^#\(Purge.*\):\1:g" \ - -e "s:^###\(Purge.*\):#\1:g" \ - -e "s:^\(StorageDriver[\t ].*\)libhash_drv.so:\1lib${DEFAULT_STORAGE}_drv.so:" \ - -i "${D}/${DSPAM_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 "${DSPAM_CONFDIR}"/txt - doins "${S}"/txt/*.txt - doins "${T}"/msgtag.* - - # Create the opt-in / opt-out directories - diropts -m0770 -o dspam -g dspam - dodir "${DSPAM_HOMEDIR}" - keepdir "${DSPAM_HOMEDIR}"/opt-in - keepdir "${DSPAM_HOMEDIR}"/opt-out - diropts -m0755 - - # dspam cron job - exeinto /etc/cron.daily - newexe "${FILESDIR}/dspam.cron-r3" dspam.cron || die "failed to install cron script" - - # 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() { - # Delete these lines some time after -r6 removal - if has_version "<=mail-filter/dspam-3.8.0-r6" ; then - # Remove obsolete *.data files - local f - for f in "${ROOT}${DSPAM_CONFDIR}"/{mysql,pgsql}.data ; do - f=${f/\/\//\/} - if [[ -f "${f}" ]]; then - rm "${f}" && - elog "Obsolete ${f} has been removed" || - eerror "Failed to remove ${f}" - fi - done - fi -} - -pkg_postinst() { - 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 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" - elog - elog "To use the DSPAM daemon mode, the used storage driver must be thread-safe." - fi - - elog - elog "See http://dspamwiki.expass.de/Installation for more info" -} - -# Edits interactively one or more parameters from "${ROOT}${DSPAM_CONFDIR}/dspam.conf" -# Usage: edit_dspam_params param_name1 [param_name2 ..] -edit_dspam_params() { - local PARAMETER OLD_VALUE VALUE - for PARAMETER in $@ ; do - OLD_VALUE=$(awk "BEGIN { IGNORECASE=1; } \$1==\"${PARAMETER}\" { print \$2; exit; }" "${ROOT}${DSPAM_CONFDIR}/dspam.conf") - [[ $? == 0 ]] || return 1 - if [[ "${PARAMETER}" == *"Pass" ]]; then - read -r -p "${PARAMETER} (default ${OLD_VALUE:-none}; enter random for generating a new random password): " VALUE - [[ "${VALUE}" == "random" ]] && VALUE="${RANDOM}${RANDOM}${RANDOM}${RANDOM}" - else - read -r -p "${PARAMETER} (default ${OLD_VALUE:-none}): " VALUE - fi - - if [[ -z "${VALUE}" ]] ; then - VALUE=${OLD_VALUE} - else - sed -e "s:^#*${PARAMETER}\([\t ].*\)\?\$:${PARAMETER} ${VALUE}:gI" \ - -i "${ROOT}${DSPAM_CONFDIR}/dspam.conf" - [[ $? == 0 ]] || return 2 - fi - eval $PARAMETER=\"${VALUE}\" - done - return 0 -} - -# Selects the storage driver in "${ROOT}${DSPAM_CONFDIR}/dspam.conf" -# usage: set_storage_driver { hash | sqlite3 | mysql | pgsql } -set_storage_driver() { - sed -e "s:^[#\t ]*\(StorageDriver[\t ].*\)lib[a-z1-9]\+_drv.so:\1lib${1}_drv.so:" \ - -i "${ROOT}${DSPAM_CONFDIR}"/dspam.conf && - einfo "Storage driver lib${1}_drv.so has been selected" -} - -pkg_config () { - local AVAIL_BACKENDS=( hash ) - use sqlite && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} sqlite ) - use mysql && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} mysql ) - use postgres && AVAIL_BACKENDS=( ${AVAIL_BACKENDS[*]} postgres ) - 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 - - hash) - einfo "hash driver will automatically create the necessary databases" - set_storage_driver hash - ;; - - sqlite) - einfo "sqlite driver will automatically create the necessary databases" - set_storage_driver sqlite3 - ;; - - mysql) - local MySQLServer MySQLPort MySQLUser MySQLPass MySQLDb MySQLCompress - edit_dspam_params MySQLServer MySQLPort MySQLUser MySQLPass MySQLDb MySQLCompress || return $? - if [[ -z "${MySQLServer}" || -z "${MySQLUser}" || -z "${MySQLPass}" || -z "${MySQLDb}" ]]; then - eerror "Following parameters are required: MySQLServer MySQLUser MySQLPass MySQLDb" - return 1 - fi - - local MySQL_DB_Type MySQL_Virtuser_Type - einfo " Please select what kind of database you like to create:" - einfo " [0] Don't create the database, I will do it myself" - einfo " [1] Database will be hosted on a mysql-4.1 server or above" - einfo " [2] Space optimized database on a mysql-4.0 server or below" - einfo " [3] Speed optimized database on a mysql-4.0 server or below" - einfo - while read -n 1 -s -p " Press 0, 1, 2 or 3 on the keyboard to select database " MySQL_DB_Type; do - if [[ "${MySQL_DB_Type}" == "0" ]] ; then - echo - set_storage_driver mysql - return 0 - fi - [[ "${MySQL_DB_Type}" == "1" || "${MySQL_DB_Type}" == "2" || "${MySQL_DB_Type}" == "3" ]] && echo && break - done - if use virtual-users ; then - einfo " Please select what kind of virtual_uids table you like to use:" - einfo " [1] Virtual users added automatically (use it if this server is the primary MX)" - einfo " [2] Virtual users added manually (use it if this server is a secondary MX)" - einfo - while read -n 1 -s -p " Press 1 or 2 on the keyboard to select table type " MySQL_Virtuser_Type; do - [[ "${MySQL_Virtuser_Type}" == "1" || "${MySQL_Virtuser_Type}" == "2" ]] && echo && break - done - fi - - local MYSQL_ROOT_USER - read -r -p "Your administrative MySQL account (default root): " MYSQL_ROOT_USER - if [[ -z "${MYSQL_ROOT_USER}" ]]; then - MYSQL_ROOT_USER="root" - fi - einfo "When prompted for a password, please enter your MySQL ${MYSQL_ROOT_USER} password" - - local MYSQL_CMD_LINE="/usr/bin/mysql -u ${MYSQL_ROOT_USER} -p" - [[ "${MySQLServer}" != "/"* ]] && MYSQL_CMD_LINE="${MYSQL_CMD_LINE} -h ${MySQLServer}" - [[ -n "${MySQLPort}" ]] && MYSQL_CMD_LINE="${MYSQL_CMD_LINE} -P ${MySQLPort}" - { - echo "CREATE DATABASE ${MySQLDb};" - echo "USE ${MySQLDb};" - case ${MySQL_DB_Type} in - 1) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-4.1.sql ;; - 2) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-space.sql ;; - 3) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_objects-speed.sql ;; - esac - if use virtual-users ; then - case ${MySQL_Virtuser_Type} in - 1) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_virtual_users.sql ;; - 2) cat "${ROOT}${DSPAM_CONFDIR}"/mysql_virtual_user_aliases.sql ;; - esac - fi - echo "GRANT SELECT,INSERT,UPDATE,DELETE ON ${MySQLDb}.* TO '${MySQLUser}'@'%' IDENTIFIED BY '${MySQLPass}';" - echo "FLUSH PRIVILEGES;" - } | ${MYSQL_CMD_LINE} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - - einfo "MySQL database created successfully" - set_storage_driver mysql - ;; - - postgres) - local PgSQLServer PgSQLPort PgSQLUser PgSQLPass PgSQLDb - edit_dspam_params PgSQLServer PgSQLPort PgSQLUser PgSQLPass PgSQLDb || return $? - if [[ -z "${PgSQLServer}" || -z "${PgSQLUser}" || -z "${PgSQLPass}" || -z "${PgSQLDb}" ]]; then - eerror "Following parameters are required: PgSQLServer PgSQLUser PgSQLPass PgSQLDb" - return 1 - fi - - local PgSQL_DB_Create - einfo " Do you want PgSQL database be automatically created for you?" - while read -n 1 -s -p " Press y or n " PgSQL_DB_Create; do - if [[ "${PgSQL_DB_Create}" == "n" || "${PgSQL_DB_Create}" == "N" ]] ; then - echo - set_storage_driver pgsql - return 0 - fi - [[ "${PgSQL_DB_Create}" == "y" || "${PgSQL_DB_Create}" == "Y" ]] && echo && break - done - - local PGSQL_ROOT_USER - read -r -p "Your administrative PgSQL account (default postgres): " PGSQL_ROOT_USER - if [[ -z "${PGSQL_ROOT_USER}" ]]; then - PGSQL_ROOT_USER="postgres" - fi - einfo "When prompted for a password, please enter your PgSQL ${PGSQL_ROOT_USER} password" - - if [[ -x /usr/bin/psql ]]; then - # Create database using psql - local PGSQL_CMD_LINE="/usr/bin/psql -h ${PgSQLServer}" - [[ -n "${PgSQLPort}" ]] && PGSQL_CMD_LINE="${PGSQL_CMD_LINE} -p ${PgSQLPort}" - - { - echo "\\set ON_ERROR_STOP = on;" - echo "CREATE USER ${PgSQLUser} WITH PASSWORD '${PgSQLPass}' NOCREATEDB NOCREATEUSER;" - echo "CREATE DATABASE ${PgSQLDb};" - echo "GRANT ALL PRIVILEGES ON DATABASE ${PgSQLDb} TO ${PgSQLUser};" - echo "GRANT ALL PRIVILEGES ON SCHEMA public TO ${PgSQLUser};" - echo "UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='${PgSQLUser}') WHERE datname='${PgSQLDb}';" - echo "\\c ${PgSQLDb};" - echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '\$libdir/plpgsql', 'plpgsql_call_handler' LANGUAGE c;" - echo "CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '\$libdir/plpgsql', 'plpgsql_validator' LANGUAGE c;" - echo "CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator;" - } | ${PGSQL_CMD_LINE} -d template1 -U ${PGSQL_ROOT_USER} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - - { - echo "\\set ON_ERROR_STOP = on;" - cat "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql - use virtual-users && cat "${ROOT}${DSPAM_CONFDIR}"/pgsql_virtual_users.sql - } | PGUSER="${PgSQLUser}" PGPASSWORD="${PgSQLPass}" ${PGSQL_CMD_LINE} -d "${PgSQLDb}" -U ${PgSQLUser} - [[ ${PIPESTATUS[1]} == 0 ]] || return ${PIPESTATUS[1]} - else - # Create database using psycopg script - if use virtual-users ; then - DSPAM_PgSQLPass="${PgSQLPass}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_createdb.py "${PgSQLServer}" "${PgSQLPort}" "${PGSQL_ROOT_USER}" \ - "${PgSQLUser}" "${PgSQLDb}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql "${ROOT}${DSPAM_CONFDIR}"/pgsql_virtual_users.sql - else - DSPAM_PgSQLPass="${PgSQLPass}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_createdb.py "${PgSQLServer}" "${PgSQLPort}" "${PGSQL_ROOT_USER}" \ - "${PgSQLUser}" "${PgSQLDb}" "${ROOT}${DSPAM_CONFDIR}"/pgsql_objects.sql - fi - [[ $? == 0 ]] || return $? - fi - - einfo "PgSQL database created successfully" - set_storage_driver pgsql - ;; - - esac -} |