;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2015 Andy Wingo ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu services polkit) #:use-module (gnu services) #:use-module (gnu system shadow) #:use-module (gnu packages polkit) #:use-module (ice-9 match) #:use-module (guix monads) #:use-module (guix store) #:use-module (guix gexp) #:export (polkit-application %standard-polkit-applications polkit-service)) ;;; Commentary: ;;; ;;; This module provides a service definition for Polkit, the privilege ;;; management service. ;;; ;;; Code: (define (bool value) (if value "true\n" "false\n")) (define* (polkit-service #:key (polkit polkit)) "Return a service that runs the @command{polkit} location service." (with-monad %store-monad (return (service (documentation "Run the Polkit privilege management.") (provision '(polkit-daemon)) (requirement '(dbus-system)) (start #~(make-forkexec-constructor (list (string-append #$polkit "/lib/polkit-1/polkitd")))) (stop #~(make-kill-destructor)) (user-groups (list (user-group (name "polkitd") (system? #t)))) (user-accounts (list (user-account (name "polkitd") (group "polkitd") (system? #t) (comment "Polkit daemon user") (home-directory "/var/empty") (shell "/run/current-system/profile/sbin/nologin")))))))) ;;; polkit.scm ends here