Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2005 13:16:39 -0500 (CDT)
From:      "Douglas K. Rand" <rand@meridian-enviro.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        mike@tric.tomsk.gov.ru
Subject:   ports/81415: Port for snert.com's milter-ahead.
Message-ID:  <200505231816.j4NIGd8W059432@delta.meridian-enviro.com>
Resent-Message-ID: <200505231820.j4NIK2wq067276@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         81415
>Category:       ports
>Synopsis:       Port for snert.com's milter-ahead.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 23 18:20:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Douglas K. Rand
>Release:        FreeBSD 4.11-RELEASE-p9 i386
>Organization:
Meridian Environmental Technology, Inc.
>Environment:
System: FreeBSD delta.meridian-enviro.com 4.11-RELEASE-p9 FreeBSD 4.11-RELEASE-p9 #22: Fri May 13 13:15:51 CDT 2005 rand@delta.meridian-enviro.com:/usr/obj/usr/src/sys/DELTA i386


>Description:
	Here is a port for snert.com's milter-ahead mail filter for sendmail
	that usually runs on an exposed gateway and checks with an internal
	host that the recipient is able to recieve mail.

	Much of the port was stolen from Mike Boev's <mike@tric.tomsk.gov.ru>
	port for milter-spamc, since both are from the same author. Thanks Mike,
	that made producing the port *MUCH* easier.
>How-To-Repeat:
	
