guix-patches
[Top][All Lists]
Advanced

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

[bug#43183] [PATCH v2 3/5] gnu: Add guile-struct-pack.


From: Martin Becze
Subject: [bug#43183] [PATCH v2 3/5] gnu: Add guile-struct-pack.
Date: Fri, 4 Sep 2020 15:25:15 -0500

* gnu/packages/guile-xyz.scm (guile-struct-pack): New variable.
---
 gnu/packages/guile-xyz.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 308ce0ad59..a2df03760d 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3846,3 +3846,46 @@ between data, in a way that is very similar to WikiData 
or RDF for instance.
 An object can have relations (in the form of an IRI) that relates it to one or
 more objects or strings, represented by a Json object or an IRI.")
     (license license:gpl3+)))
+
+(define-public guile-struct-pack
+  (package
+    (name "guile-struct-pack")
+    (version "1.1.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/weinholt/struct-pack.git";)
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0hd72m821pahjphzyjn26i55542v8makr55xzjll2cycja4wsbc1"))))
+    (build-system guile-build-system)
+    (arguments
+      `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+        #:modules ((guix build guile-build-system)
+                   (guix build utils)
+                   (ice-9 ftw))
+        #:phases (modify-phases %standard-phases
+                   (add-before 'build 'move-sls-files
+                     (lambda _
+                       ;; Move files under a struct/ directory to reflect the
+                       ;; module hierarchy.
+                       (define (mv dst)
+                         (define (target file)
+                           (string-append  dst "/" file))
+                         (define files (cddr (scandir ".")))
+                         (mkdir dst)
+                         (for-each (lambda (file)
+                                     (rename-file file (target file)))
+                                   files))
+                       (mv "struct")
+                       #t)))))
+    (native-inputs
+      `(("guile" ,guile-3.0)))
+    (home-page "https://gitlab.com/mjbecze/guile-srfi-89";)
+    (synopsis "R6RS library for working with packed byte structures")
+    (description
+      "This is an R6RS library for working with packed byte structures.  It is
+similar to struct in Python or pack and unpack in Perl.")
+                                (license license:expat)))
-- 
2.28.0






reply via email to

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