diff mbox series

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

Message ID 001bf4e4b4088613ad1469abcc6acecef3ceea6d.1705743574.git.vivien@planete-kraus.eu
State New
Headers show
Series [bug#68573,gnome-team,v2] gnu: sdbus-c++: Fix generated sdbus-c++.pc. | expand

Commit Message

Vivien Kraus Jan. 18, 2024, 9:14 p.m. UTC
* gnu/packages/glib.scm (sdbus-c++) [#:phases]: Add 'fix-elogind-requirement.

Change-Id: Id29369178f164fc60e6882aa664556924cf4bfa7
---
Hello!

Le samedi 20 janvier 2024 à 08:35 +0100, Liliana Marie Prikler a écrit :
> +              ;; 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")))))))
> Instead of patching the generated file, you could try patching the .in file
> from which it is generated or the CMakeLists.

As far as I understand, the CMakeLists do not have a variable that contain
"libelogind", and we can’t change the LIBSYSTEMD variable content because it
is used in other places (notably to find headers, where “libelogind” would not
work).

So we have to ignore the CMakeLists entirely and bypass the .in substitution.

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


base-commit: 49897f2dde7f469c83c496fad2699d3a05f72701

Comments

Maxim Cournoyer Jan. 20, 2024, 6:30 p.m. UTC | #1
Hi,

Vivien Kraus <vivien@planete-kraus.eu> writes:

> * gnu/packages/glib.scm (sdbus-c++) [#:phases]: Add 'fix-elogind-requirement.
>
> Change-Id: Id29369178f164fc60e6882aa664556924cf4bfa7

Thanks for the explanation, it makes sense.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>
Liliana Marie Prikler Jan. 25, 2024, 3:33 p.m. UTC | #2
Am Donnerstag, dem 18.01.2024 um 22:14 +0100 schrieb Vivien Kraus:
> * gnu/packages/glib.scm (sdbus-c++) [#:phases]: Add 'fix-elogind-
> requirement.
> 
> Change-Id: Id29369178f164fc60e6882aa664556924cf4bfa7
Pushed.  Thanks
diff mbox series

Patch

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 7b8cc3286d..eee5251d03 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-after 'unpack 'fix-elogind-requirement
+            (lambda _
+              ;; sdbus-c++.pc requires 'elogind', but it should
+              ;; require 'libelogind'. Fixed after 1.4.0 with
+              ;; fb9e4ae37152648a67814458d3ff673b1d3ca089
+              (substitute* "pkgconfig/sdbus-c++.pc.in"
+                (("@LIBSYSTEMD@")
+                 "libelogind")))))))
     (native-inputs (list googletest pkg-config))
     (inputs (list expat))
     (propagated-inputs (list elogind)) ;required by sdbus-c++.pc