diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-05-10 22:58:22 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-05-10 22:58:22 +0200 |
commit | 23ed63a12d941ad836f3fc9902ba4f145db1975c (patch) | |
tree | 789261b023ac8f6f1036bc5225020a75df4fc2e9 /gnu/services/dmd.scm | |
parent | 29fa45f45d3192ad0f8d2c46523d7a7d6422c9e9 (diff) | |
download | guix-23ed63a12d941ad836f3fc9902ba4f145db1975c.tar guix-23ed63a12d941ad836f3fc9902ba4f145db1975c.tar.gz |
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.
Diffstat (limited to 'gnu/services/dmd.scm')
-rw-r--r-- | gnu/services/dmd.scm | 56 |
1 files changed, 34 insertions, 22 deletions
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 <service> - #: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 <service> + #: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 |