aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/dmd.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-05-10 22:58:22 +0200
committerLudovic Courtès <ludo@gnu.org>2014-05-10 22:58:22 +0200
commit23ed63a12d941ad836f3fc9902ba4f145db1975c (patch)
tree789261b023ac8f6f1036bc5225020a75df4fc2e9 /gnu/services/dmd.scm
parent29fa45f45d3192ad0f8d2c46523d7a7d6422c9e9 (diff)
downloadguix-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.scm56
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