From: Zbigniew Jędrzejewski-Szmek Date: Thu, 13 Nov 2025 13:02:30 +0000 (+0100) Subject: systemd-path: add 'system-search-configuration' X-Git-Tag: v259-rc1~44^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F39684%2Fhead;p=thirdparty%2Fsystemd.git systemd-path: add 'system-search-configuration' This provides functionality to replace what was provided by the preceding revert: $ build/systemd-path system-search-configuration --suffix=sysctl.d /etc/sysctl.d:/run/sysctl.d:/usr/local/lib/sysctl.d:/usr/lib/sysctl.d The result is identical, but more generic, since by changing suffix we can also get the answer for sysusers.d, tmpfiles.d, and any other of the directories which follow the same general rule. --- diff --git a/man/sd_path_lookup.xml b/man/sd_path_lookup.xml index fc6bac640c9..9190e6b00a4 100644 --- a/man/sd_path_lookup.xml +++ b/man/sd_path_lookup.xml @@ -41,6 +41,7 @@ SD_PATH_SYSTEM_STATE_FACTORY, SD_PATH_SYSTEM_CONFIGURATION, + SD_PATH_SYSTEM_SEARCH_CONFIGURATION, SD_PATH_SYSTEM_RUNTIME, SD_PATH_SYSTEM_RUNTIME_LOGS, SD_PATH_SYSTEM_STATE_PRIVATE, diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c index 00969971353..b80b8ca68d2 100644 --- a/src/libsystemd/sd-path/sd-path.c +++ b/src/libsystemd/sd-path/sd-path.c @@ -524,6 +524,9 @@ static int get_search(uint64_t type, char ***ret) { switch (type) { + case SD_PATH_SYSTEM_SEARCH_CONFIGURATION: + return strv_from_nulstr(ret, CONF_PATHS_NULSTR("")); + case SD_PATH_SEARCH_BINARIES: return search_from_environment(ret, NULL, diff --git a/src/path/path-tool.c b/src/path/path-tool.c index 3dc31832b38..227468dfe8f 100644 --- a/src/path/path-tool.c +++ b/src/path/path-tool.c @@ -22,6 +22,8 @@ static const char* const path_table[_SD_PATH_MAX] = { [SD_PATH_TEMPORARY] = "temporary", [SD_PATH_TEMPORARY_LARGE] = "temporary-large", + [SD_PATH_SYSTEM_SEARCH_CONFIGURATION] = "system-search-configuration", + [SD_PATH_SYSTEM_BINARIES] = "system-binaries", [SD_PATH_SYSTEM_INCLUDE] = "system-include", [SD_PATH_SYSTEM_LIBRARY_PRIVATE] = "system-library-private", diff --git a/src/systemd/sd-path.h b/src/systemd/sd-path.h index eb42e31a689..2718cf82664 100644 --- a/src/systemd/sd-path.h +++ b/src/systemd/sd-path.h @@ -44,6 +44,9 @@ __extension__ enum { SD_PATH_SYSTEM_STATE_CACHE, SD_PATH_SYSTEM_STATE_SPOOL, + /* generic system configuration */ + SD_PATH_SYSTEM_SEARCH_CONFIGURATION, + /* Vendor supplied data */ SD_PATH_USER_BINARIES, SD_PATH_USER_LIBRARY_PRIVATE, diff --git a/test/units/TEST-74-AUX-UTILS.path.sh b/test/units/TEST-74-AUX-UTILS.path.sh index 79056a5b2bb..4547f53e24d 100755 --- a/test/units/TEST-74-AUX-UTILS.path.sh +++ b/test/units/TEST-74-AUX-UTILS.path.sh @@ -51,6 +51,8 @@ assert_eq "$(systemd-path --suffix='' system-runtime)" "/run" assert_eq "$(systemd-path --suffix='🤔' system-runtime)" "/run/🤔" assert_eq "$(systemd-path --suffix=hello system-runtime)" "/run/hello" +assert_eq "$(systemd-path system-search-configuration --suffix=sysctl.d)" "/etc/sysctl.d:/run/sysctl.d:/usr/local/lib/sysctl.d:/usr/lib/sysctl.d" + # Note for the stuff below: everything defaults to $HOME, only the desktop # directory defaults to $HOME/Desktop. #