Subject: qemu-guest-agent-shepherd-service probably lacks (requirement '(udev))

From: Yann Dupont <[email-masked]>
Date: Tue, 13 Jun 2023 16:55:52 +0200

Hi all, we've noticed that qemu-guest-agent doesn't start reliably on 
virtual machines generated by guix system.
the log file shows the following:

2023-06-12 14:36:14 1686573373.873765: critical: error opening channel 
'/dev/virtio-ports/org.qemu.guest_agent.0': No such file or directory 
2023-06-12 14:36:14 1686573373.873779: critical: failed to create guest 
agent channel 2023-06-12 14:36:14 1686573373.873782: critical: failed to 
initialize guest agent channel

I guess the udev dependency is missing. The following patch seems to do 
the trick here:

diff --git a/gnu/services/virtualization.scm 
b/gnu/services/virtualization.scm index 2e311e3813..b1b7eafd75 100644 
--- a/gnu/services/virtualization.scm +++ 
b/gnu/services/virtualization.scm @@ -962,6 +962,7 @@ (define 
(qemu-guest-agent-shepherd-service config) (list (shepherd-service 
(provision '(qemu-guest-agent)) + (requirement '(udev)) (documentation 
"Run the QEMU guest agent.") (start #~(make-forkexec-constructor 
`(,(string-append #$qemu "/bin/qemu-ga")

Cheers,