[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67109: ‘efi32-esp’ image support pulls in host-side code
From: |
Ludovic Courtès |
Subject: |
bug#67109: ‘efi32-esp’ image support pulls in host-side code |
Date: |
Mon, 27 Nov 2023 10:07:40 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi,
Mathieu Othacehe <othacehe@gnu.org> skribis:
>> guix system: error: #<gexp (lambda (root . args) (apply
>> initialize-efi32-partition root #:grub-targets #<gexp-input #<gexp
>> (quote ("i386-efi" . "BOOTIA32.EFI")) gnu/system/image.scm:142:28
>> 7fef96f85390>:out> args)) gnu/system/image.scm:146:8 7fef96f85360>:
>> invalid G-expression input
>
> Expressed that way, I no longer have this error and `target` seems to
> take the expected value, WDYT?
>
> (define esp32-partition
> (partition
> (inherit esp-partition)
> (initializer
> #~(lambda (root . args)
> (let ((targets '#$(let-system (system target)
> (cond ((target-x86? (or target system))
> '("i386-efi". "BOOTIA32.EFI"))
> ((target-arm? (or target system))
> '("arm-efi" . "BOOTARM.EFI"))
> (else #f)))))
> (apply initialize-efi32-partition root
> #:grub-targets targets
> args))))))
Am I right that it breaks if we do:
(let ((targets #$(let-system …
#~'("i386-efi". "BOOTIA32.EFI"))))
…)
?
That would be the “correct” way to do it, but the problem is that the
body of ‘let-system’ is supposed to evaluate to a file-like object,
which is not what we’re trying to do here.
Hmm, annoying.
Thanks,
Ludo’.