From 4a56315a990b802860170ecd1bbd3eb68e14a38b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 28 May 2020 09:17:48 +0200 Subject: [PATCH] path: use ROOTPREFIX properly ROOTPREFIX doesn't include the trailing /, hence add it in where needed. Also, given that sysctl.d/, binfmt.d/, sysusers.d/ are generally accessed before /var/ is up they should use ROOTPREFIX rather than PREFIX. Fix that. --- src/core/systemd.pc.in | 8 ++++---- src/libsystemd/sd-path/sd-path.c | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in index 410a126317..8424837824 100644 --- a/src/core/systemd.pc.in +++ b/src/core/systemd.pc.in @@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir} tmpfiles_dir=${prefix}/lib/tmpfiles.d tmpfilesdir=${tmpfiles_dir} -sysusers_dir=${prefix}/lib/sysusers.d +sysusers_dir=${rootprefix}/lib/sysusers.d sysusersdir=${sysusers_dir} -sysctl_dir=${prefix}/lib/sysctl.d +sysctl_dir=${rootprefix}/lib/sysctl.d sysctldir=${sysctl_dir} -binfmt_dir=${prefix}/lib/binfmt.d +binfmt_dir=${rootprefix}/lib/binfmt.d binfmtdir=${binfmt_dir} -modules_load_dir=${prefix}/lib/modules-load.d +modules_load_dir=${rootprefix}/lib/modules-load.d modulesloaddir=${modules_load_dir} catalog_dir=${prefix}/lib/systemd/catalog diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c index 9f8397cd37..ea8e167128 100644 --- a/src/libsystemd/sd-path/sd-path.c +++ b/src/libsystemd/sd-path/sd-path.c @@ -321,7 +321,7 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { return from_user_dir("XDG_DESKTOP_DIR", buffer, ret); case SD_PATH_SYSTEMD_UTIL_DIR: - *ret = ROOTPREFIX "lib/systemd"; + *ret = ROOTPREFIX "/lib/systemd"; return 0; case SD_PATH_SYSTEMD_SYSTEM_UNIT_DIR: @@ -329,7 +329,7 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { return 0; case SD_PATH_SYSTEMD_SYSTEM_PRESET_DIR: - *ret = ROOTPREFIX "lib/systemd/system-preset"; + *ret = ROOTPREFIX "/lib/systemd/system-preset"; return 0; case SD_PATH_SYSTEMD_USER_UNIT_DIR: @@ -337,7 +337,7 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { return 0; case SD_PATH_SYSTEMD_USER_PRESET_DIR: - *ret = ROOTPREFIX "lib/systemd/user-preset"; + *ret = ROOTPREFIX "/lib/systemd/user-preset"; return 0; case SD_PATH_SYSTEMD_SYSTEM_CONF_DIR: @@ -357,11 +357,11 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { return 0; case SD_PATH_SYSTEMD_SLEEP_DIR: - *ret = ROOTPREFIX "lib/systemd/system-sleep"; + *ret = ROOTPREFIX "/lib/systemd/system-sleep"; return 0; case SD_PATH_SYSTEMD_SHUTDOWN_DIR: - *ret = ROOTPREFIX "lib/systemd/system-shutdown"; + *ret = ROOTPREFIX "/lib/systemd/system-shutdown"; return 0; /* FIXME: systemd.pc uses ${prefix}, but CONF_PATHS_NULSTR doesn't. @@ -371,19 +371,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { return 0; case SD_PATH_SYSUSERS_DIR: - *ret = "/usr/lib/sysusers.d"; + *ret = ROOTPREFIX "/lib/sysusers.d"; return 0; case SD_PATH_SYSCTL_DIR: - *ret = "/usr/lib/sysctl.d"; + *ret = ROOTPREFIX "/lib/sysctl.d"; return 0; case SD_PATH_BINFMT_DIR: - *ret = "/usr/lib/binfmt.d"; + *ret = ROOTPREFIX "/lib/binfmt.d"; return 0; case SD_PATH_MODULES_LOAD_DIR: - *ret = "/usr/lib/modules-load.d"; + *ret = ROOTPREFIX "/lib/modules-load.d"; return 0; case SD_PATH_CATALOG_DIR: