;;; 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.
;;;
(define-public gperf
(package
(name "gperf")
- (version "3.0.4")
+ (version "3.1")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn"))))
+ "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq"))))
(build-system gnu-build-system)
(arguments '(#:parallel-tests? #f))
- (home-page "http://www.gnu.org/software/gperf/")
+ (home-page "https://www.gnu.org/software/gperf/")
(synopsis "Perfect hash function generator")
(description
- "GNU gperf is a perfect hash function generator. For a given
-list of strings, it produces a hash function and hash table, in
-form of C or C++ code, for looking up a value depending on the
-input string. The hash function is perfect, which means that
-the hash table has no collisions, and the hash table lookup
-needs a single string comparison only.
-
-GNU gperf is highly customizable. There are options for
-generating C or C++ code, for emitting switch statements or
-nested ifs instead of a hash table, and for tuning the algorithm
-employed by gperf.")
+ "gperf is a perfect hash function generator. For a given list of
+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"))))))