rpms/udev/devel udev-084-floppy.patch, NONE, 1.1 udev-extras.patch, NONE, 1.1 udev-permconv.patch, NONE, 1.1 udev-rules.patch, NONE, 1.1 .cvsignore, 1.31, 1.32 sources, 1.31, 1.32 start_udev, 1.49, 1.50 udev.spec, 1.143, 1.144 udevstart2.patch, 1.5, 1.6 upstream, 1.3, 1.4 udev-063.tar.bz2.sign, 1.1, NONE udev-075-daemon.patch, 1.2, NONE udev-075-selinux.patch, 1.2, NONE udev-078-nodberr.patch, 1.1, NONE udev-078-redhat.patch, 1.7, NONE udev-078-udevstart-greylist.patch, 1.2, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Feb 7 11:06:30 UTC 2006


Author: harald

Update of /cvs/dist/rpms/udev/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv29348

Modified Files:
	.cvsignore sources start_udev udev.spec udevstart2.patch 
	upstream 
Added Files:
	udev-084-floppy.patch udev-extras.patch udev-permconv.patch 
	udev-rules.patch 
Removed Files:
	udev-063.tar.bz2.sign udev-075-daemon.patch 
	udev-075-selinux.patch udev-078-nodberr.patch 
	udev-078-redhat.patch udev-078-udevstart-greylist.patch 
Log Message:
version 084

udev-084-floppy.patch:
 create_floppy_devices.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

--- NEW FILE udev-084-floppy.patch ---
--- udev-084/extras/floppy/create_floppy_devices.c.redhat	2006-01-30 08:51:38.000000000 +0100
+++ udev-084/extras/floppy/create_floppy_devices.c	2006-02-07 10:58:51.000000000 +0100
@@ -111,15 +111,21 @@
 		return 0;
 
 	i = 0;
+
+	char buffer[2048]; buffer[0] = '\000'; buffer[2047]='\000';
+	char cmd[2048]; cmd[0] = '\000'; cmd[2047]='\000';
+
 	while (table_sup[type][i]) {
 		sprintf(node, "%s%s",dev, table[table_sup[type][i]]);
-		minor = (table_sup[type][i] << 2) + fdnum;
-		if (print_nodes)
-			printf("%s b %d %d %d\n", node, mode, major, minor);
-		if (create_nodes)
-			mknod(node, S_IFBLK | mode, makedev(major,minor));
+		strcat(buffer, node);
+		strcat(buffer, " ");
 		i++;
 	}
+	if(strlen(buffer)) {
+		if (snprintf(cmd, 2047, "/sbin/MAKEDEV -x %s;/sbin/restorecon %s; /sbin/pam_console_apply %s;", buffer, buffer, buffer) > 0) {
+			system(cmd);
+		}
+	}
 
 	return 0;
 }

udev-extras.patch:
 check-cdrom.sh            |   39 +++++++++++++++++++++++++++++++++++++++
 ide-media.sh              |    7 +++++++
 load_floppy_module.sh     |   35 +++++++++++++++++++++++++++++++++++
 run_directory/MAKEDEV.dev |   38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 119 insertions(+)

