~ruther/guix-local

349746dfcd9a07e3b5908d459d0800fd5d44c3b9 — Ludovic Courtès 12 years ago de8bcda
gnu: vm: Add nscd service.

* gnu/system/dmd.scm (nscd-service): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.  Make /var/run/nscd.
2 files changed, 24 insertions(+), 2 deletions(-)

M gnu/system/dmd.scm
M gnu/system/vm.scm
M gnu/system/dmd.scm => gnu/system/dmd.scm +21 -0
@@ 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."


M gnu/system/vm.scm => gnu/system/vm.scm +3 -2
@@ 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")