3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

gnu: Add coucal.

* gnu/packages/datastructures.scm (coucal): New variable.
This commit is contained in:
Nicolas Goaziou 2023-02-11 17:31:55 +01:00
parent 2f87c51ca5
commit 46c06fedbc
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -5,6 +5,7 @@
;;; Copyright © 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +36,56 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson))
(define-public coucal
(let ((commit "73ada075553b7607d083037a87cb9c73b3683bfc")
(revision "1"))
(package
(name "coucal")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xroche/coucal")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"01996vda3wj5ywpwg9yhysaq6cyi44xnkyhihbwwi43hrj1ic2vm"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'do-not-run-tests-early
(lambda _
(substitute* "Makefile"
(("(all: ).*" _ lead) (string-append lead "gcc")))))
(add-after 'unpack 'remove-Werror
;; Prevent "this statement may fall through
;; [-Wimplicit-fallthrough=]" errors from "murmurhash3.h" file.
(lambda _
(substitute* "Makefile"
(("-Werror ") ""))))
(delete 'configure) ;no configure script
(replace 'install ;no install target
(lambda _
(let ((doc (string-append #$output
"/share/doc/" #$name "-" #$version)))
(install-file "README.md" doc))
(for-each (lambda (f) (install-file f #$output))
(find-files "." "(coucal|murmurhash)"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "make" "tests" "runtests")))))))
(home-page "https://github.com/xroche/coucal")
(synopsis "Cuckoo-hashing-based hashtable with stash area C library")
(description "Coucal is an implementation of the Cuckoo hashing
algorithm with a stash area using by default the MurmurHash hash function.")
;; Library is released under Expat terms, but the source includes
;; "murmurhash3.h", which is placed in the public domain.
(license (list license:expat license:public-domain)))))
(define-public gdsl
(package
(name "gdsl")