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>