emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#46865: closed ([PATCH] gnu: racket: update to 8.0.)


From: GNU bug Tracking System
Subject: bug#46865: closed ([PATCH] gnu: racket: update to 8.0.)
Date: Fri, 05 Mar 2021 11:50:01 +0000

Your message dated Fri, 05 Mar 2021 12:49:09 +0100
with message-id <87czwdlt1m.fsf@gnu.org>
and subject line Re: bug#46865: [PATCH] gnu: racket: update to 8.0.
has caused the debbugs.gnu.org bug report #46865,
regarding [PATCH] gnu: racket: update to 8.0.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
46865: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46865
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH] gnu: racket: update to 8.0. Date: Mon, 1 Mar 2021 19:43:18 -0500
* gnu/packages/scheme.scm (racket, racket-minimal): Update to 8.0.
---
 gnu/packages/scheme.scm | 98 +++++++++++++++++++++++++++++------------
 1 file changed, 71 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 6c30ed8bf6..10be0aa28a 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -398,22 +398,26 @@ implementation techniques and as an expository tool.")
 (define-public racket
   (package
     (name "racket")
-    (version "7.9")            ; note: remember to also update racket-minimal!
+    (version "8.0")            ; note: remember to also update racket-minimal!
     (source (origin
               (method url-fetch)
-              (uri (list (string-append 
"http://mirror.racket-lang.org/installers/";
-                                        version "/racket-" version "-src.tgz")
+              (uri (list (string-append 
"https://mirror.racket-lang.org/installers/";
+                                        version "/racket-src.tgz")
+                         ;; this mirror seems to have broken HTTPS:
                          (string-append
                           
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/";
-                          version "/racket-" version "-src.tgz")))
+                          version "/racket-src.tgz")))
               (sha256
                (base32
-                "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m"))
+                "047wpjblfzmf1msz7snrp2c2h0zxyzlmbsqr9bwsyvz3frcg0888"))
               (patches (search-patches
                         "racket-store-checksum-override.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags
+       '("--enable-libz"
+         "--enable-liblz4")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure-minimal
            (lambda* (#:key inputs #:allow-other-keys)
@@ -493,13 +497,45 @@ implementation techniques and as an expository tool.")
            (lambda _
              (substitute* "collects/racket/system.rkt"
                (("/bin/sh") (which "sh")))
-             #t)))
+             #t))
+         (add-after 'patch-/bin/sh 'patch-chez-configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "src/cs/c/Makefile.in"
+               (("/bin/sh") (which "sh")))
+             ;; TODO: Racket CS uses a fork of Chez Scheme.
+             ;; Most of this is copy-pasted from the "chez.scm",
+             ;; but maybe there's a way to reuse more directly.
+             (with-directory-excursion "src/ChezScheme"
+               (substitute* (find-files "mats" "Mf-.*")
+                 (("^[[:space:]]+(cc ) *") "\tgcc "))
+               (substitute*
+                   (find-files "." (string-append
+                                    "("
+                                    "Mf-[a-zA-Z0-9.]+"
+                                    "|Makefile[a-zA-Z0-9.]*"
+                                    "|checkin"
+                                    "|stex\\.stex"
+                                    "|newrelease"
+                                    "|workarea"
+                                    "|unix\\.ms"
+                                    "|^6\\.ms"
+                                    ;;"|[a-zA-Z0-9.]+\\.ms" ; guile can't read
+                                    ")"))
+                 (("/bin/rm") (which "rm"))
+                 (("/bin/ln") (which "ln"))
+                 (("/bin/cp") (which "cp"))
+                 (("/bin/echo") (which "echo")))
+               (substitute* "makefiles/installsh"
+                 (("/bin/true") (which "true")))))))
        ;; XXX: how to run them?
        #:tests? #f))
     (inputs
-     `(("libffi" ,libffi)
-       ;; Hardcode dynamically loaded libraries for better functionality.
+     `(;; Hardcode dynamically loaded libraries for better functionality.
        ;; sqlite and libraries for `racket/draw' are needed to build the doc.
+       ("zlib" ,zlib)
+       ("zlib:static" ,zlib "static")
+       ("lz4" ,lz4)
+       ("lz4:static" ,lz4 "static")
        ("cairo" ,cairo)
        ("fontconfig" ,fontconfig)
        ("glib" ,glib)
@@ -519,10 +555,14 @@ implementation techniques and as an expository tool.")
     (home-page "https://racket-lang.org";)
     (synopsis "Implementation of Scheme and related languages")
     (description
-     "Racket is an implementation of the Scheme programming language (R5RS and
-R6RS) and related languages, such as Typed Racket.  It features a compiler and
-a virtual machine with just-in-time native compilation, as well as a large set
-of libraries.")
+     "Racket is a general-purpose programming language in the Scheme family,
+with a large set of libraries and a compiler based on Chez Scheme.  Racket is
+also a platform for language-oriented programming, from small domain-specific
+languages to complete language implementations.
+
+The main Racket distribution comes with many bundled packages, including
+the DrRacket IDE, libraries for GUI and web programming, and implementations
+of languages such as Typed Racket, R5RS and R6RS Scheme, and Datalog.")
     ;; https://download.racket-lang.org/license.html
     (license (list lgpl3+ asl2.0 expat))))
 
@@ -533,14 +573,15 @@ of libraries.")
     (version (package-version racket))
     (source (origin
               (method url-fetch)
-              (uri (list (string-append 
"http://mirror.racket-lang.org/installers/";
-                                        version "/racket-minimal-" version 
"-src.tgz")
+              (uri (list (string-append 
"https://mirror.racket-lang.org/installers/";
+                                        version "/racket-minimal-src.tgz")
+                         ;; this mirror seems to have broken HTTPS:
                          (string-append
                           
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/";
-                          version "/racket-minimal-" version "-src.tgz")))
+                          version "/racket-minimal-src.tgz")))
               (sha256
                (base32
-                "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia"))
+                "0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21"))
               (patches (search-patches
                         "racket-store-checksum-override.patch"))))
     (synopsis "Racket without bundled packages such as Dr. Racket")
@@ -551,18 +592,21 @@ of libraries.")
            ;; Delete fix that applies to files not included in the minimal 
package.
            (delete 'pre-configure)))))
     (inputs
-     `(("libffi" ,libffi)
-       ("openssl" ,openssl)
-       ("sqlite" ,sqlite)))
+     `(("openssl" ,openssl)
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)
+       ("zlib:static" ,zlib "static")
+       ("lz4" ,lz4)
+       ("lz4:static" ,lz4 "static")))
     (description
-     "Racket is an implementation of the Scheme programming language (R5RS and
-R6RS) and related languages, such as Typed Racket.  It features a compiler and
-a virtual machine with just-in-time native compilation, as well as a large set
-of libraries.
+     "Racket is a general-purpose programming language in the Scheme family,
+with a large set of libraries and a compiler based on Chez Scheme.  Racket is
+also a platform for language-oriented programming, from small domain-specific
+languages to complete language implementations.
 
-In this minimal package, the essential package racket-libs is included, as
-well as libraries that live in collections.  In particular, @command{raco} and
-the @code{pkg} library are still bundled.")))
+The ``minimal Racket'' distribution includes just enough of Racket for you to
+use @command{raco pkg} to install more.  Bundled packages, such as the
+Dr. Racket IDE, are not included.")))
 
 (define-public gambit-c
   (package
-- 
2.21.1 (Apple Git-122.3)




--- End Message ---
--- Begin Message --- Subject: Re: bug#46865: [PATCH] gnu: racket: update to 8.0. Date: Fri, 05 Mar 2021 12:49:09 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Hi Philip,

Philip McGrath <philip@philipmcgrath.com> skribis:

> * gnu/packages/scheme.scm (racket, racket-minimal): Update to 8.0.

I applied it and tweak the commit log to mention the fields that were
changed.  The new synopsis and description LGTM!

Did you try unbundling Chez?  It would be great if we could do that.
(In Guix we unbundle software as much as possible, notably for security
reasons.)

Thanks!

Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]