summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-10-25 23:41:15 +0200
committerLudovic Courtès <ludo@gnu.org>2012-10-25 23:41:15 +0200
commitb642e4b853e9e3b8bbf5f5769fb602c6f4191347 (patch)
tree712af8e0432bd0816f8819c3a2db47aa2d59c578
parentae39d1b233c93bcca0c27a64d59040e50e2a0955 (diff)
downloadguix-b642e4b853e9e3b8bbf5f5769fb602c6f4191347.tar.gz
packages: Pass `system' around.
* guix/packages.scm (package-source-derivation): Add `system'
  parameter.  Pass it to METHOD.
  (package-derivation)[expand-input]: Pass SYSTEM to
  `package-derivation' and `package-source-derivation'.

* distro/packages/base.scm (package-with-bootstrap-guile)[boot]: Pass
  SYSTEM to FETCH.
-rw-r--r--distro/packages/base.scm6
-rw-r--r--guix/packages.scm17
2 files changed, 14 insertions, 9 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm
index 9b881d7eb1..fd9f7055d2 100644
--- a/distro/packages/base.scm
+++ b/distro/packages/base.scm
@@ -1424,9 +1424,11 @@ $out/bin/guile --version~%"
   "Return a variant of SOURCE, an <origin> instance, whose method uses
 %BOOTSTRAP-GUILE to do its job."
   (define (boot fetch)
-    (lambda* (store url hash-algo hash #:optional name)
+    (lambda* (store url hash-algo hash
+              #:optional name #:key system)
       (fetch store url hash-algo hash
-             #:guile %bootstrap-guile)))
+             #:guile %bootstrap-guile
+             #:system system)))
 
   (let ((orig-method (origin-method source)))
     (origin (inherit source)
diff --git a/guix/packages.scm b/guix/packages.scm
index 9a54eb747a..0020783211 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -164,11 +164,13 @@ representation."
   "Return the full name of PACKAGE--i.e., `NAME-VERSION'."
   (string-append (package-name package) "-" (package-version package)))
 
-(define (package-source-derivation store source)
-  "Return the derivation path for SOURCE, a package source."
+(define* (package-source-derivation store source
+                                    #:optional (system (%current-system)))
+  "Return the derivation path for SOURCE, a package source, for SYSTEM."
   (match source
     (($ <origin> uri method sha256 name)
-     (method store uri 'sha256 sha256 name))))
+     (method store uri 'sha256 sha256 name
+             #:system system))))
 
 (define (transitive-inputs inputs)
   (let loop ((inputs  inputs)
@@ -238,10 +240,10 @@ recursively."
     ;; references to derivation paths or store paths.
     (match-lambda
      (((? string? name) (? package? package))
-      (list name (package-derivation store package)))
+      (list name (package-derivation store package system)))
      (((? string? name) (? package? package)
        (? string? sub-drv))
-      (list name (package-derivation store package)
+      (list name (package-derivation store package system)
             sub-drv))
      (((? string? name)
        (and (? string?) (? derivation-path?) drv))
@@ -253,7 +255,7 @@ recursively."
       ;; source.
       (list name (intern file)))
      (((? string? name) (? origin? source))
-      (list name (package-source-derivation store 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.
 
@@ -291,7 +293,8 @@ recursively."
 
             (apply builder
                    store (package-full-name package)
-                   (and source (package-source-derivation store source))
+                   (and source
+                        (package-source-derivation store source system))
                    inputs
                    #:outputs outputs #:system system
                    (if (procedure? args)