+FLAVOR?= ${FLAVORS:[1]} +.if ${FLAVOR} == run # Follow hier(7) +BUILD_DEPENDS= execline>=2.9.8.1:lang/execline \ + skalibs>=2.14.5.1:devel/skalibs \ + s6>=2.14.0.1:sysutils/s6 \ + s6-rc-run>=0.6.0.0:sysutils/s6-rc +RUN_DEPENDS= execline>=2.9.8.1:lang/execline \ + skalibs>=2.14.5.1:devel/skalibs \ + s6>=2.14.0.1:sysutils/s6 \ + s6-rc-run>=0.6.0.0:sysutils/s6-rc +.else +BUILD_DEPENDS= execline>=2.9.8.1:lang/execline \ + skalibs>=2.14.5.1:devel/skalibs \ + s6>=2.14.0.1:sysutils/s6 \ + s6-rc>=0.6.0.0:sysutils/s6-rc +RUN_DEPENDS= execline>=2.9.8.1:lang/execline \ + skalibs>=2.14.5.1:devel/skalibs \ + s6>=2.14.0.1:sysutils/s6 \ + s6-rc>=0.6.0.0:sysutils/s6-rc +.endif +LIB_DEPENDS= libs6.so:sysutils/s6 \ + libskarnet.so:devel/skalibs + +USES= gmake +USE_LDCONFIG= yes +HAS_CONFIGURE= yes + +run_PKGNAMESUFFIX= -run + +# The only difference between the hier and the run flavors is the default live directory path +# hard coded into the s6-rc utilities allowing their use without passing -l . +# A FreeBSD port should follow the operating system file system layout, but there is a corner +# case where s6-rc replacing base system init system *has* to deviate from hier(7). +# The problem is that s6-rc requires a writeable file system +# (to track service state, bind unix sockets, create named fifos) +# very early in the boot process before FreeBSD used to mount /var and /var/run. +# One way to satisfy this requirement is to mount a tmpfs directly under /. +# The live directory shouldn't be kept on /tmp because this often a small +# file system that could be exhausted by accident breaking s6-rc. +# Adding a small /run tmpfs dedicated to s6-rc solves this problem. +.if ${FLAVOR} == run # Follow hier(7) +LIVEDIR?= /run/${PORTNAME} +SCANDIR?= /run/service +STMPDIR?= /run/s6-frontend +.endif +LIVEDIR?= /var/run/${PORTNAME} +SCANDIR?= /var/run/service +STMPDIR?= /var/run/s6-frontend + +CFLAGS+= -D__BSD_VISIBLE + +CONFIGURE_ARGS+=--prefix=${PREFIX} \ + --with-include=${LOCALBASE}/include \ + --with-lib=${LOCALBASE}/lib \ + --with-lib=${LOCALBASE}/lib/execline \ + --with-lib=${LOCALBASE}/lib/s6 \ + --with-dynlib=${LOCALBASE}/lib \ + --disable-s6li \ + --livedir=${LIVEDIR} \ + --scandir=${SCANDIR} \ + --enable-shared + +DOCS= AUTHORS COPYING INSTALL README doc/*.html +OPTIONS_DEFINE= DOCS + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* + @${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR} + +.include diff --git a/sysutils/s6-frontend/distinfo b/sysutils/s6-frontend/distinfo new file mode 100644 index 000000000000..b055efd5c79b --- /dev/null +++ b/sysutils/s6-frontend/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1769445127 +SHA256 (s6-frontend-0.0.1.1.tar.gz) = 2c1ac4f64b04400cd7c81cd9be222be52b07b7d8955a876b9f9f3f8c2328dfeb +SIZE (s6-frontend-0.0.1.1.tar.gz) = 56413 diff --git a/sysutils/s6-frontend/pkg-descr b/sysutils/s6-frontend/pkg-descr new file mode 100644 index 000000000000..189dfa30aa1f --- /dev/null +++ b/sysutils/s6-frontend/pkg-descr @@ -0,0 +1,6 @@ +s6-rc is a service manager for s6-based systems, i.e. a suite of programs +that can start and stop services, both long-running daemons and one-time +initialization scripts, in the proper order according to a dependency tree. + +It ensures that long-running daemons are supervised by the s6 infrastructure, +and that one-time scripts are also run in a controlled environment. diff --git a/sysutils/s6-frontend/pkg-plist b/sysutils/s6-frontend/pkg-plist new file mode 100644 index 000000000000..30cae389949d --- /dev/null +++ b/sysutils/s6-frontend/pkg-plist @@ -0,0 +1,22 @@ +bin/s6 +include/s6-frontend/config.h +libexec/s6-frontend +libexec/s6-frontend-helper-echo +libexec/s6-frontend-helper-kill +%%PORTDOCS%%%%DOCSDIR%%/AUTHORS +%%PORTDOCS%%%%DOCSDIR%%/COPYING +%%PORTDOCS%%%%DOCSDIR%%/INSTALL +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/index.html +%%PORTDOCS%%%%DOCSDIR%%/overview.html +%%PORTDOCS%%%%DOCSDIR%%/s6-frontend-helper-echo.html +%%PORTDOCS%%%%DOCSDIR%%/s6-frontend-helper-kill.html +%%PORTDOCS%%%%DOCSDIR%%/s6-frontend.conf.html +%%PORTDOCS%%%%DOCSDIR%%/s6-frontend.html +%%PORTDOCS%%%%DOCSDIR%%/s6.html +%%PORTDOCS%%%%DOCSDIR%%/s6_live.html +%%PORTDOCS%%%%DOCSDIR%%/s6_process.html +%%PORTDOCS%%%%DOCSDIR%%/s6_repository.html +%%PORTDOCS%%%%DOCSDIR%%/s6_set.html +%%PORTDOCS%%%%DOCSDIR%%/s6_system.html +%%PORTDOCS%%%%DOCSDIR%%/upgrade.html