Subject: [bug#32355] [PATCH] gnu: racket: Update to 7.0

From: Kei Kebreau <[email-masked]>
Date: Mon, 06 Aug 2018 14:28:55 -0400

Konrad Hinsen <[email-masked]> writes:

> * gnu/packages/scheme.scm (racket): Update to 7.0.
> ---
>  .../patches/racket-fix-xform-issue.patch      | 63 -------------------
>  gnu/packages/scheme.scm                       | 16 ++---
>  2 files changed, 8 insertions(+), 71 deletions(-)
>  delete mode 100644 gnu/packages/patches/racket-fix-xform-issue.patch
>
> diff --git a/gnu/packages/patches/racket-fix-xform-issue.patch b/gnu/packages/patches/racket-fix-xform-issue.patch
> deleted file mode 100644
> index 0a1640ee5..000000000
> --- a/gnu/packages/patches/racket-fix-xform-issue.patch
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -050cdb59839896b41431791f8ee0ef2564231b8f
> -Author:     Matthew Flatt <[email-masked]>
> -AuthorDate: Tue Mar 6 09:05:08 2018 -0700
> -Commit:     Matthew Flatt <[email-masked]>
> -CommitDate: Tue Mar 6 09:05:08 2018 -0700
> -
> -Parent:     efb9a919fc ffi docs: clarification on `unsafe-socket->port`
> -Containing: master
> -Follows:    v5.0.1 (21612)
> -
> -xform: avoid problems with `__signbitf128`
> -
> -Closes #1962 and uses the suggested patch there, among other changes.
> -
> -2 files changed, 6 insertions(+), 3 deletions(-)
> -racket/collects/compiler/private/xform.rkt | 2 +-
> -racket/src/racket/src/number.c             | 7 +++++--
> -
> -diff --git a/racket/collects/compiler/private/xform.rkt b/racket/collects/compiler/private/xform.rkt
> -index 28a425c057..89ae848f9c 100644
> ---- a/collects/compiler/private/xform.rkt
> -+++ b/collects/compiler/private/xform.rkt
> -@@ -904,7 +904,7 @@
> - 
> -                strlen cos cosl sin sinl exp expl pow powl log logl sqrt sqrtl atan2 atan2l frexp
> -                isnan isinf fpclass signbit _signbit _fpclass __fpclassify __fpclassifyf __fpclassifyl
> --	       _isnan __isfinited __isnanl __isnan __signbit __signbitf __signbitd __signbitl
> -+	       _isnan __isfinited __isnanl __isnan __signbit __signbitf __signbitd __signbitl __signbitf128
> -                __isinff __isinfl isnanf isinff __isinfd __isnanf __isnand __isinf __isinff128
> -                __inline_isnanl __inline_isnan __inline_signbit __inline_signbitf __inline_signbitd __inline_signbitl
> -                __builtin_popcount __builtin_clz __builtin_isnan __builtin_isinf __builtin_signbit
> -diff --git a/racket/src/racket/src/number.c b/racket/src/racket/src/number.c
> -index 71f42aaf3c..3bbad3ba83 100644
> ---- a/src/racket/src/number.c
> -+++ b/src/racket/src/number.c
> -@@ -1796,6 +1796,7 @@ double scheme_real_to_double(Scheme_Object *r)
> - }
> - 
> - XFORM_NONGCING static MZ_INLINE int minus_zero_p(double d)
> -+  XFORM_SKIP_PROC
> - {
> - #ifdef MZ_IS_NEG_ZERO
> -   return MZ_IS_NEG_ZERO(d);
> -@@ -1809,7 +1810,9 @@ int scheme_minus_zero_p(double d)
> -   return minus_zero_p(d);
> - }
> - 
> --static int rational_dbl_p(double f) {
> -+XFORM_NONGCING static int rational_dbl_p(double f)
> -+  XFORM_SKIP_PROC
> -+{
> -   return !(MZ_IS_NAN(f)
> -            || MZ_IS_INFINITY(f));
> - }
> -@@ -1955,7 +1958,7 @@ real_p(int argc, Scheme_Object *argv[])
> -   return (SCHEME_REALP(o) ? scheme_true : scheme_false);
> - }
> - 
> --static int is_rational(const Scheme_Object *o)
> -+XFORM_NONGCING static int is_rational(const Scheme_Object *o)
> - {
> -   if (SCHEME_FLOATP(o))
> -     return rational_dbl_p(SCHEME_FLOAT_VAL(o));
> \ No newline at end of file
> diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
> index 4178a45a8..545980088 100644
> --- a/gnu/packages/scheme.scm
> +++ b/gnu/packages/scheme.scm
> @@ -65,6 +65,7 @@
>    #:use-module (gnu packages xorg)
>    #:use-module (gnu packages tls)
>    #:use-module (gnu packages gl)
> +  #:use-module (gnu packages libedit)
>    #:use-module (ice-9 match))
>  
>  (define (mit-scheme-source-directory system version)
> @@ -407,7 +408,7 @@ implementation techniques and as an expository tool.")
>  (define-public racket
>    (package
>      (name "racket")
> -    (version "6.12")
> +    (version "7.0")
>      (source (origin
>               (method url-fetch)
>               (uri (list (string-append "http://mirror.racket-lang.org/installers/"
> @@ -417,11 +418,7 @@ implementation techniques and as an expository tool.")
>                           version "/racket-" version "-src.tgz")))
>               (sha256
>                (base32
> -               "0cwcypzjfl9py1s695mhqkiapff7c1w29llsmdj7qgn58wl0apk5"))
> -             (patches (search-patches
> -                       ;; See: https://github.com/racket/racket/issues/1962
> -                       ;; This can be removed in whatever Racket release comes after 6.12
> -                       "racket-fix-xform-issue.patch"))))
> +               "1glv5amsp9xp480d4yr63hhm9kkyav06yl3a6p489nkr4cln0j9a"))))
>      (build-system gnu-build-system)
>      (arguments
>       '(#:phases
> @@ -484,7 +481,9 @@ implementation techniques and as an expository tool.")
>                    ("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt"
>                     ("libGL"))
>                    ("share/pkgs/sgl/gl.rkt"
> -                   ("libGL" "libGLU")))))
> +                   ("libGL" "libGLU"))
> +                  ("share/pkgs/readline-lib/readline/rktrl.rkt"
> +                   ("libedit")))))
>               (chdir "src")
>               #t))
>           (add-after 'unpack 'patch-/bin/sh
> @@ -512,7 +511,8 @@ implementation techniques and as an expository tool.")
>         ("openssl" ,openssl)
>         ("pango" ,pango)
>         ("sqlite" ,sqlite)
> -       ("unixodbc" ,unixodbc)))
> +       ("unixodbc" ,unixodbc)
> +       ("libedit" ,libedit)))
>      (home-page "http://racket-lang.org")
>      (synopsis "Implementation of Scheme and related languages")
>      (description

This looks okay, but when I build for armhf-linux using the qemu-binfmt
service I get an error. It could just be because I'm using QEMU, so
maybe someone with a native armhf-linux installation can verify. Here's
the error I got:

make[3]: Entering directory '/tmp/guix-build-racket-7.0.drv-0/racket-7.0/src/racket'
./racket3m -cqu ./mksystem.rkt system.rktd "gcc -E -I. -I./include -I./src -g -O2    -DUSE_SENORA_GC   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  ./src/systype.c" "" "./racket3m" "./racket3m"
qemu: uncaught target signal 6 (Aborted) - core dumped
make[3]: *** [Makefile:180: sysinfer3m] Aborted
make[3]: Leaving directory '/tmp/guix-build-racket-7.0.drv-0/racket-7.0/src/racket'
make[2]: *** [Makefile:114: 3m] Error 2
make[2]: Leaving directory '/tmp/guix-build-racket-7.0.drv-0/racket-7.0/src/racket'
make[1]: *** [Makefile:58: 3m] Error 2
make[1]: Leaving directory '/tmp/guix-build-racket-7.0.drv-0/racket-7.0/src'
make: *** [Makefile:51: all] Error 2
Backtrace:
           4 (primitive-load "/gnu/store/pinrmx3dsl4zswbd0757sii8dsn…")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
    640:9  2 (for-each #<procedure 3c6220 at /gnu/store/7zsb0zp70x7…> …)
In /gnu/store/7zsb0zp70x75prdpyqk83iap9l50aaiq-module-import/guix/build/gnu-build-system.scm:
   799:31  1 (_ _)
In /gnu/store/7zsb0zp70x75prdpyqk83iap9l50aaiq-module-import/guix/build/utils.scm:
    616:6  0 (invoke _ . _)

/gnu/store/7zsb0zp70x75prdpyqk83iap9l50aaiq-module-import/guix/build/utils.scm:616:6: In procedure invoke:
Throw to key `srfi-34' with args `(#<condition &invoke-error [program: "make" arguments: ("-j" "2") exit-status: 2 term-signal: #f stop-signal: #f] 7fee0>)'.
note: keeping build directory `/tmp/guix-build-racket-7.0.drv-1'
builder for `/gnu/store/dhz9d81xfdg6v33jybpf9r586s5x8f02-racket-7.0.drv' failed with exit code 1
@ build-failed /gnu/store/dhz9d81xfdg6v33jybpf9r586s5x8f02-racket-7.0.drv - 1 builder for `/gnu/store/dhz9d81xfdg6v33jybpf9r586s5x8f02-racket-7.0.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/dhz9d81xfdg6v33jybpf9r586s5x8f02-racket-7.0.drv' failed