diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-10-25 23:41:15 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-10-25 23:41:15 +0200 |
commit | b642e4b853e9e3b8bbf5f5769fb602c6f4191347 (patch) | |
tree | 712af8e0432bd0816f8819c3a2db47aa2d59c578 | |
parent | ae39d1b233c93bcca0c27a64d59040e50e2a0955 (diff) | |
download | gnu-guix-b642e4b853e9e3b8bbf5f5769fb602c6f4191347.tar gnu-guix-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.scm | 6 | ||||
-rw-r--r-- | guix/packages.scm | 17 |
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) |