Subject: [bug#41350] [PATCH v2 3/3] system: vm: Build vm-image using native qemu, for the Hurd.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 27 May 2020 11:30:12 +0200

Hi!

Mathieu Othacehe <[email-masked]> skribis:

>>     guix system: error: gnu/packages/glib.scm:406:2: [email-masked]: build system `meson' does not support cross builds
>>
>> Do you see that too?
>
> Yes, same issue. When grafting is enabled, we try to cross-built the
> native extension "guile-rsvg" in (gnu bootloader grub).
>
> Taking inspiration from f52fbf709, I tried:
>
> diff --git a/guix/packages.scm b/guix/packages.scm
> index 3d9988d836..e74ac882cb 100644
> --- a/guix/packages.scm
> +++ b/guix/packages.scm
> @@ -1276,13 +1276,14 @@ to (see 'graft-derivation'.)"
>    (define target (bag-target bag))
>  
>    (define native-grafts
> -    (let ((->graft (input-graft store system)))
> -      (fold-bag-dependencies (lambda (package grafts)
> -                               (match (->graft package)
> -                                 (#f    grafts)
> -                                 (graft (cons graft grafts))))
> -                             '()
> -                             bag)))
> +    (parameterize ((%current-target-system target))
> +      (let ((->graft (input-graft store system)))
> +        (fold-bag-dependencies (lambda (package grafts)
> +                                 (match (->graft package)
> +                                   (#f    grafts)
> +                                   (graft (cons graft grafts))))
> +                               '()
> +                               bag))))
>
>  
> which, by pure luck, fixes the issue for me. Maybe, I should also do
> that for "target-grafts". Ludo, WDYT?

Could you boil the problem down to a “guix build --target” command?

I’d like to make sure we understand the issue so we can add a test when
we fix it.

Thanks,
Ludo’.