Subject: [PATCH v2 5/5] gnu: Add guile-laesare.

From: Martin Becze <[email-masked]>
Date: Fri, 4 Sep 2020 15:25:17 -0500

* gnu/packages/guile-xyz.scm (guile-laesare): New variable.
---
 gnu/packages/guile-xyz.scm | 45 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index a699377ff8..ed4b445701 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3937,4 +3937,47 @@ working with binary code: assembly, disassembly, instruction tables, object
 formats and related areas.")
     (license license:expat)))
 
-
+(define-public guile-laesare
+  (package
+    (name "guile-laesare")
+    (version "1.0.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/weinholt/laesare.git")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "15q619gzw717r8r1ql23zfdaibpnp9qqs96032vdc3rj74msxc92"))))
+    (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 laesare 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 "laesare")
+                      #t)))))
+    (native-inputs
+     `(("guile" ,guile-3.0)))
+    (home-page "https://github.com/weinholt/laesare")
+    (synopsis "R6RS Scheme library that provides a reader")
+    (description
+     "This is an R6RS Scheme library that provides a reader with some extra
+features not found in the standard read procedure such as a compatible mode
+with support for other RnRS standards and a tolerant mode that continues on
+errors.")
+    (license license:expat)))
-- 
2.28.0