summaryrefslogtreecommitdiff
path: root/mail-filter/dcc/dcc-1.3.158.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'mail-filter/dcc/dcc-1.3.158.ebuild')
-rw-r--r--mail-filter/dcc/dcc-1.3.158.ebuild133
1 files changed, 133 insertions, 0 deletions
diff --git a/mail-filter/dcc/dcc-1.3.158.ebuild b/mail-filter/dcc/dcc-1.3.158.ebuild
new file mode 100644
index 0000000000..8648467d30
--- /dev/null
+++ b/mail-filter/dcc/dcc-1.3.158.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit base eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Distributed Checksum Clearinghouse"
+HOMEPAGE="http://www.rhyolite.com/anti-spam/dcc/"
+SRC_URI="http://www.rhyolite.com/anti-spam/dcc/source/old/${P}.tar.Z"
+
+LICENSE="DCC GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" # ~amd64-fbsd
+IUSE="cgi ipv6 rrdtool milter"
+
+RDEPEND="dev-lang/perl
+ rrdtool? ( net-analyzer/rrdtool )
+ || ( net-misc/wget www-client/fetch net-misc/curl net-ftp/ftp )
+ milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )"
+DEPEND="sys-apps/sed
+ sys-devel/gcc
+ ${RDEPEND}"
+
+dcc_cgibin=/var/www/localhost/cgi-bin/dcc
+dcc_homedir=/var/dcc
+dcc_libexec=/usr/sbin
+dcc_man=/usr/share/man
+dcc_rundir=/var/run/dcc
+
+PATCHES=( "${FILESDIR}"/dcc-1.3.140-freebsd.patch )
+
+src_configure() {
+ tc-export CC AR RANLIB
+ local myconf
+ myconf="${myconf} --homedir=${dcc_homedir}"
+ myconf="${myconf} --bindir=/usr/bin"
+ myconf="${myconf} --libexecdir=${dcc_libexec}"
+ myconf="${myconf} --mandir=/usr/share/man"
+ myconf="${myconf} --with-updatedcc_pfile=${dcc_homedir}/updatecc.pfile"
+ myconf="${myconf} --with-installroot=${D}"
+ # sigh. should be DCC-MD5 but see line 486 in the shipped configure script
+ myconf="${myconf} --with-DDC-MD5"
+ myconf="${myconf} --with-uid=root"
+ myconf="${myconf} --enable-server"
+ myconf="${myconf} --enable-dccifd"
+ myconf="${myconf} --with-rundir=${dcc_rundir}"
+ myconf="${myconf} --with-db-memory=64"
+ myconf="${myconf} --with-max-db-mem=128"
+ myconf="${myconf} --with-max-log-size=0"
+ myconf="${myconf} --with-make-cmd=${MAKE:-make}"
+ myconf="${myconf} $(use_enable ipv6 IPv6)"
+ myconf="${myconf} $(use_with cgi cgibin ${dcc_cgibin})"
+ myconf="${myconf} $(use_enable milter dccm)"
+ use milter && myconf="${myconf} --with-sendmail="
+
+ einfo "Using config: ${myconf}"
+
+ # This is NOT a normal configure script.
+ ./configure ${myconf} || die "configure failed!"
+}
+
+moveconf() {
+ local into=/etc/dcc/
+ for i in $@; do
+ mv "${D}${dcc_homedir}/${i}" "${D}${into}"
+ dosym "${into}${i}" "${dcc_homedir}/${i}"
+ done
+}
+
+src_install() {
+ # stolen from the RPM .spec and modified for gentoo
+ MANOWN=root MANGRP=$(id -g -n root) export MANOWN MANGRP
+ BINOWN="${MANOWN}" BINGRP="${MANGRP}" export BINOWN BINGRP
+ DCC_PROTO_HOMEDIR="${D}${dcc_homedir}" export DCC_PROTO_HOMEDIR
+ DCC_CGIBINDIR="${D}${dcc_cgibin}" export DCC_CGIBINDIR
+ DCC_SUID="${BINOWN}" DCC_OWN="${BINOWN}" DCC_GRP="${BINGRP}" export DCC_SUID DCC_OWN DCC_GRP
+
+ dodir /etc/cron.daily "${dcc_homedir}" /usr/bin /usr/sbin /usr/share/man/man{0,8} /etc/dcc
+ if use cgi ; then
+ dodir "${dcc_cgibin}"
+ fi
+ keepdir /var/log/dcc
+
+ # This package now takes "${D}" at compile-time!
+ # make DESTDIR="${D}" DCC_BINDIR="${D}"/usr/bin MANDIR="${D}"/usr/share/man/man DCC_HOMEDIR="${D}"${dcc_homedir} install || die
+ emake install
+
+ # branding and setting reasonable defaults
+ sed -e "s/BRAND=\$/BRAND='Gentoo ${PF}'/;" \
+ -e "s/GREY_ENABLE=\$/GREY_ENABLE=off/;" \
+ -e "s/DCCM_LOG_AT=5\$/DCCM_LOG_AT=50/;" \
+ -e "s,DCCM_LOGDIR=\"log\"\$,DCCM_LOGDIR=\"/var/log/dcc\",;" \
+ -e "s/DCCM_ARGS=\$/DCCM_ARGS='-SHELO -Smail_host -SSender -SList-ID'/;" \
+ -e "s/DCCIFD_ARGS=\$/DCCIFD_ARGS=\"\$DCCM_ARGS\"/;" \
+ -e 's/DCCIFD_ENABLE=off/DCCIFD_ENABLE=on/' \
+ -e 's/DBCLEAN_LOGDAYS=14/DBCLEAN_LOGDAYS=1/' \
+ -i "${D}${dcc_homedir}/dcc_conf"
+
+ if use milter ; then
+ # enable milter
+ sed -i -e "s:^[\t #]*\(DCCM_ENABLE[\t ]*=[\t ]*\).*:\1on:g" \
+ "${D}${dcc_homedir}"/dcc_conf
+ fi
+
+ # provide cronjob
+ mv "${D}"/usr/sbin/cron-dccd "${D}"/etc/cron.daily/dccd || die "mv failed"
+
+ # clean up
+ mv "${D}"/usr/sbin/logger "${D}"/usr/sbin/logger-dcc || die "mv failed"
+
+ statslist="${D}/usr/sbin/{dcc-stats-graph,dcc-stats-init,dcc-stats-collect}"
+ if ! use rrdtool; then
+ # remove rrdtool interface scripts
+ eval rm -f ${statslist} || die "Failed to clean up rrdtool scripts"
+ fi
+
+ # clean up
+ rm -f "${D}"/usr/sbin/{rcDCC,updatedcc}
+
+ # place configuration files into /etc instead of /var/dcc
+ moveconf dcc_conf flod grey_flod grey_whitelist ids map map.txt whiteclnt whitecommon whitelist
+
+ newinitd "${FILESDIR}"/dcc.initd-1.3.154 dcc
+ newconfd "${FILESDIR}"/dcc.confd dcc
+
+ rmdir "${D}"/var/dcc/log/
+
+ dodoc CHANGES RESTRICTIONS
+ dohtml *.html
+ doman *.{0,8}
+}