Subject: [bug#68573] [PATCH gnome-team] gnu: sdbus-c++: Fix generated sdbus-c++.pc.

From: Vivien Kraus <[email-masked]>
Date: Thu, 18 Jan 2024 22:14:09 +0100

* gnu/packages/glib.scm (sdbus-c++) [#:phases 'fix-libelogind-requirement]:
New phase.

Change-Id: Id29369178f164fc60e6882aa664556924cf4bfa7
---
 gnu/packages/glib.scm | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 7b8cc3286d..d84b848b62 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -1289,11 +1289,20 @@ (define-public sdbus-c++
                                 ;; Do not install tests.
                                 "-DTESTS_INSTALL_PATH=/tmp"
                                 "-DCMAKE_VERBOSE_MAKEFILE=ON")
-      #:phases #~(modify-phases %standard-phases
-                   (add-after 'unpack 'do-not-install-tests
-                     (lambda _
-                       (substitute* "tests/CMakeLists.txt"
-                         (("/etc/dbus-1/system.d") "/tmp")))))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'do-not-install-tests
+            (lambda _
+              (substitute* "tests/CMakeLists.txt"
+                (("/etc/dbus-1/system.d") "/tmp"))))
+          (add-before 'install 'fix-libelogind-requirement
+            (lambda _
+              ;; sdbus-c++.pc requires 'elogind', but it should
+              ;; require 'libelogind'. Fixed after 1.4.0 with
+              ;; fb9e4ae37152648a67814458d3ff673b1d3ca089
+              (substitute* "pkgconfig/sdbus-c++.pc"
+                (("Requires: elogind")
+                 "Requires: libelogind")))))))
     (native-inputs (list googletest pkg-config))
     (inputs (list expat))
     (propagated-inputs (list elogind)) ;required by sdbus-c++.pc

base-commit: 17c2e26068c5c36eb8ee1ec39a8695ef66f75c55
-- 
2.41.0