diff options
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index fa612b66e9..80ff00b23b 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> @@ -2740,3 +2740,61 @@ tests being run, resulting clearer and more specific output.") 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))) + +(define-public guile3.0-hashing + (package + (inherit guile-hashing) + (name "guile3.0-hashing") + (native-inputs + `(("guile" ,guile-next))))) |