summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-09-09 00:17:22 +0200
committerLudovic Courtès <ludo@gnu.org>2016-09-09 00:18:09 +0200
commit5acf00f99072cd4da8d3ba064f19cc819288d68b (patch)
tree7bef2f115c42011422c84e1f196658bd3de58547
parent7326944b5c6ff850b83f8b7d737d0bb2f5a97c42 (diff)
downloadguix-5acf00f99072cd4da8d3ba064f19cc819288d68b.tar.gz
gnu: kmscon: Enable elogind support.
* gnu/packages/terminals.scm (kmscon)[source]: Add 'modules' and
'snippet'.
-rw-r--r--gnu/packages/terminals.scm18
1 files changed, 17 insertions, 1 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 89ccaa6701..d5c24d2455 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -209,7 +209,23 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
                     "kmscon-" version ".tar.xz"))
               (sha256
                (base32
-                "0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a"))))
+                "0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Use elogind instead of systemd.
+               '(begin
+                  (substitute* "configure"
+                    (("libsystemd-daemon libsystemd-login")
+                     "libelogind"))
+                  (substitute* "src/uterm_systemd.c"
+                    (("#include <systemd/sd-login.h>")
+                     "#include <elogind/sd-login.h>")
+                    ;; We don't have this header.
+                    (("#include <systemd/sd-daemon\\.h>")
+                     "")
+                    ;; Replace the call to 'sd_booted' by the truth value.
+                    (("sd_booted\\(\\)")
+                     "1"))))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)