Merge branch 'devel' into 'main'

sufficient ?

See merge request glicid-public/guix-glicid!268
This commit is contained in:
Yann Dupont 2023-05-25 13:31:56 +00:00
commit 75eaa371a2

View file

@ -1,43 +1,88 @@
(define-module (glicid services virtualization) (define-module (glicid services virtualization)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu services virtualization) #:use-module ((gnu services virtualization) #:prefix gnu)
#:use-module (gnu packages virtualization)) #: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)
)
;;; ;;;
;;; QEMU guest agent service. ;;; Redef QEMU guest agent service.
;;; ;;;
;(define (serialize-field field-name val)
; (format #t "~a = ~a\n" (uglify-field-name field-name) val))
;(define (serialize-string field-name val)
; (serialize-field field-name (quote-val val)))
;; ;;
;;(define qemu-guest-agent-shepherd-service:gnu (@@ (gnu services virtualization) qemu-guest-agent-shepherd-service)) ;(define-configuration qemu-guest-agent-configuration
; (qemu
; (file-like gnu:qemu-minimal)
; "QEMU package.")
; (device
; (string "")
; "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 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")
; "--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-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))
; (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-shepherd-service config) (define (qemu-guest-agent-shepherd-service config)
(let ((qemu (qemu-guest-agent-configuration-qemu config)) (inherit gnu:qemu-guest-agent-shepherd-service)
(device (qemu-guest-agent-configuration-device config))) (requirement '(udev)) ;; GLiCID
(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
(define qemu-guest-agent-service-type ; (service-type
(service-type ; (name 'qemu-guest-agent)
(name 'qemu-guest-agent) ; (extensions
(extensions ; (list (service-extension shepherd-root-service-type
(list (service-extension shepherd-root-service-type ; qemu-guest-agent-shepherd-service)))
qemu-guest-agent-shepherd-service))) ; (default-value (qemu-guest-agent-configuration))
(default-value (qemu-guest-agent-configuration)) ; (description "Run the QEMU guest agent.")))
(description "Run the QEMU guest agent.")))