Hi,

Ludovic Courtès <[email protected]> writes:

> Ludovic Courtès <[email protected]> skribis:
>
>> At its core, it’s a bug of ‘remote-eval’ in (guix remote), which
>> dismisses stdout/stderr.
>>
>> Continued here 👉 https://codeberg.org/guix/guix/issues/7088
>
> Here’s a proposed fix: https://codeberg.org/guix/guix/pulls/7092
>
> I checked that it works as expected at the level of ‘remote-eval’ but
> didn’t try it in the context of ‘guix deploy’.  It would be great if you
> could give it a spin.

Thank you for working on this.  I tested the patch with the deploy and
it seems to work great.  It occurred to me there is a less convoluted
way to test this than to break /etc:

--8<---------------cut here---------------start------------->8---
(simple-service 'message activation-service-type
                #~(let loop ((i 0))
                    (when (< i 10)
                      (format #t "line ~a~%" i)
                      (loop (1+ i)))))
--8<---------------cut here---------------end--------------->8---

Deploying to my test machine produces the following:

--8<---------------cut here---------------start------------->8---
guix deploy: sending 6 store items (0 MiB) to '127.0.0.1'...
guix deploy: 127.0.0.1: making '/var/guix/profiles/system-35-link' the current 
system...
guix deploy: 127.0.0.1: populating /etc from 
/gnu/store/i85wyh808my68s0n8h25lwwf5zs7zn2k-etc...
guix deploy: 127.0.0.1: setting up privileged programs in 
'/run/privileged/bin'...
guix deploy: 127.0.0.1: 
`/gnu/store/g33740pipqp18r7shclv7wr2w9j2vshy-openssh-authorized-keys/root' -> 
`/etc/ssh/authorized_keys.d/root'
guix deploy: 127.0.0.1: 
`/gnu/store/g33740pipqp18r7shclv7wr2w9j2vshy-openssh-authorized-keys/wolf' -> 
`/etc/ssh/authorized_keys.d/wolf'
guix deploy: 127.0.0.1: line 0
guix deploy: 127.0.0.1: line 1
guix deploy: 127.0.0.1: line 2
guix deploy: 127.0.0.1: line 3
guix deploy: 127.0.0.1: line 4
guix deploy: 127.0.0.1: line 5
guix deploy: 127.0.0.1: line 6
guix deploy: 127.0.0.1: line 7
guix deploy: 127.0.0.1: line 8
guix deploy: 127.0.0.1: line 9
guix deploy: sending 0 store items (0 MiB) to '127.0.0.1'...
guix deploy: sending 0 store items (0 MiB) to '127.0.0.1'...
guix deploy: 127.0.0.1: shepherd: Starting service host-name...
guix deploy: 127.0.0.1: shepherd: Service host-name started.
guix deploy: 127.0.0.1: shepherd: Service host-name running with value "testvm".
guix deploy: 127.0.0.1: shepherd: Service host-name has been started.
guix deploy: 127.0.0.1: shepherd: Starting service user-homes...
guix deploy: 127.0.0.1: shepherd: Service user-homes started.
guix deploy: 127.0.0.1: shepherd: Service user-homes running with value #t.
guix deploy: 127.0.0.1: shepherd: Service user-homes has been started.
guix deploy: 127.0.0.1: shepherd: Starting service sysctl...
guix deploy: 127.0.0.1: shepherd: Service sysctl started.
guix deploy: 127.0.0.1: shepherd: Service sysctl running with value #t.
guix deploy: 127.0.0.1: shepherd: Service sysctl has been started.
guix deploy: 127.0.0.1: shepherd: Service user-homes has been started.
guix deploy: 127.0.0.1: shepherd: Starting service guix-ownership...
guix deploy: 127.0.0.1: shepherd: Service guix-ownership started.
guix deploy: 127.0.0.1: shepherd: Service guix-ownership running with value #t.
guix deploy: 127.0.0.1: shepherd: Service guix-ownership has been started.
--8<---------------cut here---------------end--------------->8---

The shepherd output is unexpected, but welcomed.

It even works for stupidly large output, though at the cost of some RAM.

--8<---------------cut here---------------start------------->8---
guix deploy: 127.0.0.1: line 9999999
--8<---------------cut here---------------end--------------->8---

So, nice work! :)

Tomas

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



Reply via email to