aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-11-04 21:55:42 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2025-11-04 21:55:42 +0000
commit1667855c0c05f26b378ed8a011336770485321e5 (patch)
treee2b040143458aef7d3c4b4e64f9cda98ff543e64 /package
parent2b61e7fa65bdae911e33fa415c4925fb2aabfeb1 (diff)
downloads6-1667855c0c05f26b378ed8a011336770485321e5.tar.gz
Move daemontools/runit wrapper support here
Diffstat (limited to 'package')
-rw-r--r--package/configure-snippets/configure_case_lines6
-rw-r--r--package/configure-snippets/configure_generate_configh11
-rw-r--r--package/configure-snippets/configure_generate_make16
-rw-r--r--package/configure-snippets/configure_help_options3
-rw-r--r--package/configure-snippets/configure_init_vars3
-rw-r--r--package/deps.mak9
-rw-r--r--package/modes3
-rw-r--r--package/targets.mak88
8 files changed, 139 insertions, 0 deletions
diff --git a/package/configure-snippets/configure_case_lines b/package/configure-snippets/configure_case_lines
index edd57ae..237460b 100644
--- a/package/configure-snippets/configure_case_lines
+++ b/package/configure-snippets/configure_case_lines
@@ -2,3 +2,9 @@
--disable-nsss|--enable-nsss=no) usensss=false ;;
--enable-execline|--enable-execline=yes) useexecline=true ;;
--disable-execline|--enable-execline=no) useexecline=false ;;
+ --enable-aliases-daemontools|--enable-aliases-daemontools=yes) adaemontools=true ;;
+ --disable-aliases-daemontools|--enable-aliases-daemontools=no) adaemontools=false ;;
+ --enable-aliases-runit|--enable-aliases-runit=yes) arunit=true ;;
+ --disable-aliases-runit|--enable-aliases-runit=no) arunit=false ;;
+ --enable-aliases-symlinks|--enable-aliases-symlinks=yes) asymlinks=true ;;
+ --disable-aliases-symlinks|--enable-aliases-symlinks=no) asymlinks=false ;;
diff --git a/package/configure-snippets/configure_generate_configh b/package/configure-snippets/configure_generate_configh
index 3c4a1e8..51b89a4 100644
--- a/package/configure-snippets/configure_generate_configh
+++ b/package/configure-snippets/configure_generate_configh
@@ -2,3 +2,14 @@ echo "#undef ${package_macro_name}_USE_EXECLINE"
if $useexecline ; then
echo "#define ${package_macro_name}_USE_EXECLINE"
fi
+
+echo "#undef ${package_macro_name}_WRAP_DAEMONTOOLS"
+if $adaemontools ; then
+ echo "#define ${package_macro_name}_WRAP_DAEMONTOOLS"
+fi
+
+echo "#undef ${package_macro_name}_WRAP_RUNIT"
+if $arunit ; then
+ echo "#define ${package_macro_name}_WRAP_RUNIT"
+fi
+
diff --git a/package/configure-snippets/configure_generate_make b/package/configure-snippets/configure_generate_make
index b0d2474..3dc8e91 100644
--- a/package/configure-snippets/configure_generate_make
+++ b/package/configure-snippets/configure_generate_make
@@ -10,3 +10,19 @@ if $useexecline ; then
else
echo "EXECLINE_LIB :="
fi
+
+if $adaemontools ; then
+ echo "WRAP_DAEMONTOOLS := 1"
+else
+ echo "WRAP_DAEMONTOOLS :="
+fi
+if $arunit ; then
+ echo "WRAP_RUNIT := 1"
+else
+ echo "WRAP_RUNIT :="
+fi
+if $asymlinks ; then
+ echo "WRAP_SYMLINKS := 1"
+else
+ echo "WRAP_SYMLINKS :="
+fi
diff --git a/package/configure-snippets/configure_help_options b/package/configure-snippets/configure_help_options
index 96e9e51..09360fe 100644
--- a/package/configure-snippets/configure_help_options
+++ b/package/configure-snippets/configure_help_options
@@ -1,3 +1,6 @@
--enable-nsss use the nsss library for user information [disabled]
--disable-execline don't use the execline library [enabled]
+ --enable-aliases-daemontools build emulation of daemontools programs [disabled]
+ --enable-aliases-runit build emulation of runit programs [disabled]
+ --disable-aliases-symlinks do not create daemontools/runit multicall symlinks [enabled]
diff --git a/package/configure-snippets/configure_init_vars b/package/configure-snippets/configure_init_vars
index 68c268b..64ff7fe 100644
--- a/package/configure-snippets/configure_init_vars
+++ b/package/configure-snippets/configure_init_vars
@@ -1,2 +1,5 @@
usensss=false
useexecline=true
+adaemontools=false
+arunit=false
+asymlinks=true
diff --git a/package/deps.mak b/package/deps.mak
index bad353e..9a44562 100644
--- a/package/deps.mak
+++ b/package/deps.mak
@@ -7,6 +7,9 @@ src/include/s6/ftrigr.h: src/include/s6/config.h
src/include/s6/lock.h: src/include/s6/config.h
src/include/s6/s6.h: src/include/s6/accessrules.h src/include/s6/auto.h src/include/s6/compat.h src/include/s6/ftrigr.h src/include/s6/ftrigw.h src/include/s6/lock.h src/include/s6/supervise.h
src/supervision/s6-svlisten.h: src/include/s6/ftrigr.h
+src/alias/s6-alias-chpst.o src/alias/s6-alias-chpst.lo: src/alias/s6-alias-chpst.c src/include/s6/config.h
+src/alias/s6-alias-sv.o src/alias/s6-alias-sv.lo: src/alias/s6-alias-sv.c src/include/s6/config.h src/include/s6/supervise.h
+src/alias/s6-alias.o src/alias/s6-alias.lo: src/alias/s6-alias.c src/include/s6/config.h
src/conn-tools/s6-accessrules-cdb-from-fs.o src/conn-tools/s6-accessrules-cdb-from-fs.lo: src/conn-tools/s6-accessrules-cdb-from-fs.c
src/conn-tools/s6-accessrules-fs-from-cdb.o src/conn-tools/s6-accessrules-fs-from-cdb.lo: src/conn-tools/s6-accessrules-fs-from-cdb.c
src/conn-tools/s6-connlimit.o src/conn-tools/s6-connlimit.lo: src/conn-tools/s6-connlimit.c
@@ -145,6 +148,12 @@ src/supervision/s6_svlisten_loop.o src/supervision/s6_svlisten_loop.lo: src/supe
src/supervision/s6_svlisten_signal_handler.o src/supervision/s6_svlisten_signal_handler.lo: src/supervision/s6_svlisten_signal_handler.c src/supervision/s6-svlisten.h
src/usertree/s6-usertree-maker.o src/usertree/s6-usertree-maker.lo: src/usertree/s6-usertree-maker.c src/include/s6/auto.h src/include/s6/config.h
+s6-alias: EXTRA_LIBS :=
+s6-alias: src/alias/s6-alias.o -lskarnet
+s6-alias-chpst: EXTRA_LIBS := ${MAYBEPTHREAD_LIB}
+s6-alias-chpst: src/alias/s6-alias-chpst.o ${LIBNSSS} -lskarnet
+s6-alias-sv: EXTRA_LIBS := ${SPAWN_LIB}
+s6-alias-sv: src/alias/s6-alias-sv.o ${LIBS6} -lskarnet
s6-accessrules-cdb-from-fs: EXTRA_LIBS := ${SOCKET_LIB} ${SYSCLOCK_LIB}
s6-accessrules-cdb-from-fs: src/conn-tools/s6-accessrules-cdb-from-fs.o -lskarnet
s6-accessrules-fs-from-cdb: EXTRA_LIBS :=
diff --git a/package/modes b/package/modes
index dc5b2c3..007d9dd 100644
--- a/package/modes
+++ b/package/modes
@@ -1,4 +1,7 @@
ucspilogd 0755
+s6-alias 0755
+s6-alias-chpst 0755
+s6-alias-sv 0755
s6-ftrigrd 0755
s6-ftrig-listen1 0755
s6-ftrig-listen 0755
diff --git a/package/targets.mak b/package/targets.mak
index b784325..d281923 100644
--- a/package/targets.mak
+++ b/package/targets.mak
@@ -78,3 +78,91 @@ LIB_DEFS += S6AUTO=s6auto
S6AUTO_DESCRIPTION := The s6auto library (C helpers to create service directories)
BIN_TARGETS += s6-usertree-maker s6-instance-maker
endif
+
+WRAP_ANY :=
+
+ifdef WRAP_DAEMONTOOLS
+
+WRAP_ANY := 1
+
+ifdef WRAP_SYMLINKS
+
+DAEMONTOOLS_TARGETS := \
+envdir \
+envuidgid \
+fghack \
+multilog \
+pgrphack \
+readproctitle \
+setlock \
+setuidgid \
+softlimit \
+supervise \
+svc \
+svok \
+svscan \
+svscanboot \
+svstat \
+tai64n \
+tai64nlocal \
+
+else
+
+DAEMONTOOLS_TARGETS :=
+
+endif
+
+install-bin: $(DAEMONTOOLS_TARGETS:%=$(DESTDIR)$(bindir)/%)
+
+ifneq ($(exthome),)
+global-links: $(DAEMONTOOLS_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
+endif
+
+endif
+
+ifdef WRAP_RUNIT
+
+WRAP_ANY := 1
+
+ifdef WRAP_SYMLINKS
+
+RUNIT_TARGETS := \
+runit \
+runit-init \
+runsv \
+runsvchdir \
+runsvdir \
+svlogd \
+utmpset
+RUNIT_SPECIAL_TARGETS := chpst sv
+
+else
+
+RUNIT_TARGETS :=
+RUNIT_SPECIAL_TARGETS :=
+
+endif
+
+BIN_TARGETS += s6-alias-sv s6-alias-chpst
+
+install-bin: $(RUNIT_TARGETS:%=$(DESTDIR)$(bindir)/%) $(RUNIT_SPECIAL_TARGETS:%=$(DESTDIR)$(bindir)/%)
+
+ifneq ($(exthome),)
+global-links: $(RUNIT_TARGETS:%=$(DESTDIR)$(sproot)/command/%) $(RUNIT_SPECIAL_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
+endif
+
+$(DESTDIR)$(bindir)/chpst: $(DESTDIR)$(bindir)/s6-alias-chpst
+ exec $(INSTALL) -D -l s6-alias-chpst $@
+$(DESTDIR)$(bindir)/sv: $(DESTDIR)$(bindir)/s6-alias-sv
+ exec $(INSTALL) -D -l s6-alias-sv $@
+
+endif
+
+ifdef WRAP_ANY
+
+BIN_TARGETS += s6-alias
+
+$(DAEMONTOOLS_TARGETS:%=$(DESTDIR)$(bindir)/%) $(RUNIT_TARGETS:%=$(DESTDIR)$(bindir)/%): $(DESTDIR)$(bindir)/s6-alias
+ exec $(INSTALL) -D -l s6-alias $@
+
+endif