From 2cfca5b38afbe321430f1c8cd3194ce5bb0ceb18 Mon Sep 17 00:00:00 2001 From: Mike Fleetwood Date: Sat, 8 Jan 2022 10:45:31 +0000 Subject: [PATCH] Remove support for old volatile udev rules below /dev/.udev Udev stopped supporting volatile udev rules in /dev/.udev/rules.d in udev 176, released 2012-01-11 [1]. The oldest supported distributions use much more recent combined systemd and udev releases. Distro EOL udevadm -V Debian 9 2022-Jun 232 RHEL / CentOS 7 2024-Jun 219 Ubuntu 18.04 LTS 2023-Apr 237 Now udev only reads volatile rules from /run/udev/ruled.d [2]. Simplify the code a little. [1] udev 176 NEWS https://git.kernel.org/pub/scm/linux/hotplug/udev.git/tree/NEWS?h=176 "A writable /run directory (ususally tmpfs) is required now for a fully functional udev, there is no longer a fallback to /dev/.udev." [2] man 7 udev "RULES FILES The udev rules are read from the files located in the system rules directory /usr/lib/udev/rules.d, the volatile runtime directory /run/udev/rules.d and the local administration directory /etc/udev/rules.d." --- gparted.in | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/gparted.in b/gparted.in index 3cefc2e3..9a4e65f2 100755 --- a/gparted.in +++ b/gparted.in @@ -179,26 +179,21 @@ fi # start Linux Software RAID array members and Bcache devices. # # Udev stores volatile / temporary runtime rules in directory /run/udev/rules.d. -# Older versions use /dev/.udev/rules.d instead, and even older versions don't -# have such a directory at all. Volatile / temporary rules are use to override -# default rules from /lib/udev/rules.d. (Permanent local administrative rules -# in directory /etc/udev/rules.d override all others). See udev(7) manual page -# from various versions of udev for details. +# Volatile / temporary rules are used to override default rules from +# /lib/udev/rules.d. (Permanent local administrative rules in directory +# /etc/udev/rules.d override all others). See udev(7) manual page for details. # # Default udev rules containing mdadm to incrementally start array members are # found in 64-md-raid.rules and/or 65-md-incremental.rules, depending on the # distribution and age. The rules may be commented out or not exist at all. # UDEV_TEMP_RULES='' # List of temporary override rules files. -for udev_temp_d in /run/udev /dev/.udev; do - if test -d "$udev_temp_d"; then - test ! -d "$udev_temp_d/rules.d" && mkdir "$udev_temp_d/rules.d" - udev_mdadm_rules=`egrep -l '^[^#].*mdadm (-I|--incremental)' /lib/udev/rules.d/*.rules 2> /dev/null` - udev_bcache_rules=`ls /lib/udev/rules.d/*bcache*.rules 2> /dev/null` - UDEV_TEMP_RULES=`echo $udev_mdadm_rules $udev_bcache_rules | sed 's,/lib/udev,/run/udev,g'` - break - fi -done +if test -d /run/udev; then + test ! -d /run/udev/rules.d && mkdir /run/udev/rules.d + udev_mdadm_rules=`egrep -l '^[^#].*mdadm (-I|--incremental)' /lib/udev/rules.d/*.rules 2> /dev/null` + udev_bcache_rules=`ls /lib/udev/rules.d/*bcache*.rules 2> /dev/null` + UDEV_TEMP_RULES=`echo $udev_mdadm_rules $udev_bcache_rules | sed 's,/lib/udev,/run/udev,g'` +fi for rule in $UDEV_TEMP_RULES; do touch "$rule" done