From b642e4b853e9e3b8bbf5f5769fb602c6f4191347 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 25 Oct 2012 23:41:15 +0200 Subject: 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. --- distro/packages/base.scm | 6 ++++-- 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 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 (($ 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) -- cgit 1.4.1