Subject: bug#33920: closed (Re: [bug#33920] [PATCH] gnu: Add gauche.)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 15 Jan 2019 17:35:02 +0000

Your bug report

#33920: [PATCH] gnu: Add gauche.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
33920: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=33920
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
From: Ludovic Courtès <[email-masked]>
To: Gabriel Hondet <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Tue, 15 Jan 2019 18:34:08 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Gabriel Hondet <[email-masked]> 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’.

Subject: [PATCH] gnu: Add gauche.
From: Gabriel Hondet <[email-masked]>
To: [email-masked]
Date: Sun, 30 Dec 2018 08:47:11 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

* 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 <[email-masked]>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2018 Adam Massmann <[email-masked]>
+;;; Copyright © 2018 Gabriel Hondet <[email-masked]>
 ;;;
 ;;; 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