Sat Jul 8 11:11:10 2023 UTC ()
sysutils/daemontools: Add Solaris/illumos SMF manifest

Put svscanboot under SMF control on Solaris/illumos.

Approved by:	schmonz


(otis)
diff -r1.49 -r1.50 pkgsrc/sysutils/daemontools/Makefile
diff -r0 -r1.1 pkgsrc/sysutils/daemontools/files/smf/manifest.xml

cvs diff -r1.49 -r1.50 pkgsrc/sysutils/daemontools/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/daemontools/Makefile 2023/06/02 18:35:04 1.49
+++ pkgsrc/sysutils/daemontools/Makefile 2023/07/08 11:11:10 1.50
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.49 2023/06/02 18:35:04 schmonz Exp $ 1# $NetBSD: Makefile,v 1.50 2023/07/08 11:11:10 otis Exp $
2 2
3DISTNAME= daemontools-0.76 3DISTNAME= daemontools-0.76
4PKGREVISION= 3 4PKGREVISION= 4
5CATEGORIES= sysutils 5CATEGORIES= sysutils
6MASTER_SITES= http://cr.yp.to/daemontools/ ftp://cr.yp.to/daemontools/ 6MASTER_SITES= http://cr.yp.to/daemontools/ ftp://cr.yp.to/daemontools/
7DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${MANPAGES} 7DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${MANPAGES}
8 8
9MAINTAINER= schmonz@NetBSD.org 9MAINTAINER= schmonz@NetBSD.org
10HOMEPAGE= https://cr.yp.to/daemontools.html 10HOMEPAGE= https://cr.yp.to/daemontools.html
11COMMENT= Service monitoring and logging utilities by djb 11COMMENT= Service monitoring and logging utilities by djb
12LICENSE= public-domain 12LICENSE= public-domain
13 13
14MANPAGES= ${DISTNAME}-man-20020131.tar.gz 14MANPAGES= ${DISTNAME}-man-20020131.tar.gz
15SITES.${MANPAGES}= http://smarden.org/pape/djb/manpages/ 15SITES.${MANPAGES}= http://smarden.org/pape/djb/manpages/
16 16
17CONFLICTS+= daemontools-encore-[0-9]* 17CONFLICTS+= daemontools-encore-[0-9]*
@@ -26,26 +26,28 @@ CMDDIR= ${WRKSRC}/command @@ -26,26 +26,28 @@ CMDDIR= ${WRKSRC}/command
26INSTALLATION_DIRS= bin man ${PKGMANDIR}/man8 26INSTALLATION_DIRS= bin man ${PKGMANDIR}/man8
27 27
28SUBST_CLASSES+= djberrno 28SUBST_CLASSES+= djberrno
29SUBST_FILES.djberrno= src/error.h 29SUBST_FILES.djberrno= src/error.h
30 30
31SUBST_CLASSES+= paths 31SUBST_CLASSES+= paths
32SUBST_STAGE.paths= do-configure 32SUBST_STAGE.paths= do-configure
33SUBST_FILES.paths= src/svscanboot.sh 33SUBST_FILES.paths= src/svscanboot.sh
34SUBST_SED.paths= -e 's|/usr/local/sbin:/bin|/usr/local/sbin:${PREFIX}/bin:${PREFIX}/sbin:/bin|g' 34SUBST_SED.paths= -e 's|/usr/local/sbin:/bin|/usr/local/sbin:${PREFIX}/bin:${PREFIX}/sbin:/bin|g'
35SUBST_SED.paths+= -e 's|/command/svc |${PREFIX}/bin/svc |g' 35SUBST_SED.paths+= -e 's|/command/svc |${PREFIX}/bin/svc |g'
36 36
37MAKE_ENV+= PKGSRC_SHELL=${TOOLS_PLATFORM.sh} 37MAKE_ENV+= PKGSRC_SHELL=${TOOLS_PLATFORM.sh}
38 38
 39SMF_NAME= svscanboot
 40
39.include "options.mk" 41.include "options.mk"
40 42
41do-install: 43do-install:
42 (while read cmd; do \ 44 (while read cmd; do \
43 if [ $$cmd = svscanboot ]; then \ 45 if [ $$cmd = svscanboot ]; then \
44 ${INSTALL_SCRIPT} ${CMDDIR}/$$cmd ${DESTDIR}${PREFIX}/bin; \ 46 ${INSTALL_SCRIPT} ${CMDDIR}/$$cmd ${DESTDIR}${PREFIX}/bin; \
45 else \ 47 else \
46 ${INSTALL_PROGRAM} ${CMDDIR}/$$cmd ${DESTDIR}${PREFIX}/bin; \ 48 ${INSTALL_PROGRAM} ${CMDDIR}/$$cmd ${DESTDIR}${PREFIX}/bin; \
47 fi \ 49 fi \
48 done) < ${WRKSRC}/package/commands 50 done) < ${WRKSRC}/package/commands
49 cd ${WRKDIR}/*-man; for i in 8; do \ 51 cd ${WRKDIR}/*-man; for i in 8; do \
50 for j in *.$$i; do ${INSTALL_MAN} $$j ${DESTDIR}${PREFIX}/${PKGMANDIR}/man$$i; done \ 52 for j in *.$$i; do ${INSTALL_MAN} $$j ${DESTDIR}${PREFIX}/${PKGMANDIR}/man$$i; done \
51 done 53 done

File Added: pkgsrc/sysutils/daemontools/files/smf/manifest.xml
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="manifest" name="export">
  <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
    <create_default_instance enabled="false"/>
    <single_instance/>
    <dependency name="network" grouping="require_all" restart_on="error" type="service">
      <service_fmri value="svc:/milestone/network:default"/>
    </dependency>
    <dependency name="filesystem" grouping="require_all" restart_on="error" type="service">
      <service_fmri value="svc:/system/filesystem/local"/>
    </dependency>
    <exec_method type="method" name="start" exec="@PREFIX@/bin/svscanboot" timeout_seconds="60">
       <method_context>
	 <method_environment>
	   <envvar name="PATH" value="@PREFIX@/sbin:@PREFIX@/bin:/sbin:/usr/sbin:/usr/bin"/>
	 </method_environment>
       </method_context>
    </exec_method>
    <exec_method type="method" name="stop" exec=":kill" timeout_seconds="60"/>
    <property_group name="application" type="application"></property_group>
    <property_group name="startd" type="framework">
      <propval name="duration" type="astring" value="child"/>
      <propval name="ignore_error" type="astring" value="core,signal"/>
    </property_group>
    <template>
      <common_name>
	 <loctext xml:lang="C">Scan /service directory to start and monitor a collection of services.</loctext>
      </common_name>
    </template>
  </service>
</service_bundle>