From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 09 18:05:49 2021 Received: (at submit) by debbugs.gnu.org; 9 Apr 2021 22:05:49 +0000 Received: from localhost ([127.0.0.1]:51084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUzG8-0004vU-R3 for submit@debbugs.gnu.org; Fri, 09 Apr 2021 18:05:49 -0400 Received: from lists.gnu.org ([209.51.188.17]:33012) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUzG7-0004vN-EO for submit@debbugs.gnu.org; Fri, 09 Apr 2021 18:05:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47066) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lUzG7-0007zM-AA for bug-guix@gnu.org; Fri, 09 Apr 2021 18:05:47 -0400 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]:39824) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lUzG5-00064L-KV for bug-guix@gnu.org; Fri, 09 Apr 2021 18:05:46 -0400 Received: by mail-qk1-x72f.google.com with SMTP id q26so7435625qkm.6 for ; Fri, 09 Apr 2021 15:05:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=O324hKJvG80TTEhMkzDA8qpr3+IDHxcVq7qWmgpJ9C0=; b=fRhUUnTJFftCQM2EhVRzCmSoHwVp1OAk+JJTwFo4+/JqcomKkKBJdZMnf7aQxJ7UMB iRwuH/hIJZ58mWPvJxx7Yp2lZEYxWdI+mdnMOztS9wpyt7zZg6YeMFuyzGTT/ZT4VHsc syCWYlHeY67ERHSVqmr49Fzu5KwqNv0abXjabYAk0nqEHfNAIjeWUeVsPGspqi2jVJjV nNblt9yi5PnJ7mI2FwR+PwH16BI/sIJ2wauPlwCUFSJqT+v1tR8cS5nJh9E6UGBopMEi u87qGbp2PqeQLZfArfFRNkYZTqnnfqt8mM/J2wCT8VVUMutnc+kkjplaHGiOIRDNl6NW gGGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=O324hKJvG80TTEhMkzDA8qpr3+IDHxcVq7qWmgpJ9C0=; b=GC54uk1FiNbFy7hNYFKYzEPogJqrmziNtpTMs/9Zyi7KsRTSZ45s+kTJGlIf5DGhtZ Dpv4+v7YVopJyu7WqbWtbTmWUEb/MRLsiYHKrFY5h+mipz/ml0jOCMPqRhpq8cWXkQNk 05jm2/xA80belLIu7xbmslXMHwLnQ6yoh1HQn00ZYwIi5NpYGsfgXHiu/wav+RZOsfl6 lUmfYBQEH1Ksc/ReXVW7uxjMF16iPPxHg7Dl3shuXsJbgYGZ5nMawhLdlXYZLjquw5LM axQsdWwu7q1RqWK5hnkcWSfAdPWFi43dRMAXL7ncCKWSjQEeS8GVSP8byVueOFfi4MPT /K2Q== X-Gm-Message-State: AOAM532qcHfD2TGx+8B0Pjt+i7p1RLOKjgu1rj97iDIb3lok7bY3hE9C P1lpDPlqZe/jkih5qNteOr+Cr7Z9Pw0= X-Google-Smtp-Source: ABdhPJwBopmPPeWnvJqyQCGyNdUf8QbzuZyVXgig51C9ne2IDAOlLK3gtf1FST4Z5HOOkygomd67AA== X-Received: by 2002:a37:d2c7:: with SMTP id f190mr16381018qkj.445.1618005944167; Fri, 09 Apr 2021 15:05:44 -0700 (PDT) Received: from hurd (dsl-236-123-235.b2b2c.ca. [207.236.123.235]) by smtp.gmail.com with ESMTPSA id r17sm2631777qtx.62.2021.04.09.15.05.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 15:05:43 -0700 (PDT) From: Maxim Cournoyer To: bug-guix Subject: Reloading udev rules requires a system restart Date: Fri, 09 Apr 2021 18:05:37 -0400 Message-ID: <87eefjdsge.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::72f; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qk1-x72f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hello Guix! Using Guix System, after adding a new rule to the configuration of their udev-service-type service, the only ways to get the new rule into effect are to either: 1. restart udev (which is almost the same as a reboot, bringing down your graphical session) 2. restart the operating system Both of which are sub-optimal. This is caused by the configuration file/rules being made known to udev via environment variables: $ sudo cat /proc/$(pgrep udev)/environ | xargs -0 -n1 echo UDEV_CONFIG_FILE=/gnu/store/7yfpf8acjy884xbwaq5kn9z21irchfaj-udev.conf EUDEV_RULES_DIRECTORY=/gnu/store/yv58b7rg7dm3191cj6sma896550wgy4v-udev-rules/lib/udev/rules.d LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules PATH=/run/current-system/profile/bin For convenience, we should probably have the udev-service-type create a union of what it needs under /etc/udev/ as on other distributions. udev could then rely on a fixed location to look things and use its inotify based mechanism to detect changes and reload automatically when needed. This could probably fix things such as 'udevadm test' only reading rule files from under /gnu/store/svplp9wl0g2ahlv5rf6bhmq3xvp4zzh3-eudev-3.2.9/lib/udev/rules.d, for example. Thank you, Maxim From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 01 13:11:19 2022 Received: (at 47681) by debbugs.gnu.org; 1 Feb 2022 18:11:19 +0000 Received: from localhost ([127.0.0.1]:44020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nExca-0004Wx-0y for submit@debbugs.gnu.org; Tue, 01 Feb 2022 13:11:19 -0500 Received: from mail-qk1-f173.google.com ([209.85.222.173]:42984) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nExcU-0004Wc-L3 for 47681@debbugs.gnu.org; Tue, 01 Feb 2022 13:11:14 -0500 Received: by mail-qk1-f173.google.com with SMTP id m25so14929361qka.9 for <47681@debbugs.gnu.org>; Tue, 01 Feb 2022 10:11:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jyKLHfoynUJBuAiojt01ANhaCITymoynaSwhsCwaq5c=; b=YAs18tkv+nWlHIVXY02jUXwzoZitir47/fHijrwjoQWbhbHJEvF8Mev5lt9edgYXCN H5u2fivPsIPz7A71wkp15qddnFi4BUm3BjhZA4hJDR6bCyzyjaHlXtChh+X2MrmUaDim iv4O8YRZRwc6s58uuPc4rfblf7rsV/WrV6qQfyBsmuQRD3jTzGwPMmMxVvYMb19uOMyg TPyfwrDGmkDJBvzyFHrAhlIaiVPwMirEQwLnwGxs3CFY1jnDVj51dVvDhEdGUJH8Zfdx bbzr2xmDVHRKCAQo48SitmhlWD6L1trmx/Ld1yE6zHc26WskALItQHTaCUHhWwzXjMjF 33Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jyKLHfoynUJBuAiojt01ANhaCITymoynaSwhsCwaq5c=; b=1PM71C2t9tRFKxif4lJrDHsg6tsB3erWl3UCCtSW3m1kbB/W1Ck9vhxctM0cPcXbV8 UdVrVGx+gWjSQcc5d9zcEfxLtw5YoR5mPLczrhlvBU5Y+F6ZwUhRs5is2f7owy8gOBQq 196KNLqgvMf2X5ZaMGrvI5absdNH9ECYnVB5VQBh/RG3GTgMrC5dV6PaFUmobXCUjhiI J4qzqC/EHPJc2hkafveOwhKxCOd5Kv7rJVLy7vgEnVq0+mfyO+qDes9o7nKoKwmhl1rJ TFufEosDurvUkWG+VHRX31obajXvyIZP6GXQqrySAuMgvINtDhYTjGF7g8Rl9SculkIj uZ1w== X-Gm-Message-State: AOAM533kByvJEXWmONHyX3wQD0da4jXz5KC0GGZe41tif3UoUYRE6aoX LxtiDMaGNrH9gl2TLdfx1eTQGRSBWhI= X-Google-Smtp-Source: ABdhPJzT+KwOqDHEJJofGdD//3x8O/UyP5+fXisXKjSuigXSWQL7b5wdQFV7ashmgfX1QTclu4XpCA== X-Received: by 2002:a05:620a:24d0:: with SMTP id m16mr5704518qkn.558.1643739064670; Tue, 01 Feb 2022 10:11:04 -0800 (PST) Received: from localhost.localdomain (dsl-149-193.b2b2c.ca. [66.158.149.193]) by smtp.gmail.com with ESMTPSA id s4sm11668142qko.113.2022.02.01.10.11.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 10:11:04 -0800 (PST) From: Maxim Cournoyer To: 47681@debbugs.gnu.org Subject: [PATCH] services: udev: Use a fixed location for the rules directory and config. Date: Tue, 1 Feb 2022 13:10:33 -0500 Message-Id: <20220201181033.27473-1-maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.34.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47681 Cc: Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Fixes . This change adjusts the location of the udev configuration file and rules directory to a fixed location. Since udev relies on inotify to discover change to its rules directory (/etc/udev/rules.d), by using a fixed directory layout, new udev rules can be automatically picked up without restarting the service. * gnu/services/base.scm (udev-rules-union): Build rules output directly in #$output. (udev-shepherd-service)[start]: Adjust the UDEV_CONFIG_FILE and EUDEV_RULES_DIRECTORY environment variables. [actions]: Remove field. The 'rules' action is no longer useful. (udev.conf): New variable. (udev-etc): New procedure. (udev-service-type): Extend the etc-service-type with it. --- gnu/services/base.scm | 210 +++++++++++++++++++++--------------------- 1 file changed, 104 insertions(+), 106 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index fbd01e84d6..4c8a840156 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu -;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021, 2022 Maxim Cournoyer ;;; Copyright © 2022 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. @@ -1995,8 +1995,7 @@ (define (rules-sub-directory directory) (find directory-exists? (map (cut string-append directory <>) %standard-locations))) - (mkdir-p (string-append #$output "/lib/udev")) - (union-build (string-append #$output "/lib/udev/rules.d") + (union-build #$output (filter-map rules-sub-directory '#$packages))))) (computed-file "udev-rules" build)) @@ -2045,116 +2044,115 @@ (define kvm-udev-rule (define udev-shepherd-service ;; Return a for UDEV with RULES. + (match-lambda + (($ udev) + (list + (shepherd-service + (provision '(udev)) + + ;; Udev needs /dev to be a 'devtmpfs' mount so that new device nodes can + ;; be added: see + ;; . + (requirement '(root-file-system)) + + (documentation "Populate the /dev directory, dynamically.") + (start + (with-imported-modules (source-module-closure + '((gnu build linux-boot))) + #~(lambda () + (define udevd + ;; 'udevd' from eudev. + #$(file-append udev "/sbin/udevd")) + + (define (wait-for-udevd) + ;; Wait until someone's listening on udevd's control + ;; socket. + (let ((sock (socket AF_UNIX SOCK_SEQPACKET 0))) + (let try () + (catch 'system-error + (lambda () + (connect sock PF_UNIX "/run/udev/control") + (close-port sock)) + (lambda args + (format #t "waiting for udevd...~%") + (usleep 500000) + (try)))))) + + ;; Allow udev to find the modules. + (setenv "LINUX_MODULE_DIRECTORY" + "/run/booted-system/kernel/lib/modules") + + (let* ((kernel-release + (utsname:release (uname))) + (linux-module-directory + (getenv "LINUX_MODULE_DIRECTORY")) + (directory + (string-append linux-module-directory "/" + kernel-release)) + (old-umask (umask #o022))) + ;; If we're in a container, DIRECTORY might not exist, + ;; for instance because the host runs a different + ;; kernel. In that case, skip it; we'll just miss a few + ;; nodes like /dev/fuse. + (when (file-exists? directory) + (make-static-device-nodes directory)) + (umask old-umask)) + + (let ((pid (fork+exec-command + (list udevd) + #:environment-variables + (cons* + ;; The first one is for udev, the second one for + ;; eudev. + "UDEV_CONFIG_FILE=/etc/udev/udev.conf" + "EUDEV_RULES_DIRECTORY=/etc/udev/rules.d" + (string-append "LINUX_MODULE_DIRECTORY=" + (getenv "LINUX_MODULE_DIRECTORY")) + (default-environment-variables))))) + ;; Wait until udevd is up and running. This appears to + ;; be needed so that the events triggered below are + ;; actually handled. + (wait-for-udevd) + + ;; Trigger device node creation. + (system* #$(file-append udev "/bin/udevadm") + "trigger" "--action=add") + + ;; Wait for things to settle down. + (system* #$(file-append udev "/bin/udevadm") + "settle") + pid)))) + (stop #~(make-kill-destructor)) + + ;; When halting the system, 'udev' is actually killed by + ;; 'user-processes', i.e., before its own 'stop' method was called. + ;; Thus, make sure it is not respawned. + (respawn? #f) + ;; We need additional modules. + (modules `((gnu build linux-boot) ;'make-static-device-nodes' + ,@%default-modules))))))) + +(define udev.conf + (computed-file "udev.conf" + #~(call-with-output-file #$output + (lambda (port) + (format port "udev_rules=\"/etc/udev/rules.d\"~%"))))) + +(define udev-etc (match-lambda (($ udev rules) - (let* ((rules (udev-rules-union (cons* udev kvm-udev-rule rules))) - (udev.conf (computed-file "udev.conf" - #~(call-with-output-file #$output - (lambda (port) - (format port - "udev_rules=\"~a/lib/udev/rules.d\"\n" - #$rules)))))) - (list - (shepherd-service - (provision '(udev)) - - ;; Udev needs /dev to be a 'devtmpfs' mount so that new device nodes can - ;; be added: see - ;; . - (requirement '(root-file-system)) - - (documentation "Populate the /dev directory, dynamically.") - (start - (with-imported-modules (source-module-closure - '((gnu build linux-boot))) - #~(lambda () - (define udevd - ;; 'udevd' from eudev. - #$(file-append udev "/sbin/udevd")) - - (define (wait-for-udevd) - ;; Wait until someone's listening on udevd's control - ;; socket. - (let ((sock (socket AF_UNIX SOCK_SEQPACKET 0))) - (let try () - (catch 'system-error - (lambda () - (connect sock PF_UNIX "/run/udev/control") - (close-port sock)) - (lambda args - (format #t "waiting for udevd...~%") - (usleep 500000) - (try)))))) - - ;; Allow udev to find the modules. - (setenv "LINUX_MODULE_DIRECTORY" - "/run/booted-system/kernel/lib/modules") - - (let* ((kernel-release - (utsname:release (uname))) - (linux-module-directory - (getenv "LINUX_MODULE_DIRECTORY")) - (directory - (string-append linux-module-directory "/" - kernel-release)) - (old-umask (umask #o022))) - ;; If we're in a container, DIRECTORY might not exist, - ;; for instance because the host runs a different - ;; kernel. In that case, skip it; we'll just miss a few - ;; nodes like /dev/fuse. - (when (file-exists? directory) - (make-static-device-nodes directory)) - (umask old-umask)) - - (let ((pid (fork+exec-command (list udevd) - #:environment-variables - (cons* - ;; The first one is for udev, the second one for - ;; eudev. - (string-append "UDEV_CONFIG_FILE=" #$udev.conf) - (string-append "EUDEV_RULES_DIRECTORY=" - #$(file-append - rules "/lib/udev/rules.d")) - (string-append "LINUX_MODULE_DIRECTORY=" - (getenv "LINUX_MODULE_DIRECTORY")) - (default-environment-variables))))) - ;; Wait until udevd is up and running. This appears to - ;; be needed so that the events triggered below are - ;; actually handled. - (wait-for-udevd) - - ;; Trigger device node creation. - (system* #$(file-append udev "/bin/udevadm") - "trigger" "--action=add") - - ;; Wait for things to settle down. - (system* #$(file-append udev "/bin/udevadm") - "settle") - pid)))) - (stop #~(make-kill-destructor)) - - ;; When halting the system, 'udev' is actually killed by - ;; 'user-processes', i.e., before its own 'stop' method was called. - ;; Thus, make sure it is not respawned. - (respawn? #f) - ;; We need additional modules. - (modules `((gnu build linux-boot) ;'make-static-device-nodes' - ,@%default-modules)) - - (actions (list (shepherd-action - (name 'rules) - (documentation "Display the directory containing -the udev rules in use.") - (procedure #~(lambda (_) - (display #$rules) - (newline)))))))))))) + `(("udev" + ,(file-union + "udev" `(("udev.conf" ,udev.conf) + ("rules.d" ,(udev-rules-union (cons* udev kvm-udev-rule + rules)))))))))) (define udev-service-type (service-type (name 'udev) (extensions (list (service-extension shepherd-root-service-type - udev-shepherd-service))) - + udev-shepherd-service) + (service-extension etc-service-type udev-etc))) (compose concatenate) ;concatenate the list of rules (extend (lambda (config rules) (match config -- 2.34.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 01 13:12:32 2022 Received: (at control) by debbugs.gnu.org; 1 Feb 2022 18:12:32 +0000 Received: from localhost ([127.0.0.1]:44024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nExdo-0004Z3-GP for submit@debbugs.gnu.org; Tue, 01 Feb 2022 13:12:32 -0500 Received: from mail-qk1-f174.google.com ([209.85.222.174]:40914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nExdn-0004Yo-Hp for control@debbugs.gnu.org; Tue, 01 Feb 2022 13:12:31 -0500 Received: by mail-qk1-f174.google.com with SMTP id o25so15883330qkj.7 for ; Tue, 01 Feb 2022 10:12:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:message-id:to:from:subject; bh=Rolg07S1kHJqls3agrup8Zdlrvm4rjun7h/7btZpAj4=; b=UtqkHOvfTH2PL3UVEo1oygv7UWujFzBjHRlOUWpvR4s2g9QMjVICT6NyshKpex2+05 PuoIJq8aPpY3kC3MFdYIVq0XdcJ3cXScFy1/W94nt+v+0OanRj3IF04Zjx2/ooG/kgdP vV1bCtFlziS63EGunCJVPseOnlxhViB7bxAoG7rgEC7WGO8TpElyeK5Z0m0llSE+Y4gQ A/7z0ViiD2Q+pIxZIWKCpkkFqZueviQ/QSFgpXB9ntGF20FlGMgwVtQqSDFgf/LU/JXC Xp09h8FALvx9tFmNEZOftP28LbrYZ4SdUedv4mrGwYwgl87zcjiVkXvgdilqCL054T4q 3beg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:to:from:subject; bh=Rolg07S1kHJqls3agrup8Zdlrvm4rjun7h/7btZpAj4=; b=UYWJEmOZ0TWCe+T4nOj5hgMmiw7YQnl/sWsSlRx6JWiBoauk4Ck5J1qKEjUJJ3uXNa 5liikvsEFHdDqOlf6nfCWEmqxdE++7ZRguZua/e1vjhUmNSpPXFzTfYvl/WP+oGEt4Pp hasDrgayZJujS/a9cTVnSuHt3e0VYd6p9azRcwDUATP3Pj0GkPxzRN6m7YpnF+Y0XYo6 HWFdH/4L16OQxavzvDnsUP1zUPI4GxtZsjqlTuoo7KzC7z4068oOU6L1oFl22VwUQgp5 JFSNYyilUe6c6o2dWHQ4Zw6F5qSmKmRe68mC3E22RdXlM3512BpGL4Nmbx+fBastLFRU zR6w== X-Gm-Message-State: AOAM533J1ZurAbJrdYI+QLkqhwvKeS+aU0aT+3zul76I0N6BwjmHoFBz D9/p1e1jQAtCYnixrJAbUbvuJtBQU3I= X-Google-Smtp-Source: ABdhPJyXqc/qAfAf/C0VlqIcvJOVfX42pMG+o4cqj3deqKuR19jSMvebyTW6LM9SDVK/vfiVVWloaQ== X-Received: by 2002:a05:620a:16d3:: with SMTP id a19mr17376910qkn.107.1643739145966; Tue, 01 Feb 2022 10:12:25 -0800 (PST) Received: from hurd (dsl-149-193.b2b2c.ca. [66.158.149.193]) by smtp.gmail.com with ESMTPSA id d11sm8125038qtd.63.2022.02.01.10.12.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 10:12:25 -0800 (PST) Date: Tue, 01 Feb 2022 13:12:24 -0500 Message-Id: <87pmo61mnr.fsf@gmail.com> To: control@debbugs.gnu.org From: Maxim Cournoyer Subject: control message for bug #47681 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 47681 + patch quit From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 20 20:43:49 2022 Received: (at 47681-done) by debbugs.gnu.org; 21 Feb 2022 01:43:49 +0000 Received: from localhost ([127.0.0.1]:34299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nLxjx-0001Hh-8J for submit@debbugs.gnu.org; Sun, 20 Feb 2022 20:43:49 -0500 Received: from mail-qv1-f54.google.com ([209.85.219.54]:38615) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nLxjv-0001HU-SS for 47681-done@debbugs.gnu.org; Sun, 20 Feb 2022 20:43:48 -0500 Received: by mail-qv1-f54.google.com with SMTP id d3so28079743qvb.5 for <47681-done@debbugs.gnu.org>; Sun, 20 Feb 2022 17:43:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version; bh=gv45TVPPXt9lDHdXjbS9jNJvPtGpxX8aBK/eW6HleAo=; b=pRbQDi6H2S9aYvnmgTdtoJkdEX5ykMBS9/o1740KXfsgOBBjODqocgze5pbfydmOXB wN/xUYbLtDXTw/XaxlYYmc1447OLobt3oKkvP2MYCRQ3Om5lJbvIKMKOCo0M+jcYAnG3 bekUsasgyH51ThvXuiTGvxglx9PDwr1BvSjCJVbY/vipX0hlnoP8tg08Iq7rkBZ+Lh8h kPxf8yemyKchY+HW/KOoAspwOaOllDGNKqG1xvE/Ug1nfJzoneUa/YNJQljRafAXQsbs LbidELp3VC67D6jZyUht/2hQXg2e1lv9+CkEbees89ACXEHkWKqf5YNz4v7nXD68zth1 hB5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=gv45TVPPXt9lDHdXjbS9jNJvPtGpxX8aBK/eW6HleAo=; b=NXQsKNEQ7sHnyHUiH/twBSew4KwhJEoAnw9QPwtI8Pk/lcP/xuwpRYN6LpJgHLS1M5 X5WCk/1ZKjPDUFasIuFR9YcXW2F/AL5YWj3prLFfJC4RhYH+q1QNE55wWCa7nxEL2yZ3 Rvu1CPzlz02tnAYQOUn7jAgk5Z9ZIKs1Njao+PJxXE49ZEr3uKgIIcibAJirqUwqHEMU ImsXD5rf/3VTg+CLNa37tt3mqC4Zg61fPHUtTy5uHjW2z/I1OjeaBfAzwEidfpQ8j23g 6YW1exR7zMh2KT7qNid0DndhnI7Z3cqrmGPvAuityY9s/Wqx3WTBBn1/Q85tzy9J7bUd XuUA== X-Gm-Message-State: AOAM531W8D2YeR2b/UsFOU4910GnP5Ri8hTtOAjUw+Z6ttz4iKBlWCDz AK5EPTh2w+75fXzRDwjX5jrF5mTvAkI= X-Google-Smtp-Source: ABdhPJzONMpUjoq5jPabcQU7HXBdbyujxu4/D4otTkwdhdVHlPnZmA4ybKCeu/DUGp1WrmjCSEOtnw== X-Received: by 2002:a0c:ea24:0:b0:42e:556c:98df with SMTP id t4-20020a0cea24000000b0042e556c98dfmr13764284qvp.57.1645407822164; Sun, 20 Feb 2022 17:43:42 -0800 (PST) Received: from hurd (dsl-153-17.b2b2c.ca. [66.158.153.17]) by smtp.gmail.com with ESMTPSA id n19sm19140363qtk.66.2022.02.20.17.43.41 for <47681-done@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Feb 2022 17:43:41 -0800 (PST) From: Maxim Cournoyer To: 47681-done@debbugs.gnu.org Subject: Re: bug#47681: Reloading udev rules requires a system restart References: <87eefjdsge.fsf@gmail.com> <20220201181033.27473-1-maxim.cournoyer@gmail.com> Date: Sun, 20 Feb 2022 20:43:40 -0500 In-Reply-To: <20220201181033.27473-1-maxim.cournoyer@gmail.com> (Maxim Cournoyer's message of "Tue, 1 Feb 2022 13:10:33 -0500") Message-ID: <87v8x9ouyb.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47681-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Maxim Cournoyer writes: > Fixes . > > This change adjusts the location of the udev configuration file and rules > directory to a fixed location. Since udev relies on inotify to discover > change to its rules directory (/etc/udev/rules.d), by using a fixed directory > layout, new udev rules can be automatically picked up without restarting the > service. > > * gnu/services/base.scm (udev-rules-union): Build rules output directly > in #$output. > (udev-shepherd-service)[start]: Adjust the UDEV_CONFIG_FILE and > EUDEV_RULES_DIRECTORY environment variables. > [actions]: Remove field. The 'rules' action is no longer useful. > (udev.conf): New variable. > (udev-etc): New procedure. > (udev-service-type): Extend the etc-service-type with it. Pushed with commit e9fa17eb98efbd6211ab44ab49b8c078d4b73e04. Closing. Maxim From unknown Thu Aug 14 21:55:20 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 21 Mar 2022 11:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator