From 1c6b445b40dd693e9c2741942156258a89ebdb8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 7 Jul 2014 23:58:02 +0200 Subject: [PATCH] services: Update to use the dmd 0.2 API. * gnu/services/avahi.scm (avahi-service)[start]: Wrap command in a list. * gnu/services/dbus.scm (dbus-service)[start]: Likewise. * gnu/services/ssh.scm (lsh-service): Likewise. * gnu/services/base.scm (mingetty-service)[start]: Likewise. (nscd-service)[start]: Likewise. (syslog-service)[start]: Likewise. (guix-service)[start]: Likewise. (udev-service)[start]: Use 'exec-command' instead of 'execl'. * gnu/services/xorg.scm (slim-service)[start]: Likewise, and use #:environment-variables. --- gnu/services/avahi.scm | 4 +-- gnu/services/base.scm | 55 ++++++++++++++++++------------------------ gnu/services/dbus.scm | 6 ++--- gnu/services/ssh.scm | 2 +- gnu/services/xorg.scm | 7 +++--- 5 files changed, 33 insertions(+), 41 deletions(-) diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm index 4ba1a513ab..e8da6be5f5 100644 --- a/gnu/services/avahi.scm +++ b/gnu/services/avahi.scm @@ -88,8 +88,8 @@ sockets." (requirement '(dbus-system networking)) (start #~(make-forkexec-constructor - (string-append #$avahi "/sbin/avahi-daemon") - "--syslog" "-f" #$config)) + (list (string-append #$avahi "/sbin/avahi-daemon") + "--syslog" "-f" #$config))) (stop #~(make-kill-destructor)) (activate #~(begin (use-modules (guix build utils)) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index bab07aa4b7..030121625b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -236,17 +236,17 @@ the \"message of the day\"." (requirement '(user-processes host-name)) (start #~(make-forkexec-constructor - (string-append #$mingetty "/sbin/mingetty") - "--noclear" #$tty - #$@(if auto-login - #~("--autologin" #$auto-login) - #~()) - #$@(if login-program - #~("--loginprog" #$login-program) - #~()) - #$@(if login-pause? - #~("--loginpause") - #~()))) + (list (string-append #$mingetty "/sbin/mingetty") + "--noclear" #$tty + #$@(if auto-login + #~("--autologin" #$auto-login) + #~()) + #$@(if login-program + #~("--loginprog" #$login-program) + #~()) + #$@(if login-pause? + #~("--loginpause") + #~())))) (stop #~(make-kill-destructor)) (pam-services @@ -269,10 +269,9 @@ the \"message of the day\"." (use-modules (guix build utils)) (mkdir-p "/var/run/nscd"))) - (start - #~(make-forkexec-constructor (string-append #$glibc "/sbin/nscd") - "-f" "/dev/null" - "--foreground")) + (start #~(make-forkexec-constructor + (list (string-append #$glibc "/sbin/nscd") + "-f" "/dev/null" "--foreground"))) (stop #~(make-kill-destructor)) (respawn? #f))))) @@ -310,10 +309,9 @@ the \"message of the day\"." (provision '(syslogd)) (requirement '(user-processes)) (start - #~(make-forkexec-constructor (string-append #$inetutils - "/libexec/syslogd") - "--no-detach" - "--rcfile" #$syslog.conf)) + #~(make-forkexec-constructor + (list (string-append #$inetutils "/libexec/syslogd") + "--no-detach" "--rcfile" #$syslog.conf))) (stop #~(make-kill-destructor)))))) (define* (guix-build-accounts count #:key @@ -387,10 +385,9 @@ hydra.gnu.org are used by default." (provision '(guix-daemon)) (requirement '(user-processes)) (start - #~(make-forkexec-constructor (string-append #$guix - "/bin/guix-daemon") - "--build-users-group" - #$builder-group)) + #~(make-forkexec-constructor + (list (string-append #$guix "/bin/guix-daemon") + "--build-users-group" #$builder-group))) (stop #~(make-kill-destructor)) (user-accounts accounts) (user-groups (list (user-group @@ -409,6 +406,9 @@ hydra.gnu.org are used by default." (requirement '(root-file-system)) (documentation "Populate the /dev directory.") (start #~(lambda () + (define udevd + (string-append #$udev "/libexec/udev/udevd")) + ;; Allow udev to find the modules. (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") @@ -416,14 +416,7 @@ hydra.gnu.org are used by default." (let ((pid (primitive-fork))) (case pid ((0) - ;; In dmd 0.1, file descriptor 0 is closed, thus - ;; is gets reused when open(2) is called, and it - ;; turns out that EPOLL_CTL_ADD of 0 returns - ;; EPERM for some reason. So make sure 0 is - ;; open. - ;; FIXME: Close the other descriptors. - (execl (string-append #$udev "/libexec/udev/udevd") - "udevd")) + (exec-command (list udevd))) (else ;; Wait for things to settle down. (system* (string-append #$udev "/bin/udevadm") diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 2f67e26a1e..6076317ee5 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -81,9 +81,9 @@ and policy files. For example, to allow avahi-daemon to use the system bus, (provision '(dbus-system)) (requirement '(user-processes)) (start #~(make-forkexec-constructor - (string-append #$dbus "/bin/dbus-daemon") - "--nofork" - (string-append "--config-file=" #$conf "/system.conf"))) + (list (string-append #$dbus "/bin/dbus-daemon") + "--nofork" + (string-append "--config-file=" #$conf "/system.conf")))) (stop #~(make-kill-destructor)) (user-groups (list (user-group (name "messagebus")))) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 6d40cb489b..fc46c345de 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -125,7 +125,7 @@ The other options should be self-descriptive." (documentation "GNU lsh SSH server") (provision '(ssh-daemon)) (requirement '(networking)) - (start #~(make-forkexec-constructor #$@lsh-command)) + (start #~(make-forkexec-constructor (list #$@lsh-command))) (stop #~(make-kill-destructor)) (pam-services (list (unix-pam-service diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 7215297f69..5eae4a87d8 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -163,11 +163,10 @@ reboot_cmd " dmd "/sbin/reboot (provision '(xorg-server)) (requirement '(user-processes host-name)) (start - ;; XXX: Work around the inability to specify env. vars. directly. #~(make-forkexec-constructor - (string-append #$bash "/bin/sh") "-c" - (string-append "SLIM_CFGFILE=" #$slim.cfg - " " #$slim "/bin/slim" " -nodaemon"))) + (list (string-append #$slim "/bin/slim") "-nodaemon") + #:environment-variables + (list (string-append "SLIM_CFGFILE=" #$slim.cfg)))) (stop #~(make-kill-destructor)) (respawn? #t) (pam-services