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.master
parent
cde0402169
commit
26909789d0
|
@ -245,17 +245,6 @@ levels, with the given configuration settings. It implements the
|
||||||
(home-directory "/var/empty")
|
(home-directory "/var/empty")
|
||||||
(shell #~(string-append #$shadow "/sbin/nologin")))))
|
(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
|
(define colord-service-type
|
||||||
(service-type (name 'colord)
|
(service-type (name 'colord)
|
||||||
(extensions
|
(extensions
|
||||||
|
@ -263,8 +252,6 @@ levels, with the given configuration settings. It implements the
|
||||||
(const %colord-accounts))
|
(const %colord-accounts))
|
||||||
(service-extension activation-service-type
|
(service-extension activation-service-type
|
||||||
(const %colord-activation))
|
(const %colord-activation))
|
||||||
(service-extension dmd-root-service-type
|
|
||||||
colord-dmd-service)
|
|
||||||
|
|
||||||
;; Colord is a D-Bus service that dbus-daemon can
|
;; Colord is a D-Bus service that dbus-daemon can
|
||||||
;; activate.
|
;; activate.
|
||||||
|
@ -343,23 +330,6 @@ users are allowed."
|
||||||
"GEOCLUE_CONFIG_FILE"
|
"GEOCLUE_CONFIG_FILE"
|
||||||
(geoclue-configuration-file config))))
|
(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
|
(define %geoclue-accounts
|
||||||
(list (user-group (name "geoclue") (system? #t))
|
(list (user-group (name "geoclue") (system? #t))
|
||||||
(user-account
|
(user-account
|
||||||
|
@ -375,8 +345,6 @@ users are allowed."
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension dbus-root-service-type
|
(list (service-extension dbus-root-service-type
|
||||||
geoclue-dbus-service)
|
geoclue-dbus-service)
|
||||||
(service-extension dmd-root-service-type
|
|
||||||
geoclue-dmd-service)
|
|
||||||
(service-extension account-service-type
|
(service-extension account-service-type
|
||||||
(const %geoclue-accounts))))))
|
(const %geoclue-accounts))))))
|
||||||
|
|
||||||
|
@ -426,18 +394,6 @@ site} for more information."
|
||||||
(define %polkit-pam-services
|
(define %polkit-pam-services
|
||||||
(list (unix-pam-service "polkitd")))
|
(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
|
(define polkit-service-type
|
||||||
;; TODO: Make it extensible so it can collect policy files from other
|
;; TODO: Make it extensible so it can collect policy files from other
|
||||||
;; services.
|
;; services.
|
||||||
|
@ -448,9 +404,7 @@ site} for more information."
|
||||||
(service-extension pam-root-service-type
|
(service-extension pam-root-service-type
|
||||||
(const %polkit-pam-services))
|
(const %polkit-pam-services))
|
||||||
(service-extension dbus-root-service-type
|
(service-extension dbus-root-service-type
|
||||||
list)
|
list)))))
|
||||||
(service-extension dmd-root-service-type
|
|
||||||
polkit-dmd-service)))))
|
|
||||||
|
|
||||||
(define* (polkit-service #:key (polkit polkit))
|
(define* (polkit-service #:key (polkit polkit))
|
||||||
"Return a service that runs the @command{polkit} privilege management
|
"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)
|
(define (elogind-dmd-service config)
|
||||||
"Return a dmd service for elogind, using @var{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))
|
(let ((config-file (elogind-configuration-file config))
|
||||||
(elogind (elogind-package config)))
|
(elogind (elogind-package config)))
|
||||||
(list (dmd-service
|
(list (dmd-service
|
||||||
|
|
Reference in New Issue