guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: services: udev: Do not rely on shepherd inheritin


From: guix-commits
Subject: branch master updated: services: udev: Do not rely on shepherd inheriting environment variables.
Date: Thu, 20 Feb 2020 17:44:44 -0500

This is an automated email from the git hooks/post-receive script.

pelzflorian pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new 0050044  services: udev: Do not rely on shepherd inheriting 
environment variables.
0050044 is described below

commit 00500449b0d53bb9219608a3cbee8faf7a3edae1
Author: Florian Pelz <address@hidden>
AuthorDate: Thu Feb 20 14:05:06 2020 +0100

    services: udev: Do not rely on shepherd inheriting environment variables.
    
    Fixes <https://bugs.gnu.org/39671>.
    
    * gnu/services/base.scm (udev-shepherd-service)[start] Move or copy
    environment variables to 'fork+exec-command' instead of 'setenv'.
---
 gnu/services/base.scm | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 0c154d1..706b3ae 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <address@hidden>
 ;;; Copyright © 2019 John Soo <address@hidden>
 ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <address@hidden>
+;;; Copyright © 2020 Florian Pelz <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2037,11 +2038,6 @@ item of @var{packages}."
                 (setenv "LINUX_MODULE_DIRECTORY"
                         "/run/booted-system/kernel/lib/modules")
 
-                ;; The first one is for udev, the second one for eudev.
-                (setenv "UDEV_CONFIG_FILE" #$udev.conf)
-                (setenv "EUDEV_RULES_DIRECTORY"
-                        #$(file-append rules "/lib/udev/rules.d"))
-
                 (let* ((kernel-release
                         (utsname:release (uname)))
                        (linux-module-directory
@@ -2058,7 +2054,18 @@ item of @var{packages}."
                     (make-static-device-nodes directory))
                   (umask old-umask))
 
-                (let ((pid (fork+exec-command (list udevd))))
+                (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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]