summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2023-04-28 17:25:22 -0400
committerLudovic Courtès <ludo@gnu.org>2023-04-30 23:14:49 +0200
commitefce51a194a7a05860a4d489ccb3f3b7c4d5985a (patch)
tree45f52844dc1e59d1fb808e91ea7e36b1a429247f
parent5cb04b570f96b50eefb220ea742d32833ce35909 (diff)
downloadguix-efce51a194a7a05860a4d489ccb3f3b7c4d5985a.tar.gz
gnu: slim: Fix build failure with GCC-11
GCC-11 sniffed out a long-standing bug where a pointer was being tested for a
negative value, which is impossible. Instead, check for NULL, which is how the
error result is actually returned.

See https://github.com/iwamatsu/slim/issues/14 for details.

Fixes <https://issues.guix.gnu.org/63155>.

* gnu/packages/display-managers.scm (slim) [fix-0-pointer-comparison]: new
phase

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/display-managers.scm6
1 files changed, 5 insertions, 1 deletions
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index b0d388f1bc..c1a08e8553 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -475,7 +475,11 @@ GTK+, lets you select a desktop session and log in to it.")
                ;; The build system's logic here is: if "Linux", then
                 ;; "systemd".  Strip that.
                 ""))
-             #t)))
+             #t))
+         (add-before 'configure 'fix-0-pointer-comparison
+           (lambda _
+             (substitute* "panel.cpp"
+               (("WinGC < 0") "WinGC == NULL")))))
        #:configure-flags '("-DUSE_PAM=yes"
                            "-DUSE_CONSOLEKIT=no")
        #:tests? #f))