]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: use pkg-config to get user unit dir when installing dbus user socket
authorLuca Boccassi <bluca@debian.org>
Tue, 22 Dec 2020 17:47:39 +0000 (17:47 +0000)
committerLuca Boccassi <bluca@debian.org>
Fri, 1 Jan 2021 21:33:16 +0000 (21:33 +0000)
Usually on Debian ROOTLIBDIR is /lib/<arch triplet>, which is not the right place.
Use pkg-config since we define it, and then fallback to /usr/lib/systemd/user which is
the canonical location.
On both Debian&friends and Fedora dbus/dbus-broker install the user socket/service
under /usr/lib/systemd/user, not /lib/systemd/systemd/user.

test/test-functions

index 482cb7b490bd01a4e7d838221bdc5a8912c21ea5..03685f8da4aff2c637a05fa434fffeb29ae57721 100644 (file)
@@ -1058,8 +1058,14 @@ EOF
 }
 
 install_user_dbus() {
-    inst $ROOTLIBDIR/user/dbus.socket
-    inst_symlink /usr/lib/systemd/user/sockets.target.wants/dbus.socket || inst_symlink /etc/systemd/user/sockets.target.wants/dbus.socket
+    local userunitdir
+    if ! userunitdir=$(pkg-config --variable=systemduserunitdir systemd); then
+        echo "WARNING! Cannot determine userunitdir from pkg-config, assuming /usr/lib/systemd/user" >&2
+        local userunitdir=/usr/lib/systemd/user
+    fi
+
+    inst $userunitdir/dbus.socket
+    inst_symlink $userunitdir/sockets.target.wants/dbus.socket || inst_symlink /etc/systemd/user/sockets.target.wants/dbus.socket
 
     # Append the After= dependency on dbus in case it isn't already set up
     mkdir -p "$initdir/etc/systemd/system/user@.service.d/"
@@ -1069,16 +1075,16 @@ After=dbus.service
 EOF
 
     # Newer Fedora versions use dbus-broker by default. Let's install it if it's available.
-    if [ -f $ROOTLIBDIR/user/dbus-broker.service ]; then
-        inst $ROOTLIBDIR/user/dbus-broker.service
+    if [ -f $userunitdir/dbus-broker.service ]; then
+        inst $userunitdir/dbus-broker.service
         inst_symlink /etc/systemd/user/dbus.service
     elif [ -f $ROOTLIBDIR/system/dbus-daemon.service ]; then
         # Fedora rawhide replaced dbus.service with dbus-daemon.service
-        inst $ROOTLIBDIR/user/dbus-daemon.service
+        inst $userunitdir/dbus-daemon.service
         # Alias symlink
         inst_symlink /etc/systemd/user/dbus.service
     else
-        inst $ROOTLIBDIR/user/dbus.service
+        inst $userunitdir/dbus.service
     fi
 }