--- NEW FILE udev-extras.patch ---
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/extras/check-cdrom.sh	2006-02-07 10:58:51.000000000 +0100
@@ -0,1 +1,40 @@
+#!/bin/bash
+
+pos=0
+n=0
+sp="$1"
+what="$2"
+found=0
+
+[ -e /proc/sys/dev/cdrom/info ] || exit 1
+
+/bin/cat /proc/sys/dev/cdrom/info | { 
+    while read line; do
+	if [ "$found" = "0" -a "${line/drive name:}" != "$line" ]; then
+	    set ${line/drive name:}	
+	    while [ $# -gt 0 ]; do
+		pos=$[$pos+1]
+		if [ "$1" == "$sp" ]; then
+		    found=1
+		    break
+		fi
+		shift
+	    done
+	    [ "$found" = "0" ] && exit 1
+	elif [ "${line/$what:}" != "$line" ]; then
+	    set ${line##*$what:}	
+	    while [ $# -gt 0 ]; do
+		n=$[$n+1]
+		if [ "$n" == "$pos" ]; then
+		    if [ "$1" = "1" ]; then
+			exit 0
+		    fi
+		    break
+		fi
+		shift
+	    done
+	fi    
+    done
+    exit 1
+}
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/extras/ide-media.sh	2006-02-07 10:58:51.000000000 +0100
@@ -0,1 +1,8 @@
+#!/bin/bash 
+i=0
+while [[ ! -a /proc/ide/$1/media && $i -lt 10 ]]; do 
+	/bin/usleep 100000; 
+	i=$[i+1];
+done
+/bin/cat /proc/ide/$1/media
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/extras/run_directory/MAKEDEV.dev	2006-02-07 10:58:51.000000000 +0100
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+if [ "$ACTION" = "add" -a -e "$DEVNAME" ]; then
+	if [ -x /usr/bin/logger ]; then
+	    LOGGER=/usr/bin/logger
+	elif [ -x /bin/logger ]; then
+	    LOGGER=/bin/logger
+	else
+	    unset LOGGER
+	fi
+	#
+	# for diagnostics
+	#
+	if [ -f /etc/udev/udev.conf ]; then
+        	. /etc/udev/udev.conf
+	fi
+
+
+	if [ -t 1 -o -z "$LOGGER" ]; then
+	    mesg () {
+	        echo "$@"
+	    }
+	else
+	    mesg () {
+	        $LOGGER -t $(basename $0)"[$$]" "$@"
+	    }
+	fi
+
+	debug_mesg () {
+	    test -z "$UDEV_LOG" -o "$UDEV_LOG" != "1" && return
+	    mesg "$@"
+	}
+
+	debug_mesg "/sbin/MAKEDEV ${DEVNAME#$udev_root}"
+	/sbin/MAKEDEV "${DEVNAME#$udev_root}"
+	debug_mesg "Restoring permissions for " $DEVNAME*
+	/sbin/pam_console_apply $DEVNAME*
+fi
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/extras/load_floppy_module.sh	2006-02-07 10:58:51.000000000 +0100
@@ -0,1 +1,36 @@
+#!/bin/sh
+########################################################################
+#
+# Description : load_floppy_module
+#
+# Authors     : Based on Open Suse Udev Rules
+#               kay.sievers at suse.de
+#
+# Notes       : Loads the floppy module based upon contents of the NVRAM
+# 
+########################################################################
+
+PROC=/proc/driver/nvram
+
+# wait for /proc file to appear
+loop=10
+while ! test -e $PROC; do
+    sleep 0.1;
+    test "$loop" -gt 0 || break
+    loop=$(($loop - 1))
+done
+
+if [ ! -r /proc/driver/nvram ]; then
+    exit 0;
+fi
+
+floppy_devices=$(cat $PROC | sed -n '/Floppy.*\..*/p')
+
+if [ -n "$floppy_devices" ]; then
+    /sbin/modprobe block-major-2-
+else
+    /bin/true
+fi
+
+exit $?

udev-permconv.patch:
 udevpermconv.sh |   94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 94 insertions(+)

--- NEW FILE udev-permconv.patch ---
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/extras/udevpermconv.sh	2006-02-07 10:58:51.000000000 +0100
@@ -0,0 +1,94 @@
+#!/bin/bash
+#
+# convert old udev permissions.d file to the new rules.d format.
+# revision 2
+#
+# Written by Michael Buesch <mbuesch at freenet.de>
+# This is released into the Public Domain.
+#
+
+
+perm_file="$1"
+
+function processLine
+{
+	local line="$1"
+	if [ -z "$line" ]; then
+		echo
+		return 1
+	fi
+	if [ "`echo $line | cut -b1`" = "#" ]; then
+		# comment
+		echo "$line"
+		return 2
+	fi
+
+	local i=
+	local kern_name=
+	local owner=
+	local group=
+	local mode=
+	for ((i = 1; i <= 4; i++)); do
+		local tmp="`echo $line | cut -d: -f $i`"
+		if [ $i -eq 1 ]; then
+			kern_name="$tmp"
+		elif [ $i -eq 2 ]; then
+			owner="$tmp"
+		elif [ $i -eq 3 ]; then
+			group="$tmp"
+		elif [ $i -eq 4 ]; then
+			mode="$tmp"
+		fi
+	done
+	if [ -z "$kern_name" ]; then
+		echo "Malformed line:  \"$line\"" >&2
+		return 3
+	fi
+	local need_rule="no"
+	local out="KERNEL==\"$kern_name\""
+	local kern_name_len="`echo $kern_name | wc -c`"
+	kern_name_len="`expr $kern_name_len + 9`"
+	local num_tabs="`expr 32 - $kern_name_len`"
+	num_tabs="`expr $num_tabs / 8`"
+	while [ $num_tabs -gt 0 ]; do
+		out="${out}\t"
+		num_tabs="`expr $num_tabs - 1`"
+	done
+	if [ -n "$owner" ] && [ "$owner" != "root" ]; then
+		out="${out}, OWNER=\"$owner\""
+		need_rule="yes"
+	fi
+	if [ -n "$group" ] && [ "$group" != "root" ]; then
+		out="${out}, GROUP=\"$group\""
+		need_rule="yes"
+	fi
+	if [ -n "$mode" ] && [ "$mode" != "0600" ] && [ "$mode" != "600" ]; then
+		out="${out}, MODE=\"$mode\""
+		need_rule="yes"
+	fi
+	if [ "$need_rule" = "no" ]; then
+		echo "Do not need a rule for:  \"$line\"  (It's udev default permissions)" >&2
+		return 4
+	fi
+	echo -e "$out"
+	return 0
+}
+
+function processInput
+{
+	echo "Converting udev permissions file. This can take a while..." >&2
+	cat $perm_file | \
+	while read line; do
+		processLine "$line"
+	done
+	echo "done." >&2
+}
+
+if ! [ -r "$perm_file" ]; then
+	echo "Could not read input file" >&2
+	echo "Usage: $0 old_permission_file > new_rules_file" >&2
+	exit 1
+fi
+
+processInput
+exit 0

udev-rules.patch:
 05-udev-early.rules  |    9 +++
 95-pam-console.rules |    1 
 hotplug.rules        |   13 ++++-
 udev.rules           |  118 ++++++++++++++++++++++++++-------------------------
 4 files changed, 82 insertions(+), 59 deletions(-)

--- NEW FILE udev-rules.patch ---
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/etc/udev/redhat/95-pam-console.rules	2006-02-07 11:30:42.000000000 +0100
@@ -0,0 +1 @@
+ACTION=="add", SYSFS{dev}="?*", KERNEL=="?*", RUN+="/sbin/pam_console_apply $env{DEVNAME} $env{DEVLINKS}"
--- udev-084/etc/udev/redhat/hotplug.rules.redhat	2006-01-30 08:51:38.000000000 +0100
+++ udev-084/etc/udev/redhat/hotplug.rules	2006-02-07 10:58:51.000000000 +0100
@@ -1,9 +1,16 @@
 # do not call hotplug.d and dev.d for "drivers" and "module" events
-SUBSYSTEM=="drivers",	OPTIONS="last_rule"
-SUBSYSTEM=="module",	OPTIONS="last_rule"
+SUBSYSTEM=="drivers",   GOTO="hotplug_end"
+SUBSYSTEM=="module",    GOTO="hotplug_end"
+ACTION="add",           GOTO="hotplug_comp"
+ACTION="remove",        GOTO="hotplug_comp"
 
+GOTO="hotplug_end"
+
+LABEL="hotplug_comp"
 # compatibility support for the obsolete hotplug.d and dev.d directories
-ENV{UDEVD_EVENT}=="1",	RUN+="/lib/udev/udev_run_hotplugd"
+ENV{UDEVD_EVENT}=="1",  RUN+="/lib/udev/udev_run_hotplugd"
 RUN+="/lib/udev/udev_run_devd"
 
+
+LABEL="hotplug_end"
--- /dev/null	2006-02-07 10:47:25.401206250 +0100
+++ udev-084/etc/udev/redhat/05-udev-early.rules	2006-02-07 11:30:42.000000000 +0100
@@ -0,1 +1,10 @@
+# sysfs is populated after the event is sent
+ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
+ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
+
+# ignore these events until someone needs them
+SUBSYSTEM=="drivers",		OPTIONS="ignore_device"
+SUBSYSTEM=="module",		OPTIONS="ignore_device"
+
+ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="*", RUN="/sbin/firmware_helper", OPTIONS="last_rule"
--- udev-084/etc/udev/redhat/udev.rules.redhat	2006-01-30 08:51:38.000000000 +0100
+++ udev-084/etc/udev/redhat/udev.rules	2006-02-07 11:30:42.000000000 +0100
@@ -3,6 +3,7 @@
 #
 # default is OWNER="root" GROUP="root", MODE="0600"
 #
+
 KERNEL="*", OWNER="root" GROUP="root", MODE="0600"
 
 # all block devices
@@ -10,40 +11,44 @@
 KERNEL=="root",			GROUP="disk", MODE="0640"
 
 # console devices
-KERNEL=="tty",			MODE="0666", OPTIONS="last_rule"
-KERNEL=="console",		MODE="0600", OPTIONS="last_rule"
-KERNEL=="tty[0-9]",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
-KERNEL=="tty[0-9][0-9]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
-KERNEL=="vc/[0-9]*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="tty",			NAME="%k", GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="console",              NAME="%k", MODE="0600", OPTIONS="last_rule"
+KERNEL=="tty[0-9]*",            NAME="%k", GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="vc/[0-9]*",		NAME="%k", GROUP="tty", MODE="0660", OPTIONS="last_rule"
 
 # pty devices
 #  Set this to 0660 if you only want users belonging to tty group
 #  to be able to allocate PTYs
-KERNEL=="ptmx",			GROUP="tty", MODE="0666", OPTIONS="last_rule"
-KERNEL=="pty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
-KERNEL=="tty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
-KERNEL=="pty/m*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
-KERNEL=="vc/s*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="ptmx",                 NAME="%k", GROUP="tty", MODE="666", OPTIONS="last_rule"
+KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", MODE="660", OPTIONS="last_rule"
+KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", MODE="660", OPTIONS="last_rule"
+KERNEL=="pty/m*",		NAME="%k", GROUP="tty", MODE="0660", OPTIONS="last_rule"
 
 # serial+dialup devices
-KERNEL=="ttyS*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
-KERNEL=="ttyACM*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
-KERNEL=="ttyUSB*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
-KERNEL=="ippp*",		MODE="0660"
-KERNEL=="isdn*",		MODE="0660"
-KERNEL=="isdnctrl*",		MODE="0660"
-KERNEL=="capi*",		MODE="0660"
-KERNEL=="dcbri*",		MODE="0660"
-KERNEL=="ircomm*",		GROUP="uucp", MODE="0660"
-KERNEL=="tts/[0-9]*",		GROUP="uucp", MODE="0660"
-KERNEL=="tts/USB[0-9]*",	GROUP="uucp", MODE="0660"
+KERNEL=="ippp*",		NAME="%k", MODE="0660"
+KERNEL=="isdn*",		NAME="%k", MODE="0660"
+KERNEL=="isdnctrl*",		NAME="%k", MODE="0660"
+KERNEL=="capi*",		NAME="%k", MODE="0660"
+KERNEL=="dcbri*",		NAME="%k", MODE="0660"
+KERNEL=="ircomm*",		NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="tts/[0-9]*",		NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="tts/USB[0-9]*",	NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="tty[A-Z]*",            NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="pppox*",               NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="ircomm*",              NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="modems/mwave*",        NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="hvc*",                 NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="hvsi*",                NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="iseries/vtty*",        NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", SYMLINK+="pilot"
+KERNEL=="ttyUSB*", SYSFS{product}=="palmOne Handheld*", SYMLINK+="pilot"
 
 # vc devices
-KERNEL=="vcs",			OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcs[0-9]*",		OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcsa",			OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcsa[0-9]*",		OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcc/*",		OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcs",			NAME="%k", OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcs[0-9]*",		NAME="%k", OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcsa",			NAME="%k", OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcsa[0-9]*",		NAME="%k", OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcc/*",		NAME="%k", OWNER="vcsa", GROUP="tty", OPTIONS="last_rule"
 
 # memory devices
 KERNEL=="random",		MODE="0666", OPTIONS="last_rule"
@@ -54,6 +59,8 @@
 KERNEL=="full",			MODE="0666", OPTIONS="last_rule"
 KERNEL=="null",			MODE="0666", OPTIONS="last_rule"
 KERNEL=="zero",			MODE="0666", OPTIONS="last_rule"
+# 183 = /dev/hwrng        Generic random number generator
+KERNEL=="hw_random",            NAME="hwrng", SYMLINK+="%k"
 
 # misc devices
 KERNEL=="nvram",		MODE="0660"
@@ -61,6 +68,10 @@
 
 # floppy devices
 KERNEL=="fd[01]*",		GROUP="floppy", MODE="0660"
+# fix floppy devices
+KERNEL=="nvram", ACTION=="add", RUN+="load_floppy_module.sh"
+KERNEL=="fd[0-9]*", ACTION=="add", SYSFS{device/cmos}=="*", RUN+="create_floppy_devices -c -t $sysfs{device/cmos} -m %M /dev/%k"
+KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f /dev/%k*'"
 
 # audio devices
 KERNEL=="dsp*",			MODE="0660"
@@ -209,7 +220,7 @@
 KERNEL=="fd[0-9]*",		SYMLINK+="floppy%e"
 KERNEL=="nst[0-9]", BUS=="scsi", 	SYMLINK+="tape%e", MODE="0660"
 KERNEL=="nosst[0-9]", BUS=="scsi", 	SYMLINK+="tape%e", MODE="0660"
-KERNEL=="sg[0-9]*", BUS="scsi", SYSFS{type}=="6", SYMLINK+="scanner%e", MODE="0660"
+KERNEL=="sg[0-9]*", BUS="scsi", SYSFS{type}=="[36]", SYMLINK+="scanner%e", MODE="0660"
 
 KERNEL=="umad*", 		NAME="infiniband/%k"
 KERNEL=="issm*", 		NAME="infiniband/%k"
@@ -224,24 +235,25 @@
 BUS=="scsi", KERNEL=="sg[0-9]*", SYSFS{type}=="6", NAME="%k", SYMLINK="scanner%e", MODE="0660"
 
 # do not seperate the next 2 lines!!
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/lib/udev/ide-media.sh %k", RESULT=="floppy", SYMLINK+="floppy%e", NAME{ignore_remove, all_partitions}="%k"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="ide-media.sh %k", RESULT=="floppy", SYMLINK+="floppy%e", NAME{ignore_remove, all_partitions}="%k"
 
 KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", RESULT=="cdrom", SYMLINK+="cdrom%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/lib/udev/check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/lib/udev/check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/lib/udev/check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/lib/udev/check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="/lib/udev/check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/lib/udev/check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
 
 # rename sr* to scd*
 KERNEL=="sr[0-9]*", BUS=="scsi", NAME="scd%n"
 KERNEL=="hd[a-z]*", BUS=="ide", SYSFS{removable}=="1", NAME{ignore_remove}="%k"
 
-KERNEL=="dvb*", PROGRAM=="/lib/udev/dvb.sh %k", NAME="%c"
+# dvb
+SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c"
 
 #######################################
 # Persistent block device stuff - begin
@@ -297,37 +309,31 @@
 # Persistent block device stuff - end
 #####################################
 
-ACTION=="add", SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
-
+ACTION=="add", SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"
 
 # Perhaps this should just be for all subsystems?
+ACTION=="add", SUBSYSTEM=="?*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
 
-ACTION=="add", SUBSYSTEM=="pci", MODALIAS=="*", \
-	RUN+="/sbin/modprobe $modalias"
-ACTION=="add", SUBSYSTEM=="usb", MODALIAS=="*", \
-	RUN+="/sbin/modprobe $modalias"
-ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="*", \
-	RUN+="/sbin/modprobe $modalias"
 ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="*", \
         RUN+="/bin/sh -c 'echo 1 > /sys/$DEVPATH/allow_func_id_match'"
 
-ACTION=="add", SUBSYSTEM=="ieee1394", MODALIAS=="*", \
-	RUN+="/sbin/modprobe $modalias"
+# sd:           0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
+# sr:           4 TYPE_WORM, 5 TYPE_ROM
+# st/osst:      1 TYPE_TAPE
+ACTION=="add", SUBSYSTEM="scsi" , SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
+ACTION=="add", SUBSYSTEM="scsi" , SYSFS{type}=="1", RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'"
 
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[07]", \
+ACTION=="add", SUBSYSTEM=="scsi_device", SYSFS{type}=="0|7|14", \
 	RUN+="/sbin/modprobe sd_mod"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="14", \
-	RUN+="/sbin/modprobe sd_mod"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[45]", \
+ACTION=="add", SUBSYSTEM=="scsi_device", SYSFS{type}=="[45]", \
 	RUN+="/sbin/modprobe sr_mod"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="On[sS]tream", \
+ACTION=="add", SUBSYSTEM=="scsi_device", SYSFS{type}=="1", SYSFS{device/vendor}=="On[sS]tream", \
 	SYSFS{model}!="ADR*", RUN+="/sbin/modprobe osst"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="On[sS]tream", \
+ACTION=="add", SUBSYSTEM=="scsi_device", SYSFS{type}=="1", SYSFS{device/vendor}=="On[sS]tream", \
 	SYSFS{model}=="ADR*", RUN+="/sbin/modprobe st"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}!="On[sS]tream", \
+ACTION=="add", SUBSYSTEM=="scsi_device", SYSFS{type}=="1", SYSFS{device/vendor}!="On[sS]tream", \
 	RUN+="/sbin/modprobe st"
-ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[23689]", \
-	RUN+="/sbin/modprobe sg"
+ACTION=="add", SUBSYSTEM=="scsi_device"	RUN+="/sbin/modprobe sg"
+
+RUN+="socket:/org/kernel/udev/monitor"
 
-ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="*", \
-        RUN+="/sbin/firmware_helper"


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/.cvsignore,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- .cvsignore	21 Dec 2005 11:36:18 -0000	1.31
+++ .cvsignore	7 Feb 2006 11:06:12 -0000	1.32
@@ -1 +1 @@
-udev-078.tar.bz2
+udev-084.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/sources,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- sources	21 Dec 2005 11:36:19 -0000	1.31
+++ sources	7 Feb 2006 11:06:14 -0000	1.32
@@ -1 +1 @@
-afdacc5f3e6ced2923479b37da41fd0b  udev-078.tar.bz2
+143b3691ae5e6f96995e5749894f78e4  udev-084.tar.bz2


Index: start_udev
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/start_udev,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- start_udev	11 Jan 2006 12:11:24 -0000	1.49
+++ start_udev	7 Feb 2006 11:06:19 -0000	1.50
@@ -28,7 +28,7 @@
 
 [ -d $sysfs_dir/class ] || exit 1
 [ -r /proc/mounts ] || exit 1
-[ -x /sbin/udev ] || exit 1
+[ -x /sbin/udevd ] || exit 1
 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
 udev_root=${udev_root-/dev}
 
@@ -119,7 +119,10 @@
 	loop=200
 	while test -d /dev/.udev/queue; do
 		usleep 100000;
-		test "$loop" -gt 0 || return 1
+		if [ "$loop" -le 0 ]; then
+			echo -n "Wait timeout. Will continue in the background."
+			return 1
+		fi
 		loop=$(($loop - 1))
 	done
 	return 0


Index: udev.spec
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/udev.spec,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- udev.spec	6 Feb 2006 15:30:27 -0000	1.143
+++ udev.spec	7 Feb 2006 11:06:20 -0000	1.144
@@ -4,8 +4,8 @@
 
 Summary: A userspace implementation of devfs
 Name: udev
-Version: 078
-Release: 9
+Version: 084
+Release: 1
 License: GPL
 Group: System Environment/Base
 Provides: udev-persistent = 0:%{version}-%{release}
@@ -17,11 +17,11 @@
 
 Source10: firmware_helper.c
 
-Patch1: udev-078-redhat.patch
-Patch2: udevstart2.patch
-Patch3: udev-075-selinux.patch
-Patch4: udev-078-udevstart-greylist.patch
-Patch5: udev-078-nodberr.patch
+Patch1: udev-permconv.patch
+Patch2: udev-rules.patch
+Patch3: udevstart2.patch
+Patch4: udev-084-floppy.patch
+Patch5: udev-extras.patch
 
 ExclusiveOS: Linux
 URL: http://kernel.org/pub/linux/utils/kernel/hotplug/
@@ -41,11 +41,11 @@
 
 %prep
 %setup -q  
-%patch1 -p1 -b .redhat
-%patch2 -p1 -b .udevstart2
-%patch3 -p1 -b .selinux
-%patch4 -p1 -b .greylist
-%patch5 -p1 -b .nodberr
+%patch1 -p1 -b .rhpermconv
+%patch2 -p1 -b .rhrules
+%patch3 -p1 -b .rhudevstart
+%patch4 -p1 -b .rhfloppy
+%patch5 -p1 -b .rhextras
 
 %build
 
@@ -68,7 +68,6 @@
 %endif
 	" all
 
-mv udev udev.static
 mv udevd udevd.static
 mv extras/scsi_id/scsi_id extras/scsi_id/scsi_id.static
 mv extras/ata_id/ata_id extras/ata_id/ata_id.static
@@ -145,7 +144,6 @@
 
 install -m 0644 etc/udev/udev.conf $RPM_BUILD_ROOT%{_sysconfdir}/udev/udev.conf
 
-install -m 0755 udev.static $RPM_BUILD_ROOT/sbin/udev.static
 install -m 0755 udevd.static $RPM_BUILD_ROOT/sbin/udevd.static
 
 
@@ -153,9 +151,6 @@
 
 mkdir -p $RPM_BUILD_ROOT%{udev_scriptdir}/{,devices}
 
-install -m 0644 extras/run_directory/dev.d/default/pam_console.dev $RPM_BUILD_ROOT%{udev_scriptdir}
-ln -s %{udev_scriptdir}/pam_console.dev $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/default/05-pam_console.dev
-
 for i in load_floppy_module.sh check-cdrom.sh ide-media.sh udevpermconv.sh; do
 	install -m 0755 extras/$i $RPM_BUILD_ROOT%{udev_scriptdir}
 done
@@ -166,6 +161,7 @@
 install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT/sbin/start_udev
 install -m 0644 extras/path_id $RPM_BUILD_ROOT/sbin/path_id
 install -m 0755 firmware_helper $RPM_BUILD_ROOT/sbin
+install -m 0755 udevstart $RPM_BUILD_ROOT/sbin
 install -m 0644 extras/run_directory/MAKEDEV.dev $RPM_BUILD_ROOT/%{udev_scriptdir}/MAKEDEV.dev
 
 
@@ -216,11 +212,8 @@
 %defattr(-,root,root)
 %doc COPYING README TODO ChangeLog RELEASE-NOTES docs/* 
 %doc etc/udev/redhat/udev.rules
-%attr(0755,root,root) /sbin/udev
-%attr(0755,root,root) /sbin/udev.static
 %attr(0755,root,root) /sbin/udevd.static
 %attr(0755,root,root) /sbin/udevcontrol
-%attr(0755,root,root) /sbin/udevsend
 %attr(0755,root,root) /sbin/udevd
 %attr(0755,root,root) /sbin/udevstart
 %attr(0755,root,root) /sbin/start_udev
@@ -251,8 +244,6 @@
 %ghost %dir %{_sysconfdir}/udev/scripts/
 %ghost %dir %{_sysconfdir}/udev/devices/
 %attr(0755,root,root) %dir %{_sysconfdir}/udev/makedev.d/
-%attr(0755,root,root) %{udev_scriptdir}/pam_console.dev
-%config(missingok) %{_sysconfdir}/dev.d/default/05-pam_console.dev
 %attr(0755,root,root) %dir %{_sysconfdir}/dev.d/default
 %attr(0755,root,root) %dir %{_sysconfdir}/dev.d/
 %attr(0755,root,root) %{udev_scriptdir}/MAKEDEV.dev
@@ -276,12 +267,16 @@
 
 %dir %attr(0755,root,root) /lib/firmware
 %attr(0644,root,root) %{_mandir}/man8/udev*.8*
+%attr(0644,root,root) %{_mandir}/man7/udev*.7*
 %attr(0644,root,root) %{_mandir}/man8/scsi_id*.8*
 %attr(0644,root,root) %{_mandir}/man8/ata_id*.8*
 %attr(0644,root,root) %{_mandir}/man8/edd_id*.8*
 %attr(0644,root,root) %{_mandir}/man8/vol_id*.8*
 
 %changelog
+* Tue Feb 07 2006 Harald Hoyer <harald at redhat.com> - 084-1
+- version 084
+
 * Mon Feb 06 2006 Harald Hoyer <harald at redhat.com> - 078-9
 - closed fd leak (bug #179980)
 

udevstart2.patch:
 udevstart.c |  168 +++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 99 insertions(+), 69 deletions(-)

Index: udevstart2.patch
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/udevstart2.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- udevstart2.patch	21 Dec 2005 11:36:19 -0000	1.5
+++ udevstart2.patch	7 Feb 2006 11:06:20 -0000	1.6
@@ -1,16 +1,14 @@
---- udev-078/udevstart.c.udevstart2	2005-12-17 16:40:29.000000000 +0100
-+++ udev-078/udevstart.c	2005-12-21 10:57:18.000000000 +0100
-@@ -37,6 +37,7 @@
+--- udev-084/udevstart.c.udevstart2	2006-01-30 08:51:38.000000000 +0100
++++ udev-084/udevstart.c	2006-02-07 10:11:31.000000000 +0100
+@@ -37,13 +37,13 @@
  #include <sys/wait.h>
  #include <sys/stat.h>
  #include <sys/types.h>
 +#include <fcntl.h>
++#include <fnmatch.h>
  
- #include "libsysfs/sysfs/libsysfs.h"
- #include "udev_libc_wrapper.h"
-@@ -47,9 +48,7 @@
+ #include "udev.h"
  #include "udev_rules.h"
- #include "list.h"
  
 -static const char *udev_run_str;
  static const char *udev_log_str;
@@ -18,75 +16,54 @@
  
  #ifdef USE_LOG
  void log_message(int priority, const char *format, ...)
-@@ -109,71 +108,29 @@
+@@ -101,76 +101,60 @@
  static char *first_list[] = {
  	"/class/mem",
  	"/class/tty",
 +	"/bus",
++	NULL,
++};
++
++/* list of devices whose modaliases we should run last */
++static char *last_modalias_list[] = {
++	"pci:v*d*sv*sd*bc0Csc03i*",	/* USB controller */
++	"pci:v*d*sv*sd*bc0Csc00i10*",	/* Firewire controller */
  	NULL,
  };
--
-+  
- static int add_device(const char *devpath, const char *subsystem)
+ 
+ static int add_device(const char *devpath)
  {
--	struct udevice udev;
--	struct sysfs_class_device *class_dev;
--	char path[PATH_SIZE];
+-	struct sysfs_device *dev;
+-	struct udevice *udev;
+-	int retval = 0;
 -
 -	/* clear and set environment for next event */
 -	clearenv();
 -	setenv("ACTION", "add", 1);
--	setenv("DEVPATH", devpath, 1);
--	setenv("SUBSYSTEM", subsystem, 1);
 -	setenv("UDEV_START", "1", 1);
 -	if (udev_log_str)
 -		setenv("UDEV_LOG", udev_log_str, 1);
 -	if (udev_run_str)
 -		setenv("UDEV_RUN", udev_run_str, 1);
--	dbg("add '%s'", devpath);
 -
--	snprintf(path, sizeof(path), "%s%s", sysfs_path, devpath);
--	path[sizeof(path)-1] = '\0';
--	class_dev = sysfs_open_class_device_path(path);
--	if (class_dev == NULL) {
--		dbg("sysfs_open_class_device_path failed");
+-	dev = sysfs_device_get(devpath);
+-	if (dev == NULL)
 -		return -1;
--	}
 -
--	udev_init_device(&udev, &class_dev->path[strlen(sysfs_path)], subsystem, "add");
--	udev.devt = get_devt(class_dev);
--	if (!udev.devt && udev.type != DEV_NET) {
--		dbg("sysfs_open_class_device_path failed");
+-	udev = udev_device_init();
+-	if (udev == NULL)
 -		return -1;
--	}
--	udev_rules_get_name(&rules, &udev, class_dev);
--	if (udev.ignore_device) {
--		dbg("device event will be ignored");
--		goto exit;
--	}
--	if (udev.name[0] == '\0') {
--		dbg("device node creation supressed");
--		goto run;
--	}
 -
--	udev_add_device(&udev, class_dev);
--run:
--	if (udev_run && !list_empty(&udev.run_list)) {
--		struct name_entry *name_loop;
--
--		dbg("executing run list");
--		list_for_each_entry(name_loop, &udev.run_list, node) {
--			if (strncmp(name_loop->name, "socket:", strlen("socket:")) == 0)
--				pass_env_to_socket(&name_loop->name[strlen("socket:")], devpath, "add");
--			else
--				run_program(name_loop->name, udev.subsystem, NULL, 0, NULL, (udev_log_priority >= LOG_INFO));
--		}
+-	/* override built-in sysfs device */
+-	udev->dev = dev;
+-	strcpy(udev->action, "add");
+-	udev->devt = udev_device_get_devt(udev);
+-
+-	if (strcmp(udev->dev->subsystem, "net") != 0) {
+-		udev->devt = udev_device_get_devt(udev);
+-		if (major(udev->devt) == 0)
+-			return -1;
 -	}
--exit:
--	sysfs_close_class_device(class_dev);
--	udev_cleanup_device(&udev);
--
--	return 0;
 +  char filename[PATH_SIZE];
 +  int fd;
 +  
@@ -102,13 +79,85 @@
 +  else return 1;
 +  
 +  return 0;
- }
++}
+ 
+-	dbg("add '%s'", udev->dev->devpath);
+-	setenv("DEVPATH", udev->dev->devpath, 1);
+-	setenv("SUBSYSTEM", udev->dev->subsystem, 1);
 -
-+  
- static void exec_list(struct list_head *device_list)
- {
- 	struct device *loop_device;
-@@ -222,7 +179,7 @@
+-	udev_rules_get_name(&rules, udev);
+-	if (udev->ignore_device) {
+-		dbg("device event will be ignored");
+-		goto exit;
+-	}
+-	if (udev->name[0] != '\0')
+-		retval = udev_add_device(udev);
+-	else
+-		info("device node creation supressed");
+-
+-	if (retval == 0 && udev_run) {
+-		struct name_entry *name_loop;
+-
+-		dbg("executing run list");
+-		list_for_each_entry(name_loop, &udev->run_list, node) {
+-			if (strncmp(name_loop->name, "socket:", strlen("socket:")) == 0)
+-				pass_env_to_socket(&name_loop->name[strlen("socket:")], udev->dev->devpath, "add");
+-			else {
+-				char program[PATH_SIZE];
+-
+-				strlcpy(program, name_loop->name, sizeof(program));
+-				udev_rules_apply_format(udev, program, sizeof(program));
+-				run_program(program, udev->dev->subsystem, NULL, 0, NULL, (udev_log_priority >= LOG_INFO));
+-			}
++static int modalias_is_greylisted(struct device *dev)
++{
++
++	char filename[PATH_SIZE];
++	char alias[PATH_SIZE];
++	int fd, i;
++	
++	snprintf(filename,sizeof(filename),"%s/%s/modalias", sysfs_path, dev->path);
++	filename[sizeof(filename)-1] = '\0';
++	
++	fd = open(filename, O_RDONLY);
++	if (fd == -1)
++		return 0;
++	read(fd,alias,PATH_SIZE);
++	alias[sizeof(alias)-1] = '\0';
++	alias[strlen(alias)-1] = '\0';
++	
++	for (i = 0; last_modalias_list[i] != NULL; i++)
++		if (!fnmatch(last_modalias_list[i], alias, 0)) {
++			close(fd);
++			return 1;
+ 		}
+-	}
+ 
+-exit:
+-	udev_device_cleanup(udev);
++	close(fd);
+ 	return 0;
+ }
+ 
+@@ -184,6 +168,8 @@
+ 	list_for_each_entry_safe(loop_device, tmp_device, device_list, node) {
+ 		for (i = 0; first_list[i] != NULL; i++) {
+ 			if (strncmp(loop_device->path, first_list[i], strlen(first_list[i])) == 0) {
++				if (modalias_is_greylisted(loop_device))
++					continue;
+ 				add_device(loop_device->path);
+ 				list_del(&loop_device->node);
+ 				free(loop_device);
+@@ -203,6 +189,8 @@
+ 		}
+ 		if (found)
+ 			continue;
++		if (modalias_is_greylisted(loop_device))
++			continue;
+ 
+ 		add_device(loop_device->path);
+ 		list_del(&loop_device->node);
+@@ -222,7 +210,7 @@
  	char filename[PATH_SIZE];
  	struct stat statbuf;
  
@@ -117,7 +166,7 @@
  	filename[sizeof(filename)-1] = '\0';
  
  	if (stat(filename, &statbuf) == 0)
-@@ -279,6 +236,50 @@
+@@ -279,6 +267,50 @@
  	}
  }
  
@@ -155,7 +204,7 @@
 +					dirname2[sizeof(dirname2)-1] = '\0';
 +
 +					if (has_devt(dirname2))
-+						device_list_insert(dirname2, dent->d_name, device_list);
++						device_list_insert(dirname2, device_list);
 +				}
 +				closedir(dir2);
 +			}
@@ -168,35 +217,35 @@
  static void udev_scan_class(struct list_head *device_list)
  {
  	char base[PATH_SIZE];
-@@ -312,7 +313,7 @@
+@@ -312,7 +344,7 @@
  					snprintf(dirname2, sizeof(dirname2), "%s/%s", dirname, dent2->d_name);
  					dirname2[sizeof(dirname2)-1] = '\0';
  
 -					if (has_devt(dirname2) || strcmp(dent->d_name, "net") == 0)
 +					if (has_devt(dirname2))
- 						device_list_insert(dirname2, dent->d_name, device_list);
+ 						device_list_insert(dirname2, device_list);
  				}
  				closedir(dir2);
-@@ -342,7 +343,6 @@
- 	udev_init_config();
+@@ -342,7 +374,6 @@
+ 	udev_config_init();
  	dbg("version %s", UDEV_VERSION);
  
 -	udev_run_str = getenv("UDEV_RUN");
  	udev_log_str = getenv("UDEV_LOG");
  
  	/* disable all logging if not explicitely requested */
-@@ -361,13 +361,11 @@
- 	/* trigger timeout to prevent hanging processes */
+@@ -362,13 +393,12 @@
  	alarm(UDEV_ALARM_TIMEOUT);
  
+ 	sysfs_init();
 -	udev_rules_init(&rules, 1);
--
+ 
 +	udev_scan_bus(&device_list);
  	udev_scan_class(&device_list);
  	udev_scan_block(&device_list);
  	exec_list(&device_list);
  
--	udev_rules_close(&rules);
+-	udev_rules_cleanup(&rules);
+ 	sysfs_cleanup();
  	logging_close();
  	return 0;
- }


Index: upstream
===================================================================
RCS file: /cvs/dist/rpms/udev/devel/upstream,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- upstream	11 Jan 2005 10:53:53 -0000	1.3
+++ upstream	7 Feb 2006 11:06:20 -0000	1.4
@@ -1 +1 @@
-udev-050.tar.bz2
+udev-084.tar.bz2


--- udev-063.tar.bz2.sign DELETED ---


--- udev-075-daemon.patch DELETED ---


--- udev-075-selinux.patch DELETED ---


--- udev-078-nodberr.patch DELETED ---


--- udev-078-redhat.patch DELETED ---


--- udev-078-udevstart-greylist.patch DELETED ---




More information about the fedora-cvs-commits mailing list