~ruther/guix-local

34044d551f84cd5cd2568145f4ad3eaf690154ba — Alex Kost 10 years ago d312a83
Use 'shepherd' instead of 'dmd' as init system.

* gnu/services/dmd.scm (dmd-boot-gexp): Use binary from 'shepherd' package.
  (dmd-root-service-type): Use 'shepherd' package.
  (%default-modules): Use (shepherd service) module.
* gnu/services/base.scm (%root-file-system-dmd-service): Use
  'stop-logging' procedure to close shepherd log.
2 files changed, 8 insertions(+), 11 deletions(-)

M gnu/services/base.scm
M gnu/services/dmd.scm
M gnu/services/base.scm => gnu/services/base.scm +3 -6
@@ 1,6 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;;


@@ 160,12 160,9 @@
             (call-with-blocked-asyncs
              (lambda ()
                (let ((null (%make-void-port "w")))
                  ;; Close 'dmd.log'.
                  ;; Close 'shepherd.log'.
                  (display "closing log\n")
                  ;; XXX: Ideally we'd use 'stop-logging', but that one
                  ;; doesn't actually close the port as of dmd 0.1.
                  (close-port (@@ (dmd comm) log-output-port))
                  (set! (@@ (dmd comm) log-output-port) null)
                  ((@ (shepherd comm) stop-logging))

                  ;; Redirect the default output ports..
                  (set-current-output-port null)

M gnu/services/dmd.scm => gnu/services/dmd.scm +5 -5
@@ 77,9 77,9 @@
                    (false-if-exception (close-fdes fd))
                    (loop (+ 1 fd))))

                ;; Start dmd.
                (execl (string-append #$dmd "/bin/dmd")
                       "dmd" "--config" #$dmd-conf)))))
                ;; Start shepherd.
                (execl (string-append #$shepherd "/bin/shepherd")
                       "shepherd" "--config" #$dmd-conf)))))

(define dmd-root-service-type
  (service-type


@@ 90,7 90,7 @@
   (extend append)
   (extensions (list (service-extension boot-service-type dmd-boot-gexp)
                     (service-extension profile-service-type
                                        (const (list dmd)))))))
                                        (const (list shepherd)))))))

(define %dmd-root-service
  ;; The root dmd service, aka. PID 1.  Its parameter is a list of


@@ 113,7 113,7 @@ service that extends DMD-ROOT-SERVICE-TYPE and nothing else."

(define %default-modules
  ;; Default set of modules visible in a service's file.
  `((dmd service)
  `((shepherd service)
    (oop goops)
    (guix build utils)
    (guix build syscalls)))