Subject: [bug#47989] [PATCH] channels: Add a #:system argument to channel-instances->manifest.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 11 May 2021 10:52:02 +0200

Christopher Baines <[email-masked]> skribis:

> This allows computing a manifest for a specific system. Previously this was
> possible, but only through changing %current-system, which caused the
> derivation to be computed using that system as well (so computing a derivation
> for aarch64-linux on x86_64-linux would require running aarch64-linux code).
>
> This new argument adds the possibility of computing derivations for non-native
> systems, without having to run non-native code.
>
> I'm looking at this as it will enable the Guix Data Service to compute channel
> instance derivations without relying on QEMU emulation for non-native
> systems (it should be faster as well).
>
> * guix/channels.scm (build-from-source): Add #:system argument and pass to
> build.
> (build-channel-instance): Add system argument and pass to build-from-source.
> (channel-instance-derivations): Add #:system argument and pass to
> build-channel-instance, also rename system to current-system-value.
> (channel-instances->manifest): Add #:system argument and pass to
> channel-instance-derivations.

LGTM!

(Please double-check that ‘make as-derivation’ or ‘guix pull --url=$PWD …’
work, in case we overlooked something.)

Thank you,
Ludo’.