Subject: Re: [bug#41350] [PATCH v3 2/3] system: vm: Do not register-closures when cross-building to the Hurd.

From: Jan Nieuwenhuizen <[email-masked]>
Date: Wed, 27 May 2020 11:13:39 +0200

Ludovic Courtès writes:

> "Jan (janneke) Nieuwenhuizen" <[email-masked]> skribis:
>
>> This supports cross-building building a vm-image for the Hurd, running a
>> native qemu.
>>
>> * gnu/system/vm.scm (qemu-image)[register-closures?]: Default to #f when
>> cross-compiling to the Hurd.  Only create sql-schema when actually registering
>> closures.
>
> [...]
>
>> -                     (register-closures? (has-guix-service-type? os))
>> +                     (register-closures? (and (has-guix-service-type? os)
>> +                                              (not (hurd-target?))))
>
> What’s the problem here?  (Sorry if I missed earlier discussions!)

register-closures is being done inside the VM and needs sqlite, which we
don't have because it's for the wrong architecture.  So as long as we
avoid sqlite, we can cross-build a working VM.

> Intuitively, I think there shouldn’t be system-specific bits here:
> registering closures has nothing to do with the OS we’re targeting.

True...but currently Hurd is the only image that we are trying to build
in this weird way, i.e., using a native qemu!  Other cross-builds of
vm-images are done using qemu-TARGET, only for the Hurd that does
not work.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com