From dd6b9a3790b8d545c7254dedeb81630a6fa1d66a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Jan 2013 23:33:30 +0100 Subject: packages: Mark the `inputs' field of as thunked. * guix/packages.scm ()[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. --- gnu/packages/bootstrap.scm | 82 ++++++++++++++++++++-------------------------- gnu/packages/scheme.scm | 55 ++++++++++++++++--------------- guix/packages.scm | 11 +------ tests/packages.scm | 5 ++- 4 files changed, 67 insertions(+), 86 deletions(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index ea2cf618f2..b0ab70abbc 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -99,12 +99,9 @@ check whether everything is alright." (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 @@ $out/bin/guile --version~%" (("/[^ ]+/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 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (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))) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 0a50d52e64..97b959f4c4 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -22,6 +22,7 @@ #: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 @@ ("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 diff --git a/guix/packages.scm b/guix/packages.scm index a76e51a5d0..f1cd83c7e4 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -113,7 +113,7 @@ representation." (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 @@ PACKAGE for SYSTEM." (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 . 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) diff --git a/tests/packages.scm b/tests/packages.scm index 990deb79ef..8b0f29e6bc 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -124,9 +124,8 @@ (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)))) -- cgit 1.4.1