GNU bug report logs - #33920
[PATCH] gnu: Add gauche.

Previous Next

Package: guix-patches;

Reported by: Gabriel Hondet <gabrielhondet <at> gmail.com>

Date: Sun, 30 Dec 2018 07:50:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 33920 in the body.
You can then email your comments to 33920 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Sun, 30 Dec 2018 07:50:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Gabriel Hondet <gabrielhondet <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 30 Dec 2018 07:50:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add gauche.
Date: Sun, 30 Dec 2018 08:47:11 +0100
[Message part 1 (text/plain, inline)]
* 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 <clement <at> lassieur.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak <at> gmail.com>
+;;; Copyright © 2018 Gabriel Hondet <gabrielhondet <at> gmail.com>
 ;;;
 ;;; 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 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Fri, 04 Jan 2019 22:37:02 GMT) Full text and rfc822 format available.

Message #8 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: swedebugia <at> riseup.net
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: Guix-patches <guix-patches-bounces+swedebugia=riseup.net <at> gnu.org>,
 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
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 <clement <at> lassieur.org>
>  ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
>  ;;; Copyright © 2018 Adam Massmann <massmannak <at> gmail.com>
> +;;; Copyright © 2018 Gabriel Hondet <gabrielhondet <at> gmail.com>
>  ;;;
>  ;;; 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




Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Sat, 05 Jan 2019 08:33:02 GMT) Full text and rfc822 format available.

Message #11 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: swedebugia <at> riseup.net
Cc: 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Sat, 05 Jan 2019 09:32:19 +0100
[Message part 1 (text/plain, inline)]
* gnu/packages/scheme.scm (gauche): New variable.
---
 gnu/packages/scheme.scm | 73 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 16904dce3..09a7fbf29 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak <at> gmail.com>
