commit:     2674b83c7df9e125e8327ad42107eeb1d2114541
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 28 17:59:45 2022 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Mon Nov 28 18:37:22 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2674b83c

mail-filter/dcc: add 2.3.168

Add myself as a maintainer
EAPI=8
Add systemd service for dccifd
Use /var/dcc to /var/lib/dcc

Closes: https://bugs.gentoo.org/show_bug.cgi?id=688500

Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/28464
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 mail-filter/dcc/Manifest             |   1 +
 mail-filter/dcc/dcc-2.3.168.ebuild   | 141 +++++++++++++++++++++++++++++++++++
 mail-filter/dcc/files/dccifd.service |  34 +++++++++
 mail-filter/dcc/metadata.xml         |   4 +
 4 files changed, 180 insertions(+)

diff --git a/mail-filter/dcc/Manifest b/mail-filter/dcc/Manifest
index 7eb162306044..d4661daeb0b1 100644
--- a/mail-filter/dcc/Manifest
+++ b/mail-filter/dcc/Manifest
@@ -1 +1,2 @@
 DIST dcc-1.3.158.tar.Z 1714175 BLAKE2B 
19e11e9e78268e76bf97f16ad6f03f0bb114ec9fbc9b1f8bb6ca7ce72fa419b1e50a6d35ee32ed5352b13da96002d313c00a07395317d33082eb69c9ae60008e
 SHA512 
24fba5ea713e8df1468644508c323d64b3868685716b7cc02263933476940a807cfc4593432a9195371308c83d4ea93653e89634681d95dcb32f5d65c7274599
+DIST dcc-2.3.168.tar.Z 1608203 BLAKE2B 
d0dac4ee233fede16b4904524126cff4f127e59177d11624acf850861b9f267718efab974edafbd4521bcf78a2c3d626876c23c0af3cc108cd131c197dbc9945
 SHA512 
52a9671ba355a2d3e82246c3b5cf3875148d48bd314371d9e608643a59922becdf024b880e4bd37f6e36aa50830110600960ffa7a3ddd69ed7239bfc0578f141

