[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnu: guile: Add guile-wisp
From: |
Christopher Allan Webber |
Subject: |
gnu: guile: Add guile-wisp |
Date: |
Fri, 18 Sep 2015 23:24:47 -0500 |
Hello!
I've added guile-wisp here. There's no "make install" and a few of the
commands are hardcoded in the autoconf stuff, but I've patched it up.
So here's the funny thing: it works just fine if you just use guix to
install the library and use a system guile from elsewhere:
scheme@(guile-user)> ,L wisp
Happy hacking with Wisp Scheme Syntax. See SRFI-119 for details. THIS IS
EXPERIMENTAL, USE AT YOUR OWN RISK! To switch back, type `,L scheme'.
But if you use guile-2.0 from Guix, you get the following issue:
scheme@(guile-user)> ,L wisp
While executing meta-command:
ERROR: In procedure setlocale: Invalid argument
scheme@(guile-user)> ,L wisp
While executing meta-command:
ERROR: no such language wisp
I'm pretty sure this is a Guix packaging of Guile issue, not a
guile-wisp issue. I've tested building from the package and trying with
guix's guile-2.0 and I have the same issue there, but not with the Guile
from Debian. Any ideas?
I think the patch is good to go, though, probably. Let me know if
otherwise!
- Chris
>From 8d29d47c0558c24562c2c0760e1f05a78b064838 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <address@hidden>
Date: Fri, 18 Sep 2015 16:58:31 -0500
Subject: [PATCH] gnu: guile: Add guile-wisp
* gnu/packages/guile.scm (guile-wisp): New variable.
---
gnu/packages/guile.scm | 78 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 77 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 60af92d..867f79a 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -39,6 +39,7 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gdbm)
+ #:use-module (gnu packages python)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -538,7 +539,7 @@ See http://minikanren.org/ for more on miniKanren
generally.")
;; compile to the destination
(compile-file gdbm.scm-dest
- #:output-file gdbm.go-dest)))))
+ #:output-file gdbm.go-dest)))))
(inputs
`(("guile" ,guile-2.0)))
(propagated-inputs
@@ -600,4 +601,79 @@ interface for reading articles in any format.")
key-value cache and store.")
(license lgpl3+)))
+(define-public guile-wisp
+ (package
+ (name "guile-wisp")
+ (version "0.8.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
"https://bitbucket.org/ArneBab/wisp/downloads/wisp-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "021437nmnc5vqmbyyn2zgfl8fzvwv0phc5pph6hp2x98wf2lzvg8"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after
+ 'unpack 'bootstrap
+ (lambda _
+ (zero? (system* "bash" "bootstrap.sh"))))
+ (add-before
+ 'configure 'substitute-before-config
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash (assoc-ref inputs "bash")))
+ ;; configure checks for guile-2.0, but ours is just named
"guile" :)
+ (substitute* "configure"
+ (("guile-2.0") "guile"))
+ ;; Puts together some test files with /bin/bash hardcoded
+ (substitute* "Makefile.in"
+ (("/bin/bash")
+ (string-append bash "/bin/bash"))))))
+ ;; auto complilation breaks, but if we set HOME to /tmp,
+ ;; that works ok
+ (add-before
+ 'check 'auto-compile-hacky-workaround
+ (lambda _
+ (setenv "HOME" "/tmp")))
+ (replace
+ 'install
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (use-modules (guix build utils)
+ (system base compile))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (module-dir (string-append out "/share/guile/site/2.0"))
+ (language-dir
+ (string-append module-dir "/language/wisp"))
+ (guild (string-append (assoc-ref inputs "guile")
+ "/bin/guild")))
+ ;; Make installation directories.
+ (for-each (lambda (x) (mkdir-p x))
+ (list module-dir language-dir))
+
+ ;; copy the source
+ (copy-file "wisp-scheme.scm"
+ (string-append module-dir "/wisp-scheme.scm"))
+ (copy-file "language/wisp/spec.scm"
+ (string-append language-dir "/spec.scm"))
+
+ ;; compile to the destination
+ (compile-file "wisp-scheme.scm"
+ #:output-file (string-append
+ module-dir "/wisp-scheme.go"))
+ (compile-file "language/wisp/spec.scm"
+ #:output-file (string-append
+ language-dir "/spec.go"))))))))
+ (home-page "http://draketo.de/english/wisp")
+ (inputs
+ `(("guile" ,guile-2.0)
+ ("python" ,python)))
+ (synopsis "wisp is a whitespace to lisp syntax for Guile")
+ (description "wisp is a syntax for Guile which provides a Python-like
+whitespace-significant language. It may be easier on the eyes for some
+users and in some situations.")
+ (license gpl3+)))
+
;;; guile.scm ends here
--
2.1.4
- gnu: guile: Add guile-wisp,
Christopher Allan Webber <=