gnu: Add guile-hashing.

* gnu/packages/guile-xyz.scm (guile-hashing): New variable.
This commit is contained in:
Ludovic Courtès 2019-12-11 17:26:00 +01:00
parent f851fd6b2b
commit d67fa5c824
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -2740,3 +2740,54 @@ (define-public guile-semver
comparing, and writing Semantic Versions. It also includes ranges in
the style of the Node Package Manager (NPM).")
(license license:gpl3+)))
(define-public guile-hashing
(package
(name "guile-hashing")
(version "1.2.0")
(home-page "https://github.com/weinholt/hashing")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1362d3lmpv7slmv1zmr9wy8panq9sjr9787gc2hagd646mpsfpkl"))))
(build-system guile-build-system)
(arguments
`(#:modules ((guix build guile-build-system)
(guix build utils)
(srfi srfi-26)
(ice-9 ftw))
#:implicit-inputs? #f ;needs nothing but Guile
#:phases (modify-phases %standard-phases
(add-before 'build 'move-sls-files
(lambda _
;; Move the source under hashing/ in order to match
;; module names, and rename .sls files to .scm.
(define (target file)
(string-append "hashing/" file))
(define (sls->scm sls)
(string-append (string-drop-right sls 4)
".scm"))
(mkdir "hashing")
(for-each (lambda (file)
(rename-file file (sls->scm file)))
(find-files "." "\\.sls$"))
(for-each (lambda (file)
(rename-file file (target file)))
(scandir "." (cut string-suffix? ".scm" <>)))
(rename-file "private" "hashing/private")
#t)))))
(native-inputs
`(("guile" ,guile-2.2)))
(synopsis "Cryprographic hash functions implemented in Scheme")
(description
"The @code{(hashing @dots{})} modules implement cryptographic hash
functions in pure R6RS Scheme: CRC, HMAC, MD5, SHA-1, and SHA-2 (SHA-256,
SHA-512).")
(license license:expat)))