summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2019-12-24 15:04:57 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2019-12-29 21:26:11 +0100
commite51de34309be7ba8105be66d45d7da4a64883b08 (patch)
treee02eae1937d2c0a93e860e1f886ced2a9c91bbb1
parent4befbe1a0e28fdb37c3fb11ab497636b783d61d6 (diff)
profiles: Fix profile-derivation cross-compilation.
* guix/store.scm (current-target-system): New exported monadic procedure. * guix/profiles.scm (profile-derivation): Set target at bind time using the above procedure.
-rw-r--r--guix/profiles.scm4
-rw-r--r--guix/store.scm7
2 files changed, 11 insertions, 0 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 5b3b5bd5fe..0d38b2513f 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1463,6 +1464,9 @@ are cross-built for TARGET."
(mlet* %store-monad ((system (if system
(return system)
(current-system)))
+ (target (if target
+ (return target)
+ (current-target-system)))
(ok? (if allow-collisions?
(return #t)
(check-for-collisions manifest system
diff --git a/guix/store.scm b/guix/store.scm
index cf25d347fc..f99fa581a8 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -159,6 +160,7 @@
%guile-for-build
current-system
set-current-system
+ current-target-system
text-file
interned-file
interned-file-tree
@@ -1816,6 +1818,11 @@ the store."
(lambda (state)
(values (%current-system system) state)))
+(define-inlinable (current-target-system)
+ ;; Consult the %CURRENT-TARGET-SYSTEM fluid at bind time.
+ (lambda (state)
+ (values (%current-target-system) state)))
+
(define %guile-for-build
;; The derivation of the Guile to be used within the build environment,
;; when using 'gexp->derivation' and co.