summaryrefslogtreecommitdiff
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)
downloadpatches-b642e4b853e9e3b8bbf5f5769fb602c6f4191347.tar
patches-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)