meson: install libsystemd-shared into rootpkglibdir

Introduce rootpkglibdir for installing libsystemd-{shared,core}.so.
The benefit over using rootlibexecdir is that this path can be
multiarch aware, i.e. this path can be architecture qualified.

This is something we'd like to make use of in Debian/Ubuntu to make
libsystemd-shared co-installable, e.g. for i386 the path would be
/usr/lib/i386-linux-gnu/systemd/libsystemd-shared-*.so and for amd64
/usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-*.so.
This will allow for example to install and run systemd-boot/i386 on an
amd64 host. It also simplifies/enables cross-building/bootstrapping.

For more infos about Multi-Arch see https://wiki.debian.org/Multiarch.

See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990547
This commit is contained in:
Michael Biebl
2022-06-07 10:04:43 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent 3cf63830ac
commit 5fb225615b
5 changed files with 132 additions and 128 deletions
+4 -1
View File
@@ -20,9 +20,12 @@ int systemd_installation_has_version(const char *root, const char *minimal_versi
/* /lib works for systems without usr-merge, and for systems with a sane
* usr-merge, where /lib is a symlink to /usr/lib. /usr/lib is necessary
* for Gentoo which does a merge without making /lib a symlink.
* Also support multiarch paths von Debian/Ubuntu; *-linux-* is a small
* optimization based on the naming scheme of existing multiarch tuples.
*/
"/lib/systemd/libsystemd-shared-*.so",
"/lib64/systemd/libsystemd-shared-*.so",
"/usr/lib/*-linux-*/systemd/libsystemd-shared-*.so",
"/usr/lib/systemd/libsystemd-shared-*.so",
"/usr/lib64/systemd/libsystemd-shared-*.so") {
@@ -47,7 +50,7 @@ int systemd_installation_has_version(const char *root, const char *minimal_versi
/* This is most likely to run only once, hence let's not optimize anything. */
char *t, *t2;
t = startswith(*name, path);
t = startswith(basename(*name), "libsystemd-shared-");
if (!t)
continue;