From 7794504fc85aa68fa087f3627b01544fe82e4b70 Mon Sep 17 00:00:00 2001 From: Pav Lucistnik Date: Sun, 21 Nov 2004 02:35:46 +0000 Subject: - Update to 1.2.58 - Correct detection of sendmail port - Don't delete config file if modified - Use special user for setuid programs PR: ports/74158 Submitted by: Dean Hollister (maintainer) --- mail/dcc-dccd/Makefile | 83 ++++++++++++++++++++++++-- mail/dcc-dccd/distinfo | 4 +- mail/dcc-dccd/files/patch-configure | 18 ++++++ mail/dcc-dccd/files/patch-homedir::Makefile.in | 15 +++++ mail/dcc-dccd/pkg-deinstall | 13 ++++ mail/dcc-dccd/pkg-install | 36 +++++++++++ mail/dcc-dccd/pkg-plist | 5 +- 7 files changed, 165 insertions(+), 9 deletions(-) create mode 100644 mail/dcc-dccd/files/patch-configure create mode 100644 mail/dcc-dccd/files/patch-homedir::Makefile.in create mode 100644 mail/dcc-dccd/pkg-deinstall create mode 100644 mail/dcc-dccd/pkg-install (limited to 'mail/dcc-dccd') 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 + +.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 +.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 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 -- cgit v1.2.3