aboutsummaryrefslogtreecommitdiff
path: root/mail/dcc-dccd
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2004-11-21 02:35:46 +0000
committerPav Lucistnik <pav@FreeBSD.org>2004-11-21 02:35:46 +0000
commit7794504fc85aa68fa087f3627b01544fe82e4b70 (patch)
treefb5c2ea100b3601705f65bd3b39233a8e9b6eb90 /mail/dcc-dccd
parent45d204660fc18a9d1d35821146125cdb57a36130 (diff)
downloadports-7794504fc85aa68fa087f3627b01544fe82e4b70.tar.gz
ports-7794504fc85aa68fa087f3627b01544fe82e4b70.zip
Notes
Diffstat (limited to 'mail/dcc-dccd')
-rw-r--r--mail/dcc-dccd/Makefile83
-rw-r--r--mail/dcc-dccd/distinfo4
-rw-r--r--mail/dcc-dccd/files/patch-configure18
-rw-r--r--mail/dcc-dccd/files/patch-homedir::Makefile.in15
-rw-r--r--mail/dcc-dccd/pkg-deinstall13
-rw-r--r--mail/dcc-dccd/pkg-install36
-rw-r--r--mail/dcc-dccd/pkg-plist5
7 files changed, 165 insertions, 9 deletions
diff --git a/mail/dcc-dccd/Makefile b/mail/dcc-dccd/Makefile
index 8e45f4a1eab3..e7c7cddf5f50 100644
--- a/mail/dcc-dccd/Makefile
+++ b/mail/dcc-dccd/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= dcc-dccd
-PORTVERSION= 1.2.48
+PORTVERSION= 1.2.58
CATEGORIES= mail
MASTER_SITES= http://www.rhyolite.com/anti-spam/dcc/source/old/ \
http://www.wa.apana.org.au/~dean/sources/ \
@@ -18,19 +18,80 @@ COMMENT= Distributed Checksum Clearinghouse procmail, sendmail support
USE_REINPLACE= yes
HAS_CONFIGURE= yes
-CONFIGURE_ARGS= --homedir=${PREFIX}/dcc
MANCOMPRESSED= yes
MAN8= cdcc.8 dbclean.8 dblist.8 dcc.8 dccd.8 dccifd.8 dccm.8 \
dccproc.8 dccsight.8
-.if exists(/usr/lib/libmilter.a) || exists(${LOCALBASE}/lib/libmilter.a)
+PKGINSTALL= ${WRKDIR}/pkg-install
+PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
+
+#
+# User for dcc files and SUID binaries
+#
+DCCUSER?= dcc
+DCCUID?= 112
+DCCGROUP?= dcc
+DCCGID?= 112
+
+#
+# You can choose the sendmail to be used by specifying
+#
+# WITH_SENDMAIL_BASE=yes
+# or
+# WITH_SENDMAIL_PORT=yes
+#
+
+# if no preference was set, check for an up to date base version
+# but give an installed port preference over it.
+
+HOMEDIR= ${PREFIX}/dcc
+CONFIGURE_ARGS= --homedir=${HOMEDIR}
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITH_SENDMAIL_BASE) && !defined(WITH_SENDMAIL_PORT) && !exists(${LOCALBASE}/lib/libmilter.a)
+WITH_SENDMAIL_BASE=yes
+.endif
+
+.if defined(WITH_SENDMAIL_BASE)
+.if exists(/usr/lib/libmilter.a)
+MILTERBASE= /usr
+WITH_SENDMAIL= yes
+.else
+BROKEN= "Base system sendmail not found or too old, rebuild with WITH_SENDMAIL_PORT=yes"
+.endif
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/lib/libmilter.a:${PORTSDIR}/mail/sendmail
+MILTERBASE?= ${LOCALBASE}
+WITH_SENDMAIL= yes
+.endif
+
+.if !defined(WITHOUT_SENDMAIL) && defined(WITH_SENDMAIL)
+MILTERINC= ${MILTERBASE}/include
+MILTERLIB= ${MILTERBASE}/lib
+
+CPPFLAGS+= -I${MILTERINC}
+LDFLAGS+= -L${MILTERLIB}
+
+CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
+CONFIGURE_ARGS+= --with-sendmail=${MILTERBASE}
PLIST_SUB+= WITH_SENDMAIL=""
.else
-CONFIGURE_ARGS+= --disable-dccm --disable-dccifd
+CONFIGURE_ARGS+= --disable-dccm
PLIST_SUB+= WITH_SENDMAIL="@comment "
.endif
-.include <bsd.port.pre.mk>
+.if defined(WITHOUT_DCCIFD)
+CONFIGURE_ARGS+= --disable-dccifd
+PLIST_SUB+= WITH_DCCIFD="@comment "
+.else
+PLIST_SUB+= WITH_DCCIFD=""
+.endif
+
+CONFIGURE_ARGS+= --with-uid=${DCCUSER}
+SED_SCRIPT= -e 's|%%PREFIX%%|${PREFIX}|g' \
+ -e 's|%%DCCUSER%%|${DCCUSER}|g' -e 's|%%DCCUID%%|${DCCUID}|g' \
+ -e 's|%%DCCGROUP%%|${DCCGROUP}|g' -e 's|%%DCCGID%%|${DCCGID}|g'
post-patch:
${FIND} ${WRKSRC} -type f -exec \
@@ -39,4 +100,16 @@ post-patch:
${REINPLACE_CMD} -e 's,FreeBSD)\n\tPTHREAD_LDFLAGS,FreeBSD)\n\tDCC_CFLAGS="${PTHREAD_CFLAGS} $$DCC_CFLAGS"\n\tPTHREAD_LDFLAGS,g' ${WRKSRC}/configure
${REINPLACE_CMD} -e 's,PTHREAD_LIBS="$$PTHREAD_LIBS -lc_r,PTHREAD_LIBS=" ${PTHREAD_LIBS},g' ${WRKSRC}/configure
+post-build:
+ @${SED} ${SED_SCRIPT} ${PKGDIR}/pkg-install >${PKGINSTALL}
+ @${SED} ${SED_SCRIPT} ${PKGDIR}/pkg-deinstall >${PKGDEINSTALL}
+
+pre-install:
+ @${SETENV} PKG_PREFIX=${PREFIX} \
+ ${SH} ${PKGINSTALL} ${PREFIX} PRE-INSTALL
+
+post-install:
+ @[ -s ${HOMEDIR}/dcc_conf ] || \
+ ${CP} ${HOMEDIR}/dcc_conf.dist ${HOMEDIR}/dcc_conf
+
.include <bsd.port.post.mk>
diff --git a/mail/dcc-dccd/distinfo b/mail/dcc-dccd/distinfo
index 790218fcde96..23d64c47ebd4 100644
--- a/mail/dcc-dccd/distinfo
+++ b/mail/dcc-dccd/distinfo
@@ -1,2 +1,2 @@
-MD5 (dcc-dccd-1.2.48.tar.Z) = 5f15ceaddfca99bc131898ced6c1b9bc
-SIZE (dcc-dccd-1.2.48.tar.Z) = 1169098
+MD5 (dcc-dccd-1.2.58.tar.Z) = 29263b15bdfe1c619bad6e926121118f
+SIZE (dcc-dccd-1.2.48.tar.Z) = 1180194
diff --git a/mail/dcc-dccd/files/patch-configure b/mail/dcc-dccd/files/patch-configure
new file mode 100644
index 000000000000..f9c6cec4f8f6
--- /dev/null
+++ b/mail/dcc-dccd/files/patch-configure
@@ -0,0 +1,18 @@
+--- configure.orig Mon May 17 21:32:49 2004
++++ configure Tue May 25 18:19:48 2004
+@@ -2244,6 +2244,15 @@
+ SENDMAIL_EVAL="$SENDMAIL"
+ with_sendmail=yes
+ fi
++#
++if test -n "$SENDMAIL" -a "$SENDMAIL" != "no"; then
++ if test -f $SENDMAIL/include/libmilter/mfapi.h -a -f $SENDMAIL/lib/libmilter.a; then
++ SENDMAIL_OBJ=$SENDMAIL/lib
++ SENDMAIL_OBJ_EVAL=$SENDMAIL_OBJ
++ SENDMAIL_LIB=$SENDMAIL_OBJ/libmilter.a
++ fi
++fi
++#
+ if test -z "$SENDMAIL"; then
+ # prefer a parallel ../sendmail directory
+ DEPTH=.
diff --git a/mail/dcc-dccd/files/patch-homedir::Makefile.in b/mail/dcc-dccd/files/patch-homedir::Makefile.in
new file mode 100644
index 000000000000..6efaf21851ad
--- /dev/null
+++ b/mail/dcc-dccd/files/patch-homedir::Makefile.in
@@ -0,0 +1,15 @@
+--- homedir/Makefile.in Tue May 25 20:37:04 2004
++++ homedir/Makefile.in Tue May 25 20:38:04 2004
+@@ -28,11 +28,7 @@
+ install:
+ for nm in $(INST_HOMEDIR) $(INST_HOMEDIR)/log; do \
+ $(HINSTALL) -m 755 -d $$nm; done
+- if test -s $(INST_HOMEDIR)/dcc_conf; then \
+- sh make-dcc_conf -h $(INST_HOMEDIR); \
+- else \
+- $(HINSTALL) -m 644 dcc_conf $(INST_HOMEDIR)/dcc_conf; \
+- fi
++ $(HINSTALL) -m 644 dcc_conf $(INST_HOMEDIR)/dcc_conf.dist
+ for nm in flod grey_flod whitelist grey_whitelist \
+ whiteclnt whitecommon; do \
+ if test ! -f $(INST_HOMEDIR)/$$nm; then \
diff --git a/mail/dcc-dccd/pkg-deinstall b/mail/dcc-dccd/pkg-deinstall
new file mode 100644
index 000000000000..2b35b92205c6
--- /dev/null
+++ b/mail/dcc-dccd/pkg-deinstall
@@ -0,0 +1,13 @@
+#!/bin/sh
+# $FreeBSD$
+
+if [ "$2" != "POST-DEINSTALL" ]; then
+ exit 0
+fi
+
+DCCUSER=%%DCCUSER%%
+
+if pw usershow "${DCCUSER}" 2>/dev/null 1>&2; then
+ echo "To delete ${DCCUSER} user permanently, use 'pw userdel \"${DCCUSER}\"'"
+fi
+exit 0
diff --git a/mail/dcc-dccd/pkg-install b/mail/dcc-dccd/pkg-install
new file mode 100644
index 000000000000..b87b29ee9498
--- /dev/null
+++ b/mail/dcc-dccd/pkg-install
@@ -0,0 +1,36 @@
+#!/bin/sh
+# $FreeBSD$
+
+PREFIX=${PKG_PREFIX:-%%PREFIX%%}
+
+DCCUSER=%%DCCUSER%%
+DCCUID=%%DCCUID%%
+DCCGROUP=%%DCCGROUP%%
+DCCGID=%%DCCGID%%
+
+if [ "$2" = "PRE-INSTALL" ]; then
+
+ if ! pw groupshow "$DCCGROUP" 2>/dev/null 1>&2; then
+ if pw groupadd $DCCGROUP -g $DCCGID; then
+ echo "=> Added group \"$DCCGROUP\"."
+ else
+ echo "=> Adding group \"$DCCGROUP\" failed..."
+ exit 1
+ fi
+ fi
+
+ if ! pw usershow "$DCCUSER" 2>/dev/null 1>&2; then
+ if pw useradd $DCCUSER -u $DCCUID -g $DCCGROUP -h - \
+ -s "/sbin/nologin" -d "/nonexistent" \
+ -c "Distributed Checksum Clearinghouse"; \
+ then
+ echo "=> Added user \"$DCCUSER\"."
+ else
+ echo "=> Adding user \"$DCCUSER\" failed..."
+ exit 1
+ fi
+ fi
+
+fi
+
+exit 0
diff --git a/mail/dcc-dccd/pkg-plist b/mail/dcc-dccd/pkg-plist
index 44fe3760f074..75507ee3053d 100644
--- a/mail/dcc-dccd/pkg-plist
+++ b/mail/dcc-dccd/pkg-plist
@@ -8,13 +8,14 @@ dcc/cgi-bin/http2https
dcc/cgi-bin/list-log
dcc/cgi-bin/list-msg
dcc/cgi-bin/webuser-notify
-dcc/dcc_conf
+@unexec if cmp -s %D/dcc/dcc_conf %D/dcc/dcc_conf.dist; then rm -f %D/dcc/dcc_conf; fi
+dcc/dcc_conf.dist
dcc/flod
dcc/grey_flod
dcc/grey_whitelist
dcc/ids
dcc/libexec/cron-dccd
-%%WITH_SENDMAIL%%dcc/libexec/dccifd
+%%WITH_DCCIFD%%dcc/libexec/dccifd
%%WITH_SENDMAIL%%dcc/libexec/dccm
dcc/libexec/dbclean
dcc/libexec/dblist