--- Begin Message ---
Subject: |
[PATCH] gnu: Add gauche. |
Date: |
Sun, 30 Dec 2018 08:47:11 +0100 |
User-agent: |
mu4e 1.0; emacs 26.1 |
* gnu/packages/scheme.scm (gauche): New variable.
---
gnu/packages/scheme.scm | 69 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 16904dce3..c9bea183e 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2017 Clément Lassieur <address@hidden>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <address@hidden>
;;; Copyright © 2018 Adam Massmann <address@hidden>
+;;; Copyright © 2018 Gabriel Hondet <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1164,3 +1165,71 @@ simple, elegant Scheme dialect. It is a lisp-1 with
lexical scope.
The core is 12 builtin special forms and 33 builtin functions.")
(home-page "https://github.com/JeffBezanson/femtolisp")
(license bsd-3))))
+
+(define-public gauche
+ (package
+ (name "gauche")
+ (version "0.9.7")
+ (home-page "http://practical-scheme.net/gauche/index.html")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://prdownloads.sourceforge.net/gauche/Gauche-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "181nycikma0rwrb1h6mi3kys11f8628pq8g5r3fg5hiz5sabscrd"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("texinfo" ,texinfo)
+ ("openssl" ,openssl))) ;needed for tests
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-/bin/sh
+ ;; needed only for tests
+ (lambda _
+ (begin
+ (setenv "CONFIG_SHELL" (which "sh"))
+ (substitute* '("configure"
+ "test/www.scm"
+ "config.guess"
+ "ltmain.sh"
+ "ext/tls/test.scm"
+ "gc/configure"
+ "lib/gauche/configure.scm"
+ "lib/gauche/package/util.scm"
+ "lib/gauche/process.scm")
+ (("/bin/sh") (which "sh")))
+ #t)))
+ (add-after 'build 'build-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "doc"
+ (for-each
+ (lambda (target)
+ (invoke "make" target))
+ '("info" "html" "htmls"))))))
+ (add-before 'check 'patch-normalize-test
+ ;; neutralize sys-normalize-pathname test as it relies on
+ ;; the home directory; (setenv "HOME" xx) isn't enough)
+ (lambda _
+ (substitute* "test/system.scm"
+ (("~/abc") "//abc"))))
+ (add-before 'check 'patch-network-tests
+ ;; remove net checks
+ (lambda _
+ (substitute* "ext/Makefile"
+ (("binary net termios") "binary termios"))))
+ (add-after 'install 'install-docs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "doc"
+ (invoke "make" "install"))))))))
+ (synopsis "Scheme scripting engine")
+ (description "Gauche is a R7RS Scheme scripting engine aiming at being a
+handy tool that helps programmers and system administrators to write small to
+large scripts quickly. Quick startup, built-in system interface, native
+multilingual support are some of the goals.")
+ (license bsd-3)))
--
2.20.1
signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#33920] [PATCH] gnu: Add gauche. |
Date: |
Tue, 15 Jan 2019 18:34:08 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi,
Gabriel Hondet <address@hidden> skribis:
> * gnu/packages/scheme.scm (gauche): New variable.
Applied!
I noticed that libgc is still bundled so I tried to get rid of it but
that seems to be tricky (draft patch below). It would be nice to see
with upstream whether they can make it easier to build against a
provided libgc.
Regarding documentation:
> + (add-after 'build 'build-doc
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out")))
> + (with-directory-excursion "doc"
> + (for-each
> + (lambda (target)
> + (invoke "make" target))
> + '("info" "html" "htmls"))))
I left it as is but normally we provide only Info (for packages that
come with Texinfo manuals.) Would you be OK removing the HTML bits?
Thank you!
Ludo’.
--- End Message ---