ports/100978: Maintainer Update: mail/dkfilter dkfilter user is automatically added and so on.

Yoshisato YANAGISAWA yanagisawa at csg.is.titech.ac.jp
Fri Jul 28 12:40:31 UTC 2006


>Number:         100978
>Category:       ports
>Synopsis:       Maintainer Update: mail/dkfilter dkfilter user is automatically added and so on.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 28 12:40:28 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Yoshisato YANAGISAWA
>Release:        FreeBSD 6.1-RELEASE-p1 i386
>Organization:
Tokyo Institute of Technology.
>Environment:
System: FreeBSD frodo.csg.is.titech.ac.jp 6.1-RELEASE-p1 FreeBSD 6.1-RELEASE-p1 #90: Fri Jun 2 20:33:54 JST 2006 yanagisawa at frodo.csg.is.titech.ac.jp:/usr/obj/usr/src/sys/FRODO i386


	
>Description:
	- 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.
	- 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.
>How-To-Repeat:
	n/a
>Fix:

Adding following entry to /usr/ports/UIDs might be required.
dkfilter:*:325:325:DK Filter Owner:/nonexistent:/sbin/nologin

Also, adding folliwng entry to /usr/ports/GIDs might be required.
dkfilter:*:325:

Use patch below to apply changes.

diff -ruN dkfilter.bak/Makefile dkfilter/Makefile
--- dkfilter.bak/Makefile	Fri Jul 28 21:25:46 2006
+++ dkfilter/Makefile	Fri Jul 28 20:59:23 2006
@@ -24,12 +24,24 @@
 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>
 
 .if ${PERL_LEVEL} < 500600
 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 -ruN dkfilter.bak/files/dkfilter_in.in dkfilter/files/dkfilter_in.in
--- dkfilter.bak/files/dkfilter_in.in	Fri Jul 28 21:25:46 2006
+++ dkfilter/files/dkfilter_in.in	Fri Jul 28 21:21:33 2006
@@ -20,10 +20,10 @@
 
 # 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 @@
 		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 -ruN dkfilter.bak/files/dkfilter_out.in dkfilter/files/dkfilter_out.in
--- dkfilter.bak/files/dkfilter_out.in	Fri Jul 28 21:25:46 2006
+++ dkfilter/files/dkfilter_out.in	Fri Jul 28 21:21:09 2006
@@ -23,13 +23,13 @@
 
 # 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 @@
 		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 -ruN dkfilter.bak/files/pkg-deinstall.in dkfilter/files/pkg-deinstall.in
--- dkfilter.bak/files/pkg-deinstall.in	Thu Jan  1 09:00:00 1970
+++ dkfilter/files/pkg-deinstall.in	Fri Jul 28 20:55:23 2006
@@ -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 -ruN dkfilter.bak/files/pkg-install.in dkfilter/files/pkg-install.in
--- dkfilter.bak/files/pkg-install.in	Thu Jan  1 09:00:00 1970
+++ dkfilter/files/pkg-install.in	Fri Jul 28 20:56:00 2006
@@ -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
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list