From 7c86b401906d973107e4926b7a6112874383ab4d Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 5 Nov 2023 23:46:26 +0100 Subject: [PATCH] Fix #383: configure must expand FINIT_RUNPATH_ before define This fixes an annying buglet that creeped in just before the v4.5 release causing none of the internal services to be registered properly: conf_save_service():Failed creating ${localstatedir}/run/finit/system/dbus.conf: No such file or directory plugin_run_hook():Calling modules-load hook n:o 5 (arg: 0x55c4c8133621) ... load():Scanning /etc/modules-load.d for config files ... cond_set_oneshot():hook/svc/plugin cond_set_oneshot_noupdate():hook/svc/plugin => /run/finit/cond/hook/svc/plugin cond_update():hook/svc/plugin parse_conf():*** Parsing /etc/finit.conf conf_save_service():Failed creating ${localstatedir}/run/finit/system/runparts.conf: No such file or directory The fix, like most, is simple when you find it. We must expand $runstatedir before creating the #define in config.h For convenience, here's the patch for the generated configure script: &<---------------------------[cut here]--------------------------- --- a/configure 2023-11-05 23:39:51.907334321 +0100 +++ b/configure 2023-11-05 23:39:58.339299795 +0100 @@ -15352,7 +15352,15 @@ printf "%s\n" "#define FINIT_EXECPATH_ \"$pkglibexecdir\"" >>confdefs.h -printf "%s\n" "#define FINIT_RUNPATH_ \"$runstatedir/finit/system\"" >>confdefs.h + finit_runpath="$runstatedir/finit/system" + finit_runpath=`( + test "x$prefix" = xNONE && prefix="$ac_default_prefix" + test "x$exec_prefix" = xNONE && exec_prefix="${prefix}" + eval echo \""$finit_runpath"\" + )` + + +printf "%s\n" "#define FINIT_RUNPATH_ \"$finit_runpath\"" >>confdefs.h &<---------------------------[cut here]--------------------------- Ensure you include the three empty lines for context at the end! Signed-off-by: Joachim Wiberg --- configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f46651bc..adefa256 100644 --- a/configure.ac +++ b/configure.ac @@ -314,7 +314,8 @@ pkglibdir=$libdir/finit AC_SUBST(pkglibexecdir) AC_EXPAND_DIR(pkglibexecdir, "$libexecdir/finit") AC_DEFINE_UNQUOTED(FINIT_EXECPATH_, "$pkglibexecdir", [Finit libexec path]) -AC_DEFINE_UNQUOTED(FINIT_RUNPATH_, "$runstatedir/finit/system", [Finit runtime dynamic system services]) +AC_EXPAND_DIR(finit_runpath, "$runstatedir/finit/system") +AC_DEFINE_UNQUOTED(FINIT_RUNPATH_, "$finit_runpath", [Finit runtime dynamic system services]) AC_EXPAND_DIR(plugin_path, "$pkglibdir/plugins") AC_SUBST(plugin_path)