+;;; Copyright © 2018 Gabriel Hondet <gabrielhondet <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1164,3 +1165,75 @@ 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.  Gauche comes with a package
+manager/installer @code{gauche-package} which can download, compile, install
+and list gauche extension packages.  There are currently 58 packages
+available.")
+    (license (list gpl2+ ; gc/libatomic_ops/*
+                   bsd-3))))
-- 
2.20.1

On Fri 04 Jan 2019 at 23:36 swedebugia <at> riseup.net wrote:

> I found this in COPYING:
>
> Copyright of gc/libatomic_ops/*
> ---------------------------------------------
>
> GNU GENERAL PUBLIC LICENSE
> Version 2, June 1991
>
> Could add a note about that?

Sure, I guess only mentioning and adding the license is enough.

> 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).

As far as I know, the packages are not yet well integrated nor indexed,
but I have counted 58 on the page.

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

Great! Thanks,
Gabriel

[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Wed, 09 Jan 2019 15:57:01 GMT) Full text and rfc822 format available.

Message #14 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: swedebugia <at> riseup.net, 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Wed, 09 Jan 2019 16:56:13 +0100
Hi Gabriel,

Gabriel Hondet <gabrielhondet <at> gmail.com> skribis:

> * gnu/packages/scheme.scm (gauche): New variable.

Yay for another Scheme!  :-)

As swedebugia noted, Gauche uses libgc and libatomic-ops.  Could you try
to add these two libraries as inputs and to adjust the package to make
sure it does not use the bundled copies?

> +(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"))

Please use mirror://sourceforge here.

> +     `(#: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")))

This looks redundant with what the standard ‘patch-source-shebangs’ and
‘configure’ phases do, no?

Also, ‘begin’ is unnecessary in the body of a lambda.

> +         (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"))))))

Please return #t.

> +         (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"))))

Likewise.

> +         (add-before 'check 'patch-network-tests
> +           ;; remove net checks
> +           (lambda _
> +             (substitute* "ext/Makefile"
> +               (("binary net termios") "binary termios"))))

Likewise.

Out of curiosity, do these tests rely on specific host name lookups or
external services?

> +         (add-after 'install 'install-docs
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out")))
> +               (with-directory-excursion "doc"
> +                 (invoke "make" "install"))))))))

Please return #t.

Could you send an updated patch?

Thank you!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Sat, 12 Jan 2019 10:26:02 GMT) Full text and rfc822 format available.

Message #17 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: swedebugia <at> riseup.net, 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Sat, 12 Jan 2019 11:25:26 +0100
[Message part 1 (text/plain, inline)]
Hi Ludovic,

On Wed 09 Jan 2019 at 16:56 Ludovic Courtès wrote:

> As swedebugia noted, Gauche uses libgc and libatomic-ops.  Could you
> try to add these two libraries as inputs and to adjust the package to
> make sure it does not use the bundled copies?

Sure I'll work on it.

>> +(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"))
>
> Please use mirror://sourceforge here.

As far as I understand, I should use
   "mirror://sourceforge/gauche/Gauche-"
but it does not work (redirections fail with a 404 not found error).

>> +     `(#: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")))
>
> This looks redundant with what the standard ‘patch-source-shebangs’ and
> ‘configure’ phases do, no?

Isn't 'patch-source-shebangs' only patching the shebangs?  Because here
I have to patch other path specifications in the source as well.  On the
other hand, for the 'setenv', you are totally right.

> Out of curiosity, do these tests rely on specific host name lookups or
> external services?

I'll look at it.

Thank you for these useful and essential tips,
Gabriel
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Sun, 13 Jan 2019 20:41:02 GMT) Full text and rfc822 format available.

Message #20 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: swedebugia <at> riseup.net, 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Sun, 13 Jan 2019 21:40:11 +0100
Hello,

Gabriel Hondet <gabrielhondet <at> gmail.com> skribis:

> On Wed 09 Jan 2019 at 16:56 Ludovic Courtès wrote:

[...]

>> Please use mirror://sourceforge here.
>
> As far as I understand, I should use
>    "mirror://sourceforge/gauche/Gauche-"
> but it does not work (redirections fail with a 404 not found error).

This one appears to work:

  mirror://sourceforge/gauche/Gauche/Gauche-0.9.7.tgz

Trial and error…

>>> +               (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")))
>>
>> This looks redundant with what the standard ‘patch-source-shebangs’ and
>> ‘configure’ phases do, no?
>
> Isn't 'patch-source-shebangs' only patching the shebangs?  Because here
> I have to patch other path specifications in the source as well.  On the
> other hand, for the 'setenv', you are totally right.

Oh you’re right.  But at least the Autotools files (configure,
config.guess, ltmain.sh) can be omitted.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Tue, 15 Jan 2019 08:12:01 GMT) Full text and rfc822 format available.

Message #23 received at 33920 <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: swedebugia <at> riseup.net, 33920 <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Tue, 15 Jan 2019 09:11:10 +0100
[Message part 1 (text/plain, inline)]
* gnu/packages/scheme.scm (gauche): New variable.
---
 gnu/packages/scheme.scm | 82 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 16904dce3..3836f3a3e 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2017 Clément Lassieur <clement <at> lassieur.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Adam Massmann <massmannak <at> gmail.com>
+;;; Copyright © 2018 Gabriel Hondet <gabrielhondet <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1164,3 +1165,84 @@ 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
+             "mirror://sourceforge/gauche/Gauche/Gauche-"
+             version ".tgz"))
+       (sha256
+        (base32
+         "181nycikma0rwrb1h6mi3kys11f8628pq8g5r3fg5hiz5sabscrd"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Remove libatomic-ops
+                   (delete-file-recursively "gc/libatomic_ops")
+                   #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libatomic-ops" ,libatomic-ops)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("texinfo" ,texinfo)
+       ("openssl" ,openssl) ; needed for tests
+       ("pkg-config" ,pkg-config))) ; needed to find external libatomic-ops
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-/bin/sh
+           ;; needed only for tests
+           (lambda _
+             (substitute* '("configure"
+                            "test/www.scm"
+                            "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"))))
+             #t))
+         (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"))
+             #t))
+         (add-before 'check 'patch-network-tests
+           ;; remove net checks
+           (lambda _
+             (substitute* "ext/Makefile"
+               (("binary net termios") "binary termios"))
+             #t))
+         (add-after 'install 'install-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (with-directory-excursion "doc"
+                 (invoke "make" "install")))
+             #t)))))
+    (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.  Gauche comes with a package
+manager/installer @code{gauche-package} which can download, compile, install
+and list gauche extension packages.  There are currently 58 packages
+available.")
+    (license bsd-3)))
-- 
2.20.1
On Sun 13 Jan 2019 at 21:40 Ludovic Courtès wrote:

> Out of curiosity, do these tests rely on specific host name lookups or
> external services?

Regarding net tests, it seems they only involve localhost.

> As swedebugia noted, Gauche uses libgc and libatomic-ops.  Could you
> try to add these two libraries as inputs and to adjust the package to
> make sure it does not use the bundled copies?

The use of the internal libatomic_ops has been disabled, but on the
other hand, I don't see where libgc is used (is it the full gc thing?),
or at least it seems it can't be disabled via configure scripts.

Gabriel
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Tue, 15 Jan 2019 17:35:01 GMT) Full text and rfc822 format available.

Notification sent to Gabriel Hondet <gabrielhondet <at> gmail.com>:
bug acknowledged by developer. (Tue, 15 Jan 2019 17:35:02 GMT) Full text and rfc822 format available.

Message #28 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: swedebugia <at> riseup.net, 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: Add gauche.
Date: Tue, 15 Jan 2019 18:34:08 +0100
Hi,

Gabriel Hondet <gabrielhondet <at> gmail.com> 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’.




Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Wed, 16 Jan 2019 08:51:02 GMT) Full text and rfc822 format available.

Message #31 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: swedebugia <at> riseup.net, 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: gauche: Update to 0.9.7 - removed html
 doc.
Date: Wed, 16 Jan 2019 09:49:50 +0100
[Message part 1 (text/plain, inline)]
On Tue 15 Jan 2019 at 18:34 Ludovic Courtès wrote:

> 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?

Here you are,

* gnu/packages/scheme.scm (gauche): Update to 0.9.7 - removed html doc.
---
 gnu/packages/scheme.scm | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 48b52c7da..9cc190b51 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -1213,13 +1213,9 @@ The core is 12 builtin special forms and 33 builtin functions.")
                (("/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"))))
+           (lambda* _
+             (with-directory-excursion "doc"
+               (invoke "make" "info"))
              #t))
          (add-before 'check 'patch-normalize-test
            ;; neutralize sys-normalize-pathname test as it relies on
@@ -1235,10 +1231,9 @@ The core is 12 builtin special forms and 33 builtin functions.")
                (("binary net termios") "binary termios"))
              #t))
          (add-after 'install 'install-docs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (with-directory-excursion "doc"
-                 (invoke "make" "install")))
+           (lambda* _
+             (with-directory-excursion "doc"
+               (invoke "make" "install"))
              #t)))))
     (synopsis "Scheme scripting engine")
     (description "Gauche is a R7RS Scheme scripting engine aiming at being a
-- 
2.20.1

Gabriel
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Wed, 16 Jan 2019 10:42:01 GMT) Full text and rfc822 format available.

Message #34 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>, Pierre Neidhardt
 <mail <at> ambrevar.xyz>
Cc: swedebugia <at> riseup.net, 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: gauche: Update to 0.9.7 - removed html
 doc.
Date: Wed, 16 Jan 2019 11:41:14 +0100
[Message part 1 (text/plain, inline)]
Hello Pierre,

> I've noticed something strange however: in the description, you mention
> 
> --8<---------------cut here---------------start------------->8---
> There are currently 58 packages available.
> --8<---------------cut here---------------end--------------->8---
> 
> Isn't it shortsighted?  If another package is added upstream, then the
> description won't match anymore.
> 
> Why mentioning it at all?

Indeed, here is a new update patch without the number of packages.

* gnu/packages/scheme.scm (gauche): Update to 0.9.7 - removed html doc.
---
 gnu/packages/scheme.scm | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 48b52c7da..44d207f02 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -1213,13 +1213,9 @@ The core is 12 builtin special forms and 33 builtin functions.")
                (("/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"))))
+           (lambda* _
+             (with-directory-excursion "doc"
+               (invoke "make" "info"))
              #t))
          (add-before 'check 'patch-normalize-test
            ;; neutralize sys-normalize-pathname test as it relies on
@@ -1235,10 +1231,9 @@ The core is 12 builtin special forms and 33 builtin functions.")
                (("binary net termios") "binary termios"))
              #t))
          (add-after 'install 'install-docs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out")))
-               (with-directory-excursion "doc"
-                 (invoke "make" "install")))
+           (lambda* _
+             (with-directory-excursion "doc"
+               (invoke "make" "install"))
              #t)))))
     (synopsis "Scheme scripting engine")
     (description "Gauche is a R7RS Scheme scripting engine aiming at being a
@@ -1246,6 +1241,5 @@ 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.  Gauche comes with a package
 manager/installer @code{gauche-package} which can download, compile, install
-and list gauche extension packages.  There are currently 58 packages
-available.")
+and list gauche extension packages.")
     (license bsd-3)))
-- 
2.20.1

Thank you for your interest!
Gabriel
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Wed, 16 Jan 2019 17:33:02 GMT) Full text and rfc822 format available.

Message #37 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Pierre Neidhardt <mail <at> ambrevar.xyz>
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: swedebugia <at> riseup.net, Ludovic Courtès <ludo <at> gnu.org>,
 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: gauche: Update to 0.9.7 - removed html
 doc.
Date: Wed, 16 Jan 2019 18:32:24 +0100
[Message part 1 (text/plain, inline)]
Your patch does not only change the description but it also removes some
unnecessary code.

Is there a good reason it was added in the first place or was it simply a mistake?

-- 
Pierre Neidhardt
https://ambrevar.xyz/
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Wed, 16 Jan 2019 19:32:01 GMT) Full text and rfc822 format available.

Message #40 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Gabriel Hondet <gabrielhondet <at> gmail.com>
To: Pierre Neidhardt <mail <at> ambrevar.xyz>
Cc: swedebugia <at> riseup.net, Ludovic Courtès <ludo <at> gnu.org>,
 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: gauche: Update to 0.9.7 - removed html
 doc.
Date: Wed, 16 Jan 2019 20:31:07 +0100
[Message part 1 (text/plain, inline)]
On Wed 16 Jan 2019 at 18:32 Pierre Neidhardt wrote:

> Your patch does not only change the description but it also removes some
> unnecessary code.
>
> Is there a good reason it was added in the first place or was it simply a mistake?

It was a mistake (I first wanted to separate the outputs between doc and
out, thus the use of the ~outputs~ parameter in the lambdas; and then I
forgot to simplify the code).

[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#33920; Package guix-patches. (Thu, 17 Jan 2019 07:30:02 GMT) Full text and rfc822 format available.

Message #43 received at 33920-done <at> debbugs.gnu.org (full text, mbox):

From: Pierre Neidhardt <mail <at> ambrevar.xyz>
To: Gabriel Hondet <gabrielhondet <at> gmail.com>
Cc: swedebugia <at> riseup.net, Ludovic Courtès <ludo <at> gnu.org>,
 33920-done <at> debbugs.gnu.org
Subject: Re: [bug#33920] [PATCH] gnu: gauche: Update to 0.9.7 - removed html
 doc.
Date: Thu, 17 Jan 2019 08:29:22 +0100
[Message part 1 (text/plain, inline)]
I've applied your patch with a minor change: "lambda*" to "lambda".

Thanks!

-- 
Pierre Neidhardt
https://ambrevar.xyz/
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 14 Feb 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 44 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.