- Convert rc script to rcng [1]

- Fix build with milter [1, 2]
- Fix default connection method against clamd [3]

PR:		ports/56658 [1], ports/57056 [2], ports/67371 [3]
Submitted by:	Scot W. Hetzel <hetzelsw@westbend.net>,
		Yoshisato YANAGISAWA <osho@pcc-software.org>
This commit is contained in:
Pav Lucistnik 2004-05-30 11:33:25 +00:00
parent ea2c46a9b4
commit 97d7d074ce
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=110403
7 changed files with 142 additions and 76 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= amavisd
PORTVERSION= 0.1
PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= security
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
@ -36,9 +37,13 @@ RUN_DEPENDS= ${BUILD_DEPENDS}
GNU_CONFIGURE= yes
USE_PERL5= yes
USE_RC_SUBR= yes
AMAVISGROUP?= vscan
AMAVISUSER?= vscan
MILTER_SCRIPT=
MILTER= "@comment -- no milter script --"
SBIN_AMAVIS= amavis
SMTPPORT?= 10025
STARTSCRIPT= amavisd.sh
WARNADMIN?= yes
@ -52,7 +57,15 @@ CONFIGURE_ARGS+= --sysconfdir=${PREFIX}/etc \
--with-warnrecip=${WARNRECIP} \
--with-warnadmin=${WARNADMIN}
CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib" \
PTHREAD_LIBS=${PTHREAD_LIBS} PTHREAD_CFLAGS=${PTHREAD_CFLAGS}
RC_SCRIPTS_SUB= AMAVISUSER=${AMAVISUSER} \
PREFIX=${PREFIX} \
PERL=${PERL} \
RC_SUBR=${RC_SUBR}
PLIST_SUB= SBIN_AMAVIS=${SBIN_AMAVIS} \
MILTER=${MILTER}
.if !defined(WITHOUT_UVSCAN)
BUILD_DEPENDS+= uvscan:${PORTSDIR}/security/vscan
@ -73,8 +86,9 @@ RUN_DEPENDS+= ${LOCALBASE}/libexec/postfix/smtpd:${PORTSDIR}/mail/postfix-curren
.elif defined(WITH_MILTER)
CONFIGURE_ARGS+= --enable-milter
MTA?= milter
PLIST= ${PKGDIR}/pkg-plist.milter
STARTSCRIPT= amavisd-milter.sh
MILTER_SCRIPT= amavisd-milter
MILTER=
SBIN_AMAVIS= amavis-milter
.else
CONFIGURE_ARGS+= --enable-sendmail
MTA?= sendmail
@ -88,14 +102,18 @@ pre-fetch:
.endif
post-patch:
@${SED} 's,%%AMAVISUSER%%,${AMAVISUSER},g' ${FILESDIR}/${STARTSCRIPT} > ${WRKSRC}/${STARTSCRIPT}
.for script in amavisd ${MILTER_SCRIPT}
@${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${FILESDIR}/${script}.sh > ${WRKSRC}/${script}.sh
.endfor
@${PERL} -pi.orig -e 's|/etc/amavisd.conf|${PREFIX}/etc/amavisd.conf|g' ${WRKSRC}/configure ${WRKSRC}/amavis/amavisd.in ${WRKSRC}/amavis/Makefile.in
pre-install:
@${SETENV} ${SCRIPTS_ENV} PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${AMAVISUSER} ${AMAVISGROUP}
post-install:
${INSTALL_SCRIPT} ${WRKSRC}/${STARTSCRIPT} ${PREFIX}/etc/rc.d
.for script in amavisd ${MILTER_SCRIPT}
${INSTALL_SCRIPT} ${WRKSRC}/${script}.sh ${PREFIX}/etc/rc.d/${script}.sh
.endfor
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
.for FILE in FAQ INSTALL README README.exim README.milter README.postfix README.qmail README.scanners README.sendmail doc/amavis.html doc/amavis.m4 doc/amavis.png doc/amavis.txt

View File

@ -1,31 +1,57 @@
#!/bin/sh
#
# $FreeBSD$
#
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
echo "$0: Cannot determine the PREFIX" >&2
exit 1
fi
# PROVIDE: amavisd-milter
# BEFORE: amavisd mail
# KEYWORD: FreeBSD shutdown
case "$1" in
start)
( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
AMAVIS_MILTER=$(/bin/ps -xU %%AMAVISUSER%% | grep amavis-milter | awk '{ print $1 }')
( /bin/test "$AMAVISD" || /bin/test "$AMAVIS_MILTER" ) && \
su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD $AMAVIS_MILTER" > /dev/null
rm -rf /var/amavis/amavis*.sock
su - %%AMAVISUSER%% -c "${PREFIX}/sbin/amavis-milter -D -p /var/amavis/amavis-milter.sock" > /dev/null
su - %%AMAVISUSER%% -c ${PREFIX}/sbin/amavisd > /dev/null 2>&1 && echo -n ' amavisd-milter'
;;
stop)
( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
AMAVIS_MILTER=$(/bin/ps -xU %%AMAVISUSER%% | grep amavis-milter | awk '{ print $1 }')
( /bin/test "$AMAVISD" || /bin/test "$AMAVIS_MILTER" ) && \
su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD $AMAVIS_MILTER" > /dev/null && echo -n ' amavisd-milter'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac
prefix=%%PREFIX%%
exit 0
# Define these amavisd_milter_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
amavisd_milter_enable=no
amavisd_milter_flags="-D"
amavisd_milter_user=%%AMAVISUSER%%
#amavisd_milter_socket="inet:9999@127.0.0.1"
amavisd_milter_socket="local:/var/amavis/amavis-milter.sock"
. %%RC_SUBR%%
name="amavisd_milter"
rcvar=`set_rcvar`
start_precmd="amavisd_precmd"
stop_postcmd="remove_socket"
command=${prefix}/sbin/amavis-milter
# Remove the AMaViSd Milter Socket
remove_socket()
{
case ${amavisd_milter_socket} in
unix:*|local:*)
socket=`echo ${amavisd_milter_socket} | /usr/bin/cut -d: -f2`
if [ -S ${socket} ]; then
rm -f ${socket}
fi
;;
/*)
if [ -S ${amavisd_milter_socket} ]; then
rm -f ${amavisd_milter_socket}
fi
;;
esac
}
amavisd_precmd()
{
rc_flags="${rc_flags} -p ${amavisd_milter_socket}"
remove_socket
}
load_rc_config $name
run_rc_command "$1"

View File

@ -1,28 +1,41 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: amavisd
# BEFORE: mail
# KEYWORD: FreeBSD shutdown
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
echo "$0: Cannot determine the PREFIX" >&2
exit 1
fi
prefix=%%PREFIX%%
case "$1" in
start)
( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
( /bin/test "$AMAVISD" ) && \
su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD" > /dev/null
rm -rf /var/amavis/amavis*.sock
su - %%AMAVISUSER%% -c ${PREFIX}/sbin/amavisd > /dev/null 2>&1 && echo -n ' amavisd'
;;
stop)
( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
( /bin/test "$AMAVISD") && \
su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD" > /dev/null && echo -n ' amavisd'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac
# Define these amavisd_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
amavisd_enable=no
amavisd_flags=""
amavisd_user=%%AMAVISUSER%%
exit 0
. %%RC_SUBR%%
name="amavisd"
rcvar=`set_rcvar`
start_precmd="remove_socket"
stop_postcmd="remove_socket"
command=${prefix}/sbin/amavisd
command_arg="> /dev/null 2>&1"
command_interpreter="%%PERL%%"
pidfile="/var/amavis/amavisd.pid"
# Remove the AMaViSd Socket
remove_socket()
{
if [ -S /var/amavis/amavisd.sock ]; then
rm -f /var/amavis/amavisd.sock
fi
}
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,11 @@
--- amavis/av/clamavd.orig Tue Feb 25 11:42:54 2003
+++ amavis/av/clamavd Sun May 30 13:26:34 2004
@@ -5,7 +5,7 @@
if ($clamd) {
do_log(2,"Using clamd");
- my $sock = IO::Socket::INET->new('127.0.0.1:3310');
+ my $sock = IO::Socket::UNIX->new('/var/run/clamav/clamd');
if (defined $sock) {
$sock->print("SCAN $TEMPDIR/parts\n");
$sock->flush;

View File

@ -0,0 +1,15 @@
--- configure-orig Wed Feb 19 08:22:25 2003
+++ configure Wed Sep 10 19:34:30 2003
@@ -3083,11 +3083,11 @@
#define HAVE_SM_SM_STRLCPY 1
EOF
+ LIBS="-lsm $LIBS"
else
echo "$ac_t""no" 1>&6
fi
- LIBS="-lsm $LIBS"
fi

View File

@ -13,6 +13,7 @@
%%PORTDOCS%%%%DOCSDIR%%/amavis.txt
%%PORTDOCS%%@dirrm %%DOCSDIR%%
etc/amavisd.conf
etc/rc.d/amavisd.sh
sbin/amavis
sbin/%%SBIN_AMAVIS%%
sbin/amavisd
%%MILTER%%etc/rc.d/amavisd-milter.sh
etc/rc.d/amavisd.sh

View File

@ -1,18 +0,0 @@
%%PORTDOCS%%share/doc/amavisd/FAQ
%%PORTDOCS%%share/doc/amavisd/INSTALL
%%PORTDOCS%%share/doc/amavisd/README
%%PORTDOCS%%share/doc/amavisd/README.exim
%%PORTDOCS%%share/doc/amavisd/README.milter
%%PORTDOCS%%share/doc/amavisd/README.postfix
%%PORTDOCS%%share/doc/amavisd/README.qmail
%%PORTDOCS%%share/doc/amavisd/README.scanners
%%PORTDOCS%%share/doc/amavisd/README.sendmail
%%PORTDOCS%%share/doc/amavisd/amavis.html
%%PORTDOCS%%share/doc/amavisd/amavis.m4
%%PORTDOCS%%share/doc/amavisd/amavis.png
%%PORTDOCS%%share/doc/amavisd/amavis.txt
%%PORTDOCS%%@dirrm share/doc/amavisd
etc/amavisd.conf
etc/rc.d/amavisd-milter.sh
sbin/amavis-milter
sbin/amavisd