From abadd0f81f71284ba963084ab17c2e72def3afcd Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 17 Feb 2023 09:16:17 -0500 Subject: [PATCH] services: desktop: Extract a new gnome-package procedure. * gnu/services/desktop.scm (): Rename gnome package accessor to gnome-desktop-configuration-gnome, to avoid name conflict. (gnome-packages): Change first argument from a config object to a the gnome package used. Rename second argument from package to name. Extract core logic into... (gnome-package): ... this. (gnome-udev-rules, gnome-polkit-settings): Adjust accordingly. (gnome-desktop-service-type): Likewise. Signed-off-by: Maxim Cournoyer --- gnu/services/desktop.scm | 43 ++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 189334dc23..5ddfbb9e53 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -73,6 +73,7 @@ (define-module (gnu services desktop) #:use-module (guix utils) #:use-module (guix gexp) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (ice-9 format) #:use-module (ice-9 match) #:export ( @@ -1347,31 +1348,36 @@ (define sane-service-type (define-record-type* gnome-desktop-configuration make-gnome-desktop-configuration gnome-desktop-configuration? - (gnome gnome-package (default gnome))) + (gnome gnome-desktop-configuration-gnome + (default gnome))) -(define (gnome-packages config packages) - "Return the list of GNOME dependencies from CONFIG which names are part of -the given PACKAGES list." - (let ((gnome (gnome-package config))) - (map (lambda (name) - ((package-direct-input-selector name) gnome)) - packages))) +(define (gnome-package gnome name) + "Return the package NAME among the GNOME package inputs. NAME can be a +single name or a tree-like, e.g. @code{'(\"gnome-boxes\" \"spice-gtk\")} to +denote the spice-gtk input of the gnome-boxes input of the GNOME meta-package." + ((package-direct-input-selector name) gnome)) + +(define (gnome-packages gnome names) + "Return the package NAMES among the GNOME package inputs." + (map (cut gnome-package gnome <>) names)) (define (gnome-udev-rules config) "Return the list of GNOME dependencies that provide udev rules." - (gnome-packages config '("gnome-settings-daemon"))) + (let ((gnome (gnome-desktop-configuration-gnome config))) + (gnome-packages gnome '("gnome-settings-daemon")))) (define (gnome-polkit-settings config) "Return the list of GNOME dependencies that provide polkit actions and rules." - (gnome-packages config - '("gnome-settings-daemon" - "gnome-control-center" - "gnome-system-monitor" - "gvfs" - ;; spice-gtk provides polkit actions for USB redirection - ;; in GNOME Boxes. - ("gnome-boxes" "spice-gtk")))) + (let ((gnome (gnome-desktop-configuration-gnome config))) + (gnome-packages gnome + '("gnome-settings-daemon" + "gnome-control-center" + "gnome-system-monitor" + "gvfs" + ;; spice-gtk provides polkit actions for USB redirection + ;; in GNOME Boxes. + ("gnome-boxes" "spice-gtk"))))) (define gnome-desktop-service-type (service-type @@ -1382,8 +1388,7 @@ (define gnome-desktop-service-type (service-extension polkit-service-type gnome-polkit-settings) (service-extension profile-service-type - (compose list - gnome-package)))) + (compose list gnome-desktop-configuration-gnome)))) (default-value (gnome-desktop-configuration)) (description "Run the GNOME desktop environment.")))