summary refs log tree commit diff
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.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))))