Message ID | 20210101211926.29943-1-rprior@protonmail.com |
---|---|
State | Under Review |
Headers | show |
Series | [bug#45601] gnu: Add wyhash. | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
On Fri, Jan 01, 2021 at 09:19:29PM +0000, Ryan Prior via Guix-patches via wrote: > * gnu/packages/datastructures.scm (wyhash): New variable. Thanks! Pushed as 4a829b2d55bc9b0ad5a335c8228a7d2371fa1d9a with the following changes... I corrected the commit message (changing "datastructures.scm" to "digest.scm"), tweaked the logic of the builder to be more idiomatic, and removed the period at the end of the synopsis (`guix lint` complained). > + #:builder > + (begin > + (use-modules (guix build utils)) > + (let* ((out (string-append (assoc-ref %outputs "out"))) > + (src (string-append out "/include")) > + (doc (string-append out "/share/doc/" ,name "-" ,version))) > + (mkdir-p src) > + (mkdir-p doc) > + (chdir (assoc-ref %build-inputs "source")) > + (install-file "wyhash.h" src) > + (install-file "LICENSE" doc) > + (install-file "README.md" doc)) > + #t))) Regarding the builder: 1) install-file does mkdir-p [0], so that can be omitted. 2) I think it's more clear to use "include" rather than "src" when binding the output's include directory 3) Using with-directory-excursion instead of chdir is more in tune with a functional coding style [1], in my opinion [0] https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/utils.scm?h=version-1.2.0#n310 [1] https://guix.gnu.org/manual/en/html_node/Programming-Paradigm.html
diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm index a33e238362..0b7977c2a5 100644 --- a/gnu/packages/digest.scm +++ b/gnu/packages/digest.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,9 +22,45 @@ #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (ice-9 match)) +(define-public wyhash + (package + (name "wyhash") + (version "5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wangyi-fudan/wyhash") + (commit (string-append "wyhash_v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03ljs5iw9zrm3bydwggjvpwrcwmsd75h3dv1j4am4hw3h22cjdjc")))) + (build-system trivial-build-system) ;; source-only package + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (string-append (assoc-ref %outputs "out"))) + (src (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (mkdir-p src) + (mkdir-p doc) + (chdir (assoc-ref %build-inputs "source")) + (install-file "wyhash.h" src) + (install-file "LICENSE" doc) + (install-file "README.md" doc)) + #t))) + (home-page "https://github.com/wangyi-fudan/wyhash") + (synopsis "Embeddable hash function and random number generator.") + (description "This package provides a portable hash function and random +number generator suitable for use in data structures. Provided by default in +Zig, V, and Nim programming language standard libraries.") + (license license:unlicense))) + (define-public xxhash (package (name "xxhash")