aboutsummaryrefslogtreecommitdiff
path: root/mail/dkfilter
diff options
context:
space:
mode:
authorRong-En Fan <rafan@FreeBSD.org>2006-07-29 02:07:43 +0000
committerRong-En Fan <rafan@FreeBSD.org>2006-07-29 02:07:43 +0000
commit003834a79b0c3a959fc246b24f11f3e0b6747e8b (patch)
treeb625dd7fe5fff40d8d02efd5a15e34de68ae1b03 /mail/dkfilter
parent6bb04657c3530f3c13d7abe77cf53dbd434f297c (diff)
downloadports-003834a79b0c3a959fc246b24f11f3e0b6747e8b.tar.gz
ports-003834a79b0c3a959fc246b24f11f3e0b6747e8b.zip
- rc.d scripts are changed to show error messages when some error
occurs. It didn't show error messages even if they are fatal. - Each rc.d script now logs all messages got at starting a daemon. - pkg-install is made to automatically make a user to execute dkfilter which is specified by Makefile. Register UIDs, GIDs. - pkg-deinstall is made to notice that an admin should remove the user made at install-time if they don't need him or her - Bump PORTREVISION for all these changes PR: ports/100978 Submitted by: Yoshisato YANAGISAWA (maintainer)
Notes
Notes: svn path=/head/; revision=169022
Diffstat (limited to 'mail/dkfilter')
-rw-r--r--mail/dkfilter/Makefile15
-rw-r--r--mail/dkfilter/files/dkfilter_in.in23
-rw-r--r--mail/dkfilter/files/dkfilter_out.in23
-rw-r--r--mail/dkfilter/files/pkg-deinstall.in13
-rw-r--r--mail/dkfilter/files/pkg-install.in36
5 files changed, 97 insertions, 13 deletions
diff --git a/mail/dkfilter/Makefile b/mail/dkfilter/Makefile
index b34f3fe53bc6..7db7db2c8931 100644
--- a/mail/dkfilter/Makefile
+++ b/mail/dkfilter/Makefile
@@ -7,6 +7,7 @@
PORTNAME= dkfilter
PORTVERSION= 0.10
+PORTREVISION= 1
CATEGORIES= mail
MASTER_SITES= http://jason.long.name/dkfilter/
@@ -24,7 +25,16 @@ RUN_DEPENDS= ${BUILD_DEPENDS}
GNU_CONFIGURE= yes
USE_RC_SUBR= dkfilter_in dkfilter_out
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+DKFILTER_USERNAME?= dkfilter
+DKFILTER_USERID?= 325
+DKFILTER_GROUPNAME?= ${DKFILTER_USERNAME}
+DKFILTER_GROUPID?= ${DKFILTER_USERID}
+
+SUB_FILES= pkg-install pkg-deinstall
+SUB_LIST= USER=${DKFILTER_USERNAME} \
+ UID=${DKFILTER_USERID} \
+ GROUP=${DKFILTER_GROUPNAME} \
+ GID=${DKFILTER_GROUPID}
.include <bsd.port.pre.mk>
@@ -32,4 +42,7 @@ WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
IGNORE= require Perl 5.8 or newer. Install lang/perl5.8 and try again
.endif
+pre-install:
+ ${SH} ${PKGINSTALL} ${PREFIX} PRE-INSTALL
+
.include <bsd.port.post.mk>
diff --git a/mail/dkfilter/files/dkfilter_in.in b/mail/dkfilter/files/dkfilter_in.in
index 1c76ea62fd59..f52dc9b0ae3c 100644
--- a/mail/dkfilter/files/dkfilter_in.in
+++ b/mail/dkfilter/files/dkfilter_in.in
@@ -20,10 +20,10 @@ 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_in_user:-"dkfilter"}
+: ${dkfilter_in_enable="NO"}
+: ${dkfilter_in_flags="127.0.0.1:10025 127.0.0.1:10026"}
+: ${dkfilter_in_pidfile="/var/run/dkfilter_in.pid"}
+: ${dkfilter_in_user="dkfilter"}
start_cmd="dkfilter_in_start"
stop_cmd="dkfilter_in_stop"
@@ -34,12 +34,23 @@ dkfilter_in_start()
echo "${name} already running?"
exit 1
fi
+ echo "Starting ${name}."
+ logger -t ${name} "Starting ${name}"
+ tmpfile=`mktemp /tmp/dkfilter.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
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}" \
- > /dev/null 2>&1
- echo "Starting ${name}"
+ > /dev/null 2> ${tmpfile}
+ sleep 1 # XXX: wait until dkfilter start.
+ logger -t ${name} `cat ${tmpfile}`
+ err=`grep Error ${tmpfile}`
+ if [ "${err}" ]; then
+ echo "Failed to start ${name}."
+ echo "${err}"
+ rm -f ${dkfilter_in_pidfile}
+ fi
+ rm -f ${tmpfile}
}
dkfilter_in_stop()
diff --git a/mail/dkfilter/files/dkfilter_out.in b/mail/dkfilter/files/dkfilter_out.in
index 70500db2a2bd..9348768fb706 100644
--- a/mail/dkfilter/files/dkfilter_out.in
+++ b/mail/dkfilter/files/dkfilter_out.in
@@ -23,13 +23,13 @@ rcvar=`set_rcvar`
# set defaults
-dkfilter_out_enable=${dkfilter_out_enable:-"NO"}
-dkfilter_out_flags=${dkfilter_out_flags:-" --header \
+: ${dkfilter_out_enable="NO"}
+: ${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_out_user:-"dkfilter"}
+: ${dkfilter_out_pidfile="/var/run/dkfilter_out.pid"}
+: ${dkfilter_out_user="dkfilter"}
start_cmd="dkfilter_out_start"
stop_cmd="dkfilter_out_stop"
@@ -40,12 +40,23 @@ dkfilter_out_start()
echo "${name} already running?"
exit 1
fi
+ echo "Starting ${name}."
+ logger -t ${name} "Starting ${name}."
+ tmpfile=`mktemp /tmp/dkfilter.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
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}" \
- > /dev/null 2>&1
- echo "Starting ${name}."
+ > /dev/null 2> ${tmpfile}
+ sleep 1 # XXX: wait until dkfilter start.
+ logger -t ${name} `cat ${tmpfile}`
+ err=`grep Error ${tmpfile}`
+ if [ "${err}" ]; then
+ echo "Failed to start ${name}."
+ echo "${err}"
+ rm -f ${dkfilter_out_pidfile}
+ fi
+ rm -f ${tmpfile}
}
dkfilter_out_stop()
diff --git a/mail/dkfilter/files/pkg-deinstall.in b/mail/dkfilter/files/pkg-deinstall.in
new file mode 100644
index 000000000000..65b9aec55e4c
--- /dev/null
+++ b/mail/dkfilter/files/pkg-deinstall.in
@@ -0,0 +1,13 @@
+#!/bin/sh
+# $FreeBSD$
+
+if [ "$2" != "POST-DEINSTALL" ]; then
+ exit 0
+fi
+
+USERNAME=%%USER%%
+
+if pw usershow "${USERNAME}" 2>/dev/null 1>&2; then
+ echo "To delete ${USERNAME} user permanently, use 'pw userdel \"${USERNAME}\"'"
+fi
+exit 0
diff --git a/mail/dkfilter/files/pkg-install.in b/mail/dkfilter/files/pkg-install.in
new file mode 100644
index 000000000000..75041933c0fd
--- /dev/null
+++ b/mail/dkfilter/files/pkg-install.in
@@ -0,0 +1,36 @@
+#! /bin/sh
+#
+# $FreeBSD$
+
+PATH=/bin:/usr/bin:/usr/sbin
+
+case $2 in
+
+PRE-INSTALL)
+ echo "---> Starting install script:"
+
+ if [ -z "%%USER%%" -o -z "%%GROUP%%" -o \
+ -z "%%UID%%" -o -z "%%GID%%" ]; then
+ echo "ERROR: A required pragma was empty"
+ exit 1
+ fi
+
+ # Create group if required
+ if pw group show "%%GROUP%%" >/dev/null 2>&1; then
+ echo "---> Using existing group \"%%GROUP%%\""
+ else
+ echo "---> Adding group \"%%GROUP%%\" (%%GID%%)"
+ /usr/sbin/pw groupadd %%GROUP%% -g %%GID%% || exit 1
+ fi
+
+ # Create user if required
+ if pw user show "%%USER%%" >/dev/null 2>&1; then
+ echo "---> Using existing user \"%%USER%%\""
+ else
+ echo "---> Adding user \"%%USER%%\" (%%UID%%)"
+ pw useradd "%%USER%%" -u "%%UID%%" -g "%%GROUP%%" -h - \
+ -d "/nonexistent" -s "/sbin/nologin" -c "DK Filter Owner" || exit 1
+ fi
+ ;;
+
+esac