diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-02-18 11:29:10 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-02-18 14:14:39 +0100 |
commit | 01821914e272ed682dc83b5163c17a0345dcaf17 (patch) | |
tree | 0edbf9a107ea4ebd14d700410762a2b78a2a979e /gnu/services | |
parent | 0ca26437cb36822f9f74ee1a6dbc714477378b13 (diff) | |
download | guix-01821914e272ed682dc83b5163c17a0345dcaf17.tar.gz |
services: qemu-guest-agent: Fix implementation.
Previously, by accessing the raw <qemu-guest-agent-configuration> fields, 'qemu' would match the first field, which is the '%location' field, not the 'qemu' field. It would seem this bug has always been present since the addition of the 'location' field in d132d9f96ba34bca58b18e293e03b393054fd962 predates the addition of 'qemu-guest-agent-service-type' in f634a0baab85454a6feac25e29905f564b276c9e. Fixes <https://issues.guix.gnu.org/54041>. Reported by Ricardo Wurmus <rekado@elephly.net>. * gnu/services/virtualization.scm (qemu-guest-agent-shepherd-service): Use accessors for <qemu-guest-agent-configuration>.
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/virtualization.scm | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 66ae1a1565..9b4512cff7 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com> -;;; Copyright © 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si> ;;; @@ -866,23 +866,23 @@ functionality of the kernel Linux."))) "Path to device or socket used to communicate with the host. If not specified, the QEMU default path is used.")) -(define qemu-guest-agent-shepherd-service - (match-lambda - (($ <qemu-guest-agent-configuration> qemu device) - (list - (shepherd-service - (provision '(qemu-guest-agent)) - (documentation "Run the QEMU guest agent.") - (start #~(make-forkexec-constructor - `(,(string-append #$qemu "/bin/qemu-ga") "--daemon" - "--pidfile=/var/run/qemu-ga.pid" - "--statedir=/var/run" - ,@(if #$device - (list (string-append "--path=" #$device)) - '())) - #:pid-file "/var/run/qemu-ga.pid" - #:log-file "/var/log/qemu-ga.log")) - (stop #~(make-kill-destructor))))))) +(define (qemu-guest-agent-shepherd-service config) + (let ((qemu (qemu-guest-agent-configuration-qemu config)) + (device (qemu-guest-agent-configuration-device config))) + (list + (shepherd-service + (provision '(qemu-guest-agent)) + (documentation "Run the QEMU guest agent.") + (start #~(make-forkexec-constructor + `(,(string-append #$qemu "/bin/qemu-ga") "--daemon" + "--pidfile=/var/run/qemu-ga.pid" + "--statedir=/var/run" + ,@(if #$device + (list (string-append "--path=" #$device)) + '())) + #:pid-file "/var/run/qemu-ga.pid" + #:log-file "/var/log/qemu-ga.log")) + (stop #~(make-kill-destructor)))))) (define qemu-guest-agent-service-type (service-type |