Date: Fri, 28 Jul 2006 21:39:23 +0900 (JST) From: Yoshisato YANAGISAWA <yanagisawa@csg.is.titech.ac.jp> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/100978: Maintainer Update: mail/dkfilter dkfilter user is automatically added and so on. Message-ID: <200607281239.k6SCdNdg040868@frodo.csg.is.titech.ac.jp> Resent-Message-ID: <200607281240.k6SCeTHk064243@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607281239.k6SCdNdg040868>