diff options
Diffstat (limited to 'www-apps/dspam-web/dspam-web-3.6.4.ebuild')
-rw-r--r-- | www-apps/dspam-web/dspam-web-3.6.4.ebuild | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/www-apps/dspam-web/dspam-web-3.6.4.ebuild b/www-apps/dspam-web/dspam-web-3.6.4.ebuild new file mode 100644 index 000000000000..e7240b1c759e --- /dev/null +++ b/www-apps/dspam-web/dspam-web-3.6.4.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-apps/dspam-web/dspam-web-3.6.4.ebuild,v 1.1 2006/02/13 16:02:22 st_lim Exp $ + +inherit webapp eutils + +MY_PN=${PN/-web/} +MY_P=${MY_PN}-${PV} + +S=${WORKDIR}/${MY_P} +DESCRIPTION="Web based administration and user controls for dspam" +SRC_URI="http://dspam.nuclearelephant.com/sources/${MY_P}.tar.gz + http://dspam.nuclearelephant.com/sources/extras/dspam_sa_trainer.tar.gz" +HOMEPAGE="http://dspam.nuclearelephant.com/" +LICENSE="GPL-2" + +IUSE="clamav debug large-domain ldap logrotate mysql neural oci8 postgres sqlite virtual-users" +DEPEND=">=mail-filter/dspam-${PV} + clamav? ( >=app-antivirus/clamav-0.86 ) + ldap? ( >=net-nds/openldap-2.2 ) + mysql? ( >=dev-db/mysql-3.23 ) + sqlite? ( dev-db/sqlite ) + postgres? ( >=dev-db/postgresql-7.4.3 ) + >=sys-libs/db-4.0 + >=net-www/apache-1.3 + >=dev-lang/perl-5.8.2 + >=dev-perl/GD-2.0 + dev-perl/GD-Graph3d + dev-perl/GDGraph + dev-perl/GDTextUtil" +KEYWORDS="~x86 ~ppc ~amd64" + +# some FHS-like structure +HOMEDIR="/var/spool/dspam" +CONFDIR="/etc/mail/dspam" +LOGDIR="/var/log/dspam" + +src_compile() { + local myconf + + myconf="${myconf} --enable-long-username" + myconf="${myconf} --with-delivery-agent=/usr/bin/procmail" + use large-domain && myconf="${myconf} --enable-large-scale" ||\ + myconf="${myconf} --enable-domain-scale" + + myconf="${myconf} --with-dspam-home=${HOMEDIR}" + myconf="${myconf} --sysconfdir=${CONFDIR}" + use virtual-users || myconf="${myconf} --enable-homedir" + use clamav || myconf="${myconf} --enable-clamav" + use ldap && myconf="${myconf} --enable-ldap" + + # 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 --enable-bnr-debug" + + # select storage driver + if use sqlite ; then + myconf="${myconf} --with-storage-driver=sqlite_drv" + myconf="${myconf} --enable-virtual-users" + elif 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} --enable-preferences-extension" + + if has_version ">sys-kernel/linux-headers-2.6"; then + myconf="${myconf} --enable-daemon" + fi + + use virtual-users && myconf="${myconf} --enable-virtual-users" + # an experimental feature available with MySQL and PgSQL backend + use neural && myconf="${myconf} --enable-neural-networking" + 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-preferences-extension" + + if has_version ">sys-kernel/linux-headers-2.6"; then + myconf="${myconf} --enable-daemon" + fi + + use virtual-users && myconf="${myconf} --enable-virtual-users" + # an experimental feature available with MySQL and PgSQL backend + use neural && myconf="${myconf} --enable-neural-networking" + 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 + myconf="${myconf} --with-oracle-version=10" + fi + else + myconf="${myconf} --with-storage-driver=libdb4_drv" + fi + + econf ${myconf} || die + cd ${S}/webui + make +} + +src_install () { + cd ${S}/webui + webapp_src_preinst + + sed -e 's,/var/dspam,/etc/mail/dspam,' \ + -e 's,/usr/local,/usr,' \ + -i ${S}/webui/cgi-bin/admin.cgi + sed -e 's,/var/dspam,/etc/mail/dspam,' \ + -e 's,/usr/local,/usr,' \ + -i ${S}/webui/cgi-bin/dspam.cgi + + cp -r ${S}/webui/htdocs/* ${D}/${MY_HTDOCSDIR} || die + cp -r ${S}/webui/cgi-bin/* ${D}/${MY_CGIBINDIR} || die + insinto ${MY_HTDOCSDIR} + insopts -m644 -o apache -g apache + + newins ${FILESDIR}/htaccess .htaccess + newins ${FILESDIR}/htpasswd .htpasswd + + #All files must be owned by server + cd ${D}/${MY_HTDOCSDIR} + for file in `find -type d -printf "%p/* "`; do + webapp_serverowned "${MY_HTDOCSDIR}/${file}" + done + + #All files must be owned by server + cd ${D}/${MY_CGIBINDIR} + for file in `find -type d -printf "%p/* "`; do + webapp_serverowned "${MY_CGIBINDIR}/${file}" + done + + webapp_src_install +} + +pkg_config () { + # add apache to the dspam group so the CGIs can access the data + + local groups + groups=`groups apache` + groups=`echo ${groups} | sed -e 's/ /,/g'` + usermod -G "${groups},dspam" apache +} + +pkg_postinst () { + einfo "The CGIs need to be executed as group dspam in order to write" + einfo "to the dspam data directory. You will need to configure apache" + einfo "manually to do this. Another option is to add the user apache" + einfo "to the dspam group. You can do this automatically by running:" + echo + einfo "emerge --config ${PF}" + echo + einfo "This app requires basic auth in order to operate properly." + einfo "You will need to add dspam users to the .htpasswd file or" + einfo "configure a different authentication mechanism for the user" + einfo "accounts." +} |