From patchwork Mon Feb 5 18:30:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivien Kraus X-Patchwork-Id: 59858 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 800BE27BBEB; Mon, 5 Feb 2024 23:32:33 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2EEA627BBEC for ; Mon, 5 Feb 2024 23:32:28 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rX8RM-0001EV-Kv; Mon, 05 Feb 2024 18:31:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rX8RK-0001DA-98 for guix-patches@gnu.org; Mon, 05 Feb 2024 18:31:50 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rX8RK-0003ol-0T for guix-patches@gnu.org; Mon, 05 Feb 2024 18:31:50 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rX8RW-00075F-Pk for guix-patches@gnu.org; Mon, 05 Feb 2024 18:32:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68716] [PATCH gnome-team v3 5/5] services: gnome: Use a blocklist for udev configurations. Resent-From: Vivien Kraus Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 05 Feb 2024 23:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68716 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 68716@debbugs.gnu.org Cc: rg@raghavgururajan.name, vivien@planete-kraus.eu, liliana.prikler@gmail.com, maxim.cournoyer@gmail.com Received: via spool by 68716-submit@debbugs.gnu.org id=B68716.170717588327141 (code B ref 68716); Mon, 05 Feb 2024 23:32:02 +0000 Received: (at 68716) by debbugs.gnu.org; 5 Feb 2024 23:31:23 +0000 Received: from localhost ([127.0.0.1]:52806 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rX8Qs-00073g-Dw for submit@debbugs.gnu.org; Mon, 05 Feb 2024 18:31:22 -0500 Received: from planete-kraus.eu ([89.234.140.182]:54456) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rX8Ql-00072m-2v for 68716@debbugs.gnu.org; Mon, 05 Feb 2024 18:31:16 -0500 Received: from planete-kraus.eu (localhost [127.0.0.1]) by planete-kraus.eu (OpenSMTPD) with ESMTP id cc0f6ad3; Mon, 5 Feb 2024 23:30:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=planete-kraus.eu; h= message-id:in-reply-to:references:from:date:subject:to:cc :mime-version; s=albinoniB; bh=JepUA8O+J6uPi4mDdMnf+IM3XVg=; b=A 9Mg0tYeMRW0rexKH4jMdFCMLAYXBm1HqwMdKQ5quFfjeksjg24VYQgqrdIJGvuk2 BA8jDuk1tai5S1k8Y2Q0qbIIS+Up+4/NEt/Trnc+gy97QUt4TBx418a628euEU6K iaI1+i0Nc9a9oddsauIxjIXEFM7dw5cY5D7wncrJ/x2Rc1xds5gbMi7/WA0CiguU QzPwgwX2fPkPuX22ecCH+nrfQQ4GqEeMtTKNYFYKCGWlNsLbRUP6sJX2xVWLrsVg QFOFVaEVk76emUn7J0woe73d1mmB4TbBLpEmFyfC5quqDUst5Q1bUHMUAgP9rT+s 2fr/mEWCA8kYoXueiMAnA== Received: by planete-kraus.eu (OpenSMTPD) with ESMTPSA id 0addf52a (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Mon, 5 Feb 2024 23:30:56 +0000 (UTC) Message-ID: <2887b3fe20091da84408d10cc25f17b160d184ab.1707175669.git.vivien@planete-kraus.eu> In-Reply-To: References: Date: Mon, 5 Feb 2024 19:30:25 +0100 MIME-Version: 1.0 User-Agent: Evolution 3.48.4 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Vivien Kraus X-ACL-Warn: , Vivien Kraus via Guix-patches X-Patchwork-Original-From: Vivien Kraus via Guix-patches via From: Vivien Kraus Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches The gnome-udev-configuration-files now lists every udev rule and hardware file, and remove files based on a user-supplied list of regular expressions. * gnu/services/desktop.scm (gnome-desktop-configuration): Add the udev-blocklist field. (gnome-udev-configuration-files): Change behavior. Change-Id: I6df4b896652581c42a35ea3ba1e4849ad72d12ef --- gnu/services/desktop.scm | 46 +++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 263ae61698..f04e99ba9a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -87,6 +87,7 @@ (define-module (gnu services desktop) #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix gexp) + #:use-module (guix modules) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) @@ -156,6 +157,7 @@ (define-module (gnu services desktop) gnome-desktop-configuration-shell gnome-desktop-configuration-utilities gnome-desktop-configuration-extra-packages + gnome-desktop-configuration-udev-blocklist gnome-desktop-service gnome-desktop-service-type @@ -1494,7 +1496,12 @@ (define-configuration/no-serialization gnome-desktop-configuration "A list of GNOME-adjacent packages to also include. This field is intended for users to add their own packages to their GNOME experience. Note, that it already includes some packages that are considered essential by some (most?) -GNOME users.")) +GNOME users.") + (udev-blocklist + (list-of-strings '()) + "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 all packages are installed.")) (define (gnome-package gnome name) "Return the package NAME among the GNOME package inputs. NAME can be a @@ -1509,20 +1516,29 @@ (define (gnome-packages gnome names) (define (gnome-udev-configuration-files config) "Return the list of GNOME dependencies that provide udev rules and hardware files." - (let* ((gnome (gnome-desktop-configuration-gnome config)) - (shell (gnome-desktop-configuration-shell config))) - (or (any (match-lambda - ((and pkg (= package-name "gnome-settings-daemon")) - (list pkg)) - (_ #f)) - shell) - (and (maybe-value-set? gnome) - (gnome-packages gnome '("gnome-settings-daemon"))) - (raise - (condition - (&error-location - (location (gnome-desktop-configuration-source-location config))) - (&message (message (G_ "Missing gnome-settings-daemon")))))))) + (list + (computed-file + "gnome-udev-configurations" + (with-imported-modules + (source-module-closure '((guix build utils) + (guix build union))) + #~(begin + (use-modules (guix build utils) + (guix build union)) + ;; If rules.d or hwdb.d is not a proper directory but a symlink, + ;; then it will not be possible to delete individual files in this + ;; directory. + (union-build #$output + (search-path-as-list + (list "lib/udev" "libexec/udev") + (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-udev-blocklist config)))))))) (define (gnome-polkit-settings config) "Return the list of GNOME dependencies that provide polkit actions and