Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-28 Thread Tanguy Le Carrour
Hi Guix, hi Ludo’,


On Mon Jan 26, 2026 at 4:41 PM CET, Tanguy Le Carrour wrote:
> On Fri Jan 23, 2026 at 5:44 PM CET, Ludovic Courtès wrote:
>> I vaguely remember a bug where you have to specify:
>>
>>   (build-locally? #f)
>>
>> in your ‘machine-ssh-configuration’ when the machine you’re deploying to
>> has a different architecture than the one running ‘guix deploy’.  Maybe
>> this is evidence that the bug still exists…
>
> "If false, system derivations will be built on the machine being deployed to."
> … 🤔… this is the opposite of what I’m looking to achieve!? 😱

So, I build the image including the `guix archive` keys for my computer (and 
the one
I’m offloading to, but I think this one is not used), `dd` it, booted, `guix 
deploy` and…
it’s a success! 🥳

The first attempt took 30 minutes and generated a lot of logs, with the strange 
behaviour
described previously, but after that, the second deploy (I had to update my 
`openssh-configuration`)
only took 185 seconds. Much better! 👌

The thing is that I’m not sure where everything is built, for I had to set 
`(build-locally? #f)`
which means "system derivations will be built on the machine being deployed 
to", which
is exactly what I didn’t want to do in the first place!? 🤔

If I set it to `#t`, then I end up with the same problem:

```
building /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv...
builder for 
`/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv' failed 
with exit code 1
build of /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv 
failed
View build log at 
'/var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz'.
building 
/gnu/store/h99mp5xpbafl159afix4a9iwwiagd99k-module-import-compiled.drv...
cannot build derivation 
`/gnu/store/8kns183wwk6dswamiwk9kdd42byrj33k-remote-exp.scm.drv': 1 
dependencies couldn't be built
guix deploy: error: build of 
`/gnu/store/8kns183wwk6dswamiwk9kdd42byrj33k-remote-exp.scm.drv' failed

$ gunzip -c 
/var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz
while setting up the child process: in phase exec: executing 
`/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile': No such 
file or directory
```
  

Along the way, I stumbled accros 2 problems:
- the name of `(local-file)` in `(openssh-configuration (authorized-keys))` 
cannot contain `@` character
- if I use 2 `(plain-file)` instead of `(local-file)` for the same user than 
the 2 keys end up
  concatenated on the same line, preventing login through SSH.
… but those are a different stories!

Thanks again for you help!

--
Tanguy



Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-26 Thread Tanguy Le Carrour
Hi Ludo’,


On Fri Jan 23, 2026 at 5:44 PM CET, Ludovic Courtès wrote:
> "Tanguy Le Carrour"  skribis:
>
 while setting up the child process: in phase exec: executing
 `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile':
 No such file or directory
>
> [...]
>
>>   (machine-ssh-configuration
>> (host-name "asura.lan")
>> (host-key "ssh-ed25519 […]")
>> (system "armhf-linux")
>
> And:
>
> --8<---cut here---start->8---
> $ file /gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile
> /gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile: ELF 32-bit 
> LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter 
> /gnu/store/5rbyi78lfdg126d0xgsx47aq60kfrxn7-glibc-2.41/lib/ld-linux-armhf.so.3,
>  for GNU/Linux 3.2.0, stripped
> --8<---cut here---end--->8---
>
> So this is all good… assuming 
> /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv was
> actually built on asura.lan.

Chances are it was built on a different machine using Qemu.


> Could you try “guix build 
> /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv” on
> asura.lan?

```
tanguy@asura ~$ guix build 
/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
cannot build missing derivation 
`/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv'
guix build: error: build of 
`/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv' failed  
```

There’s nothing matching `remote-assertion` in Asura’s store. There’s nothing 
matching `remote`
actually.


> I vaguely remember a bug where you have to specify:
>
>   (build-locally? #f)
>
> in your ‘machine-ssh-configuration’ when the machine you’re deploying to
> has a different architecture than the one running ‘guix deploy’.  Maybe
> this is evidence that the bug still exists…

"If false, system derivations will be built on the machine being deployed to."
… 🤔… this is the opposite of what I’m looking to achieve!? 😱

Trying anyway…

```console
$ guix deploy machines/asura.scm -L modules/ --no-offload
The following 1 machine will be deployed:
  asura

guix deploy: deploying to asura...
guix deploy: sending 330 store items (1 MiB) to 'asura.lan'...
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
building path(s) 
`/gnu/store/w9s3hmr6jz1bkfs7im72yn041jrynr7f-remote-assertion.scm'
building path(s) 
`/gnu/store/2k4rsvkv9mddrmvsm3yadcfliqngnrzj-module-import-compiled'
[ 1/32] Loading './gnu/build/file-systems.scm'...
[ 2/32] Loading './gnu/build/linux-modules.scm'...
[ 3/32] Loading './gnu/system/file-systems.scm'...
[ 4/32] Loading './gnu/system/uuid.scm'...
[ 5/32] Loading './guix/build/bournish.scm'...
[ 6/32] Loading './guix/build/syscalls.scm'...
[ 7/32] Loading './guix/build/union.scm'...
[ 8/32] Loading './guix/build/utils.scm'...
[ 9/32] Loading './guix/colors.scm'...
[10/32] Loading './guix/diagnostics.scm'...
[11/32] Loading './guix/elf.scm'...
[12/32] Loading './guix/glob.scm'...
[13/32] Loading './guix/i18n.scm'...
[14/32] Loading './guix/memoization.scm'...
[15/32] Loading './guix/profiling.scm'...
[16/32] Loading './guix/records.scm'...
[17/32] Compiling './gnu/build/file-systems.scm'...
[18/32] Compiling './gnu/build/linux-modules.scm'...
# [a lot of `Failed to autoload call-with-gzip-input-port in (zlib): no code 
for module (zlib)`]
[19/32] Compiling './gnu/system/file-systems.scm'...
[20/32] Compiling './gnu/system/uuid.scm'...
[21/32] Compiling './guix/build/bournish.scm'...
[22/32] Compiling './guix/build/syscalls.scm'...
[23/32] Compiling './guix/build/union.scm'...
[24/32] Compiling './guix/build/utils.scm'...
[25/32] Compiling './guix/colors.scm'...
[26/32] Compiling './guix/diagnostics.scm'...
[27/32] Compiling './guix/elf.scm'...
[28/32] Compiling './guix/glob.scm'...
[29/32] Compiling './guix/i18n.scm'...
[30/32] Compiling './guix/memoization.scm'...
[31/32] Compiling './guix/profiling.scm'...
[32/32] Compiling './guix/records.scm'...
building path(s) 
`/gnu/store/97q2lyzs9gc58jj8m2ypwavxcyqd1w5n-module-import-compiled'
[ 1/ 2] Loading './guix/repl.scm'...
[ 2/ 2] Compiling './guix/repl.scm'...
building path(s) 
`/gnu/store/nf4yr5fz8gs2d0fw8vf7rg15zjp9mb9n-remote-assertion.scm'
building path(s) 
`/gnu/store/7gqw5y7jbh8fbaq71zkbk9ahn5fqyn88-remote-assertion.scm'
building path(s) 
`/gnu/store/8vvi7si2rv5lwal15gw1pns88z494s4z-remote-assertion.scm'
building path(s) `/gnu/store/hpn9vnavcafqz45zicwdcckcvrcn2f05-remote-exp.scm'
gui

Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-23 Thread Ludovic Courtès
"Tanguy Le Carrour"  skribis:

>>> while setting up the child process: in phase exec: executing
>>> `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile':
>>> No such file or directory

[...]

>   (machine-ssh-configuration
> (host-name "asura.lan")
> (host-key "ssh-ed25519 […]")
> (system "armhf-linux")

And:

--8<---cut here---start->8---
$ file /gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile
/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile: ELF 32-bit 
LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter 
/gnu/store/5rbyi78lfdg126d0xgsx47aq60kfrxn7-glibc-2.41/lib/ld-linux-armhf.so.3, 
for GNU/Linux 3.2.0, stripped
--8<---cut here---end--->8---

So this is all good… assuming 
/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv was
actually built on asura.lan.

Could you try “guix build 
/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv” on
asura.lan?

I vaguely remember a bug where you have to specify:

  (build-locally? #f)

in your ‘machine-ssh-configuration’ when the machine you’re deploying to
has a different architecture than the one running ‘guix deploy’.  Maybe
this is evidence that the bug still exists…

Ludo’.



Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-23 Thread Tanguy Le Carrour
Hello Ludo’,


On Fri Jan 23, 2026 at 11:43 AM CET, Ludovic Courtès wrote:
> "Tanguy Le Carrour"  skribis:
>
>> building 
>> /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv...
>> \builder for 
>> `/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv' 
>> failed with exit code 1
>> build of 
>> /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv failed
>> View build log at 
>> '/var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz'.
>> building 
>> /gnu/store/h99mp5xpbafl159afix4a9iwwiagd99k-module-import-compiled.drv...
>> cannot build derivation 
>> `/gnu/store/jmmq4kds88pvzavghkfakxfd1s7imva0-remote-exp.scm.drv': 1 
>> dependencies couldn't be built
>> guix deploy: error: build of 
>> `/gnu/store/jmmq4kds88pvzavghkfakxfd1s7imva0-remote-exp.scm.drv' failed
>> ```
>>
>> ```console
>> $ gunzip -c 
>> /var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz
>> while setting up the child process: in phase exec: executing
>> `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile':
>> No such file or directory
>> ```
>
> My guess is that this is attempting to run an x86_64 program on AArch64,
> or something like that.

I have to confess that I have a bit of a complicated setup…
I `guix deploy` to a `armhf` machine from a `x86_64` machine that offloads
the `armhf` builds to another bigger `x86_64` machine that has a QEMU builder.
So something *might* I’ve gone wrong along the way! 😅

Actually, today was "my bigger computer" day off, so there was no offload 
involved.


> Could you share your deploy file?  (You can edit irrelevant personal
> info of course.)

Nothing fancy, I guess:

```scheme
(use-modules (systems asura))

(list
  (machine
(operating-system asura-system)
(environment managed-host-environment-type)
(configuration
  (machine-ssh-configuration
(host-name "asura.lan")
(host-key "ssh-ed25519 […]")
(system "armhf-linux")
(user "bob")
```

The doc’ [1] says the `system` is "The system type describing the architecture
of the machine being deployed to". The rest is trivial.

[1]: https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-deploy.html

--
Tanguy



Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-23 Thread Ludovic Courtès
Hello,

"Tanguy Le Carrour"  skribis:

> building 
> /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv...
> \builder for 
> `/gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv' failed 
> with exit code 1
> build of /gnu/store/2i1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv 
> failed
> View build log at 
> '/var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz'.
> building 
> /gnu/store/h99mp5xpbafl159afix4a9iwwiagd99k-module-import-compiled.drv...
> cannot build derivation 
> `/gnu/store/jmmq4kds88pvzavghkfakxfd1s7imva0-remote-exp.scm.drv': 1 
> dependencies couldn't be built
> guix deploy: error: build of 
> `/gnu/store/jmmq4kds88pvzavghkfakxfd1s7imva0-remote-exp.scm.drv' failed
> ```
>
> ```console
> $ gunzip -c 
> /var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz
> while setting up the child process: in phase exec: executing
> `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile':
> No such file or directory
> ```

My guess is that this is attempting to run an x86_64 program on AArch64,
or something like that.

Could you share your deploy file?  (You can edit irrelevant personal
info of course.)

Thanks,
Ludo’.



Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-23 Thread Tanguy Le Carrour
Hi Tomas,


On Fri Jan 23, 2026 at 11:23 AM CET, Tomas Volf wrote:
> "Tanguy Le Carrour"  writes:
>>> [..]
>>
>> ```console
>> $ gunzip -c 
>> /var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz
>> while setting up the child process: in phase exec: executing 
>> `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile': No such 
>> file or directory
>> ```
>>
>> I check and this store item exists on both the local and the remote 
>> machines!? 🤔
>>
>> Ideas?
>
> Can you run the guile from the path above manually from the terminal (I
> am assuming on remote end, but to be safe try both)?  The "No such file
> or directory" error sometimes also indicates errors with for example
> dynamic libraries.  So trying to run it manually will narrow the problem
> down (problem with remote exec?  problem with the guile itself?).

```
$ /gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile
exec: Failed to execute process: 
'/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile' the file 
could not be run by the operating system.
exec: Maybe the interpreter directive (#! line) is broken?
```

Oh! 😱
…mmm… but that must be something compiled for ARM so I wouldn’t expect it to 
work.

The one on the ARM machine works as expected:

```
$ ssh asura.lan
Last login: Thu Jan  1 03:50:09 1970 from fde5:8014:ad89::8f4
tanguy@asura ~$ 
/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> 
```

Both files have the same `md5sum`.


> Additionally, running `guix gc --verify=contents' can never hurt.

Never heard of this one! Thanks!

--
Tanguy



Re: `guix deploy` fails building `remote-assertion` with `[…] /gnu/store/…-guile-3.0.9/bin/guile': No such file or directory`

2026-01-23 Thread Tomas Volf
"Tanguy Le Carrour"  writes:

> [..]
>
> ```console
> $ gunzip -c 
> /var/log/guix/drvs/2i/1pqnkah9jmqlsilxpg0zmfm0wzqq4h-remote-assertion.scm.drv.gz
> while setting up the child process: in phase exec: executing 
> `/gnu/store/rv7ym20nf7dkv81rr6f0pr2mv6ww7dx1-guile-3.0.9/bin/guile': No such 
> file or directory
> ```
>
> I check and this store item exists on both the local and the remote 
> machines!? 🤔
>
> Ideas?

Can you run the guile from the path above manually from the terminal (I
am assuming on remote end, but to be safe try both)?  The "No such file
or directory" error sometimes also indicates errors with for example
dynamic libraries.  So trying to run it manually will narrow the problem
down (problem with remote exec?  problem with the guile itself?).

Additionally, running `guix gc --verify=contents' can never hurt.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.