guix-glicid/glicid/services/virtualization.scm
2023-05-26 12:37:16 +02:00

58 lines
2 KiB
Scheme
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(define-module (glicid services virtualization)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module ((gnu services virtualization) #:prefix gnu:)
#:use-module ((gnu packages virtualization) #:prefix gnu:)
; #:use-module (guix records)
; #:use-module (guix utils)
#:use-module (guix gexp) ;; file-like?
#:use-module (gnu services configuration) ;; define-configuration
#:export (qemu-guest-agent-service-type)
)
;(define (qemu-guest-agent-shepherd-service config)
; (inherit gnu:qemu-guest-agent-shepherd-service)
; (requirement '(udev)) ;; GLiCID
;
;)
(define gnu:qemu-guest-agent-configuration-qemu (@@ (gnu services virtualization) qemu-guest-agent-configuration-qemu))
(define gnu:qemu-guest-agent-configuration-device (@@ (gnu services virtualization) qemu-guest-agent-configuration-device))
(define (qemu-guest-agent-shepherd-service config)
(let ((qemu (gnu:qemu-guest-agent-configuration-qemu config))
(device (gnu:qemu-guest-agent-configuration-device config)))
(list
(shepherd-service
(provision '(qemu-guest-agent))
(requirement '(udev)) ;; GLiCID
(documentation "Run the QEMU guest agent.")
(start #~(make-forkexec-constructor
`(,(string-append #$qemu "/bin/qemu-ga")
"--statedir" "/var/run"
,@(if (string-null? #$device)
'()
(list "--path" #$device)))
#:log-file "/var/log/qemu-ga.log"))
(stop #~(make-kill-destructor))))))
(define qemu-guest-agent-service-type
(service-type
(inherit gnu:qemu-guest-agent-service-type)
(extensions
(list (service-extension shepherd-root-service-type
qemu-guest-agent-shepherd-service)))
))
; (name 'qemu-guest-agent)
; (extensions
; (list (service-extension shepherd-root-service-type
; qemu-guest-agent-shepherd-service)))
; (default-value (gnu:qemu-guest-agent-configuration))
; (description "Run the QEMU guest agent.")))