diff --git a/mail-filter/dcc/dcc-2.3.168.ebuild 
b/mail-filter/dcc/dcc-2.3.168.ebuild
new file mode 100644
index 000000000000..0ac9be7299a7
--- /dev/null
+++ b/mail-filter/dcc/dcc-2.3.168.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+DESCRIPTION="Distributed Checksum Clearinghouse"
+HOMEPAGE="https://www.rhyolite.com/dcc/";
+SRC_URI="https://www.rhyolite.com/dcc/source/old/${P}.tar.Z";
+
+LICENSE="DCC GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="cgi ipv6 rrdtool milter"
+
+RDEPEND="
+       dev-lang/perl
+       || (
+               net-ftp/ftp
+               net-misc/curl
+               net-misc/wget
+               www-client/fetch
+       )
+       milter? ( mail-filter/libmilter:= )
+       rrdtool? ( net-analyzer/rrdtool )"
+DEPEND="${RDEPEND}"
+
+dcc_cgibin=var/www/localhost/cgi-bin/dcc
+dcc_homedir=var/lib/dcc
+dcc_libexec=usr/sbin
+dcc_man=usr/share/man
+dcc_rundir=var/run/dcc
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.3.158-clang16.patch
+       "${FILESDIR}"/${PN}-1.3.158-c2x.patch
+)
+
+src_configure() {
+       tc-export CC AR RANLIB
+       local myconf=(
+               --bindir="${EPREFIX}"/usr/bin
+               --homedir="${EPREFIX}"/${dcc_homedir}
+               --libexecdir="${EPREFIX}"/${dcc_libexec}
+               --mandir="${EPREFIX}"/usr/share/man
+               --enable-dccifd
+               --enable-server
+               --with-DDC-MD5
+               --with-installroot="${D}"
+               --with-rundir="${EPREFIX}"/${dcc_rundir}
+               --with-uid=root
+               
--with-updatedcc_pfile="${EPREFIX}"/${dcc_homedir}/updatecc.pfile
+               --with-db-memory=64
+               --with-max-db-mem=128
+               --with-max-log-size=0
+               --with-make-cmd=${MAKE:-make}
+               $(use_enable ipv6 IPv6)
+               $(use_enable milter dccm)
+               $(use_with cgi cgibin ${dcc_cgibin})
+               $(use_with milter sendmail)
+       )
+
+       einfo "Using config: ${myconf[@]}"
+
+       # This is NOT a normal configure script.
+       ./configure "${myconf[@]}" || die "configure failed!"
+}
+
+moveconf() {
+       local i
+       for i in $@; do
+               mv "${ED}/${dcc_homedir}/${i}" "${ED}"/etc/dcc || die
+               dosym ../../../etc/dcc/"${i}" "${dcc_homedir}/${i}"
+       done
+}
+
+src_install() {
+       # stolen from the RPM .spec and modified for gentoo
+       export MANOWN=root
+       export MANGRP=$(id -g -n root)
+       export BINOWN="${MANOWN}"
+       export BINGRP="${MANGRP}"
+       export DCC_PROTO_HOMEDIR="${ED}/${dcc_homedir}"
+       export DCC_CGIBINDIR="${ED}/${dcc_cgibin}"
+       export DCC_SUID="${BINOWN}"
+       export DCC_OWN="${BINOWN}"
+       export DCC_GRP="${BINGRP}"
+
+       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
+
+       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 "${ED}/${dcc_homedir}/dcc_conf" || die
+
+       if use milter ; then
+               # enable milter
+               sed -i -e "s:^[\t #]*\(DCCM_ENABLE[\t ]*=[\t ]*\).*:\1on:g" \
+                       "${ED}/${dcc_homedir}"/dcc_conf || die
+       fi
+
+       # provide cronjob
+       mv "${ED}"/usr/sbin/cron-dccd "${ED}"/etc/cron.daily/dccd || die "mv 
failed"
+
+       # clean up
+       mv "${ED}"/usr/sbin/logger "${ED}"/usr/sbin/logger-dcc || die "mv 
failed"
+
+       if ! use rrdtool; then
+               # remove rrdtool interface scripts
+               rm "${ED}"/usr/sbin/dcc-stats-{collect,graph,init} || die 
"Failed to clean up rrdtool scripts"
+       fi
+
+       # clean up
+       rm "${ED}"/usr/sbin/{rcDCC,updatedcc} || die
+
+       # 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 "${ED}"/"${dcc_homedir}"/log || die
+
+       dodoc CHANGES
+       doman *.{0,8}
+
+       systemd_dounit "${FILESDIR}/dccifd.service"
+}

diff --git a/mail-filter/dcc/files/dccifd.service 
b/mail-filter/dcc/files/dccifd.service
new file mode 100644
index 000000000000..4055a752f933
--- /dev/null
+++ b/mail-filter/dcc/files/dccifd.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=DCC (Distributed Checksum Clearinghouses) interface daemon
+
+[Service]
+Type=forking
+PermissionsStartOnly=true
+RuntimeDirectory=dcc
+ConfigurationDirectory=dcc
+LogsDirectory=dcc
+StateDirectory=dcc
+ExecStart=/usr/sbin/dccifd
+
+#DCC writes pid file with "-" at the beginning which confuses systemd
+#PIDFile=/run/dcc/dccifd.pid
+
+# Hardening
+ProtectSystem=strict
+PrivateDevices=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+RestrictRealtime=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+ProtectHome=true
+ProtectHostname=true
+ProtectClock=true
+PrivateTmp=true
+SystemCallArchitectures=native
+MemoryDenyWriteExecute=true
+NoNewPrivileges=true
+
+[Install]
+WantedBy=multi-user.target
+

diff --git a/mail-filter/dcc/metadata.xml b/mail-filter/dcc/metadata.xml
index 95bdf6ac5792..d694695270e8 100644
--- a/mail-filter/dcc/metadata.xml
+++ b/mail-filter/dcc/metadata.xml
@@ -4,6 +4,10 @@
 <maintainer type="person">
        <email>[email protected]</email>
 </maintainer>
+<maintainer type="person">
+       <email>[email protected]</email>
+       <name>Craig Andrews</name>
+</maintainer>
 <use>
        <flag name="rrdtool">Enable <pkg>net-analyzer/rrdtool</pkg> interface
                scripts</flag>

Reply via email to