aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-19 23:09:15 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-19 23:42:57 +0100
commit4ed06287376bc1632c6bca4a395795bc8cc1b874 (patch)
tree327981a926f1521b14622f34bfa67fcdd5fd8139
parent4c20b0bcf7c8396cadc618a3df0127b864fd10f2 (diff)
downloadguix-4ed06287376bc1632c6bca4a395795bc8cc1b874.tar
guix-4ed06287376bc1632c6bca4a395795bc8cc1b874.tar.gz
gnu: elogind: Build with gperf 3.0.
* gnu/packages/gperf.scm (gperf-3.0): New variable. * gnu/packages/freedesktop.scm (elogind)[native-inputs]: Use GPERF-3.0 instead of GPERF.
-rw-r--r--gnu/packages/freedesktop.scm5
-rw-r--r--gnu/packages/gperf.scm17
2 files changed, 20 insertions, 2 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 20a104f623..065046e667 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -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)
diff --git a/gnu/packages/gperf.scm b/gnu/packages/gperf.scm
index 5e55f8d86f..a9f958f59a 100644
--- a/gnu/packages/gperf.scm
+++ b/gnu/packages/gperf.scm
@@ -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"))))))