Subject: Re: bug#26341: [PATCH] build: vm: Add missing module.

From: [email-masked] (Ludovic Courtès)
Date: Wed, 05 Apr 2017 23:35:15 +0200

Hello!

Mathieu Othacehe <[email-masked]> skribis:

>> That said, we should improve this.  Perhaps something along the lines of
>> the attached patch would work.
>>
>> Could you try and send an updated patch?
>
> Well, I tried a "guix system vm ..." with just my patch and it worked. I
> agree with you it shouldn't work because it is not possible to use FFI
> in static Guile.
>
> I don't exactly what happend but it might be something like that :
>
> (gnu build vm) -- uses module ----> (guix build syscalls) (with my patch)
>                       |                    |
>                       |                    |
>                       |               -------- provides
>                       |               |      |
>                       |               v      v
>                       |               mount  umount (FFI versions)
>                       |
>                       -------------> (gnu build linux-boot)
>                                           |
>                                           | uses
>                                        (gnu build file-systems)
>                                                   |
>                                                   |
>                                                   overrides mount and
>                                                   unount with libguile
>                                                   versions if you're
>                                                   using static Guile.
>
> So we end-up using libguile mount and umount in (gnu build vm) and not
> FFI versions of (guix build syscalls).

Yeah, I think there must have been a “(guix build syscalls) overrides
core binding ‘mount’” warning, and Guile chose the core binding over the
other one so things turned out to work fine.

> However, it is still a good idea to allow modules to use (guix build
> syscalls) independently of the fact that they are running inside static
> Guile or not.

Agreed!

Ludo’.