multipath-tools: Build: properly parse systemd's version
authorDominique Leuenberger <dimstar@opensuse.org>
Thu, 11 Apr 2019 10:27:12 +0000 (12:27 +0200)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Thu, 18 Apr 2019 11:05:38 +0000 (13:05 +0200)
Since systemd 241, systemctl --version no longer 'just' prints out the
version, but gives more information like git commit ref and whatnot. In
it's shortest form, it gives something like "systemd 241 (241)", which when
passed as parameter "-DUSE_SYSTEMD=241 (241)" results in shell errors.

Try to retrieve the version from pkg-config instead, and if that fails,
discard anything after the first number in "systemctl --version" output.

Acked-by: Benjamin Marzinski <bmarzins@redhat.com>
Acked-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Makefile.inc

index fc728ca..56c3eda 100644 (file)
@@ -36,8 +36,13 @@ ifndef RUN
 endif
 
 ifndef SYSTEMD
-       ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
-               SYSTEMD = $(shell systemctl --version 2> /dev/null |  sed -n 's/systemd \([0-9]*\)/\1/p')
+       ifeq ($(shell pkg-config --modversion libsystemd >/dev/null 2>&1 && echo 1), 1)
+               SYSTEMD = $(shell pkg-config --modversion libsystemd)
+       else
+               ifeq ($(shell systemctl --version >/dev/null 2>&1 && echo 1), 1)
+                       SYSTEMD = $(shell systemctl --version 2> /dev/null | \
+                               sed -n 's/systemd \([0-9]*\).*/\1/p')
+               endif
        endif
 endif