mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
packages: Mark the `inputs' field of <package> as thunked.
* guix/packages.scm (<package>)[inputs]: Mark as thunked. (package-derivation)[expand-input]: Remove case where the input is a procedure. * tests/packages.scm ("trivial with system-dependent input"): Remove `lambda', and use (%current-system). * gnu/packages/bootstrap.scm (package-from-tarball): Likewise for `inputs'. (%bootstrap-glibc, %bootstrap-gcc): Likewise. * gnu/packages/scheme.scm (mit-scheme): Likewise.
This commit is contained in:
parent
3b9c002088
commit
dd6b9a3790
4 changed files with 67 additions and 86 deletions
|
@ -99,12 +99,9 @@ (define (package-from-tarball name* source* program-to-test description*)
|
|||
(zero? (system* (string-append "bin/" ,program-to-test)
|
||||
"--version"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin (source* system))))))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin (source* (%current-system))))))
|
||||
(synopsis description*)
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
@ -269,25 +266,22 @@ (define %bootstrap-glibc
|
|||
(("/[^ ]+/lib/(libc|ld)" _ prefix)
|
||||
(string-append out "/lib/" prefix))))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/glibc-2.17.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88"))))))))))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
"/20130105/glibc-2.17.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))
|
||||
(synopsis "Bootstrap binaries and headers of the GNU C Library")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
@ -337,28 +331,24 @@ (define %bootstrap-gcc
|
|||
|
||||
(chmod "gcc" #o555))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("bash" ,(lambda (system)
|
||||
(search-bootstrap-binary "bash" system)))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("bash" ,(search-bootstrap-binary "bash" (%current-system)))
|
||||
("libc" ,%bootstrap-glibc)
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/gcc-4.7.2.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2"))))))))))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
"/20130105/gcc-4.7.2.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))
|
||||
(synopsis "Bootstrap binaries of the GNU Compiler Collection")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
|
|
@ -22,6 +22,7 @@ (define-module (gnu packages scheme)
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix utils) #:select (%current-system))
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages emacs)
|
||||
|
@ -69,33 +70,33 @@ (define-public mit-scheme
|
|||
("m4" ,m4)
|
||||
|
||||
("source"
|
||||
,(lambda (system)
|
||||
;; MIT/GNU Scheme is not bootstrappable, so it's recommended to
|
||||
;; compile from the architecture-specific tarballs, which contain
|
||||
;; pre-built binaries. It leads to more efficient code than when
|
||||
;; building the tarball that contains generated C code instead of
|
||||
;; those binaries.
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mit-scheme/stable.pkg/"
|
||||
version "/mit-scheme-"
|
||||
version "-"
|
||||
(match system
|
||||
("x86_64-linux" "x86-64")
|
||||
("i686-linux" "i386")
|
||||
(_ "c"))
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z"))
|
||||
(_
|
||||
(base32
|
||||
"0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j")))))))))
|
||||
|
||||
;; MIT/GNU Scheme is not bootstrappable, so it's recommended to
|
||||
;; compile from the architecture-specific tarballs, which contain
|
||||
;; pre-built binaries. It leads to more efficient code than when
|
||||
;; building the tarball that contains generated C code instead of
|
||||
;; those binaries.
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mit-scheme/stable.pkg/"
|
||||
version "/mit-scheme-"
|
||||
version "-"
|
||||
(match (%current-system)
|
||||
("x86_64-linux" "x86-64")
|
||||
("i686-linux" "i386")
|
||||
(_ "c"))
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z"))
|
||||
(_
|
||||
(base32
|
||||
"0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j"))))))))
|
||||
(home-page "http://www.gnu.org/software/mit-scheme/")
|
||||
(synopsis "MIT/GNU Scheme, a native code Scheme compiler")
|
||||
(description
|
||||
|
|
|
@ -113,7 +113,7 @@ (define-record-type* <package>
|
|||
(default '()) (thunked))
|
||||
|
||||
(inputs package-inputs ; input packages or derivations
|
||||
(default '()))
|
||||
(default '()) (thunked))
|
||||
(propagated-inputs package-propagated-inputs ; same, but propagated
|
||||
(default '()))
|
||||
(native-inputs package-native-inputs ; native input packages/derivations
|
||||
|
@ -272,15 +272,6 @@ (define expand-input
|
|||
(list name (intern file)))
|
||||
(((? string? name) (? origin? source))
|
||||
(list name (package-source-derivation store source system)))
|
||||
((and i ((? string? name) (? procedure? proc) sub-drv ...))
|
||||
;; This form allows PROC to make a SYSTEM-dependent choice.
|
||||
|
||||
;; XXX: Currently PROC must return a .drv, a store path, a local
|
||||
;; file name, or an <origin>. If it were allowed to return a
|
||||
;; package, then `transitive-inputs' and co. would need to be
|
||||
;; adjusted.
|
||||
(let ((input (proc system)))
|
||||
(expand-input (cons* name input sub-drv))))
|
||||
(x
|
||||
(raise (condition (&package-input-error
|
||||
(package package)
|
||||
|
|
|
@ -124,9 +124,8 @@ (define-syntax-rule (dummy-package name* extra-fields ...)
|
|||
(bash (assoc-ref %build-inputs "bash")))
|
||||
(zero? (system* bash "-c"
|
||||
(format #f "echo hello > ~a" out))))))
|
||||
(inputs `(("bash" ,(lambda (system)
|
||||
(search-bootstrap-binary "bash"
|
||||
system)))))))
|
||||
(inputs `(("bash" ,(search-bootstrap-binary "bash"
|
||||
(%current-system)))))))
|
||||
(d (package-derivation %store p)))
|
||||
(and (build-derivations %store (list d))
|
||||
(let ((p (pk 'drv d (derivation-path->output-path d))))
|
||||
|
|
Loading…
Reference in a new issue