diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-04-16 12:36:07 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2018-05-24 17:01:57 +0200 |
commit | 799b210267ed6209cd8ba1d693bd49509fab18d8 (patch) | |
tree | 600ef0f283625098d743d2f4099cb1e40e6f7bdb | |
parent | d6d9827687412a3f1559704839362b8651a07536 (diff) | |
download | systemd-799b210267ed6209cd8ba1d693bd49509fab18d8.tar.gz systemd-799b210267ed6209cd8ba1d693bd49509fab18d8.tar.bz2 systemd-799b210267ed6209cd8ba1d693bd49509fab18d8.zip |
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.
-rw-r--r-- | src/shared/path-lookup.c | 10 | ||||
-rw-r--r-- | src/shared/path-lookup.h | 5 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c index 9919b2f2c2..e71af2f7cb 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 f5bba63f5b..357816fd08 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 { |