Subject: “guix deploy” doesn’t build all derivations remotely

From: Ricardo Wurmus <[email-masked]>
Date: Sat, 25 Feb 2023 22:49:07 +0100

I’m running “guix deploy deploy.scm” on a x86_64 host.  The deploy.scm
file looks like this:

The target machine architecture is aarch64-linux, and the x86_64 host
cannot offload to any aarch64-linux machines.  The machine declaration
has the “build-locally?” property set to #false.  The manual says:

     ‘build-locally?’ (default: ‘#t’)
          If false, system derivations will be built on the machine
          being deployed to.

Not all derivations are built on the target machine, though:

--8<---------------cut here---------------start------------->8---
$ guix deploy deploy.scm
The following 1 machine will be deployed:
  elephly

guix deploy: deploying to elephly...
guix deploy: sending 0 store items (0 MiB) to '192.168.178.20'...
guix deploy: sending 0 store items (0 MiB) to '192.168.178.20'...
guix deploy: warning: the following accounts appear more than once: mpd
guix deploy: warning: the following accounts appear more than once: mpd
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
The following derivation will be built:
  /gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv

8.1 MB will be downloaded
 guile-static-stripped-3.0.9  6.7MiB                                                                   2.3MiB/s 00:03 ▕██████████████████▏ 100.0%
 e2fsprogs-1.46.4  1.1MiB                                                                              2.3MiB/s 00:00 ▕██████████████████▏ 100.0%
building /gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv...
|builder for `/gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv' failed with exit code 1
build of /gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv failed
View build log at '/var/log/guix/drvs/4c/py9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv.gz'.
guix deploy: error: build of `/gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv' failed
--8<---------------cut here---------------end--------------->8---

These are the contents of the build log:

--8<---------------cut here---------------start------------->8---
@ unsupported-platform /gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv aarch64-linux
while setting up the build environment: a `aarch64-linux' is required to build `/gnu/store/4cpy9hlikcqddydl5dh02lnxdqn67nzb-linux-libre-arm64-generic-with-midi-6.1.13.drv', but I am a `x86_64-linux'
--8<---------------cut here---------------end--------------->8---

It is also of note that a build of this derivation is attempted even
though it has successfully been built on the target machine.

-- 
Ricardo