mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add Racket.
* gnu/packages/scheme.scm (racket): New variable.
This commit is contained in:
parent
9c71a2aec4
commit
30645251d1
1 changed files with 73 additions and 0 deletions
|
@ -31,6 +31,10 @@ (define-module (gnu packages scheme)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages avahi)
|
#:use-module (gnu packages avahi)
|
||||||
#:use-module (gnu packages libphidget)
|
#:use-module (gnu packages libphidget)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages libffi)
|
||||||
|
#:use-module (gnu packages libjpeg)
|
||||||
|
#:use-module ((gnu packages gtk) #:select (cairo pango))
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public mit-scheme
|
(define-public mit-scheme
|
||||||
|
@ -319,3 +323,72 @@ (define-public scheme48
|
||||||
|
|
||||||
;; Most files are BSD-3; see COPYING for the few exceptions.
|
;; Most files are BSD-3; see COPYING for the few exceptions.
|
||||||
(license bsd-3)))
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public racket
|
||||||
|
(package
|
||||||
|
(name "racket")
|
||||||
|
(version "5.3.4")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (list (string-append "http://download.racket-lang.org/installers/"
|
||||||
|
version "/racket/racket-" version
|
||||||
|
"-src-unix.tgz")
|
||||||
|
(string-append
|
||||||
|
"http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
|
||||||
|
version "/racket/racket-" version "-src-unix.tgz")))
|
||||||
|
(sha256
|
||||||
|
;; XXX: Used to be 1xhnx3yd74zrvn6sfcqmk57kxj51cwvm660dwiaxr1qxnm5lq0v7.
|
||||||
|
(base32 "0yrdmpdvzf092869y6zjjjxl6j2kypgiv7qrfkv7lj8w01pbh7sd"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:phases
|
||||||
|
(let* ((gui-libs
|
||||||
|
(lambda (inputs)
|
||||||
|
;; FIXME: Add GTK+ and GDK for DrRacket.
|
||||||
|
(let ((glib (string-append (assoc-ref inputs "glib") "/lib"))
|
||||||
|
(cairo (string-append (assoc-ref inputs "cairo") "/lib"))
|
||||||
|
(pango (string-append (assoc-ref inputs "pango") "/lib"))
|
||||||
|
(libjpeg (string-append (assoc-ref inputs "libjpeg") "/lib")))
|
||||||
|
(list glib cairo pango libjpeg)))))
|
||||||
|
(alist-cons-before
|
||||||
|
'configure 'pre-configure
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(chdir "src")
|
||||||
|
|
||||||
|
;; The GUI libs are dynamically opened through the FFI, so they
|
||||||
|
;; must be in the loader's search path.
|
||||||
|
(setenv "LD_LIBRARY_PATH" (string-join (gui-libs inputs) ":")))
|
||||||
|
(alist-cons-after
|
||||||
|
'unpack 'patch-/bin/sh
|
||||||
|
(lambda _
|
||||||
|
(substitute* "collects/racket/system.rkt"
|
||||||
|
(("/bin/sh") (which "sh"))))
|
||||||
|
(alist-cons-after
|
||||||
|
'install 'wrap-programs
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(define (wrap prog)
|
||||||
|
(wrap-program prog
|
||||||
|
`("LD_LIBRARY_PATH" ":" prefix
|
||||||
|
,(gui-libs inputs))))
|
||||||
|
|
||||||
|
(with-directory-excursion (string-append out "/bin")
|
||||||
|
(for-each wrap
|
||||||
|
(list "gracket" "drracket" "slideshow" "mred"))
|
||||||
|
#t)))
|
||||||
|
%standard-phases))))
|
||||||
|
#:tests? #f ; XXX: how to run them?
|
||||||
|
))
|
||||||
|
(inputs `(("libffi" ,libffi)
|
||||||
|
("glib" ,glib) ; for DrRacket
|
||||||
|
("cairo" ,cairo)
|
||||||
|
("pango" ,pango)
|
||||||
|
("libjpeg" ,libjpeg-8)))
|
||||||
|
(home-page "http://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.")
|
||||||
|
(license lgpl2.0+)))
|
||||||
|
|
Loading…
Reference in a new issue