~ruther/guix-local

063c6082619d13ed10a448ad3d84025921c0fdea — Andy Wingo 8 years ago e76008d
gnu: Add AccountsService service to desktop services.

* doc/guix.texi (Desktop Services): Add accountsservice-service.
* gnu/services/desktop.scm (%accountsservice-activation):
(accountsservice-service-type): New public variables.
(%desktop-services): Add accountsservice-service.
2 files changed, 52 insertions(+), 8 deletions(-)

M doc/guix.texi
M gnu/services/desktop.scm
M doc/guix.texi => doc/guix.texi +21 -8
@@ 11572,14 11572,14 @@ This is a list of services that builds upon @var{%base-services} and
adds or adjusts services for a typical ``desktop'' setup.

In particular, it adds a graphical login manager (@pxref{X Window,
@code{slim-service}}), screen lockers,
a network management tool (@pxref{Networking
Services, @code{wicd-service}}), energy and color management services,
the @code{elogind} login and seat manager, the Polkit privilege service,
the GeoClue location service, an NTP client (@pxref{Networking
Services}), the Avahi daemon, and has the name service switch service
configured to be able to use @code{nss-mdns} (@pxref{Name Service
Switch, mDNS}).
@code{slim-service}}), screen lockers, a network management tool
(@pxref{Networking Services, @code{wicd-service}}), energy and color
management services, the @code{elogind} login and seat manager, the
Polkit privilege service, the GeoClue location service, the
AccountsService daemon that allows authorized users change system
passwords, an NTP client (@pxref{Networking Services}), the Avahi
daemon, and has the name service switch service configured to be able to
use @code{nss-mdns} (@pxref{Name Service Switch, mDNS}).
@end defvr

The @var{%desktop-services} variable can be used as the @code{services}


@@ 11722,6 11722,19 @@ their default values are:
@end table
@end deffn

@deffn {Scheme Procedure} accountsservice-service @
       [#:accountsservice @var{accountsservice}]
Return a service that runs AccountsService, a system service that can
list available accounts, change their passwords, and so on.
AccountsService integrates with PolicyKit to enable unprivileged users
to acquire the capability to modify their system configuration.
@uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the
accountsservice web site} for more information.

The @var{accountsservice} keyword argument is the @code{accountsservice}
package to expose as a service.
@end deffn

@deffn {Scheme Procedure} polkit-service @
                         [#:polkit @var{polkit}]
Return a service that runs the

M gnu/services/desktop.scm => gnu/services/desktop.scm +31 -0
@@ 73,6 73,9 @@
            elogind-service
            elogind-service-type

            accountsservice-service-type
            accountsservice-service

            gnome-desktop-configuration
            gnome-desktop-configuration?
            gnome-desktop-service


@@ 705,6 708,33 @@ when they log out."


;;;
;;; AccountsService service.
;;;

(define %accountsservice-activation
  #~(begin
      (use-modules (guix build utils))
      (mkdir-p "/var/lib/AccountsService")))

(define accountsservice-service-type
  (service-type (name 'accountsservice)
                (extensions
                 (list (service-extension activation-service-type
                                          (const %accountsservice-activation))
                       (service-extension dbus-root-service-type list)
                       (service-extension polkit-service-type list)))))

(define* (accountsservice-service #:key (accountsservice accountsservice))
  "Return a service that runs AccountsService, a system service that
can list available accounts, change their passwords, and so on.
AccountsService integrates with PolicyKit to enable unprivileged users to
acquire the capability to modify their system configuration.
@uref{https://www.freedesktop.org/wiki/Software/AccountsService/, the
accountsservice web site} for more information."
  (service accountsservice-service-type accountsservice))


;;;
;;; GNOME desktop service.
;;;



@@ 783,6 813,7 @@ with the administrator's password."
         (wicd-service)
         (udisks-service)
         (upower-service)
         (accountsservice-service)
         (colord-service)
         (geoclue-service)
         (polkit-service)