rpms/udev/devel 0026-remove-extra-space-from-udevinfo-symlink-output.patch, NONE, 1.1 0027-udevinfo-simplify-symlink-printing-logic.patch, NONE, 1.1 0028-prevent-wrong-symlink-creation-if-database-disagress.patch, NONE, 1.1 0029-fix-wrong-variable-used-in-logged-string.patch, NONE, 1.1 0030-update-README.patch, NONE, 1.1 0031-rule_generator-move-all-policy-from-write_net_rules.patch, NONE, 1.1 udev.spec, 1.220, 1.221 0026-Removed-extra-space-from-udevinfo-symlink-output.patch, 1.1, NONE
Harald Hoyer (harald)
fedora-extras-commits at redhat.com
Fri Sep 21 16:32:48 UTC 2007
Author: harald
Update of /cvs/pkgs/rpms/udev/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22796
Modified Files:
udev.spec
Added Files:
0026-remove-extra-space-from-udevinfo-symlink-output.patch
0027-udevinfo-simplify-symlink-printing-logic.patch
0028-prevent-wrong-symlink-creation-if-database-disagress.patch
0029-fix-wrong-variable-used-in-logged-string.patch
0030-update-README.patch
0031-rule_generator-move-all-policy-from-write_net_rules.patch
Removed Files:
0026-Removed-extra-space-from-udevinfo-symlink-output.patch
Log Message:
* Fri Sep 21 2007 Harald Hoyer <harald at redhat.com> - 115-4
- more upstream fixes from git
0026-remove-extra-space-from-udevinfo-symlink-output.patch:
--- NEW FILE 0026-remove-extra-space-from-udevinfo-symlink-output.patch ---
>From c952356635a30f610a4d1b84e84d678fee7772c8 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald at redhat.com>
Date: Thu, 20 Sep 2007 15:24:42 +0200
Subject: [PATCH] remove extra space from udevinfo symlink output
---
udevinfo.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/udevinfo.c b/udevinfo.c
index be9aa76..8e54705 100644
--- a/udevinfo.c
+++ b/udevinfo.c
@@ -389,10 +389,16 @@ int main(int argc, char *argv[], char *envp[])
goto exit;
if (root)
list_for_each_entry(name_loop, &udev->symlink_list, node)
- printf("%s/%s ", udev_root, name_loop->name);
+ if (name_loop->node.next != &udev->symlink_list)
+ printf("%s/%s ", udev_root, name_loop->name);
+ else
+ printf("%s/%s", udev_root, name_loop->name);
else
list_for_each_entry(name_loop, &udev->symlink_list, node)
- printf("%s ", name_loop->name);
+ if (name_loop->node.next != &udev->symlink_list)
+ printf("%s ", name_loop->name);
+ else
+ printf("%s", name_loop->name);
printf("\n");
break;
case QUERY_PATH:
--
1.5.2.4
0027-udevinfo-simplify-symlink-printing-logic.patch:
--- NEW FILE 0027-udevinfo-simplify-symlink-printing-logic.patch ---
>From 18770246edda383eef523a7e3aedd08ebbbde5cf Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Thu, 20 Sep 2007 15:25:29 +0200
Subject: [PATCH] udevinfo: simplify symlink printing logic
---
udevinfo.c | 23 ++++++++---------------
1 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/udevinfo.c b/udevinfo.c
index 8e54705..eb9b353 100644
--- a/udevinfo.c
+++ b/udevinfo.c
@@ -385,21 +385,14 @@ int main(int argc, char *argv[], char *envp[])
printf("%s\n", udev->name);
break;
case QUERY_SYMLINK:
- if (list_empty(&udev->symlink_list))
- goto exit;
- if (root)
- list_for_each_entry(name_loop, &udev->symlink_list, node)
- if (name_loop->node.next != &udev->symlink_list)
- printf("%s/%s ", udev_root, name_loop->name);
- else
- printf("%s/%s", udev_root, name_loop->name);
- else
- list_for_each_entry(name_loop, &udev->symlink_list, node)
- if (name_loop->node.next != &udev->symlink_list)
- printf("%s ", name_loop->name);
- else
- printf("%s", name_loop->name);
- printf("\n");
+ list_for_each_entry(name_loop, &udev->symlink_list, node) {
+ char c = name_loop->node.next != &udev->symlink_list ? ' ' : '\n';
+
+ if (root)
+ printf("%s/%s%c", udev_root, name_loop->name, c);
+ else
+ printf("%s%c", name_loop->name, c);
+ }
break;
case QUERY_PATH:
printf("%s\n", udev->dev->devpath);
--
1.5.2.4
0028-prevent-wrong-symlink-creation-if-database-disagress.patch:
--- NEW FILE 0028-prevent-wrong-symlink-creation-if-database-disagress.patch ---
>From b2d1ae727e78ac3e22caa11798360d87775095ff Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Thu, 20 Sep 2007 19:38:58 +0200
Subject: [PATCH] prevent wrong symlink creation if database disagress with current rules
---
udev_node.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/udev_node.c b/udev_node.c
index 556a442..c620e4a 100644
--- a/udev_node.c
+++ b/udev_node.c
@@ -218,14 +218,16 @@ static int update_link(struct udevice *udev, const char *name)
if (strcmp(udev->dev->devpath, device->name) == 0) {
info("compare (our own) priority of '%s' %i >= %i",
udev->dev->devpath, udev->link_priority, priority);
- if (target[0] == '\0' || udev->link_priority >= priority) {
+ if (strcmp(udev->name, name) == 0) {
+ info("'%s' is our device node, database inconsistent, skip link update", udev->name);
+ } else if (target[0] == '\0' || udev->link_priority >= priority) {
priority = udev->link_priority;
strlcpy(target, udev->name, sizeof(target));
}
continue;
}
- /* or something else, then read priority from database */
+ /* another device, read priority from database */
udev_db = udev_device_init(NULL);
if (udev_db == NULL)
continue;
--
1.5.2.4
0029-fix-wrong-variable-used-in-logged-string.patch:
--- NEW FILE 0029-fix-wrong-variable-used-in-logged-string.patch ---
>From 3a3d078cfd3a3adb1c9f66e0df95d704c3a92504 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Fri, 21 Sep 2007 00:55:19 +0200
Subject: [PATCH] fix wrong variable used in logged string
---
udev_rules.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/udev_rules.c b/udev_rules.c
index 3ec8477..5ae4aa2 100644
--- a/udev_rules.c
+++ b/udev_rules.c
@@ -1446,7 +1446,7 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev)
}
if (!name_set) {
- info("no node name set, will use kernel name '%s'", udev->name);
+ info("no node name set, will use kernel name '%s'", udev->dev->kernel);
strlcpy(udev->name, udev->dev->kernel, sizeof(udev->name));
}
--
1.5.2.4
0030-update-README.patch:
--- NEW FILE 0030-update-README.patch ---
>From b317b96c15bc61d59f138515e71f05bbd8f7b2ff Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Fri, 21 Sep 2007 10:33:36 +0200
Subject: [PATCH] update README
---
README | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/README b/README
index 74aa790..b37d0d5 100644
--- a/README
+++ b/README
@@ -3,13 +3,10 @@ udev - userspace device management
For more information see the files in the docs/ directory.
Important Note:
- Integrating udev in the system is a whole lot of work, has complex dependencies
- and differs a lot from distro to distro. All major distros depend on udev these
- days and the system may not work without a proper installed version. The upstream
- udev project does not support or recommend to replace a distro's udev installation
- with the upstream version. The installation of a unmodified upstream version may
- render your system unusable. Until now, there is no "default" setup or a set of
- "default" rules provided by the upstream udev version.
+ Integrating udev in the system has complex dependencies and differs from distro
+ to distro. All major distros depend on udev these days and the system may not
+ work without a properly installed version. The upstream udev project does not
+ recommend to replace a distro's udev installation with the upstream version.
Requirements:
- Version 2.6.15 of the Linux kernel for reliable operation of this release of
@@ -21,7 +18,7 @@ Requirements:
but it is completely silly - don't complain if anything goes wrong.)
- The proc filesystem must be mounted on /proc, the sysfs filesystem must
- be mounted at /sys. No other location will be supported by udev.
+ be mounted at /sys. No other location is supported by udev.
Operation:
--
1.5.2.4
0031-rule_generator-move-all-policy-from-write_net_rules.patch:
--- NEW FILE 0031-rule_generator-move-all-policy-from-write_net_rules.patch ---
>From c746922ca26fe18f6b3f3a4516e7236bfc0106b7 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers at vrfy.org>
Date: Fri, 21 Sep 2007 17:42:46 +0200
Subject: [PATCH] rule_generator: move all policy from write_net_rules to the rules file
---
.../75-persistent-net-generator.rules | 43 ++++++--
extras/rule_generator/write_net_rules | 119 +++++++++-----------
2 files changed, 84 insertions(+), 78 deletions(-)
diff --git a/extras/rule_generator/75-persistent-net-generator.rules b/extras/rule_generator/75-persistent-net-generator.rules
index f88627d..d09bc38 100644
--- a/extras/rule_generator/75-persistent-net-generator.rules
+++ b/extras/rule_generator/75-persistent-net-generator.rules
@@ -1,33 +1,56 @@
# do not edit this file, it will be overwritten on update
# these rules generate rules for persistent network device naming
+#
+# variables used to communicate:
+# MATCHADDR MAC address used for the match
+# MATCHID bus_id used for the match
+# MATCHDRV driver name used for the match
+# MATCHIFTYPE interface type match
+# COMMENT comment to add to the generated rule
+# INTERFACE_NAME requested name supplied by external tool
+# INTERFACE_NEW new interface name returned by rule writer
ACTION!="add", GOTO="persistent_net_generator_end"
SUBSYSTEM!="net", GOTO="persistent_net_generator_end"
-# device name whitelist
-KERNEL!="eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
-
# ignore the interface if a name has already been set
NAME=="?*", GOTO="persistent_net_generator_end"
+# device name whitelist
+KERNEL!="eth*|ath*|wlan*[0-9]|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
+
+# add interface type match for some devices
+KERNEL=="wlan*|ath*", ENV{MATCHIFTYPE}="1"
+
# ignore Xen virtual interfaces
SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"
-# build device description string to add a comment to the generated rule
+# read MAC address
+ENV{MATCHADDR}="$attr{address}"
+
+# do not use "locally administered" MAC address
+ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
+
+# do not use empty address
+ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
+
+# build comment line for generated rule:
SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)"
SUBSYSTEMS=="usb", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)"
SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)"
-SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{NETDEV}="$id", ENV{NETDRV}="$driver"
SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})"
-ENV{COMMENT}=="", ENV{COMMENT}="$env{SUBSYSTEM} device ($driver)"
-DRIVERS=="?*", ENV{NETDEV}=="?*", IMPORT{program}="write_net_rules --driver $env{NETDRV} --id $env{NETDEV}"
+# S/390 uses id matches only, do not use MAC address match
+SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}=""
+
+# default comment
+ENV{COMMENT}=="", ENV{COMMENT}="$env{SUBSYSTEM} device"
-# skip "locally administered" MAC addresses
-ATTR{address}=="?[2367abef]:*", GOTO="persistent_net_generator_end"
+# write rule
+DRIVERS=="?*", IMPORT{program}="write_net_rules"
-DRIVERS=="?*", ENV{NETDEV}!="?*", IMPORT{program}="write_net_rules $attr{address}"
+# rename interface if needed
ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}"
LABEL="persistent_net_generator_end"
diff --git a/extras/rule_generator/write_net_rules b/extras/rule_generator/write_net_rules
index 62acb88..b25ecfd 100644
--- a/extras/rule_generator/write_net_rules
+++ b/extras/rule_generator/write_net_rules
@@ -1,20 +1,25 @@
#!/bin/sh -e
#
-# This script is run if the interface (recognized by its MAC address) lacks
-# a rule for persistent naming.
-#
-# If there is already a persistent rule with that interface name then the
-# current interface needs to be renamed.
-#
-# If the interface needs to be renamed, a NAME=value pair will be printed
-# on stdout to allow udev to IMPORT it. Then a rule for the MAC address and
-# interface name is written.
-#
-# (C) 2006 Marco d'Itri <md at Linux.IT>
+# Copyright (C) 2006 Marco d'Itri <md at Linux.IT>
+# Copyright (C) 2007 Kay Sievers <kay.sievers at vrfy.org>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation version 2 of the License.
+#
+# This script is run to create persistent network device naming rules
+# based on properties of the device.
+# If the interface needs to be renamed, INTERFACE_NEW=<name> will be printed
+# on stdout to allow udev to IMPORT it.
+
+# variables used to communicate:
+# MATCHADDR MAC address used for the match
+# MATCHID bus_id used for the match
+# MATCHDRV driver name used for the match
+# MATCHIFTYPE interface type match
+# COMMENT comment to add to the generated rule
+# INTERFACE_NAME requested name supplied by external tool
+# INTERFACE_NEW new interface name returned by rule writer
RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
@@ -49,78 +54,57 @@ write_rule() {
echo ""
[ "$comment" ] && echo "# $comment"
- echo "SUBSYSTEM==\"net\", $match, NAME=\"$name\""
+ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\""
} >> $RULES_FILE
}
if [ -z "$INTERFACE" ]; then
- echo "Missing \$INTERFACE." >&2
+ echo "missing \$INTERFACE" >&2
exit 1
fi
-if [ "$1" ]; then
- while [ "$*" ] ; do
- case $1 in
- --mac)
- shift
- MAC_ADDR=$1
- shift
- ;;
- --driver)
- shift
- DRIVER=$1
- shift
- ;;
- --id)
- shift
- ID=$1
- shift
- ;;
- *)
- MAC_ADDR=$1
- shift
- ;;
- esac
- done
-else
- MAC_ADDR=$(sysread address)
-fi
-
-if [ -z "$DRIVER" ] && [ -z "$ID" ] ; then
- if [ -z "$MAC_ADDR" ]; then
- echo "No MAC address for $INTERFACE." >&2
- exit 1
- fi
- if [ "$MAC_ADDR" = "00:00:00:00:00:00" ]; then
- echo "NULL MAC address for $INTERFACE." >&2
- exit 1
- fi
-fi
-
# Prevent concurrent processes from modifying the file at the same time.
lock_rules_file
# Check if the rules file is writeable.
choose_rules_file
-# If a rule using the current name already exists then find a new name and
-# report it to udev which will rename the interface.
-basename=${INTERFACE%%[0-9]*}
-if interface_name_taken; then
- INTERFACE="$basename$(find_next_available "$basename[0-9]*")"
- if [ ! -t 1 ]; then
- echo "INTERFACE_NEW=$INTERFACE"
- fi
+# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces
+if [ "$MATCHADDR" ]; then
+ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\""
fi
-# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces
-if [ "$MAC_ADDR" ] ; then
- match="DRIVERS==\"?*\", ATTR{address}==\"$MAC_ADDR\""
-else
- match="DRIVERS==\"$DRIVER\", KERNELS==\"$ID\""
+if [ "$MATCHDRV" ]; then
+ match="$match, DRIVERS==\"$MATCHDRV\""
+fi
+
+if [ "$MATCHID" ]; then
+ match="$match, KERNELS==\"$MATCHID\""
+fi
+
+if [ "$MATCHIFTYPE" ]; then
+ match="$match, ATTR{type}==\"$MATCHIFTYPE\""
fi
-if [ $basename = "ath" -o $basename = "wlan" ]; then
- match="$match, ATTR{type}==\"1\"" # do not match the wifi* interfaces
+
+if [ -z "$match" ]; then
+ echo "missing valid match" >&2
+ exit 1
+fi
+
+if [ "$INTERFACE_NAME" ]; then
+ # external tools may request a custom name
+ COMMENT="$COMMENT (custom name provided by external tool)"
+ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then
+ INTERFACE=$INTERFACE_NAME;
+ echo "INTERFACE_NEW=$INTERFACE"
+ fi
+else
+ # if a rule using the current name already exists, find a new name
+ basename=${INTERFACE%%[0-9]*}
+ if interface_name_taken; then
+ INTERFACE="$basename$(find_next_available "$basename[0-9]*")"
+ echo "INTERFACE_NEW=$INTERFACE"
+ fi
fi
write_rule "$match" "$INTERFACE" "$COMMENT"
@@ -128,4 +112,3 @@ write_rule "$match" "$INTERFACE" "$COMMENT"
unlock_rules_file
exit 0
-
--
1.5.2.4
Index: udev.spec
===================================================================
RCS file: /cvs/pkgs/rpms/udev/devel/udev.spec,v
retrieving revision 1.220
retrieving revision 1.221
diff -u -r1.220 -r1.221
--- udev.spec 20 Sep 2007 12:27:11 -0000 1.220
+++ udev.spec 21 Sep 2007 16:32:15 -0000 1.221
@@ -6,7 +6,7 @@
Summary: A userspace implementation of devfs
Name: udev
Version: 115
-Release: 3.20070920git%{?dist}
+Release: 4.20070921git%{?dist}
License: GPLv2
Group: System Environment/Base
Provides: udev-persistent = %{version}-%{release}
@@ -44,6 +44,12 @@
Patch24: 0024-use-SEQNUM-in-dev-.udev-queue-instead-of-devpath.patch
Patch25: 0025-rules-add-memstick-module-loading.patch
Patch26: 0026-Removed-extra-space-from-udevinfo-symlink-output.patch
+Patch26: 0026-remove-extra-space-from-udevinfo-symlink-output.patch
+Patch27: 0027-udevinfo-simplify-symlink-printing-logic.patch
+Patch28: 0028-prevent-wrong-symlink-creation-if-database-disagress.patch
+Patch29: 0029-fix-wrong-variable-used-in-logged-string.patch
+Patch30: 0030-update-README.patch
+Patch31: 0031-rule_generator-move-all-policy-from-write_net_rules.patch
Patch100: udev-089-nopie.patch
Patch101: udev-091-lib64.patch
@@ -118,6 +124,11 @@
%patch22 -p1 -b .git22
%patch25 -p1 -b .git25
%patch26 -p1 -b .git26
+%patch27 -p1 -b .git27
+%patch28 -p1 -b .git28
+%patch29 -p1 -b .git29
+%patch30 -p1 -b .git30
+%patch31 -p1 -b .git31
%patch100 -p1 -b .nopie
%patch101 -p1 -b .lib64
@@ -402,6 +413,9 @@
%{_libdir}/pkgconfig/libvolume_id.pc
%changelog
+* Fri Sep 21 2007 Harald Hoyer <harald at redhat.com> - 115-4
+- more upstream fixes from git
+
* Thu Sep 20 2007 Harald Hoyer <harald at redhat.com> - 115-3
- some upstream fixes from git
- removed last_rule for loop rules
--- 0026-Removed-extra-space-from-udevinfo-symlink-output.patch DELETED ---
More information about the fedora-extras-commits
mailing list