GNU bug report logs -
#38612
Pass system and target arguments to gexp->file.
Previous Next
Full log
Message #47 received at 38612 <at> debbugs.gnu.org (full text, mbox):
Hey,
> Uh, it’s “the right thing” but it’s getting ugly. :-/
>
> If we take a step back, what’s the minimal change that would solve the
> problem you’re looking at?
>
> Apologies for the back-and-forth, it’s a tricky area!
I'm glad I can have your support on this topic :)
Here's a small recap of the situation. As you may know I'm trying to get
"guix system build install.scm --target=xxx" to work.
My board needs specific initrd kernel modules to boot. As target is not
passed to lower-object in system-derivation procedure of (gnu services),
raw-initrd will try to locate those (arm specific) modules in the host
x86 kernel, where they do not exist, and fail.
The same thing happens for operating-system-boot-parameters-file which
contains a gexp->file call.
Now, while this problem is quite specific, we need to find a generic
solution to those target issues. Forcing the user of (guix gexp) to pass
a target argument implies the use of monadic style to read
%current-target-system safely.
On the other hand, defaulting to the current target inside (guix gexp)
as proposed in my patch is kinda ugly as you noticed :p
Could %current-target-system be set outside of the monadic context so
that we can access it from wherever we want?
That would also solve the issue I have with canonical-package procedure[1],
that read %current-target-system outside of the monadic context, where
is is always #f.
Thanks for your help,
Mathieu
[1]: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00353.html
This bug report was last modified 4 years and 300 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.