summaryrefslogtreecommitdiff
path: root/modules/home-services
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home-services')
-rw-r--r--modules/home-services/virtualization.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/home-services/virtualization.scm b/modules/home-services/virtualization.scm
new file mode 100644
index 0000000..abc1335
--- /dev/null
+++ b/modules/home-services/virtualization.scm
@@ -0,0 +1,38 @@
+(define-module (home-services virtualization)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages virtualization)
+ #:use-module (gnu packages firmware)
+ #:use-module (gnu services)
+ #:use-module (gnu services configuration)
+ #:use-module (gnu services virtualization)
+ #:use-module (gnu home services)
+ #:use-module (guix gexp))
+
+(define my-libvirt
+ (package
+ (inherit libvirt)
+ (inputs
+ (modify-inputs (package-inputs libvirt)
+ (append ovmf)))))
+(define (ovmf-special-files config)
+ `(("/usr/share/OVMF/OVMF_CODE.fd",
+ (file-append ovmf "/share/firmware/ovmf_x64.bin"))))
+
+(define-public my-libvirt-service-type
+ (service-type
+ (name 'my-libvirt)
+ (extensions
+ (list
+ (service-extension libvirt-service-type
+ (lambda (config)
+ (libvirt-configuration
+ (libvirt my-libvirt)
+ (unix-sock-group "libvirt")))
+ )
+ (service-extension special-files-service-type
+ ovmf-special-files)
+ ))
+ (default-value #f)
+ (description "Libvirt with OVMF")))
+