bitlbee: Always create the ${pidfile} directory and improve rc.d script - At least on NetBSD every files on /var/run are removed at every boot by mountcritlocal rc.d script. Add a bitlbee_precmd() function to always check that a directory for the ${pidfile} exists and create it if needed. - Check if /etc/rc.subr exists before source-ing it. - Introduce BITLBEE_USER and BITLBEE_GROUP variables and reuse them to avoid hardcoding `bitlbee' and `nobody' (NFCI) Index: Makefile =================================================================== RCS file: /cvsroot/pkgsrc/chat/bitlbee/Makefile,v retrieving revision 1.75 diff -u -p -r1.75 Makefile --- Makefile 18 May 2018 17:54:05 -0000 1.75 +++ Makefile 23 May 2018 09:04:46 -0000 @@ -33,18 +33,22 @@ CONF_FILES= ${DATADIR}/motd.txt ${PKG_S CONF_FILES+= ${EGDIR}/bitlbee.conf ${PKG_SYSCONFDIR}/bitlbee.conf OWN_DIRS+= ${VARBASE}/run/bitlbee -BUILD_DEFS+= VARBASE +BUILD_DEFS+= VARBASE BITLBEE_USER BITLBEE_GROUP +FILES_SUBST+= BITLBEE_USER=${BITLBEE_USER} BITLBEE_GROUP=${BITLBEE_GROUP} EGDIR= ${PREFIX}/share/examples/bitlbee DATADIR= ${PREFIX}/share/bitlbee DOCDIR= ${PREFIX}/share/doc/bitlbee STATEDIR= ${VARBASE}/db/bitlbee -OWN_DIRS_PERMS= ${STATEDIR} bitlbee nobody 700 -OWN_DIRS_PERMS+= ${VARBASE}/run/bitlbee bitlbee nobody 700 +BITLBEE_USER?= bitlbee +BITLBEE_GROUP?= nobody -PKG_GROUPS= nobody -PKG_USERS= bitlbee:nobody +OWN_DIRS_PERMS= ${STATEDIR} ${BITLBEE_USER} ${BITLBEE_GROUP} 700 +OWN_DIRS_PERMS+= ${VARBASE}/run/bitlbee ${BITLBEE_USER} ${BITLBEE_GROUP} 700 + +PKG_GROUPS= ${BITLBEE_GROUP} +PKG_USERS= ${BITLBEE_USER}:${BITLBEE_GROUP} PKG_HOME.bitlbee= ${VARBASE}/db/bitlbee INSTALLATION_DIRS= ${PKGMANDIR}/man5 ${PKGMANDIR}/man8 sbin Index: files/bitlbee.sh =================================================================== RCS file: /cvsroot/pkgsrc/chat/bitlbee/files/bitlbee.sh,v retrieving revision 1.3 diff -u -p -r1.3 bitlbee.sh --- files/bitlbee.sh 7 Oct 2011 22:37:03 -0000 1.3 +++ files/bitlbee.sh 23 May 2018 09:04:46 -0000 @@ -3,13 +3,25 @@ # PROVIDE: bitlbee # REQUIRE: DAEMON -. /etc/rc.subr +if [ -f /etc/rc.subr ]; then + . /etc/rc.subr +fi name="bitlbee" rcvar=$name command="@PREFIX@/sbin/bitlbee" pidfile="@VARBASE@/run/${name}/pid" command_args="-D" # run as a daemon +start_precmd="bitlbee_precmd" + +bitlbee_precmd() +{ + if [ ! -d "@VARBASE@/run/${name}" ]; then + @MKDIR@ "@VARBASE@/run/${name}" + @CHMOD@ 0700 "@VARBASE@/run/${name}" + @CHOWN@ @BITLBEE_USER@:@BITLBEE_GROUP@ "@VARBASE@/run/${name}" + fi +} if [ -f /etc/rc.subr ]; then load_rc_config $name