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

From: [email-masked]
Date: Fri, 04 Jan 2019 14:36:15 -0800

On 2018-12-30 08:47, Gabriel Hondet wrote:
> * 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)))

I found this in COPYING:

Copyright of gc/libatomic_ops/*
---------------------------------------------

GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Could add a note about that?

I noticed that Gauche comes with a package-manager gauche-package, could
you extend the description and mention this and how many packages are
available (>50 according to
http://practical-scheme.net/wiliki/wiliki.cgi/Gauche:Packages?l=en).

Otherwise LGTM. (i built it and gave it a short spin)

-- 
Cheers 
Swedebugia