>Fix:


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	Makefile
#	distinfo
#	files
#	pkg-descr
#	pkg-message
#	pkg-plist
#	files/milter-ahead.sh
#	files/patch-configure
#	files/patch-install.sh.in
#	files/patch-lib-configure
#	files/patch-milter-ahead.mc.in
#
echo x - Makefile
sed 's/^X//' >Makefile << 'END-of-Makefile'
X# New ports collection makefile for:    milter-ahead
X# Date created:                         2005-05-03
X# Whom:                                 Douglas K. Rand
X#
X# $FreeBSD$
X#
X
XPORTNAME=	milter-ahead
XPORTVERSION=	0.8
XCATEGORIES=	mail
XMASTER_SITES=	http://www.snert.com/Software/download/
XDISTFILES=	libsnert-1.40.tgz milter-ahead-${PORTVERSION}.tgz
X
XMAINTAINER=	rand@meridian-enviro.com
XCOMMENT=	Milter for sendmail gateways to call-ahead before accepting mail
X
XRESTRICTED=	No redistribution allowed
X
XUSE_REINPLACE=	yes
XGNU_CONFIGURE=	yes
X
XWRKSRC=		${WRKDIR}/com/snert/src/milter-ahead
XMAKEFILE=	makefile
X
X.include <bsd.port.pre.mk>
X
X.if ( ${OSVERSION} < 440000 )
XBUILD_DEPENDS=	gxargs:${PORTSBASE}/misc/findutils
X.endif
X
X.if !exists(/usr/lib/libmilter.a) && !exists(${LOCALBASE}/lib/libmilter.a)
XIGNORE=		requires Sendmail 8.12
X.endif
X.if exists(${LOCALBASE}/lib/libmilter.a)
XCFLAGS+=	-I${LOCALBASE}/include
XLDFLAGS+=	-L${LOCALBASE}/lib
X.endif
XCFLAGS+=	${PTHREAD_CFLAGS}
XLDFLAGS+=	${PTHREAD_LIBS}
X
XDOCS=		CHANGES.TXT index.shtml style.css mailto.js \
X		LICENSE.TXT
X
XCONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
XCONFIGURE_ENV+=	LDFLAGS="${LDFLAGS}"
XCONFIGURE_ARGS+=--localstatedir=/var/spool
X.if !defined(WITH_DEBUG)
XCONFIGURE_ARGS+=--disable-debug
X.endif
X
XUSE_RC_SUBR=	yes
XRC_SCRIPTS_SUB=	PREFIX=${PREFIX} RC_SUBR=${RC_SUBR} NAME=milter_ahead
X
Xpost-extract:
X	${SED}	${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
X		${FILESDIR}/milter-ahead.sh > ${WRKSRC}/milter-ahead.sh.freebsd
X
Xpost-patch:
X.if ( ${OSVERSION} < 440000 ) # please contact vs@ if in doubt
X	${REINPLACE_CMD} 's/xargs -J{}/gxargs -i{}/' ${WRKSRC}/../lib/configure
X.endif
X	${REINPLACE_CMD} "s,-fvolatile,," ${WRKSRC}/configure
X
Xpre-configure:
X	@cd ${WRKSRC}/../lib && \
X	${SETENV} CC="${CC}" CXX="${CXX}" \
X	CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
X	INSTALL="/usr/bin/install -c ${_BINOWNGRP}" \
X	INSTALL_DATA="${INSTALL_DATA}" \
X	INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
X	INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
X	${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS}
X	@cd ${WRKSRC}/../lib && \
X	${SETENV} ${MAKE_ENV} ${MAKE} \
X	${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${DOCSDIR}/Img
X	cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}
X	@cd ${WRKSRC}/Img && \
X	${INSTALL_DATA} *.gif *.png ${DOCSDIR}/Img
X.endif
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.post.mk>
END-of-Makefile
echo x - distinfo
sed 's/^X//' >distinfo << 'END-of-distinfo'
XMD5 (libsnert-1.40.tgz) = ee97d93f06304a87f54f1caf994cc91b
XSIZE (libsnert-1.40.tgz) = 307456
XMD5 (milter-ahead-0.8.tgz) = e6de758799b826261faf31049321815e
XSIZE (milter-ahead-0.8.tgz) = 76786
END-of-distinfo
echo c - files
mkdir -p files > /dev/null 2>&1
echo x - pkg-descr
sed 's/^X//' >pkg-descr << 'END-of-pkg-descr'
XThis Sendmail milter (mail filter) allows a gateway mail server to call-ahead
Xto a relay or internal mail store before accepting mail for recipients of a
Xmessage. Think of it as a lazy man's LDAP. It could also be used by fallback MX
Xservers to verify recipients with the primary MX. This milter was derived from
Xa similar facility found in milter-sender.
X
XWWW: http://www.milter.info/milter-ahead/
END-of-pkg-descr
echo x - pkg-message
sed 's/^X//' >pkg-message << 'END-of-pkg-message'
X************************************************************************
X
XIn order to run this port, please add the following line to
X/etc/mail/YOUR-CONF.mc:
X
Xinclude(`milter-ahead.mc')dnl
X
XDon't forget to remake and reinstall the sendmail configuration file
Xafter modifying YOUR-CONF.mc.
X
X************************************************************************
END-of-pkg-message
echo x - pkg-plist
sed 's/^X//' >pkg-plist << 'END-of-pkg-plist'
X@unexec if [ -f %D/etc/rc.d/milter-ahead.sh ] && cmp -s %D/etc/rc.d/milter-ahead.sh %D/etc/rc.d/milter-ahead.sh.sample; then rm -f %D/etc/rc.d/milter-ahead.sh; fi
Xetc/rc.d/milter-ahead.sh.sample
X@exec if [ ! -f %D/etc/rc.d/milter-ahead.sh ] ; then cp %D/%F %B/milter-ahead.sh; fi
Xsbin/milter-ahead
X@exec install -d -o smmsp -g smmsp -m 755 /var/spool/milter-ahead
X@unexec rm -rf /var/spool/milter-ahead 2>&1 >/dev/null || true
X%%PORTDOCS%%%%DOCSDIR%%/CHANGES.TXT
X%%PORTDOCS%%%%DOCSDIR%%/LICENSE.TXT
X%%PORTDOCS%%%%DOCSDIR%%/index.shtml
X%%PORTDOCS%%%%DOCSDIR%%/mailto.js
X%%PORTDOCS%%%%DOCSDIR%%/Img/bg.gif
X%%PORTDOCS%%%%DOCSDIR%%/Img/mrpixel.gif
X%%PORTDOCS%%%%DOCSDIR%%/Img/sendmail-bat-left-142x38.png
X%%PORTDOCS%%%%DOCSDIR%%/Img/sendmail-bat-right-142x38.png
X%%PORTDOCS%%%%DOCSDIR%%/Img/sun.gif
X%%PORTDOCS%%%%DOCSDIR%%/style.css
X@unexec echo
X@unexec echo "If permanently deleting this package, don't forget to delete"
X@unexec echo "the inclusion of milter-ahead.mc from /etc/mail/YOUR-CONF.mc"
X@unexec echo "and then to rebuild and reinstall the sendmail configuration file!"
X@unexec echo
X%%PORTDOCS%%@dirrm %%DOCSDIR%%/Img
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
X@cwd /
X@unexec if [ -f %D/etc/mail/milter-ahead.mc ] && cmp -s %D/etc/mail/milter-ahead.mc %D/etc/mail/milter-ahead.mc.sample; then rm -f %D/etc/mail/milter-ahead.mc; fi
Xetc/mail/milter-ahead.mc.sample
X@exec if [ ! -f %D/etc/mail/milter-ahead.mc ] ; then cp %D/%F %B/milter-ahead.mc; fi
END-of-pkg-plist
echo x - files/milter-ahead.sh
sed 's/^X//' >files/milter-ahead.sh << 'END-of-files/milter-ahead.sh'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X
X# PROVIDE: %%NAME%%
X# REQUIRE: syslogd
X# BEFORE:  sendmail
X# KEYWORD: FreeBSD shutdown
X
X#
X# Add the following lines to /etc/rc.conf to enable milter-ahead:
X#
X#%%NAME%%_enable="YES"
X#
X# See %%PREFIX%%/share/doc/milter-ahead/index.shtml for flags
X#
X
X. %%RC_SUBR%%
X
Xname=%%NAME%%
Xrcvar=`set_rcvar`
X
X# set defaults
X%%NAME%%_enable=${%%NAME%%_enable:-"NO"}
X%%NAME%%_chdir="/var/spool/milter-ahead"
X%%NAME%%_pidfile=${%%NAME%%_pidfile:-"$%%NAME%%_chdir/pid"}
X%%NAME%%_flags=${%%NAME%%_flags:-"-f /etc/mail/sendmail.cf unix:$%%NAME%%_chdir/socket"}
X
Xcommand=%%PREFIX%%/sbin/milter-ahead
Xcommand_args="&"
Xrequired_dirs="$%%NAME%%_chdir"
X
Xstart_precmd=start_precmd
Xstart_precmd()
X{
X    if [ -s "$%%NAME%%_chdir/mutex" ]; then
X	ipcrm -s `cat $%%NAME%%_chdir/mutex`
X    fi
X    rm -f $%%NAME%%_chdir/{mutex,socket} $%%NAME%%_pidfile
X}
X
Xload_rc_config $name
Xrun_rc_command "$1"
END-of-files/milter-ahead.sh
echo x - files/patch-configure
sed 's/^X//' >files/patch-configure << 'END-of-files/patch-configure'
X--- configure.orig	Tue May  3 17:28:48 2005
X+++ configure	Tue May  3 17:29:17 2005
X@@ -1619,7 +1619,7 @@
X 	COMPILE='$(CC) $(CFLAGS) $(CC_O)$*$O -c $<'
X 
X 	# Assume GCC.
X-	CFLAGS="$CFLAGS -pthread -Wall -fvolatile"
X+	CFLAGS="$CFLAGS -Wall -fvolatile"
X elif test "$OS" = 'SunOS'; then
X 	# This used to be -I{}, but I've seen two different SunOS 5.8
X 	# systems in two different parts of the world with man pages
END-of-files/patch-configure
echo x - files/patch-install.sh.in
sed 's/^X//' >files/patch-install.sh.in << 'END-of-files/patch-install.sh.in'
X--- install.sh.in.orig	Tue May  3 17:12:42 2005
X+++ install.sh.in	Tue May  3 17:17:56 2005
X@@ -12,57 +12,16 @@
X STARTUP_EXT=".sh"
X MAILDIR="/etc/mail"
X 
X-if [ ! -d ${STATEDIR} ]; then
X-	mkdir -p ${STATEDIR}
X-fi
X-chown ${USER} ${STATEDIR}
X-chgrp ${GROUP} ${STATEDIR}
X+install -d -o $USER -g $USER -m 755 $STATEDIR
X 
X RC="${STARTUP_DIR}/${MILTER}${STARTUP_EXT}"
X-if [ ! -f $RC ]; then
X-	cp ${MILTER}.sh $RC
X-	chmod 540 $RC
X+${BSD_INSTALL_SCRIPT} ${MILTER}.sh.freebsd $RC.sample
X+[ ! -f $RC ] && cp $RC.sample $RC
X 
X-	case `uname -s` in
X-	Linux*)
X-		which chkconfig
X-		if test $? -eq 0; then	
X-			chkconfig --add ${MILTER}
X-		else
X-			# Probably a stupid Debian system.
X-			cd ${STARTUP_DIR}
X+${BSD_INSTALL_PROGRAM} ${MILTER} ${SBINDIR}
X 
X-			# Create relative links
X-			cd ../rc0.d
X-			ln -s ../init.d/${MILTER} K20${MILTER}
X-			cd ../rc1.d
X-			ln -s ../init.d/${MILTER} K20${MILTER}
X-			cd ../rc6.d
X-			ln -s ../init.d/${MILTER} K20${MILTER}
X-
X-			# Assume S20sendmail or higher.
X-			cd ../rc2.d
X-			ln -s ../init.d/${MILTER} S18${MILTER}
X-			cd ../rc3.d
X-			ln -s ../init.d/${MILTER} S18${MILTER}
X-			cd ../rc4.d
X-			ln -s ../init.d/${MILTER} S18${MILTER}
X-			cd ../rc5.d
X-			ln -s ../init.d/${MILTER} S18${MILTER}
X-		fi
X-		;;
X-	SunOS*)
X-		# Does SunOS have a chkconfig like tool?	
X-		ln -s $RC /etc/rc2.d/S70${MILTER}
X-		ln -s $RC /etc/rcS.d/K30${MILTER}
X-		;;
X-	esac
X-fi
X-
X-cp -f ${MILTER} ${SBINDIR}
X-chmod 550 ${SBINDIR}/${MILTER}
X-
X-cp -f ${MILTER}.mc ${MAILDIR}/${MILTER}.mc.sample
X+${BSD_INSTALL_DATA} ${MILTER}.mc ${MAILDIR}/${MILTER}.mc.sample
X+[ ! -f ${MAILDIR}/${MILTER}.mc ] && cp ${MAILDIR}/${MILTER}.mc.sample ${MAILDIR}/${MILTER}.mc
X 
X echo '***************************************************************'
X echo
END-of-files/patch-install.sh.in
echo x - files/patch-lib-configure
sed 's/^X//' >files/patch-lib-configure << 'END-of-files/patch-lib-configure'
X--- ../lib/configure.orig	Tue May  3 17:24:59 2005
X+++ ../lib/configure	Tue May  3 17:25:17 2005
X@@ -1628,7 +1628,6 @@
X 
X 	if test "$OS" = 'FreeBSD' -o "$OS" = 'OpenBSD' -o "$OS" = 'NetBSD'; then
X 		# Assume GCC.
X-		CFLAGS="${CFLAGS} -D_THREAD_SAFE -pthread"
X 		COMPILE='$(CC) $(CFLAGS) $(CC_O)$*$O -c $<'
X 		ARCHIVE='ar rc $(LIB) {}'
X 		XARGSI='xargs -J{}'
END-of-files/patch-lib-configure
echo x - files/patch-milter-ahead.mc.in
sed 's/^X//' >files/patch-milter-ahead.mc.in << 'END-of-files/patch-milter-ahead.mc.in'
X--- milter-ahead.mc.in.orig	Tue May  3 17:26:19 2005
X+++ milter-ahead.mc.in	Tue May  3 17:26:33 2005
X@@ -4,7 +4,7 @@
X dnl Example configuration to be added to sendmail.mc.
X dnl
X 
X-define(`_FFR_MILTER', `1')dnl
X+dnl define(`_FFR_MILTER', `1')dnl
X 
X dnl -------------------------------------------------------------------
X dnl Enable this for debug output from Sendmail.
END-of-files/patch-milter-ahead.mc.in
exit

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505231816.j4NIGd8W059432>