summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-05-28 09:17:48 +0200
committerLennart Poettering <lennart@poettering.net>2020-05-28 23:52:34 +0200
commit4a56315a990b802860170ecd1bbd3eb68e14a38b (patch)
treeabcd9746188d39ad6b1186652e048dbf9b1003a2
parent08b8f29a25fb377cf0b6a7b8a2b6e2136382588d (diff)
downloadsystemd-4a56315a990b802860170ecd1bbd3eb68e14a38b.tar.gz
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.
-rw-r--r--src/core/systemd.pc.in8
-rw-r--r--src/libsystemd/sd-path/sd-path.c18
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: