From 3b56d41ef579c18feafbf47d170a6ea4375beb6f Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 4 Nov 2025 22:23:28 +0000 Subject: Lots of work done, doesn't build yet, next commit will - alias subsystem moved to s6 - config subsystem deleted - new helpers subsystem, with a s6-frontend-helper-kill program - new s6f_equote function, to execline-quote an argv - started the adaptation to the new s6-rc functions, in progress --- package/configure-snippets/configure_case_lines | 10 +-- package/configure-snippets/configure_expand_dirs | 2 +- .../configure-snippets/configure_generate_configh | 42 +++++----- package/configure-snippets/configure_generate_make | 21 +---- package/configure-snippets/configure_help_install | 4 +- package/configure-snippets/configure_help_options | 3 - package/configure-snippets/configure_init_vars | 10 +-- package/deps-build | 8 +- package/deps.mak | 44 +++++------ package/modes | 5 +- package/targets.mak | 90 +--------------------- 11 files changed, 61 insertions(+), 178 deletions(-) (limited to 'package') diff --git a/package/configure-snippets/configure_case_lines b/package/configure-snippets/configure_case_lines index 2844a69..c8ddb82 100644 --- a/package/configure-snippets/configure_case_lines +++ b/package/configure-snippets/configure_case_lines @@ -1,19 +1,13 @@ --scandir=*) scandir=${arg#*=} ;; --livedir=*) livedir=${arg#*=} ;; --repodir=*) repodir=${arg#*=} ;; - --bootdir=*) bootdir=${arg#*=} ;; + --bootdb=*) bootdb=${arg#*=} ;; --stmpdir=*) stmpdir=${arg#*=} ;; --conffile=*) conffile=${arg#*=} ;; - --with-def-path=*) defpath=${arg#*=} ;; + --with-store-path=*) storepath=${arg#*=} ;; --enable-nsss|--enable-nsss=yes) usensss=true ;; --disable-nsss|--enable-nsss=no) usensss=false ;; --enable-s6li|--enable-s6li=yes) uses6li=true ;; --disable-s6li|--enable-s6li=no) uses6li=false ;; --enable-util-linux|--enable-util-linux=yes) useutillinux=true ;; --disable-util-linux|--enable-util-linux=no) useutillinux=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_expand_dirs b/package/configure-snippets/configure_expand_dirs index dcf795f..7b2c617 100644 --- a/package/configure-snippets/configure_expand_dirs +++ b/package/configure-snippets/configure_expand_dirs @@ -1 +1 @@ -stmpdir conffile defpath +stmpdir conffile storepath diff --git a/package/configure-snippets/configure_generate_configh b/package/configure-snippets/configure_generate_configh index 23ce34c..b5b2179 100644 --- a/package/configure-snippets/configure_generate_configh +++ b/package/configure-snippets/configure_generate_configh @@ -19,42 +19,46 @@ else echo "#define ${package_macro_name}_SCANDIR $scandirdefault" fi +needs6rcconfig=true echo "#undef ${package_macro_name}_LIVEDIR" if test -n "$livedir" ; then echo "#define ${package_macro_name}_LIVEDIR \"$livedir\"" else - echo "#include " - echo "#define ${package_macro_name}_LIVEDIR S6RC_LIVE_BASE" + if $needs6rcconfig ; then + needs6rcconfig=false + echo "#include " + fi + echo "#define ${package_macro_name}_LIVEDIR S6RC_LIVEDIR" fi echo "#undef ${package_macro_name}_REPODIR" if test -n "$repodir" ; then echo "#define ${package_macro_name}_REPODIR \"$repodir\"" else - if test -n "$livedir" ; then + if $needs6rcconfig ; then + needs6rcconfig=false echo "#include " fi - echo "#define ${package_macro_name}_REPODIR S6RC_REPO_BASE" + echo "#define ${package_macro_name}_REPODIR S6RC_REPODIR" fi -echo "#undef ${package_macro_name}_BOOTDIR" -echo "#define ${package_macro_name}_BOOTDIR \"$bootdir\"" +echo "#undef ${package_macro_name}_BOOTDB" +if test -n "$bootdb" ; then + echo "#define ${package_macro_name}_BOOTDB \"$bootdb\"" +else + if $needs6rcconfig ; then + needs6rcconfig=false + echo "#include " + fi + echo "#define ${package_macro_name}_BOOTDB S6RC_BOOTDB" +fi echo "#undef ${package_macro_name}_STMPDIR" echo "#define ${package_macro_name}_STMPDIR \"$stmpdir\"" -echo "#undef ${package_macro_name}_CONFFILE" -echo "#define ${package_macro_name}_CONFFILE \"$conffile\"" - -echo "#undef ${package_macro_name}_DEFPATH" -echo "#define ${package_macro_name}_DEFPATH \"$defpath\"" +echo "#undef ${package_macro_name}_CONF" +echo "#define ${package_macro_name}_CONF \"$conffile\"" -echo "#undef ${package_macro_name}_WRAP_DAEMONTOOLS" -if $adaemontools ; then - echo "#define ${package_macro_name}_WRAP_DAEMONTOOLS" -fi +echo "#undef ${package_macro_name}_STOREPATH" +echo "#define ${package_macro_name}_STOREPATH \"$storepath\"" -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 3603f53..da6004c 100644 --- a/package/configure-snippets/configure_generate_make +++ b/package/configure-snippets/configure_generate_make @@ -1,7 +1,9 @@ +echo "SCANDIR := $scandir" +echo "LIVEDIR := $livedir" echo "REPODIR := $repodir" -echo "BOOTDIR := $bootdir" +echo "BOOTDB := $bootdb" echo "STMPDIR := $stmpdir" -echo "DEFPATH := $defpath" +echo "STOREPATH := $storepath" if $usensss ; then echo "LIBNSSS := -lnsss" @@ -10,18 +12,3 @@ else echo "LIBNSSS :=" echo "MAYBEPTHREAD_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_install b/package/configure-snippets/configure_help_install index 8be3412..080a30e 100644 --- a/package/configure-snippets/configure_help_install +++ b/package/configure-snippets/configure_help_install @@ -1,7 +1,7 @@ --scandir=DIR assume s6-svscan is running on DIR [s6li default: /run/service] --livedir=DIR run s6-rc live directory in DIR [s6-rc default: /run/s6-rc] --repodir=DIR default s6-rc repository [s6-rc default: /var/lib/s6-frontend/repository] - --bootdir=DIR location of the bootable s6-rc compiled db [/etc/s6-rc] + --bootdb=LINK location of the bootable s6-rc compiled db [s6-rc default: /etc/s6-rc/compiled/current] --stmpdir=DIR secure location for temporary s6-frontend files [/run/s6-frontend] --conffile=FILE default configuration file for s6 command [SYSCONFDIR/s6-frontend.conf] - --with-def-path=PATH path to service files [LIBDIR/s6-frontend/s6-rc/source:SYSCONFDIR/s6-frontend/s6-rc/source] + --with-store-path=PATH path to service stores [PREFIX/share/s6-frontend/s6-rc/sources:SYSCONFDIR/s6-frontend/s6-rc/sources] diff --git a/package/configure-snippets/configure_help_options b/package/configure-snippets/configure_help_options index 8ef4317..877c5d9 100644 --- a/package/configure-snippets/configure_help_options +++ b/package/configure-snippets/configure_help_options @@ -1,7 +1,4 @@ --enable-nsss use the nsss library for user information [disabled] --disable-s6li do not use s6-linux-init functionality [enabled] --enable-util-linux use util-linux functionality [disabled] - --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 e0b2853..6325b8a 100644 --- a/package/configure-snippets/configure_init_vars +++ b/package/configure-snippets/configure_init_vars @@ -1,13 +1,11 @@ scandir= livedir= -repodir=/var/lib/s6-frontend/s6-rc/repository -bootdir=/etc/s6-rc +repodir= +bootdb= stmpdir=/run/s6-frontend conffile='$sysconfdir/s6-frontend.conf' -defpath='$libdir/s6-frontend/s6-rc/source:$sysconfdir/s6-frontend/s6-rc/source' +storepath='$prefix/share/s6-rc/sources:$sysconfdir/s6-rc/sources' + usensss=false uses6li=true useutillinux=false -adaemontools=false -arunit=false -asymlinks=true diff --git a/package/deps-build b/package/deps-build index 4298f5b..32e84d9 100644 --- a/package/deps-build +++ b/package/deps-build @@ -1,6 +1,6 @@ true true /package/prog/skalibs 2.14.5.0 libskarnet -$usensss $usensss /package/admin/nsss 0.2.1.0 libnsss -true false /package/admin/execline 2.9.7.0 libexecline -true false /package/admin/s6 2.13.3.0 libs6 libs6auto +$usensss $usensss /package/admin/nsss 0.2.1.1 libnsss +true false /package/admin/execline 2.9.8.0 libexecline +true false /package/admin/s6 2.14.0.0 libs6 libs6auto true false /package/admin/s6-rc 0.6.0.0 libs6rc -true false /package/admin/s6-linux-init 1.1.3.0 +true false /package/admin/s6-linux-init 1.2.0.0 diff --git a/package/deps.mak b/package/deps.mak index e28fdce..c5f3895 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -2,40 +2,32 @@ # This file has been generated by tools/gen-deps.sh # -src/s6-frontend/s6-internal.h: src/include/s6-frontend/config.h src/include-local/s6f.h -src/alias/s6-frontend-alias-chpst.o src/alias/s6-frontend-alias-chpst.lo: src/alias/s6-frontend-alias-chpst.c -src/alias/s6-frontend-alias-sv.o src/alias/s6-frontend-alias-sv.lo: src/alias/s6-frontend-alias-sv.c -src/alias/s6-frontend-alias.o src/alias/s6-frontend-alias.lo: src/alias/s6-frontend-alias.c src/include/s6-frontend/config.h -src/config/s6-frontend-config-preprocess.o src/config/s6-frontend-config-preprocess.lo: src/config/s6-frontend-config-preprocess.c +src/s6-frontend/s6-frontend-internal.h: src/include/s6-frontend/config.h src/include-local/s6f.h +src/helpers/s6-frontend-helper-kill.o src/helpers/s6-frontend-helper-kill.lo: src/helpers/s6-frontend-helper-kill.c src/libs6f/s6f_confdir_open.o src/libs6f/s6f_confdir_open.lo: src/libs6f/s6f_confdir_open.c src/include-local/s6f.h +src/libs6f/s6f_equote.o src/libs6f/s6f_equote.lo: src/libs6f/s6f_equote.c src/include-local/s6f.h src/libs6f/s6f_lock.o src/libs6f/s6f_lock.lo: src/libs6f/s6f_lock.c src/include-local/s6f.h src/libs6f/s6f_report_state_change.o src/libs6f/s6f_report_state_change.lo: src/libs6f/s6f_report_state_change.c src/include-local/s6f.h src/libs6f/s6f_user_get_confdirs.o src/libs6f/s6f_user_get_confdirs.lo: src/libs6f/s6f_user_get_confdirs.c src/include-local/s6f.h -src/s6-frontend/help.o src/s6-frontend/help.lo: src/s6-frontend/help.c src/s6-frontend/s6-internal.h -src/s6-frontend/process.o src/s6-frontend/process.lo: src/s6-frontend/process.c src/s6-frontend/s6-internal.h -src/s6-frontend/process_kill.o src/s6-frontend/process_kill.lo: src/s6-frontend/process_kill.c src/s6-frontend/s6-internal.h -src/s6-frontend/process_restart.o src/s6-frontend/process_restart.lo: src/s6-frontend/process_restart.c src/s6-frontend/s6-internal.h -src/s6-frontend/process_startstop.o src/s6-frontend/process_startstop.lo: src/s6-frontend/process_startstop.c src/s6-frontend/s6-internal.h -src/s6-frontend/process_status.o src/s6-frontend/process_status.lo: src/s6-frontend/process_status.c src/s6-frontend/s6-internal.h -src/s6-frontend/s6-frontend.o src/s6-frontend/s6-frontend.lo: src/s6-frontend/s6-frontend.c src/include/s6-frontend/config.h src/s6-frontend/s6-internal.h +src/s6-frontend/help.o src/s6-frontend/help.lo: src/s6-frontend/help.c src/include-local/s6-internal.h +src/s6-frontend/process.o src/s6-frontend/process.lo: src/s6-frontend/process.c src/include-local/s6-internal.h +src/s6-frontend/process_kill.o src/s6-frontend/process_kill.lo: src/s6-frontend/process_kill.c src/s6-frontend/s6-frontend-internal.h src/include-local/s6f.h +src/s6-frontend/process_restart.o src/s6-frontend/process_restart.lo: src/s6-frontend/process_restart.c src/include-local/s6-internal.h +src/s6-frontend/process_startstop.o src/s6-frontend/process_startstop.lo: src/s6-frontend/process_startstop.c src/s6-frontend/s6-frontend-internal.h +src/s6-frontend/process_status.o src/s6-frontend/process_status.lo: src/s6-frontend/process_status.c src/include-local/s6-internal.h +src/s6-frontend/s6-frontend.o src/s6-frontend/s6-frontend.lo: src/s6-frontend/s6-frontend.c src/s6-frontend/s6-frontend-internal.h src/include/s6-frontend/config.h src/s6-frontend/s6.o src/s6-frontend/s6.lo: src/s6-frontend/s6.c src/include/s6-frontend/config.h -src/s6-frontend/service.o src/s6-frontend/service.lo: src/s6-frontend/service.c src/s6-frontend/s6-internal.h -src/s6-frontend/service_startstop.o src/s6-frontend/service_startstop.lo: src/s6-frontend/service_startstop.c src/s6-frontend/s6-internal.h -src/s6-frontend/service_status.o src/s6-frontend/service_status.lo: src/s6-frontend/service_status.c src/s6-frontend/s6-internal.h -src/s6-frontend/util.o src/s6-frontend/util.lo: src/s6-frontend/util.c src/s6-frontend/s6-internal.h +src/s6-frontend/service.o src/s6-frontend/service.lo: src/s6-frontend/service.c src/include-local/s6-internal.h +src/s6-frontend/service_startstop.o src/s6-frontend/service_startstop.lo: src/s6-frontend/service_startstop.c src/include-local/s6-internal.h +src/s6-frontend/service_status.o src/s6-frontend/service_status.lo: src/s6-frontend/service_status.c src/include-local/s6-internal.h +src/s6-frontend/util.o src/s6-frontend/util.lo: src/s6-frontend/util.c src/include-local/s6-internal.h -s6-frontend-alias: EXTRA_LIBS := -s6-frontend-alias: src/alias/s6-frontend-alias.o -lskarnet -s6-frontend-alias-chpst: EXTRA_LIBS := ${MAYBEPTHREAD_LIB} -s6-frontend-alias-chpst: src/alias/s6-frontend-alias-chpst.o ${LIBNSSS} -lskarnet -s6-frontend-alias-sv: EXTRA_LIBS := ${SPAWN_LIB} -s6-frontend-alias-sv: src/alias/s6-frontend-alias-sv.o -ls6 -lskarnet -s6-frontend-config-preprocess: EXTRA_LIBS := -s6-frontend-config-preprocess: src/config/s6-frontend-config-preprocess.o -lskarnet +s6-frontend-helper-kill: EXTRA_LIBS := +s6-frontend-helper-kill: src/helpers/s6-frontend-helper-kill.o -lskarnet ifeq ($(strip $(STATIC_LIBS_ARE_PIC)),) -libs6f.a.xyzzy: src/libs6f/s6f_confdir_open.o src/libs6f/s6f_lock.o src/libs6f/s6f_report_state_change.o src/libs6f/s6f_user_get_confdirs.o +libs6f.a.xyzzy: src/libs6f/s6f_confdir_open.o src/libs6f/s6f_equote.o src/libs6f/s6f_lock.o src/libs6f/s6f_report_state_change.o src/libs6f/s6f_user_get_confdirs.o else -libs6f.a.xyzzy:src/libs6f/s6f_confdir_open.lo src/libs6f/s6f_lock.lo src/libs6f/s6f_report_state_change.lo src/libs6f/s6f_user_get_confdirs.lo +libs6f.a.xyzzy:src/libs6f/s6f_confdir_open.lo src/libs6f/s6f_equote.lo src/libs6f/s6f_lock.lo src/libs6f/s6f_report_state_change.lo src/libs6f/s6f_user_get_confdirs.lo endif s6: EXTRA_LIBS := s6: src/s6-frontend/s6.o -lskarnet diff --git a/package/modes b/package/modes index 2c9188f..5245abe 100644 --- a/package/modes +++ b/package/modes @@ -1,6 +1,3 @@ s6 0755 s6-frontend 0755 -s6-frontend-config-preprocess 0755 -s6-frontend-alias 0755 -s6-frontend-alias-sv 0755 -s6-frontend-alias-chpst 0755 +s6-frontend-helper-kill 0755 diff --git a/package/targets.mak b/package/targets.mak index 2cdb392..13bab6f 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -2,92 +2,6 @@ BIN_TARGETS := \ s6 \ s6-frontend -LIBEXEC_TARGETS := +LIBEXEC_TARGETS := \ +s6-frontend-helper-kill \ -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-frontend-alias-sv s6-frontend-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-frontend-alias-chpst - exec $(INSTALL) -D -l s6-frontend-alias-chpst $@ -$(DESTDIR)$(bindir)/sv: $(DESTDIR)$(bindir)/s6-frontend-alias-sv - exec $(INSTALL) -D -l s6-frontend-alias-sv $@ - -endif - -ifdef WRAP_ANY - -BIN_TARGETS += s6-frontend-alias - -$(DAEMONTOOLS_TARGETS:%=$(DESTDIR)$(bindir)/%) $(RUNIT_TARGETS:%=$(DESTDIR)$(bindir)/%): $(DESTDIR)$(bindir)/s6-frontend-alias - exec $(INSTALL) -D -l s6-frontend-alias $@ - -endif -- cgit v1.3.1