mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: racket: Update to 8.0.
* gnu/packages/scheme.scm (racket): Update to 8.0. [arguments]: Add #:configure-flags. Add 'patch-chez-configure' phase. [inputs]: Add "zlib", "zlib:static", "lz4", and "lz4:static". [synopsis, description]: Tweak. (racket-minimal): Update to 8.0. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
b1248016e0
commit
d2278beb10
1 changed files with 71 additions and 27 deletions
|
@ -398,22 +398,26 @@ (define-public scheme48
|
||||||
(define-public racket
|
(define-public racket
|
||||||
(package
|
(package
|
||||||
(name "racket")
|
(name "racket")
|
||||||
(version "7.9") ; note: remember to also update racket-minimal!
|
(version "8.0") ; note: remember to also update racket-minimal!
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (list (string-append "http://mirror.racket-lang.org/installers/"
|
(uri (list (string-append "https://mirror.racket-lang.org/installers/"
|
||||||
version "/racket-" version "-src.tgz")
|
version "/racket-src.tgz")
|
||||||
|
;; this mirror seems to have broken HTTPS:
|
||||||
(string-append
|
(string-append
|
||||||
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
|
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
|
||||||
version "/racket-" version "-src.tgz")))
|
version "/racket-src.tgz")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m"))
|
"047wpjblfzmf1msz7snrp2c2h0zxyzlmbsqr9bwsyvz3frcg0888"))
|
||||||
(patches (search-patches
|
(patches (search-patches
|
||||||
"racket-store-checksum-override.patch"))))
|
"racket-store-checksum-override.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:configure-flags
|
||||||
|
'("--enable-libz"
|
||||||
|
"--enable-liblz4")
|
||||||
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-before 'configure 'pre-configure-minimal
|
(add-before 'configure 'pre-configure-minimal
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
@ -493,13 +497,45 @@ (define-public racket
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "collects/racket/system.rkt"
|
(substitute* "collects/racket/system.rkt"
|
||||||
(("/bin/sh") (which "sh")))
|
(("/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?
|
;; XXX: how to run them?
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(inputs
|
(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.
|
;; 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)
|
("cairo" ,cairo)
|
||||||
("fontconfig" ,fontconfig)
|
("fontconfig" ,fontconfig)
|
||||||
("glib" ,glib)
|
("glib" ,glib)
|
||||||
|
@ -519,10 +555,14 @@ (define-public racket
|
||||||
(home-page "https://racket-lang.org")
|
(home-page "https://racket-lang.org")
|
||||||
(synopsis "Implementation of Scheme and related languages")
|
(synopsis "Implementation of Scheme and related languages")
|
||||||
(description
|
(description
|
||||||
"Racket is an implementation of the Scheme programming language (R5RS and
|
"Racket is a general-purpose programming language in the Scheme family,
|
||||||
R6RS) and related languages, such as Typed Racket. It features a compiler and
|
with a large set of libraries and a compiler based on Chez Scheme. Racket is
|
||||||
a virtual machine with just-in-time native compilation, as well as a large set
|
also a platform for language-oriented programming, from small domain-specific
|
||||||
of libraries.")
|
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
|
;; https://download.racket-lang.org/license.html
|
||||||
(license (list lgpl3+ asl2.0 expat))))
|
(license (list lgpl3+ asl2.0 expat))))
|
||||||
|
|
||||||
|
@ -533,14 +573,15 @@ (define-public racket-minimal
|
||||||
(version (package-version racket))
|
(version (package-version racket))
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (list (string-append "http://mirror.racket-lang.org/installers/"
|
(uri (list (string-append "https://mirror.racket-lang.org/installers/"
|
||||||
version "/racket-minimal-" version "-src.tgz")
|
version "/racket-minimal-src.tgz")
|
||||||
|
;; this mirror seems to have broken HTTPS:
|
||||||
(string-append
|
(string-append
|
||||||
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
|
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
|
||||||
version "/racket-minimal-" version "-src.tgz")))
|
version "/racket-minimal-src.tgz")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia"))
|
"0mwyffw4gcci8wmzxa3j28h03h0gsz55aard8qrk3lri8r2xyg21"))
|
||||||
(patches (search-patches
|
(patches (search-patches
|
||||||
"racket-store-checksum-override.patch"))))
|
"racket-store-checksum-override.patch"))))
|
||||||
(synopsis "Racket without bundled packages such as Dr. Racket")
|
(synopsis "Racket without bundled packages such as Dr. Racket")
|
||||||
|
@ -551,18 +592,21 @@ (define-public racket-minimal
|
||||||
;; Delete fix that applies to files not included in the minimal package.
|
;; Delete fix that applies to files not included in the minimal package.
|
||||||
(delete 'pre-configure)))))
|
(delete 'pre-configure)))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("libffi" ,libffi)
|
`(("openssl" ,openssl)
|
||||||
("openssl" ,openssl)
|
("sqlite" ,sqlite)
|
||||||
("sqlite" ,sqlite)))
|
("zlib" ,zlib)
|
||||||
|
("zlib:static" ,zlib "static")
|
||||||
|
("lz4" ,lz4)
|
||||||
|
("lz4:static" ,lz4 "static")))
|
||||||
(description
|
(description
|
||||||
"Racket is an implementation of the Scheme programming language (R5RS and
|
"Racket is a general-purpose programming language in the Scheme family,
|
||||||
R6RS) and related languages, such as Typed Racket. It features a compiler and
|
with a large set of libraries and a compiler based on Chez Scheme. Racket is
|
||||||
a virtual machine with just-in-time native compilation, as well as a large set
|
also a platform for language-oriented programming, from small domain-specific
|
||||||
of libraries.
|
languages to complete language implementations.
|
||||||
|
|
||||||
In this minimal package, the essential package racket-libs is included, as
|
The ``minimal Racket'' distribution includes just enough of Racket for you to
|
||||||
well as libraries that live in collections. In particular, @command{raco} and
|
use @command{raco pkg} to install more. Bundled packages, such as the
|
||||||
the @code{pkg} library are still bundled.")))
|
Dr. Racket IDE, are not included.")))
|
||||||
|
|
||||||
(define-public gambit-c
|
(define-public gambit-c
|
||||||
(package
|
(package
|
||||||
|
|
Loading…
Reference in a new issue