gnu: elogind: Build with gperf 3.0.
authorLudovic Courtès <ludo@gnu.org>
Sun, 19 Mar 2017 22:09:15 +0000 (23:09 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sun, 19 Mar 2017 22:42:57 +0000 (23:42 +0100)
* gnu/packages/gperf.scm (gperf-3.0): New variable.
* gnu/packages/freedesktop.scm (elogind)[native-inputs]: Use GPERF-3.0
instead of GPERF.

gnu/packages/freedesktop.scm
gnu/packages/gperf.scm

index 20a104f..065046e 100644 (file)
@@ -206,7 +206,10 @@ the freedesktop.org XDG Base Directory specification.")
        ("m4" ,m4)
        ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
        ("pkg-config" ,pkg-config)
-       ("gperf" ,gperf)))
+
+       ;; Use gperf 3.0 to work around
+       ;; <https://github.com/wingo/elogind/issues/8>.
+       ("gperf" ,gperf-3.0)))
     (inputs
      `(("linux-pam" ,linux-pam)
        ("linux-libre-headers" ,linux-libre-headers)
index 5e55f8d..a9f958f 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,3 +44,18 @@ strings, it produces a hash function and hash table in C or C++ code.  That
 the hash function is perfect means that no collisions can exist and that
 look-ups can be made by single string comparisons.")
     (license gpl3+)))
+
+(define-public gperf-3.0
+  ;; This older version would use 'unsigned int' in its generated lookup
+  ;; functions whereas 3.1 uses 'size_t', which causes breakage such as
+  ;; <https://github.com/wingo/elogind/issues/8>.
+  (package
+    (inherit gperf)
+    (version "3.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/gperf/gperf-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn"))))))