Merge pull request #29960 from CodethinkLabs/vmspawn/mkosi-features

vmspawn: add features required by mkosi
This commit is contained in:
Daan De Meyer
2024-02-09 18:39:54 +01:00
committed by GitHub
9 changed files with 893 additions and 82 deletions
+38
View File
@@ -91,6 +91,44 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
return 1;
}
int runtime_directory(char **ret, RuntimeScope scope, const char *suffix) {
_cleanup_free_ char *d = NULL;
int r;
assert(ret);
assert(suffix);
assert(IN_SET(scope, RUNTIME_SCOPE_SYSTEM, RUNTIME_SCOPE_USER, RUNTIME_SCOPE_GLOBAL));
/* Accept $RUNTIME_DIRECTORY as authoritative
* If its missing apply the suffix to /run or $XDG_RUNTIME_DIR
* if we are in a user runtime scope.
*
* Return value indicates whether the suffix was applied or not */
const char *e = secure_getenv("RUNTIME_DIRECTORY");
if (e) {
d = strdup(e);
if (!d)
return -ENOMEM;
*ret = TAKE_PTR(d);
return false;
}
if (scope == RUNTIME_SCOPE_USER) {
r = xdg_user_runtime_dir(&d, suffix);
if (r < 0)
return r;
} else {
d = path_join("/run", suffix);
if (!d)
return -ENOMEM;
}
*ret = TAKE_PTR(d);
return true;
}
static const char* const user_data_unit_paths[] = {
"/usr/local/lib/systemd/user",
"/usr/local/share/systemd/user",
+1
View File
@@ -59,6 +59,7 @@ int xdg_user_dirs(char ***ret_config_dirs, char ***ret_data_dirs);
int xdg_user_runtime_dir(char **ret, const char *suffix);
int xdg_user_config_dir(char **ret, const char *suffix);
int xdg_user_data_dir(char **ret, const char *suffix);
int runtime_directory(char **ret, RuntimeScope scope, const char *suffix);
bool path_is_user_data_dir(const char *path);
bool path_is_user_config_dir(const char *path);