From 9fcc355529838f86f963dbdd7e47c0308df95a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 24 Sep 2013 23:15:09 +0200 Subject: [PATCH] gnu: vm: Add a service for the Guix daemon. * gnu/system/dmd.scm (guix-service): New procedure. * gnu/system/vm.scm (system-qemu-image): Use it. --- gnu/system/dmd.scm | 14 ++++++++++++++ gnu/system/vm.scm | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm index 1e8767e357..a502c42e03 100644 --- a/gnu/system/dmd.scm +++ b/gnu/system/dmd.scm @@ -23,6 +23,8 @@ #:use-module (guix records) #:use-module ((gnu packages system) #:select (mingetty inetutils)) + #:use-module ((gnu packages package-management) + #:select (guix)) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:export (service? @@ -36,6 +38,7 @@ syslog-service mingetty-service + guix-service dmd-configuration-file)) ;;; Commentary: @@ -104,6 +107,17 @@ (inputs `(("inetutils" ,inetutils) ("syslog.conf" ,syslog.conf)))))) +(define* (guix-service store #:key (guix guix)) + "Return a service that runs the build daemon from GUIX." + (let* ((drv (package-derivation store guix)) + (daemon (string-append (derivation->output-path drv) + "/bin/guix-daemon"))) + (service + (provision '(guix-daemon)) + (start `(make-forkexec-constructor ,daemon)) + (inputs `(("guix" ,guix)))))) + + (define (dmd-configuration-file store services) "Return the dmd configuration file for SERVICES." (define config diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index a864ab3de3..64d778b602 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -382,7 +382,8 @@ It can be used to provide additional files, such as /etc files." (list (mingetty-service store "tty1") (mingetty-service store "tty2") (mingetty-service store "tty3") - (syslog-service store))) + (syslog-service store) + (guix-service store #:guix guix-0.4))) (parameterize ((%guile-for-build (package-derivation store guile-final))) (let* ((bash-drv (package-derivation store bash))