Bug#971282: ABI breakage: paths changed for sysusers.d/sysctl.d/binfmt/modules-load.d
Michael Biebl
biebl at debian.org
Mon Sep 28 20:00:51 BST 2020
Package: systemd
Version: 246.6-1
Severity: important
Upstream changed the paths in systemd.pc from prefix to rootprefix in
v246 for sysusers_dir, sysctl_dir, binfmt_dir and modules-load_dir:
https://github.com/systemd/systemd/commit/4a56315a990b802860170ecd1bbd3eb68e14a38b
This breaks packages which use pkg-config to determine those paths and
where .install files reference /usr/. An example is mandos.
I think we should revert this change. I don't see a compelling reason to
move those files from /usr to /lib given that we require /usr to be
pre-mounted by initramfs, if it's separate.
Moving files from /usr to /lib files kinda backwards nowadays.
I intend to apply a patch like the attached one in Debian.
That said, I hope I can convince Lennart to revert this change upstream
as well.
Thoughts, Comments?
Michael
-------------- next part --------------
diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
index 3af9f99830..699a9748f2 100644
--- a/src/core/systemd.pc.in
+++ b/src/core/systemd.pc.in
@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir}
tmpfiles_dir=/usr/lib/tmpfiles.d
tmpfilesdir=${tmpfiles_dir}
-sysusers_dir=${rootprefix}/lib/sysusers.d
+sysusers_dir=${prefix}/lib/sysusers.d
sysusersdir=${sysusers_dir}
-sysctl_dir=${rootprefix}/lib/sysctl.d
+sysctl_dir=${prefix}/lib/sysctl.d
sysctldir=${sysctl_dir}
-binfmt_dir=${rootprefix}/lib/binfmt.d
+binfmt_dir=${prefix}/lib/binfmt.d
binfmtdir=${binfmt_dir}
-modules_load_dir=${rootprefix}/lib/modules-load.d
+modules_load_dir=${prefix}/lib/modules-load.d
modulesloaddir=${modules_load_dir}
catalog_dir=/usr/lib/systemd/catalog
diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c
index 26d2341c2b..414e249884 100644
--- a/src/libsystemd/sd-path/sd-path.c
+++ b/src/libsystemd/sd-path/sd-path.c
@@ -369,19 +369,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
return 0;
case SD_PATH_SYSUSERS:
- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d";
+ *ret = "/usr/lib/sysusers.d";
return 0;
case SD_PATH_SYSCTL:
- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d";
+ *ret = "/usr/lib/sysctl.d";
return 0;
case SD_PATH_BINFMT:
- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d";
+ *ret = "/usr/lib/binfmt.d";
return 0;
case SD_PATH_MODULES_LOAD:
- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d";
+ *ret = "/usr/lib/modules-load.d";
return 0;
case SD_PATH_CATALOG:
More information about the Pkg-systemd-maintainers
mailing list