From: Lennart Poettering Date: Mon, 16 Apr 2018 10:36:07 +0000 (+0200) Subject: path-lookup: add flag to optionally force checking split-usr unit dirs X-Git-Tag: v239~208^2~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=799b210267ed6209cd8ba1d693bd49509fab18d8;p=thirdparty%2Fsystemd.git path-lookup: add flag to optionally force checking split-usr unit dirs When we look into a portable service image it might contain the unit files in split-usr directories rather than merged-usr directories as on the host. Hence, let#s add a flag that checking all dirs can be forced. --- diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c index 9919b2f2c28..e71af2f7cb7 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c @@ -263,10 +263,8 @@ static int acquire_generator_dirs( if (tempdir) prefix = tempdir; - else if (scope == UNIT_FILE_SYSTEM) prefix = "/run/systemd"; - else if (scope == UNIT_FILE_USER) { const char *e; @@ -484,6 +482,10 @@ int lookup_paths_init( assert(scope >= 0); assert(scope < _UNIT_FILE_SCOPE_MAX); +#if HAVE_SPLIT_USR + flags |= LOOKUP_PATHS_SPLIT_USR; +#endif + if (!empty_or_root(root_dir)) { if (scope == UNIT_FILE_USER) return -EINVAL; @@ -582,9 +584,7 @@ int lookup_paths_init( "/usr/local/lib/systemd/system", SYSTEM_DATA_UNIT_PATH, "/usr/lib/systemd/system", -#if HAVE_SPLIT_USR - "/lib/systemd/system", -#endif + STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL), STRV_IFNOTNULL(generator_late), NULL); break; diff --git a/src/shared/path-lookup.h b/src/shared/path-lookup.h index f5bba63f5b0..357816fd085 100644 --- a/src/shared/path-lookup.h +++ b/src/shared/path-lookup.h @@ -15,8 +15,9 @@ typedef struct LookupPaths LookupPaths; #include "macro.h" typedef enum LookupPathsFlags { - LOOKUP_PATHS_EXCLUDE_GENERATED = 1 << 0, - LOOKUP_PATHS_TEMPORARY_GENERATED = 1 << 1, + LOOKUP_PATHS_EXCLUDE_GENERATED = 1U << 0, + LOOKUP_PATHS_TEMPORARY_GENERATED = 1U << 1, + LOOKUP_PATHS_SPLIT_USR = 1U << 2, } LookupPathsFlags; struct LookupPaths {