aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/dmd.scm21
-rw-r--r--gnu/system/vm.scm5
2 files changed, 24 insertions, 2 deletions
diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm
index 7fc4650c25..b248d9f0c5 100644
--- a/gnu/system/dmd.scm
+++ b/gnu/system/dmd.scm
@@ -21,6 +21,8 @@
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix records)
+ #:use-module ((gnu packages base)
+ #:select (glibc-final))
#:use-module ((gnu packages system)
#:select (mingetty inetutils))
#:use-module ((gnu packages package-management)
@@ -39,6 +41,7 @@
host-name-service
syslog-service
mingetty-service
+ nscd-service
guix-service
static-networking-service
@@ -87,6 +90,24 @@
(start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
(inputs `(("mingetty" ,mingetty))))))
+(define* (nscd-service store
+ #:key (glibc glibc-final))
+ "Return a service that runs libc's name service cache daemon (nscd)."
+ (let ((nscd (string-append (package-output store glibc) "/sbin/nscd")))
+ (service
+ (provision '(nscd))
+ (start `(make-forkexec-constructor ,nscd "-f" "/dev/null"))
+
+ ;; XXX: Local copy of 'make-kill-destructor' because the one upstream
+ ;; uses the broken 'opt-lambda' macro.
+ (stop `(lambda* (#:optional (signal SIGTERM))
+ (lambda (pid . args)
+ (kill pid signal)
+ #f)))
+
+ (respawn? #f)
+ (inputs `(("glibc" ,glibc))))))
+
(define (syslog-service store)
"Return a service that runs 'syslogd' with reasonable default settings."
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index b873386606..0ed805510a 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -456,6 +456,7 @@ Happy birthday, GNU! http://www.gnu.org/gnu30
(mingetty-service store "tty6")
(syslog-service store)
(guix-service store #:guix guix-0.4)
+ (nscd-service store)
;; QEMU networking settings.
(static-networking-service store "eth0" "10.0.2.10")))
@@ -517,8 +518,8 @@ You can log in as 'root' with no password.
"))
(populate `((directory "/etc")
- (directory "/var/log")
- (directory "/var/run")
+ (directory "/var/log") ; for dmd
+ (directory "/var/run/nscd")
("/etc/shadow" -> ,shadow)
("/etc/passwd" -> ,passwd)
("/etc/login.defs" -> "/dev/null")