mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
services: Extend polkit capabilities of gnome-desktop-service.
As with our udev extension, this makes it so that all inputs are considered modulo a new ignorelist. * gnu/services/desktop.scm (gnome-desktop-configuration): Add polkit-ignorelist. (gnome-polkit-settings): Adjust accordingly.
This commit is contained in:
parent
07bfe15383
commit
acaa89ae42
1 changed files with 27 additions and 17 deletions
|
@ -1425,7 +1425,12 @@ (define-configuration/no-serialization gnome-desktop-configuration
|
|||
"A list of regular expressions denoting udev rules or hardware file names
|
||||
provided by any package that should not be installed. By default, every udev
|
||||
rule and hardware file specified by any package referenced in the other fields
|
||||
are installed."))
|
||||
are installed.")
|
||||
(polkit-ignorelist
|
||||
(list-of-strings '())
|
||||
"A list of regular expressions denoting polkit rules provided by any package
|
||||
that should not be installed. By default, every polkit rule added by any package
|
||||
referenced in the other fields are installed."))
|
||||
|
||||
(define (gnome-package gnome name)
|
||||
"Return the package NAME among the GNOME package inputs. NAME can be a
|
||||
|
@ -1467,22 +1472,27 @@ (define (gnome-udev-configuration-files config)
|
|||
(define (gnome-polkit-settings config)
|
||||
"Return the list of GNOME dependencies that provide polkit actions and
|
||||
rules."
|
||||
(let ((gnome (gnome-desktop-configuration-gnome config))
|
||||
(shell (gnome-desktop-configuration-shell config)))
|
||||
(or (any (match-lambda ((and pkg (= package-name "gvfs")) (list pkg))
|
||||
(_ #f))
|
||||
shell)
|
||||
(and (maybe-value-set? gnome)
|
||||
(gnome-packages gnome
|
||||
'("gnome-settings-daemon"
|
||||
"gnome-control-center"
|
||||
"gnome-system-monitor"
|
||||
"gvfs")))
|
||||
(raise
|
||||
(condition
|
||||
(&error-location
|
||||
(location (gnome-desktop-configuration-source-location config)))
|
||||
(&message (message (G_ "Missing gvfs"))))))))
|
||||
(list
|
||||
(computed-file
|
||||
"gnome-polkit-settings"
|
||||
(with-imported-modules
|
||||
(source-module-closure '((guix build utils)
|
||||
(guix build union)))
|
||||
#~(let ((output (string-append #$output "/share/polkit-1")))
|
||||
(use-modules (guix build utils)
|
||||
(guix build union))
|
||||
(mkdir-p (dirname output))
|
||||
(union-build output
|
||||
(search-path-as-list
|
||||
(list "share/polkit-1")
|
||||
(list #$@(gnome-profile config)))
|
||||
#:create-all-directories? #t)
|
||||
(for-each
|
||||
(lambda (pattern)
|
||||
(for-each
|
||||
delete-file-recursively
|
||||
(find-files output pattern)))
|
||||
(list #$@(gnome-desktop-configuration-polkit-ignorelist config))))))))
|
||||
|
||||
(define (gnome-profile config)
|
||||
"Return a list of packages propagated through CONFIG."
|
||||
|
|
Loading…
Reference in a new issue