~ruther/guix-local

26909789d06b1e006ff45980aac59d3faa31436e — Ludovic Courtès 10 years ago cde0402
services: Rely on D-Bus activation for colord, geoclue, and polkit.

* gnu/services/desktop.scm (colord-dmd-service): Remove.
  (colord-service-type): Adjust accordingly.
  (geoclue-dmd-service): Remove.
  (geoclue-service-type): Adjust accordingly.
  (polkit-dmd-service): Remove.
  (polkit-service-type): Adjust accordingly.
1 files changed, 3 insertions(+), 47 deletions(-)

M gnu/services/desktop.scm
M gnu/services/desktop.scm => gnu/services/desktop.scm +3 -47
@@ 245,17 245,6 @@ levels, with the given configuration settings.  It implements the
         (home-directory "/var/empty")
         (shell #~(string-append #$shadow "/sbin/nologin")))))

(define (colord-dmd-service colord)
  "Return a dmd service for COLORD."
  ;; TODO: Remove when D-Bus activation works.
  (list (dmd-service
         (documentation "Run the colord color management service.")
         (provision '(colord-daemon))
         (requirement '(dbus-system udev))
         (start #~(make-forkexec-constructor
                   (list (string-append #$colord "/libexec/colord"))))
         (stop #~(make-kill-destructor)))))

(define colord-service-type
  (service-type (name 'colord)
                (extensions


@@ 263,8 252,6 @@ levels, with the given configuration settings.  It implements the
                                          (const %colord-accounts))
                       (service-extension activation-service-type
                                          (const %colord-activation))
                       (service-extension dmd-root-service-type
                                          colord-dmd-service)

                       ;; Colord is a D-Bus service that dbus-daemon can
                       ;; activate.


@@ 343,23 330,6 @@ users are allowed."
                              "GEOCLUE_CONFIG_FILE"
                              (geoclue-configuration-file config))))

(define (geoclue-dmd-service config)
  "Return a GeoClue dmd service for CONFIG."
  ;; TODO: Remove when D-Bus activation works.
  (let ((geoclue (geoclue-configuration-geoclue config))
        (config  (geoclue-configuration-file config)))
    (list (dmd-service
           (documentation "Run the GeoClue location service.")
           (provision '(geoclue-daemon))
           (requirement '(dbus-system))

           (start #~(make-forkexec-constructor
                     (list (string-append #$geoclue "/libexec/geoclue"))
                     #:user "geoclue"
                     #:environment-variables
                     (list (string-append "GEOCLUE_CONFIG_FILE=" #$config))))
           (stop #~(make-kill-destructor))))))

(define %geoclue-accounts
  (list (user-group (name "geoclue") (system? #t))
        (user-account


@@ 375,8 345,6 @@ users are allowed."
                (extensions
                 (list (service-extension dbus-root-service-type
                                          geoclue-dbus-service)
                       (service-extension dmd-root-service-type
                                          geoclue-dmd-service)
                       (service-extension account-service-type
                                          (const %geoclue-accounts))))))



@@ 426,18 394,6 @@ site} for more information."
(define %polkit-pam-services
  (list (unix-pam-service "polkitd")))

(define (polkit-dmd-service polkit)
  "Return the <dmd-service> for POLKIT."
  ;; TODO: Remove when D-Bus activation works.
  (list (dmd-service
         (documentation "Run the polkit privilege management service.")
         (provision '(polkit-daemon))
         (requirement '(dbus-system))

         (start #~(make-forkexec-constructor
                   (list (string-append #$polkit "/lib/polkit-1/polkitd"))))
         (stop #~(make-kill-destructor)))))

(define polkit-service-type
  ;; TODO: Make it extensible so it can collect policy files from other
  ;; services.


@@ 448,9 404,7 @@ site} for more information."
                       (service-extension pam-root-service-type
                                          (const %polkit-pam-services))
                       (service-extension dbus-root-service-type
                                          list)
                       (service-extension dmd-root-service-type
                                          polkit-dmd-service)))))
                                          list)))))

(define* (polkit-service #:key (polkit polkit))
  "Return a service that runs the @command{polkit} privilege management


@@ 601,6 555,8 @@ the system if the user is logged in locally."

(define (elogind-dmd-service config)
  "Return a dmd service for elogind, using @var{config}."
  ;; TODO: We could probably rely on service activation but the '.service'
  ;; file currently contains an erroneous 'Exec' line.
  (let ((config-file (elogind-configuration-file config))
        (elogind     (elogind-package config)))
    (list (dmd-service