aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-01-24 23:33:30 +0100
committerLudovic Courtès <ludo@gnu.org>2013-01-24 23:33:51 +0100
commitdd6b9a3790b8d545c7254dedeb81630a6fa1d66a (patch)
tree00f95730c2dde207e545a2b892731eec88de8c29
parent3b9c00208868a75e6b77445fcd33d82536448bb2 (diff)
downloadguix-dd6b9a3790b8d545c7254dedeb81630a6fa1d66a.tar
guix-dd6b9a3790b8d545c7254dedeb81630a6fa1d66a.tar.gz
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.
-rw-r--r--gnu/packages/bootstrap.scm82
-rw-r--r--gnu/packages/scheme.scm55
-rw-r--r--guix/packages.scm11
-rw-r--r--tests/packages.scm5
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 <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)
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))))