diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/freedesktop.scm | 5 | ||||
-rw-r--r-- | gnu/packages/gperf.scm | 17 |
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")))))) |