guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/04: gnu: Add guile-hashing.


From: guix-commits
Subject: 02/04: gnu: Add guile-hashing.
Date: Sat, 4 Jan 2020 17:45:06 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit d67fa5c824828dd27e3e14427e85e2c3e8160dae
Author: Ludovic Courtès <address@hidden>
Date:   Wed Dec 11 17:26:00 2019 +0100

    gnu: Add guile-hashing.
    
    * gnu/packages/guile-xyz.scm (guile-hashing): New variable.
---
 gnu/packages/guile-xyz.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index fa612b6..f720679 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2740,3 +2740,54 @@ 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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]