diff -ruN /usr/ports/mail/dkfilter/Makefile dkfilter/Makefile --- /usr/ports/mail/dkfilter/Makefile Sat Nov 5 12:57:27 2005 +++ dkfilter/Makefile Sat Nov 12 17:57:59 2005 @@ -23,12 +23,26 @@ RUN_DEPENDS= ${BUILD_DEPENDS} GNU_CONFIGURE= yes +USE_RC_SUBR= yes WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} +RCDIR?= ${PREFIX}/etc/rc.d + +PLIST_SUB= RCDIR=${RCDIR:S,^${PREFIX}/,,} + .include +RC_SCRIPTS_SUB=PREFIX=${PREFIX} RC_SUBR=${RC_SUBR} + .if ${PERL_LEVEL} < 500600 IGNORE= Perl 5.8 or newer required. Install lang/perl5.8 and try again. .endif + +post-install: +.for i in dkfilter_in dkfilter_out + ${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \ + ${FILESDIR}/${i}.sh > ${WRKDIR}/${i}.sh + ${INSTALL_SCRIPT} ${WRKDIR}/${i}.sh ${RCDIR}/${i}.sh +.endfor .include diff -ruN /usr/ports/mail/dkfilter/distinfo dkfilter/distinfo --- /usr/ports/mail/dkfilter/distinfo Sat Nov 5 12:57:27 2005 +++ dkfilter/distinfo Sat Nov 12 18:00:36 2005 @@ -1,2 +1,3 @@ MD5 (dkfilter.tgz) = ab0bab68dc09d3a86acccd1115b4c28a +SHA256 (dkfilter.tgz) = 7113453ab611f322513fb980d5e50026435934d60e863511ac1e7e3a87400742 SIZE (dkfilter.tgz) = 76885 diff -ruN /usr/ports/mail/dkfilter/files/dkfilter_in.sh dkfilter/files/dkfilter_in.sh --- /usr/ports/mail/dkfilter/files/dkfilter_in.sh Thu Jan 1 09:00:00 1970 +++ dkfilter/files/dkfilter_in.sh Sat Nov 12 18:13:33 2005 @@ -0,0 +1,56 @@ +#!/bin/sh +# $FreeBSD$ +# + +# PROVIDE: dkfilter_in +# REQUIRE: LOGIN +# BEFORE: mail +# KEYWORD: FreeBSD shutdown + +# +# Add the following lines to /etc/rc.conf to enable dkfilter.in: +# +# dkfilter_in_enable="YES" +# + +. %%RC_SUBR%% + +name=dkfilter_in +rcvar=`set_rcvar` + +# set defaults + +dkfilter_in_enable=${dkfilter_in_enable:-"NO"} +dkfilter_in_flags=${dkfilter_in_flags:-"127.0.0.1:10025 127.0.0.1:10026"} +dkfilter_in_pidfile=${dkfilter_in_pidfile:-"/var/run/dkfilter_in.pid"} +dkfilter_in_user=${dkfilter_user:-"dkfilter"} + +start_cmd="dkfilter_in_start" +stop_cmd="dkfilter_in_stop" + +dkfilter_in_start() +{ + if [ -f ${dkfilter_in_pidfile} ]; then + echo "${name} already running?" + exit 1 + fi + touch ${dkfilter_in_pidfile} + chown ${dkfilter_in_user} ${dkfilter_in_pidfile} + su -m ${dkfilter_in_user} -c "daemon -p ${dkfilter_in_pidfile} \ + %%PREFIX%%/bin/dkfilter.in ${dkfilter_in_flags}" + echo "Starting ${name}" +} + +dkfilter_in_stop() +{ + if [ ! -f ${dkfilter_in_pidfile} ]; then + echo "${name} not running?" + exit 1 + fi + kill `cat ${dkfilter_in_pidfile}` + rm -f ${dkfilter_in_pidfile} + echo "Stopping ${name}" +} + +load_rc_config $name +run_rc_command "$1" diff -ruN /usr/ports/mail/dkfilter/files/dkfilter_out.sh dkfilter/files/dkfilter_out.sh --- /usr/ports/mail/dkfilter/files/dkfilter_out.sh Thu Jan 1 09:00:00 1970 +++ dkfilter/files/dkfilter_out.sh Sat Nov 12 17:55:31 2005 @@ -0,0 +1,62 @@ +#!/bin/sh +# $FreeBSD$ +# + +# PROVIDE: dkfilter_out +# REQUIRE: LOGIN +# BEFORE: mail +# KEYWORD: FreeBSD shutdown + +# +# Add the following lines to /etc/rc.conf to enable dkfilter.out: +# +# dkfilter_out_enable="YES" +# +# Before you enable dkfilter.out, you also need to make your domainkey to +# set it to DNS and configurate dkfilter_flags. +# + +. %%RC_SUBR%% + +name="dkfilter_out" +rcvar=`set_rcvar` + +# set defaults + +dkfilter_out_enable=${dkfilter_out_enable:-"NO"} +dkfilter_out_flags=${dkfilter_out_flags:-" --header \ + --keyfile=%%PREFIX%%/etc/dkfilter/private.key \ + --selector=selector1 --domain=example.org --method=nofws \ + 127.0.0.1:10027 127.0.0.1:10028"} +dkfilter_out_pidfile=${dkfilter_out_pidfile:-"/var/run/dkfilter_out.pid"} +dkfilter_out_user=${dkfilter_user:-"dkfilter"} + +start_cmd="dkfilter_out_start" +stop_cmd="dkfilter_out_stop" + +dkfilter_out_start() +{ + if [ -f ${dkfilter_out_pidfile} ]; then + echo "${name} already running?" + exit 1 + fi + touch ${dkfilter_out_pidfile} + chown ${dkfilter_out_user} ${dkfilter_out_pidfile} + su -m ${dkfilter_out_user} -c "daemon -p ${dkfilter_out_pidfile} \ + %%PREFIX%%/bin/dkfilter.out ${dkfilter_out_flags}" + echo "Starting ${name}." +} + +dkfilter_out_stop() +{ + if [ ! -f ${dkfilter_out_pidfile} ]; then + echo "${name} not running?" + exit 1 + fi + kill `cat ${dkfilter_out_pidfile}` + rm -f ${dkfilter_out_pidfile} + echo "Stopping ${name}" +} + +load_rc_config $name +run_rc_command "$1" diff -ruN /usr/ports/mail/dkfilter/files/patch-Signature.pm dkfilter/files/patch-Signature.pm --- /usr/ports/mail/dkfilter/files/patch-Signature.pm Thu Jan 1 09:00:00 1970 +++ dkfilter/files/patch-Signature.pm Sat Nov 12 01:50:14 2005 @@ -0,0 +1,23 @@ +--- lib/Mail/DomainKeys/Signature.pm.orig Wed Jun 22 00:43:53 2005 ++++ lib/Mail/DomainKeys/Signature.pm Sat Nov 12 01:49:56 2005 +@@ -78,14 +78,15 @@ + $self->algorithm and + $text .= "a=" . $self->algorithm . "; "; + ++ $text .= "q=" . $self->protocol . "; "; ++ $text .= "c=" . $self->method . ";\n\t"; ++ $text .= "s=" . $self->selector . "; "; ++ $text .= "d=" . $self->domain . ";\n\t"; ++ + $self->headerlist and +- $text .= "h=" . $self->headerlist . "; "; ++ $text .= "h=" . $self->headerlist . ";\n\t"; + + $text .= "b=" . $self->signature . "; "; +- $text .= "c=" . $self->method . "; "; +- $text .= "d=" . $self->domain . "; "; +- $text .= "q=" . $self->protocol . "; "; +- $text .= "s=" . $self->selector; + + length $text and + return $text; diff -ruN /usr/ports/mail/dkfilter/pkg-descr dkfilter/pkg-descr --- /usr/ports/mail/dkfilter/pkg-descr Sat Nov 5 12:57:27 2005 +++ dkfilter/pkg-descr Sat Nov 5 17:46:46 2005 @@ -1,7 +1,7 @@ -This is implementation of DomainKeys draft standard for the Postfix mail +This is an implementation of DomainKeys draft standard for the Postfix mail transfer agent. DomainKeys is proposed by Yahoo!, Inc. and this is a scheme to sign and verify e-mail messages on a per-domain basis. Protocol and other issues about this draft standard can be found at -http://antispam.yahoo.com/domain/keys. +http://antispam.yahoo.com/domainkeys. WWW: http://jason.long.name/dkfilter/ diff -ruN /usr/ports/mail/dkfilter/pkg-plist dkfilter/pkg-plist --- /usr/ports/mail/dkfilter/pkg-plist Sat Nov 5 12:57:27 2005 +++ dkfilter/pkg-plist Fri Nov 11 17:22:22 2005 @@ -13,6 +13,8 @@ bin/dkverify.pl bin/dkfilter.in bin/dkfilter.out +%%RCDIR%%/dkfilter_out.sh +%%RCDIR%%/dkfilter_in.sh @dirrm lib/Mail/DomainKeys/Key @dirrm lib/Mail/DomainKeys @dirrm lib/Mail