From: Mathieu Othacehe <m.othacehe@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 38612@debbugs.gnu.org
Subject: [bug#38612] Pass system and target arguments to gexp->file.
Date: Tue, 24 Dec 2019 15:11:08 +0100 [thread overview]
Message-ID: <87r20t7r0j.fsf@gmail.com> (raw)
In-Reply-To: <87d0cipt6z.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 437 bytes --]
Hello,
> trick ensures that we get the system that current at the time of the
> monadic bind, whereas your change get the system and target that are
> current at the time of the call.
>
> It’s a terrible pitfall, I know…
Ok, then, I used the same trick to read %current-target-system at bind
time. With this trick, target is set to the value passed to the guix
system command (it is #f otherwise).
WDYT?
Mathieu
[-- Attachment #2: 0001-profiles-Fix-profile-derivation-cross-compilation.patch --]
[-- Type: text/x-diff, Size: 2658 bytes --]
From c8b0e65d9b264bd484c7c6571c2ce3d68173b057 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <m.othacehe@gmail.com>
Date: Tue, 24 Dec 2019 15:04:57 +0100
Subject: [PATCH] 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.
---
guix/profiles.scm | 4 ++++
guix/store.scm | 7 +++++++
2 files changed, 11 insertions(+)
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 987bab4e7f..d20f06e7b3 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.
;;;
@@ -1459,6 +1460,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.
--
2.24.1
next prev parent reply other threads:[~2019-12-24 14:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-14 17:21 [bug#38612] Pass system and target arguments to gexp->file Mathieu Othacehe
2019-12-15 14:50 ` Mathieu Othacehe
2019-12-20 21:45 ` Ludovic Courtès
2019-12-24 14:11 ` Mathieu Othacehe [this message]
2019-12-25 9:42 ` Mathieu Othacehe
2019-12-26 18:04 ` Ludovic Courtès
2019-12-26 18:54 ` Mathieu Othacehe
2019-12-27 18:05 ` Ludovic Courtès
2019-12-29 9:33 ` Mathieu Othacehe
2019-12-29 22:36 ` Ludovic Courtès
2019-12-30 8:40 ` Mathieu Othacehe
2019-12-26 17:58 ` Ludovic Courtès
2019-12-26 18:19 ` Mathieu Othacehe
2019-12-20 21:41 ` Ludovic Courtès
2019-12-24 14:08 ` Mathieu Othacehe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r20t7r0j.fsf@gmail.com \
--to=m.othacehe@gmail.com \
--cc=38612@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.