[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Offloading to a VM
From: |
Ludovic Courtès |
Subject: |
Re: Offloading to a VM |
Date: |
Mon, 05 Sep 2016 22:28:12 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
David Craven <address@hidden> skribis:
>> The “build hook” is the mechanism by which the daemon asks an external
>> program whether it can build a derivation for some system.
>
>> Our (guix scripts offload) is such a program; it replies positively if
>> there’s a machine that matches the target system.
>
>> What I was suggesting is to have another build hook that would reply
>> positively as long as the target system can be emulated by QEMU.
>
> So I thought about this some more. guix offload uses guix build to
> build a derivation which again uses a different nix-daemon to build
> it. I'm not sure that guix offload can help us here.
Above, I was not suggesting to use ‘guix offload’. Instead, I was
suggesting to write a new “build hook” that would run qemu-arm,
mentioning (guix scripts offload) as an example of a build hook.
> If it is possible to build a derivation using only qemu-arm instead of
> qemu-system-arm - which I'm still not convinced - I think it's the
> nix-daemon that would have to support this. In build.cc it sets up a
> chroot and then executes the builder. I think it's that builder that
> needs to be run with qemu-arm. But I don't think it's going to be as
> easy as that =)
guix-daemon can be extended via this “build hook” mechanism. What I’m
proposing is to extend guix-daemon via an external build hook, which
means that guix-daemon itself can remain unchanged.
A derivation is essentially the file name of a “builder” along with its
argv and the needed dependencies. For a given derivation, the hook
would roughly run:
qemu-arm /gnu/store/…-builder arg1 arg2 …
Hope this clarifies things!
Ludo’.