summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-02-16 12:21:39 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-02-25 14:46:54 -0500
commitacbb112c1b40adb03f3f72c8c8f5bbf2b51c08d6 (patch)
tree0f019505ad131ae5953fc343a797bd9d189ca28b
parenta02189e4cad445659f2256027d8c44207af45870 (diff)
downloadguix-acbb112c1b40adb03f3f72c8c8f5bbf2b51c08d6.tar.gz
services: gnome-polkit-settings: Add spice-gtk.
* gnu/services/desktop.scm (gnome-polkit-settings): Add spice-gtk to the GNOME
packages providing polkit rules.
(package-direct-input-selector): Allow passing a list corresponding to the
dependency tree, so that non-propagated transitive inputs can be specified.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r--gnu/services/desktop.scm23
1 files changed, 17 insertions, 6 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index fe1f0fd20a..189334dc23 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2017, 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2017, 2020, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@@ -183,11 +183,19 @@
 (define (bool value)
   (if value "true\n" "false\n"))
 
-(define (package-direct-input-selector input)
+(define (package-direct-input-selector tree)
+  "Return a procedure that selects TREE from the inputs of PACKAGE.  If TREE
+is a list, it recursively searches it until it locates the last item of TREE."
   (lambda (package)
-    (match (assoc-ref (package-direct-inputs package) input)
-      ((package . _) package))))
-
+    (let loop ((tree (if (pair? tree)
+                         tree
+                         (list tree)))
+               (package package))
+      (if (null? tree)
+          package
+          (loop (cdr tree)
+                (car (assoc-ref (package-direct-inputs package)
+                                (car tree))))))))
 
 
 ;;;
@@ -1360,7 +1368,10 @@ rules."
                   '("gnome-settings-daemon"
                     "gnome-control-center"
                     "gnome-system-monitor"
-                    "gvfs")))
+                    "gvfs"
+                    ;; spice-gtk provides polkit actions for USB redirection
+                    ;; in GNOME Boxes.
+                    ("gnome-boxes" "spice-gtk"))))
 
 (define gnome-desktop-service-type
   (service-type