From 23ed63a12d941ad836f3fc9902ba4f145db1975c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 10 May 2014 22:58:22 +0200 Subject: services: Use (guix build syscalls) instead of util-linux. * gnu/services/dmd.scm (dmd-configuration-file): Add derivations for the (guix build syscalls) module, and add that to the load path of dmd.conf. * gnu/services/base.scm (root-file-system-service): Rewrite using the 'sync' and 'mount' procedures. --- gnu/services/dmd.scm | 56 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'gnu/services/dmd.scm') diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm index 161a971edd..8d4c483cc4 100644 --- a/gnu/services/dmd.scm +++ b/gnu/services/dmd.scm @@ -32,27 +32,39 @@ (define (dmd-configuration-file services) "Return the dmd configuration file for SERVICES." - (define config - #~(begin - (use-modules (ice-9 ftw)) - - (register-services - #$@(map (lambda (service) - #~(make - #:docstring '#$(service-documentation service) - #:provides '#$(service-provision service) - #:requires '#$(service-requirement service) - #:respawn? '#$(service-respawn? service) - #:start #$(service-start service) - #:stop #$(service-stop service))) - services)) - - ;; guix-daemon 0.6 aborts if 'PATH' is undefined, so work around it. - (setenv "PATH" "/run/current-system/bin") - - (format #t "starting services...~%") - (for-each start '#$(append-map service-provision services)))) - - (gexp->file "dmd.conf" config)) + (define modules + ;; Extra modules visible to dmd.conf. + '((guix build syscalls))) + + (mlet %store-monad ((modules (imported-modules modules)) + (compiled (compiled-modules modules))) + (define config + #~(begin + (eval-when (expand load eval) + (set! %load-path (cons #$modules %load-path)) + (set! %load-compiled-path + (cons #$compiled %load-compiled-path))) + + (use-modules (ice-9 ftw) + (guix build syscalls)) + + (register-services + #$@(map (lambda (service) + #~(make + #:docstring '#$(service-documentation service) + #:provides '#$(service-provision service) + #:requires '#$(service-requirement service) + #:respawn? '#$(service-respawn? service) + #:start #$(service-start service) + #:stop #$(service-stop service))) + services)) + + ;; guix-daemon 0.6 aborts if 'PATH' is undefined, so work around it. + (setenv "PATH" "/run/current-system/bin") + + (format #t "starting services...~%") + (for-each start '#$(append-map service-provision services)))) + + (gexp->file "dmd.conf" config))) ;;; dmd.scm ends here -- cgit v1.2.3