diff --git a/glicid/services/virtualization.scm b/glicid/services/virtualization.scm index 1e4ab22..61b7213 100644 --- a/glicid/services/virtualization.scm +++ b/glicid/services/virtualization.scm @@ -1,43 +1,88 @@ (define-module (glicid services virtualization) #:use-module (gnu services) #:use-module (gnu services shepherd) - #:use-module (gnu services virtualization) - #:use-module (gnu packages virtualization)) + #: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) +) ;;; -;;; 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) - (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)))))) + (inherit gnu:qemu-guest-agent-shepherd-service) + (requirement '(udev)) ;; GLiCID + +) - -(define qemu-guest-agent-service-type - (service-type - (name 'qemu-guest-agent) - (extensions - (list (service-extension shepherd-root-service-type - qemu-guest-agent-shepherd-service))) - (default-value (qemu-guest-agent-configuration)) - (description "Run the QEMU guest agent."))) +;(define qemu-guest-agent-service-type +; (service-type +; (name 'qemu-guest-agent) +; (extensions +; (list (service-extension shepherd-root-service-type +; qemu-guest-agent-shepherd-service))) +; (default-value (qemu-guest-agent-configuration)) +; (description "Run the QEMU guest agent.")))