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

From: Ludovic Courtès <[email-masked]>
Date: Mon, 03 May 2021 22:56:31 +0200

Hi,

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).

I remember discussing it, but I wonder if I was confused.

I think you can always do the equivalent of (say):

  guix time-machine -- build -s armhf-linux hello -d

… where Guix itself is built natively but it then computes a derivation
for a different architecture.

The equivalent code would be roughly:

  (let ((inferior (inferior-for-channels …)))
    (inferior-package-derivation store
                                 (car (lookup-inferior-packages inferior "hello"))
                                 "armhf-linux"))

Does that make sense?

(You may also want to turn off grafts in the inferior.)

Ludo’.