Hello community,
here is the log from the commit of package udev
checked in at Tue Apr 24 01:45:11 CEST 2007.
--------
--- udev/udev.changes 2007-03-29 00:30:59.000000000 +0200
+++ /mounts/work_src_done/STABLE/udev/udev.changes 2007-04-24 01:33:46.821303000 +0200
@@ -1,0 +2,16 @@
+Sun Apr 24 01:00:00 CEST 2007 - kay.sievers@suse.de
+
+- add Short-Description: to init scripts
+- install the rules from the suse directory in the udev package
+- disable /etc/udev/rules.d/65-cdrom.rules which is created by
+ the installer, and enable the udev persistent rules generator to
+ provide persistent optical device-links for all devices, not only
+ the ones present at installation time
+- first cut of md persistent device-naming based on change-events
+ (hope we can add "md auto-assembly" to this rules file soon)
+- removal of /usr/bin/udev.count_events, it's just udevsettle, and
+ possible callers should be fixed and calll udevsettle directly
+- delete load_floppy_module.sh, the modalias it tries to request,
+ seems not to exist
+
+-------------------------------------------------------------------
Old:
----
05-udev-early.rules
50-udev-default.rules
60-persistent-input.rules
60-persistent-storage.rules
64-device-mapper.rules
95-udev-late.rules
load_floppy_module.sh
udev-108.tar.bz2
New:
----
udev-109.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ udev.spec ++++++
--- /var/tmp/diff_new_pack.ec4165/_old 2007-04-24 01:44:55.000000000 +0200
+++ /var/tmp/diff_new_pack.ec4165/_new 2007-04-24 01:44:55.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package udev (Version 108)
+# spec file for package udev (Version 109)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,7 +12,7 @@
Name: udev
URL: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-Version: 108
+Version: 109
Release: 1
License: GNU General Public License (GPL)
Group: System/Kernel
@@ -24,17 +24,6 @@
#
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.tar.bz2
#
-# rules
-Source9: 05-udev-early.rules
-Source11: 50-udev-default.rules
-Source12: 60-persistent-storage.rules
-Source13: 60-persistent-input.rules
-Source14: 64-device-mapper.rules
-Source15: 95-udev-late.rules
-#
-# rule helper
-Source26: load_floppy_module.sh
-#
# system
Source60: boot.udev
Source61: boot.udev_retry
@@ -72,7 +61,6 @@
Authors:
--------
- Greg Kroah-Hartman
Kay Sievers
%package -n libvolume_id
@@ -86,7 +74,6 @@
Authors:
--------
- Greg Kroah-Hartman
Kay Sievers
%define extras "extras/scsi_id extras/volume_id extras/ata_id extras/usb_id extras/edd_id extras/cdrom_id extras/floppy extras/path_id extras/firmware extras/rule_generator"
@@ -98,11 +85,7 @@
%install
make V=1 DESTDIR=$RPM_BUILD_ROOT libdir=/%{_lib} usrlibdir=%{_libdir} EXTRAS=%{extras} install
-ln -sf /sbin/udevsettle ${RPM_BUILD_ROOT}/usr/bin/udev.count_events
-rm -f ${RPM_BUILD_ROOT}%{_libdir}/libvolume_id.a
# disable persistent rules until sysconfig is ready
-mv ${RPM_BUILD_ROOT}/etc/udev/rules.d/75-cd-aliases-generator.rules \
- ${RPM_BUILD_ROOT}/etc/udev/rules.d/75-cd-aliases-generator.rules.disabled
mv ${RPM_BUILD_ROOT}/etc/udev/rules.d/75-persistent-net-generator.rules \
${RPM_BUILD_ROOT}/etc/udev/rules.d/75-persistent-net-generator.rules.disabled
install -m755 -D extras/eventrecorder.sh ${RPM_BUILD_ROOT}/lib/udev/eventrecorder.sh
@@ -114,17 +97,8 @@
install -m644 -D RELEASE-NOTES ../doc/RELEASE-NOTES
install -m644 -D ChangeLog ../doc/ChangeLog
#
-# install rules
-install -m644 -D %{S:9} $RPM_BUILD_ROOT/etc/udev/rules.d/05-udev-early.rules
-install -m644 -D %{S:11} $RPM_BUILD_ROOT/etc/udev/rules.d/50-udev-default.rules
-install -m644 -D %{S:12} $RPM_BUILD_ROOT/etc/udev/rules.d/60-persistent-storage.rules
-install -m644 -D %{S:13} $RPM_BUILD_ROOT/etc/udev/rules.d/60-persistent-input.rules
-install -m644 -D %{S:14} $RPM_BUILD_ROOT/etc/udev/rules.d/64-device-mapper.rules
-install -m644 -D %{S:15} $RPM_BUILD_ROOT/etc/udev/rules.d/95-udev-late.rules
-#
# install SUSE stuff
-install -m755 -D %{S:26} $RPM_BUILD_ROOT/lib/udev/load_floppy_module.sh
-#
+cp etc/udev/suse/*.rules $RPM_BUILD_ROOT/etc/udev/rules.d/
install -m755 -D %{S:60} $RPM_BUILD_ROOT/etc/init.d/boot.udev
install -m755 -D %{S:61} $RPM_BUILD_ROOT/etc/init.d/boot.udev_retry
install -m755 -D %{S:70} doc/show_event_log
@@ -160,7 +134,9 @@
rm -f /etc/udev/*.compiled
rm -f /etc/sysconfig/hotplug
rm -f /etc/sysconfig/udev
-#rm -f /etc/udev/rules.d/60-cdrom_id.rules
+if [ -e /etc/udev/rules.d/65-cdrom.rules ]; then
+ mv /etc/udev/rules.d/65-cdrom.rules /etc/udev/rules.d/65-cdrom.rules.obsolete
+fi
# start daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test $(stat -Lc '%%i' /) -eq $(stat -Lc '%%i' /proc/1/root); then
@@ -181,7 +157,6 @@
/sbin/udevcontrol
/sbin/udevtrigger
/sbin/udevsettle
-/usr/bin/udev.count_events
/usr/bin/udevinfo
/usr/bin/udevtest
/usr/sbin/udevmonitor
@@ -201,7 +176,6 @@
/lib/udev/create_floppy_devices
/lib/udev/eventrecorder.sh
/lib/udev/firmware.sh
-/lib/udev/load_floppy_module.sh
/lib/udev/write_cd_rules
/lib/udev/write_net_rules
/lib/udev/rule_generator.functions
@@ -268,6 +242,19 @@
/%{_lib}/libvolume_id.so.*
%changelog
+* Tue Apr 24 2007 - kay.sievers@suse.de
+- add Short-Description: to init scripts
+- install the rules from the suse directory in the udev package
+- disable /etc/udev/rules.d/65-cdrom.rules which is created by
+ the installer, and enable the udev persistent rules generator to
+ provide persistent optical device-links for all devices, not only
+ the ones present at installation time
+- first cut of md persistent device-naming based on change-events
+ (hope we can add "md auto-assembly" to this rules file soon)
+- removal of /usr/bin/udev.count_events, it's just udevsettle, and
+ possible callers should be fixed and calll udevsettle directly
+- delete load_floppy_module.sh, the modalias it tries to request,
+ seems not to exist
* Wed Mar 28 2007 - kay.sievers@suse.de
- new upstream release 108
- assign lower priority to dm-* symlinks, so EVMS-like devices
++++++ boot.udev ++++++
--- udev/boot.udev 2006-11-14 20:11:51.000000000 +0100
+++ /mounts/work_src_done/STABLE/udev/boot.udev 2007-04-22 22:13:41.407115000 +0200
@@ -5,7 +5,8 @@
# Required-Start:
# Default-Start: B
# Default-Stop:
-# Description: Start udevd to manage /dev and kernel device events.
+# Short-Description: manage /dev and kernel device-events
+# Description: udevd daemon to manage /dev and kernel device-events
### END INIT INFO
. /etc/rc.status
++++++ boot.udev_retry ++++++
--- udev/boot.udev_retry 2006-08-21 00:28:48.000000000 +0200
+++ /mounts/work_src_done/STABLE/udev/boot.udev_retry 2007-04-22 22:14:58.084366000 +0200
@@ -6,7 +6,8 @@
# Should-Start: $local_fs
# Default-Start: B
# Default-Stop:
-# Description: Retry to configure failed devices after localfs.
+# Short-Description: retry to configure failed devices
+# Description: retry to configure failed devices after mount of localfs
### END INIT INFO
. /etc/rc.status
++++++ README.debug ++++++
--- udev/README.debug 2006-08-13 14:31:25.000000000 +0200
+++ /mounts/work_src_done/STABLE/udev/README.debug 2007-04-23 10:59:32.161410000 +0200
@@ -45,7 +45,7 @@
udevcontrol log_priority=<level>
Enable logging permanently, set (it may make udev _very_ slow):
- udev_log=info in /etc/udev/udev.conf.
+ udev_log="info" in /etc/udev/udev.conf.
For further processing of the logging output you should get a clean logfile at
@@ -63,6 +63,3 @@
want to see really all. Or edit the list of skipped events in the first
lines of the script
-If you don't use /var/log/messages as the logfile you may set the environment
-variable MESSAGES=<logfile>.
-
++++++ udev-108.tar.bz2 -> udev-109.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/ChangeLog new/udev-109/ChangeLog
--- old/udev-108/ChangeLog 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/ChangeLog 2007-04-23 18:22:43.000000000 +0200
@@ -1,3 +1,30 @@
+Summary of changes from v108 to v109
+============================================
+
+Harald Hoyer (1):
+ create_floppy_devices: create nodes with correct selinux context
+
+Kay Sievers (11):
+ udevtest: export ACTION string if given as option
+ update SUSE rules
+ make ACTION!="add|change" working
+ udevtest: import uevent variables if possible
+ udevinfo: export all information stored in database
+ default rules: add libata compat links
+ create_path: don't fail if something else created the directory
+ udevd: fix serialization of events
+ path_id: remove broken example
+ libvolume_id: do not install static library
+ update SUSE rules
+
+Matthias Schwarzott (2):
+ update Gentoo rules
+ persistent device naming: add joystick links
+
+VMiklos (1):
+ path_id: add man page
+
+
Summary of changes from v107 to v108
============================================
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/gentoo/05-udev-early.rules new/udev-109/etc/udev/gentoo/05-udev-early.rules
--- old/udev-108/etc/udev/gentoo/05-udev-early.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/gentoo/05-udev-early.rules 2007-04-23 18:22:43.000000000 +0200
@@ -7,7 +7,3 @@
ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
ACTION=="add", SUBSYSTEM=="net", ENV{PHYSDEVDRIVER}=="?*", WAIT_FOR_SYSFS="device/driver"
-
-# Set IN_HOTPLUG for compatibility with init-scripts called from udev
-ENV{IN_HOTPLUG}="1"
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/gentoo/50-udev.rules new/udev-109/etc/udev/gentoo/50-udev.rules
--- old/udev-108/etc/udev/gentoo/50-udev.rules 1970-01-01 01:00:00.000000000 +0100
+++ new/udev-109/etc/udev/gentoo/50-udev.rules 2007-04-23 18:22:43.000000000 +0200
@@ -0,0 +1,302 @@
+# /etc/udev/rules/50-udev.rules: device naming rules for udev
+#
+# Gentoo specific rules
+#
+# There are a number of modifiers that are allowed to be used in some of the
+# fields. See the udev man page for a full description of them.
+#
+# Try not to modify this file, if you wish to change things, create a new rule
+# file that can be run before this one.
+#
+
+# Net devices can have arbitrary names, even
+# ones set by the user. Not try to match normal
+# rules on net devices (Bug #166652)
+SUBSYSTEM=="net", GOTO="gentoo_device_rules_end"
+
+# console
+KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcs*", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="vcsa*", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="tty", NAME="%k", GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="tty[0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="tty[0-9][0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
+KERNEL=="console", NAME="%k", GROUP="tty", MODE="0600"
+KERNEL=="ptmx", NAME="%k", GROUP="tty", MODE="0666"
+
+# tty devices
+KERNEL=="ttyS[0-9]*", NAME="%k", SYMLINK="tts/%n", GROUP="uucp", MODE="0660"
+KERNEL=="ttyUSB[0-9]*", NAME="%k", SYMLINK="tts/USB%n", GROUP="uucp", MODE="0660"
+KERNEL=="ippp0", NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="isdn*" NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="dcbri*", NAME="%k", GROUP="uucp", MODE="0660"
+KERNEL=="ircomm*", NAME="%k", GROUP="uucp", MODE="0660"
+
+# all block devices
+SUBSYSTEM=="block", GROUP="disk"
+
+# cdrom symlinks and other good cdrom naming
+KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", ACTION=="add", IMPORT{program}="cdrom_id --export $tempnode"
+ENV{ID_CDROM}=="?*", GROUP="cdrom"
+
+# assign cdrom-permission also to associated generic device (for cd-burning ...)
+KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom"
+
+# disk devices
+KERNEL=="sd*", NAME="%k", GROUP="disk"
+KERNEL=="dasd*", NAME="%k", GROUP="disk"
+KERNEL=="ataraid*", NAME="%k", GROUP="disk"
+
+# compaq smart array
+KERNEL=="cciss*", NAME="%k"
+KERNEL=="ida*", NAME="%k"
+
+# mylex
+KERNEL=="rd*", NAME="%k"
+
+# dri devices
+KERNEL=="card*", NAME="dri/card%n", GROUP="video"
+KERNEL=="nvidia*", NAME="%k", GROUP="video"
+KERNEL=="3dfx*", NAME="%k", GROUP="video"
+
+# alsa devices
+SUBSYSTEM=="sound", GROUP="audio"
+KERNEL=="controlC[0-9]*", NAME="snd/%k"
+KERNEL=="hw[CD0-9]*", NAME="snd/%k"
+KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k"
+KERNEL=="midiC[D0-9]*", NAME="snd/%k"
+KERNEL=="timer", NAME="snd/%k"
+KERNEL=="seq", NAME="snd/%k"
+
+# capi devices
+KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20", GROUP="uucp", MODE="0660"
+KERNEL=="capi*", NAME="capi/%n", GROUP="uucp", MODE="0660"
+
+# cpu devices
+KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
+KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
+KERNEL=="microcode", NAME="cpu/microcode"
+
+# fb devices
+KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
+
+# floppy devices
+KERNEL=="fd[0-9]*", NAME="floppy/%k", SYMLINK+="%k", GROUP="floppy"
+KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/floppy/%k"
+KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f $root/floppy/%k?*'"
+
+# i2c devices
+KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k"
+
+# input devices
+KERNEL=="mice", NAME="input/%k", MODE="0644"
+KERNEL=="mouse*", NAME="input/%k", MODE="0644"
+KERNEL=="event*", NAME="input/%k", MODE="0600"
+KERNEL=="js*", NAME="input/%k", MODE="0664"
+KERNEL=="ts*", NAME="input/%k", MODE="0600"
+
+# loop devices
+KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k", GROUP="disk"
+
+# md block devices
+KERNEL=="md[0-9]*", NAME="md/%n", SYMLINK+="%k", GROUP="disk"
+
+# aoe char devices,
+SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
+SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
+SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
+
+# misc devices
+KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k"
+KERNEL=="psaux", NAME="misc/%k", SYMLINK+="%k"
+KERNEL=="rtc", NAME="misc/%k", SYMLINK+="%k", MODE="0664"
+KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k"
+KERNEL=="inotify", NAME="misc/%k", SYMLINK+="%k", MODE="0666"
+
+# netlink devices
+KERNEL=="route", NAME="netlink/%k"
+KERNEL=="skip", NAME="netlink/%k"
+KERNEL=="usersock", NAME="netlink/%k"
+KERNEL=="fwmonitor", NAME="netlink/%k"
+KERNEL=="tcpdiag", NAME="netlink/%k"
+KERNEL=="nflog", NAME="netlink/%k"
+KERNEL=="xfrm", NAME="netlink/%k"
+KERNEL=="arpd", NAME="netlink/%k"
+KERNEL=="route6", NAME="netlink/%k"
+KERNEL=="ip6_fw", NAME="netlink/%k"
+KERNEL=="dnrtmsg", NAME="netlink/%k"
+KERNEL=="tap*", NAME="netlink/%k"
+
+# network devices
+KERNEL=="tun", NAME="net/%k", MODE="0600"
+
+# ramdisk devices
+KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k"
+
+# IEEE1394 (firewire) devices (must be before raw devices below)
+KERNEL=="raw1394", NAME="%k", GROUP="video"
+KERNEL=="dv1394*", NAME="dv1394/%n", GROUP="video"
+KERNEL=="video1394*", NAME="video1394/%n", GROUP="video"
+
+# raw devices
+SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
+KERNEL=="ram*", NAME="%k", GROUP="disk"
+
+# sound devices
+KERNEL=="adsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="adsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="audio", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="audio[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="dsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="dsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="mixer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="mixer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="sequencer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+KERNEL=="sequencer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
+
+# memory devices
+KERNEL=="random", NAME="%k", MODE="0666"
+KERNEL=="urandom", NAME="%k", MODE="0444"
+KERNEL=="mem", NAME="%k", MODE="0640"
+KERNEL=="kmem", NAME="%k", MODE="0640"
+KERNEL=="port", NAME="%k", MODE="0640"
+KERNEL=="full", NAME="%k", MODE="0666"
+KERNEL=="null", NAME="%k", MODE="0666"
+KERNEL=="zero", NAME="%k", MODE="0666"
+
+# usb devices
+KERNEL=="hiddev*", NAME="usb/%k"
+KERNEL=="auer*", NAME="usb/%k"
+KERNEL=="legousbtower*", NAME="usb/%k", GROUP="usb"
+KERNEL=="dabusb*", NAME="usb/%k"
+BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp"
+
+# v4l devices
+KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video"
+KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
+KERNEL=="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK+="vbi%n", GROUP="video"
+KERNEL=="vtx[0-9]*", NAME="v4l/vtx%n", GROUP="video"
+
+# dvb devices
+SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
+
+# Asterisk Zaptel devices
+KERNEL=="zapctl", NAME="zap/ctl"
+KERNEL=="zaptimer", NAME="zap/timer"
+KERNEL=="zapchannel", NAME="zap/channel"
+KERNEL=="zappseudo", NAME="zap/pseudo"
+KERNEL=="zap[0-9]*", NAME="zap/%n"
+
+# pilot/palm devices
+KERNEL=="pilot", NAME="%k", GROUP="uucp"
+
+# jaz devices
+KERNEL=="jaz*", NAME="%k", GROUP="disk"
+
+# zip devices
+KERNEL=="pocketzip*", NAME="%k", GROUP="disk"
+KERNEL=="zip*", NAME="%k", GROUP="disk"
+
+# ls120 devices
+KERNEL=="ls120", NAME="%k", GROUP="disk"
+
+# lp devices
+KERNEL=="lp*", NAME="%k", GROUP="lp"
+KERNEL=="irlpt", NAME="%k", GROUP="lp"
+KERNEL=="usblp", NAME="%k", GROUP="lp"
+KERNEL=="lp*", NAME="%k", GROUP="lp"
+KERNEL=="parport*", NAME="%k", GROUP="lp"
+
+# tape devices
+KERNEL=="ht*", NAME="%k", GROUP="tape"
+KERNEL=="nht*", NAME="%k", GROUP="tape"
+KERNEL=="pt*", NAME="%k", GROUP="tape"
+KERNEL=="npt*", NAME="%k", GROUP="tape"
+KERNEL=="st*", NAME="%k", GROUP="tape"
+KERNEL=="nst*", NAME="%k", GROUP="tape"
+KERNEL=="osst*", NAME="%k", GROUP="tape"
+KERNEL=="nosst*", NAME="%k", GROUP="tape"
+
+# diskonkey devices
+KERNEL=="diskonkey*", NAME="%k", GROUP="disk"
+
+# rem_ide devices
+KERNEL=="microdrive*", NAME="%k", GROUP="disk"
+
+# kbd devices
+KERNEL=="kbd", NAME="%k", MODE="0664"
+
+# Sony Vaio Jogdial sonypi device
+KERNEL=="sonypi", NAME="%k", MODE="0666"
+
+# packet devices
+KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrw", MODE="0660"
+KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/pktcdvd%n", GROUP="cdrw", MODE="0660"
+
+# infiniband devices
+KERNEL=="umad*", NAME="infiniband/%k"
+KERNEL=="issm*", NAME="infiniband/%k"
+
+
+# usbfs-like device nodes
+SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="usb", MODE="0664"
+
+
+# Setting timeout for tape-devices to 900 seconds
+# if you need timeouts for other devices add a similar rule
+# with correct type-value, or open a bug on bugs.gentoo.org.
+ACTION=="add", SUBSYSTEM=="scsi" , ATTRS{type}=="1", \
+ RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'"
+
+
+# Module autoloading
+ACTION!="add", GOTO="hotplug_no_add_event"
+
+# check if the device has already been claimed by a driver
+ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_load_end"
+
+# this driver is broken and should not be loaded automatically
+SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_load_end"
+
+# Autoload modules that lack aliases but have them defined inutoload modules
+ENV{MODALIAS}=="?*", RUN+="modprobe.sh $env{MODALIAS}"
+
+# /etc/modprobe.conf.
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /lib/udev/modprobe.sh pnp:d$$id; done < /sys$devpath/id'"
+# needed aliases are defined in /etc/modprobe.d/pnp-aliases
+
+
+SUBSYSTEM=="i2o", RUN+="modprobe.sh i2o_block"
+SUBSYSTEM=="mmc", RUN+="modprobe.sh mmc_block"
+
+# Parts taken from redhat-rules
+# sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
+# sr: 4 TYPE_WORM, 5 TYPE_ROM
+# st/osst: 1 TYPE_TAPE
+
+# Load driver for scsi-device
+SUBSYSTEM!="scsi_device", GOTO="hotplug_scsi_end"
+ATTRS{type}=="?*", RUN+="modprobe.sh sg"
+ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod"
+ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod"
+ATTRS{type}=="8", RUN+="modprobe.sh ch"
+
+ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st"
+ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", \
+ ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst"
+ENV{ID_SCSI_TAPE_DRIVER}=="?*", RUN+="modprobe.sh $env{ID_SCSI_TAPE_DRIVER}"
+LABEL="hotplug_scsi_end"
+
+
+SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi"
+
+LABEL="hotplug_load_end"
+
+
+# Load firmware
+SUBSYSTEM=="firmware", RUN+="firmware.sh"
+
+LABEL="hotplug_no_add_event"
+
+LABEL="gentoo_device_rules_end"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/gentoo/udev.rules new/udev-109/etc/udev/gentoo/udev.rules
--- old/udev-108/etc/udev/gentoo/udev.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/gentoo/udev.rules 1970-01-01 01:00:00.000000000 +0100
@@ -1,302 +0,0 @@
-# /etc/udev/rules/50-udev.rules: device naming rules for udev
-#
-# Gentoo specific rules
-#
-# There are a number of modifiers that are allowed to be used in some of the
-# fields. See the udev man page for a full description of them.
-#
-# Try not to modify this file, if you wish to change things, create a new rule
-# file that can be run before this one.
-#
-
-# Net devices can have arbitrary names, even
-# ones set by the user. Not try to match normal
-# rules on net devices (Bug #166652)
-SUBSYSTEM=="net", GOTO="gentoo_device_rules_end"
-
-# console
-KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcs*", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="vcsa*", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="tty", NAME="%k", GROUP="tty", MODE="0666", OPTIONS="last_rule"
-KERNEL=="tty[0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="tty[0-9][0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule"
-KERNEL=="console", NAME="%k", GROUP="tty", MODE="0600"
-KERNEL=="ptmx", NAME="%k", GROUP="tty", MODE="0666"
-
-# tty devices
-KERNEL=="ttyS[0-9]*", NAME="%k", SYMLINK="tts/%n", GROUP="uucp", MODE="0660"
-KERNEL=="ttyUSB[0-9]*", NAME="%k", SYMLINK="tts/USB%n", GROUP="uucp", MODE="0660"
-KERNEL=="ippp0", NAME="%k", GROUP="uucp", MODE="0660"
-KERNEL=="isdn*" NAME="%k", GROUP="uucp", MODE="0660"
-KERNEL=="dcbri*", NAME="%k", GROUP="uucp", MODE="0660"
-KERNEL=="ircomm*", NAME="%k", GROUP="uucp", MODE="0660"
-
-# all block devices
-SUBSYSTEM=="block", GROUP="disk"
-
-# cdrom symlinks and other good cdrom naming
-KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", ACTION=="add", IMPORT{program}="cdrom_id --export $tempnode"
-ENV{ID_CDROM}=="?*", GROUP="cdrom"
-
-# assign cdrom-permission also to associated generic device (for cd-burning ...)
-KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom"
-
-# disk devices
-KERNEL=="sd*", NAME="%k", GROUP="disk"
-KERNEL=="dasd*", NAME="%k", GROUP="disk"
-KERNEL=="ataraid*", NAME="%k", GROUP="disk"
-
-# compaq smart array
-KERNEL=="cciss*", NAME="%k"
-KERNEL=="ida*", NAME="%k"
-
-# mylex
-KERNEL=="rd*", NAME="%k"
-
-# dri devices
-KERNEL=="card*", NAME="dri/card%n", GROUP="video"
-KERNEL=="nvidia*", NAME="%k", GROUP="video"
-KERNEL=="3dfx*", NAME="%k", GROUP="video"
-
-# alsa devices
-SUBSYSTEM=="sound", GROUP="audio"
-KERNEL=="controlC[0-9]*", NAME="snd/%k"
-KERNEL=="hw[CD0-9]*", NAME="snd/%k"
-KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k"
-KERNEL=="midiC[D0-9]*", NAME="snd/%k"
-KERNEL=="timer", NAME="snd/%k"
-KERNEL=="seq", NAME="snd/%k"
-
-# capi devices
-KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20", GROUP="uucp", MODE="0660"
-KERNEL=="capi*", NAME="capi/%n", GROUP="uucp", MODE="0660"
-
-# cpu devices
-KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
-KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
-KERNEL=="microcode", NAME="cpu/microcode"
-
-# fb devices
-KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
-
-# floppy devices
-KERNEL=="fd[0-9]*", NAME="floppy/%k", SYMLINK+="%k", GROUP="floppy"
-KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/floppy/%k"
-KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f $root/floppy/%k?*'"
-
-# i2c devices
-KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k"
-
-# input devices
-KERNEL=="mice", NAME="input/%k", MODE="0644"
-KERNEL=="mouse*", NAME="input/%k", MODE="0644"
-KERNEL=="event*", NAME="input/%k", MODE="0600"
-KERNEL=="js*", NAME="input/%k", MODE="0664"
-KERNEL=="ts*", NAME="input/%k", MODE="0600"
-
-# loop devices
-KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k", GROUP="disk"
-
-# md block devices
-KERNEL=="md[0-9]*", NAME="md/%n", SYMLINK+="%k", GROUP="disk"
-
-# aoe char devices,
-SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
-SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
-SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
-
-# misc devices
-KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="psaux", NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="rtc", NAME="misc/%k", SYMLINK+="%k", MODE="0664"
-KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k"
-KERNEL=="inotify", NAME="misc/%k", SYMLINK+="%k", MODE="0666"
-
-# netlink devices
-KERNEL=="route", NAME="netlink/%k"
-KERNEL=="skip", NAME="netlink/%k"
-KERNEL=="usersock", NAME="netlink/%k"
-KERNEL=="fwmonitor", NAME="netlink/%k"
-KERNEL=="tcpdiag", NAME="netlink/%k"
-KERNEL=="nflog", NAME="netlink/%k"
-KERNEL=="xfrm", NAME="netlink/%k"
-KERNEL=="arpd", NAME="netlink/%k"
-KERNEL=="route6", NAME="netlink/%k"
-KERNEL=="ip6_fw", NAME="netlink/%k"
-KERNEL=="dnrtmsg", NAME="netlink/%k"
-KERNEL=="tap*", NAME="netlink/%k"
-
-# network devices
-KERNEL=="tun", NAME="net/%k", MODE="0600"
-
-# ramdisk devices
-KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k"
-
-# IEEE1394 (firewire) devices (must be before raw devices below)
-KERNEL=="raw1394", NAME="%k", GROUP="video"
-KERNEL=="dv1394*", NAME="dv1394/%n", GROUP="video"
-KERNEL=="video1394*", NAME="video1394/%n", GROUP="video"
-
-# raw devices
-SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
-KERNEL=="ram*", NAME="%k", GROUP="disk"
-
-# sound devices
-KERNEL=="adsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="adsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="audio", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="audio[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="dsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="dsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="mixer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="mixer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="sequencer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-KERNEL=="sequencer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio"
-
-# memory devices
-KERNEL=="random", NAME="%k", MODE="0666"
-KERNEL=="urandom", NAME="%k", MODE="0444"
-KERNEL=="mem", NAME="%k", MODE="0640"
-KERNEL=="kmem", NAME="%k", MODE="0640"
-KERNEL=="port", NAME="%k", MODE="0640"
-KERNEL=="full", NAME="%k", MODE="0666"
-KERNEL=="null", NAME="%k", MODE="0666"
-KERNEL=="zero", NAME="%k", MODE="0666"
-
-# usb devices
-KERNEL=="hiddev*", NAME="usb/%k"
-KERNEL=="auer*", NAME="usb/%k"
-KERNEL=="legousbtower*", NAME="usb/%k", GROUP="usb"
-KERNEL=="dabusb*", NAME="usb/%k"
-BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp"
-
-# v4l devices
-KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video"
-KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
-KERNEL=="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK+="vbi%n", GROUP="video"
-KERNEL=="vtx[0-9]*", NAME="v4l/vtx%n", GROUP="video"
-
-# dvb devices
-SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
-
-# Asterisk Zaptel devices
-KERNEL=="zapctl", NAME="zap/ctl"
-KERNEL=="zaptimer", NAME="zap/timer"
-KERNEL=="zapchannel", NAME="zap/channel"
-KERNEL=="zappseudo", NAME="zap/pseudo"
-KERNEL=="zap[0-9]*", NAME="zap/%n"
-
-# pilot/palm devices
-KERNEL=="pilot", NAME="%k", GROUP="uucp"
-
-# jaz devices
-KERNEL=="jaz*", NAME="%k", GROUP="disk"
-
-# zip devices
-KERNEL=="pocketzip*", NAME="%k", GROUP="disk"
-KERNEL=="zip*", NAME="%k", GROUP="disk"
-
-# ls120 devices
-KERNEL=="ls120", NAME="%k", GROUP="disk"
-
-# lp devices
-KERNEL=="lp*", NAME="%k", GROUP="lp"
-KERNEL=="irlpt", NAME="%k", GROUP="lp"
-KERNEL=="usblp", NAME="%k", GROUP="lp"
-KERNEL=="lp*", NAME="%k", GROUP="lp"
-KERNEL=="parport*", NAME="%k", GROUP="lp"
-
-# tape devices
-KERNEL=="ht*", NAME="%k", GROUP="tape"
-KERNEL=="nht*", NAME="%k", GROUP="tape"
-KERNEL=="pt*", NAME="%k", GROUP="tape"
-KERNEL=="npt*", NAME="%k", GROUP="tape"
-KERNEL=="st*", NAME="%k", GROUP="tape"
-KERNEL=="nst*", NAME="%k", GROUP="tape"
-KERNEL=="osst*", NAME="%k", GROUP="tape"
-KERNEL=="nosst*", NAME="%k", GROUP="tape"
-
-# diskonkey devices
-KERNEL=="diskonkey*", NAME="%k", GROUP="disk"
-
-# rem_ide devices
-KERNEL=="microdrive*", NAME="%k", GROUP="disk"
-
-# kbd devices
-KERNEL=="kbd", NAME="%k", MODE="0664"
-
-# Sony Vaio Jogdial sonypi device
-KERNEL=="sonypi", NAME="%k", MODE="0666"
-
-# packet devices
-KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrw", MODE="0660"
-KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/pktcdvd%n", GROUP="cdrw", MODE="0660"
-
-# infiniband devices
-KERNEL=="umad*", NAME="infiniband/%k"
-KERNEL=="issm*", NAME="infiniband/%k"
-
-
-# usbfs-like device nodes
-SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="usb", MODE="0664"
-
-
-# Setting timeout for tape-devices to 900 seconds
-# if you need timeouts for other devices add a similar rule
-# with correct type-value, or open a bug on bugs.gentoo.org.
-ACTION=="add", SUBSYSTEM=="scsi" , ATTRS{type}=="1", \
- RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'"
-
-
-# Module autoloading
-ACTION!="add", GOTO="hotplug_no_add_event"
-
-# check if the device has already been claimed by a driver
-ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_load_end"
-
-# this driver is broken and should not be loaded automatically
-SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_load_end"
-
-# Autoload modules that lack aliases but have them defined inutoload modules
-ENV{MODALIAS}=="?*", RUN+="modprobe.sh $env{MODALIAS}"
-
-# /etc/modprobe.conf.
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /lib/udev/modprobe.sh pnp:d$$id; done < /sys$devpath/id'"
-# needed aliases are defined in /etc/modprobe.d/pnp-aliases
-
-
-SUBSYSTEM=="i2o", RUN+="modprobe.sh i2o_block"
-SUBSYSTEM=="mmc", RUN+="modprobe.sh mmc_block"
-
-# Parts taken from redhat-rules
-# sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
-# sr: 4 TYPE_WORM, 5 TYPE_ROM
-# st/osst: 1 TYPE_TAPE
-
-# Load driver for scsi-device
-SUBSYSTEM!="scsi_device", GOTO="hotplug_scsi_end"
-ATTRS{type}=="?*", RUN+="modprobe.sh sg"
-ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod"
-ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod"
-ATTRS{type}=="8", RUN+="modprobe.sh ch"
-
-ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st"
-ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", \
- ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst"
-ENV{ID_SCSI_TAPE_DRIVER}=="?*", RUN+="modprobe.sh $env{ID_SCSI_TAPE_DRIVER}"
-LABEL="hotplug_scsi_end"
-
-
-SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi"
-
-LABEL="hotplug_load_end"
-
-
-# Load firmware
-SUBSYSTEM=="firmware", RUN+="firmware.sh"
-
-LABEL="hotplug_no_add_event"
-
-LABEL="gentoo_device_rules_end"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/rules.d/60-persistent-input.rules new/udev-109/etc/udev/rules.d/60-persistent-input.rules
--- old/udev-108/etc/udev/rules.d/60-persistent-input.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/rules.d/60-persistent-input.rules 2007-04-23 18:22:43.000000000 +0200
@@ -14,15 +14,16 @@
ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir"
ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
-ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
+# fill empty serial number
+ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
# by-id links
-KERNEL=="mouse*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
+KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
# by-path
IMPORT{program}="path_id %p"
-ENV{ID_PATH}=="?*", KERNEL=="mouse*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
+ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
ENV{ID_PATH}=="?*", KERNEL=="event*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}"
LABEL="persistent_input_end"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/rules.d/60-persistent-storage.rules new/udev-109/etc/udev/rules.d/60-persistent-storage.rules
--- old/udev-108/etc/udev/rules.d/60-persistent-storage.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/rules.d/60-persistent-storage.rules 2007-04-23 18:22:43.000000000 +0200
@@ -36,6 +36,11 @@
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+# libata compat (links like hd*)
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", ENV{ID_ATA_COMPAT}="$result"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
+
KERNEL=="mmcblk[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
KERNEL=="mmcblk[0-9]p[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/05-udev-early.rules new/udev-109/etc/udev/suse/05-udev-early.rules
--- old/udev-108/etc/udev/suse/05-udev-early.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/suse/05-udev-early.rules 2007-04-23 18:22:43.000000000 +0200
@@ -1,3 +1,3 @@
# sysfs is populated after the event is sent
-ACTION=="add", SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", WAIT_FOR_SYSFS="ioerr_cnt"
+ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/50-udev-default.rules new/udev-109/etc/udev/suse/50-udev-default.rules
--- old/udev-108/etc/udev/suse/50-udev-default.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/suse/50-udev-default.rules 2007-04-23 18:22:43.000000000 +0200
@@ -91,7 +91,6 @@
KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k"
# additional floppy devices (no sysfs entries)
-KERNEL=="nvram", ACTION=="add", RUN+="load_floppy_module.sh"
KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G disk $root/%k"
# block devices
@@ -130,6 +129,7 @@
# libusb device access
SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"
+#SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
# kernel firmware loader
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/60-persistent-input.rules new/udev-109/etc/udev/suse/60-persistent-input.rules
--- old/udev-108/etc/udev/suse/60-persistent-input.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/suse/60-persistent-input.rules 2007-04-23 18:22:43.000000000 +0200
@@ -14,15 +14,16 @@
ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir"
ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
-ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
+# fill empty serial number
+ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
# by-id links
-KERNEL=="mouse*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
+KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
# by-path
IMPORT{program}="path_id %p"
-ENV{ID_PATH}=="?*", KERNEL=="mouse*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
+ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
ENV{ID_PATH}=="?*", KERNEL=="event*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}"
LABEL="persistent_input_end"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/60-persistent-storage.rules new/udev-109/etc/udev/suse/60-persistent-storage.rules
--- old/udev-108/etc/udev/suse/60-persistent-storage.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/suse/60-persistent-storage.rules 2007-04-23 18:22:43.000000000 +0200
@@ -35,8 +35,11 @@
KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -a -s %p -d $tempnode"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="?*", ENV{ID_VENDOR}=="ATA", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}"
-KERNEL=="sd*[0-9]", ENV{ID_SERIAL}=="?*", ENV{ID_VENDOR}=="ATA", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}-part%n"
+
+# libata compat (links like hd*)
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", ENV{ID_ATA_COMPAT}="$result"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
KERNEL=="mmcblk[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
KERNEL=="mmcblk[0-9]p[0-9]", ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/64-device-mapper.rules new/udev-109/etc/udev/suse/64-device-mapper.rules
--- old/udev-108/etc/udev/suse/64-device-mapper.rules 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/etc/udev/suse/64-device-mapper.rules 2007-04-23 18:22:43.000000000 +0200
@@ -3,14 +3,15 @@
KERNEL=="device-mapper", SYMLINK+="mapper/control"
-KERNEL=="dm-*", ACTION=="add|change", GOTO="device_mapper_do"
-GOTO="device_mapper_end"
+KERNEL!="dm-*", GOTO="device_mapper_end"
+ACTION!="add|change", GOTO="device_mapper_end"
-LABEL="device_mapper_do"
+# skip snapshot and error tables
PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end"
RESULT=="|*snapshot*|*error*", GOTO="device_mapper_end"
IMPORT{program}="vol_id --export $tempnode"
+OPTIONS="link_priority=-100"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/etc/udev/suse/64-md-raid.rules new/udev-109/etc/udev/suse/64-md-raid.rules
--- old/udev-108/etc/udev/suse/64-md-raid.rules 1970-01-01 01:00:00.000000000 +0100
+++ new/udev-109/etc/udev/suse/64-md-raid.rules 2007-04-23 18:22:43.000000000 +0200
@@ -0,0 +1,12 @@
+# md links hook into "change" events, when the array becomes available
+
+KERNEL!="md[0-9]*", GOTO="md_end"
+ACTION!="add|change", GOTO="md_end"
+
+ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
+
+IMPORT{program}="vol_id --export $tempnode"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
+ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
+
+LABEL="md_end"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/extras/floppy/create_floppy_devices.c new/udev-109/extras/floppy/create_floppy_devices.c
--- old/udev-108/extras/floppy/create_floppy_devices.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/extras/floppy/create_floppy_devices.c 2007-04-23 18:22:43.000000000 +0200
@@ -155,6 +155,7 @@
if (type == 0)
return 0;
+ udev_config_init();
selinux_init();
i = 0;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/extras/path_id/Makefile new/udev-109/extras/path_id/Makefile
--- old/udev-108/extras/path_id/Makefile 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/extras/path_id/Makefile 2007-04-23 18:22:43.000000000 +0200
@@ -45,7 +45,7 @@
.PHONY: uninstall-bin
install-man:
- @echo "Please create a man page for this tool."
+ $(INSTALL_DATA) -D $(PROG).8 $(DESTDIR)$(mandir)/man8/$(PROG).8
.PHONY: install-man
uninstall-man:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/extras/path_id/path_id new/udev-109/extras/path_id/path_id
--- old/udev-108/extras/path_id/path_id 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/extras/path_id/path_id 2007-04-23 18:22:43.000000000 +0200
@@ -10,13 +10,6 @@
# 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.
-#
-# to be called from a udev rule to return the name for a symlink
-# DEVPATH=<devpath>; path_id
-# path_id <devpath>
-
-# examples for all block devices on a system:
-# for i in `find /sys/class/block`; do DEVPATH="`echo $i | sed -e 's@^/sys\|/dev@@g'`"; path_id; done
SYSFS=/sys
RESULT=1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/extras/path_id/path_id.8 new/udev-109/extras/path_id/path_id.8
--- old/udev-108/extras/path_id/path_id.8 1970-01-01 01:00:00.000000000 +0100
+++ new/udev-109/extras/path_id/path_id.8 2007-04-23 18:22:43.000000000 +0200
@@ -0,0 +1,15 @@
+.TH PATH_ID 8 "April 2007" "" "Linux Administrator's Manual"
+.SH NAME
+path_id \- udev callout to create a device path based unique name
+for a device to implement the Linux Persistent Device Naming scheme
+.SH SYNOPSIS
+path_id <devpath>
+.SH "DESCRIPTION"
+.B path_id
+is normally called from a udev rule, to create a unique name, based on
+the device properties along the chain of parent devices. Udev uses this
+information to create a persistent symlink to the real device node.
+.SH SEE ALSO
+.BR udev (7)
+.SH AUTHORS
+Developed by Hannes Reinecke .
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/extras/volume_id/lib/Makefile new/udev-109/extras/volume_id/lib/Makefile
--- old/udev-108/extras/volume_id/lib/Makefile 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/extras/volume_id/lib/Makefile 2007-04-23 18:22:43.000000000 +0200
@@ -102,8 +102,8 @@
install: all
$(INSTALL_DATA) -D libvolume_id.h $(DESTDIR)$(includedir)/libvolume_id.h
- $(INSTALL_LIB) -D libvolume_id.a $(DESTDIR)$(usrlibdir)/libvolume_id.a
$(INSTALL_LIB) -D $(SHLIB) $(DESTDIR)$(libdir)/$(SHLIB)
+ mkdir -p $(DESTDIR)$(usrlibdir)/
ln -sf $(SHLIB) $(DESTDIR)$(libdir)/libvolume_id.so.$(SHLIB_CUR)
ln -sf $(libdir)/$(SHLIB) $(DESTDIR)$(usrlibdir)/libvolume_id.so
$(INSTALL_DATA) -D libvolume_id.pc $(DESTDIR)$(usrlibdir)/pkgconfig/libvolume_id.pc
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/Makefile new/udev-109/Makefile
--- old/udev-108/Makefile 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/Makefile 2007-04-23 18:22:43.000000000 +0200
@@ -16,7 +16,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
-VERSION = 108
+VERSION = 109
# set this to make use of syslog
USE_LOG = true
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/RELEASE-NOTES new/udev-109/RELEASE-NOTES
--- old/udev-108/RELEASE-NOTES 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/RELEASE-NOTES 2007-04-23 18:22:43.000000000 +0200
@@ -1,3 +1,7 @@
+udev 109
+========
+Bugfixes.
+
udev 108
========
Bugfixes.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udev_db.c new/udev-109/udev_db.c
--- old/udev-108/udev_db.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udev_db.c 2007-04-23 18:22:43.000000000 +0200
@@ -157,9 +157,9 @@
name_index(udev->dev->devpath, name_loop->name, 1);
}
fprintf(f, "M:%u:%u\n", major(udev->devt), minor(udev->devt));
- if (udev->link_priority)
+ if (udev->link_priority != 0)
fprintf(f, "L:%u\n", udev->link_priority);
- if (udev->partitions)
+ if (udev->partitions != 0)
fprintf(f, "A:%u\n", udev->partitions);
if (udev->ignore_remove)
fprintf(f, "R:%u\n", udev->ignore_remove);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udevd.c new/udev-109/udevd.c
--- old/udev-108/udevd.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udevd.c 2007-04-23 18:22:43.000000000 +0200
@@ -495,26 +495,49 @@
return 0;
}
-/* returns still running task for the same device, its parent or its physical device */
-static int running_with_devpath(struct udevd_uevent_msg *msg, int limit)
+/* lookup event for identical, parent, child, or physical device */
+static int devpath_busy(struct udevd_uevent_msg *msg, int limit)
{
struct udevd_uevent_msg *loop_msg;
int childs_count = 0;
+ /* check exec-queue which may still contain delayed events we depend on */
+ list_for_each_entry(loop_msg, &exec_list, node) {
+ /* skip ourself and all later events */
+ if (loop_msg->seqnum >= msg->seqnum)
+ break;
+
+ /* check identical, parent, or child device event */
+ if (compare_devpath(loop_msg->devpath, msg->devpath) != 0) {
+ dbg("%llu, device event still pending %llu (%s)",
+ msg->seqnum, loop_msg->seqnum, loop_msg->devpath);
+ return 2;
+ }
+
+ /* check physical device event (special case of parent) */
+ if (msg->physdevpath && msg->action && strcmp(msg->action, "add") == 0)
+ if (compare_devpath(loop_msg->devpath, msg->physdevpath) != 0) {
+ dbg("%llu, physical device event still pending %llu (%s)",
+ msg->seqnum, loop_msg->seqnum, loop_msg->devpath);
+ return 3;
+ }
+ }
+
+ /* check runing-queue for still running events */
list_for_each_entry(loop_msg, &running_list, node) {
if (limit && childs_count++ > limit) {
- dbg("%llu, maximum number (%i) of child reached", msg->seqnum, childs_count);
+ dbg("%llu, maximum number (%i) of childs reached", msg->seqnum, childs_count);
return 1;
}
- /* return running parent/child device event */
+ /* check identical, parent, or child device event */
if (compare_devpath(loop_msg->devpath, msg->devpath) != 0) {
- dbg("%llu, child device event still running %llu (%s)",
+ dbg("%llu, device event still running %llu (%s)",
msg->seqnum, loop_msg->seqnum, loop_msg->devpath);
return 2;
}
- /* return running physical device event */
+ /* check physical device event (special case of parent) */
if (msg->physdevpath && msg->action && strcmp(msg->action, "add") == 0)
if (compare_devpath(loop_msg->devpath, msg->physdevpath) != 0) {
dbg("%llu, physical device event still running %llu (%s)",
@@ -522,11 +545,10 @@
return 3;
}
}
-
return 0;
}
-/* exec queue management routine executes the events and serializes events in the same sequence */
+/* serializes events for the identical and parent and child devices */
static void msg_queue_manager(void)
{
struct udevd_uevent_msg *loop_msg;
@@ -552,8 +574,8 @@
}
}
- /* don't run two processes for the same devpath and wait for the parent*/
- if (running_with_devpath(loop_msg, max_childs)) {
+ /* serialize and wait for parent or child events */
+ if (devpath_busy(loop_msg, max_childs) != 0) {
dbg("delay seq %llu (%s)", loop_msg->seqnum, loop_msg->devpath);
continue;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udevinfo.c new/udev-109/udevinfo.c
--- old/udev-108/udevinfo.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udevinfo.c 2007-04-23 18:22:43.000000000 +0200
@@ -144,9 +144,14 @@
printf("P: %s\n", udev->dev->devpath);
printf("N: %s\n", udev->name);
- printf("L: %i\n", udev->link_priority);
list_for_each_entry(name_loop, &udev->symlink_list, node)
printf("S: %s\n", name_loop->name);
+ if (udev->link_priority != 0)
+ printf("L: %i\n", udev->link_priority);
+ if (udev->partitions != 0)
+ printf("A:%u\n", udev->partitions);
+ if (udev->ignore_remove)
+ printf("R:%u\n", udev->ignore_remove);
list_for_each_entry(name_loop, &udev->env_list, node)
printf("E: %s\n", name_loop->name);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udev_rules.c new/udev-109/udev_rules.c
--- old/udev-108/udev_rules.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udev_rules.c 2007-04-23 18:22:43.000000000 +0200
@@ -584,18 +584,18 @@
static int match_key(const char *key_name, struct udev_rule *rule, struct key *key, const char *val)
{
- int match;
char value[PATH_SIZE];
char *key_value;
char *pos;
+ int match = 0;
if (key->operation != KEY_OP_MATCH &&
key->operation != KEY_OP_NOMATCH)
return 0;
+ /* look for a matching string, parts are separated by '|' */
strlcpy(value, rule->buf + key->val_off, sizeof(value));
key_value = value;
-
dbg("key %s value='%s'", key_name, key_value);
while (key_value) {
pos = strchr(key_value, '|');
@@ -603,19 +603,23 @@
pos[0] = '\0';
pos++;
}
+
dbg("match %s '%s' <-> '%s'", key_name, key_value, val);
match = (fnmatch(key_value, val, 0) == 0);
- if (match && (key->operation != KEY_OP_NOMATCH)) {
- dbg("%s is true (matching value)", key_name);
- return 0;
- }
- if (!match && (key->operation == KEY_OP_NOMATCH)) {
- dbg("%s is true (non-matching value)", key_name);
- return 0;
- }
+ if (match)
+ break;
+
key_value = pos;
}
- dbg("%s is false", key_name);
+
+ if (match && (key->operation == KEY_OP_MATCH)) {
+ dbg("%s is true (matching value)", key_name);
+ return 0;
+ }
+ if (!match && (key->operation == KEY_OP_NOMATCH)) {
+ dbg("%s is true (non-matching value)", key_name);
+ return 0;
+ }
return -1;
}
@@ -910,7 +914,7 @@
udev->ignore_remove = 1;
dbg("remove event should be ignored");
}
- if (rule->link_priority) {
+ if (rule->link_priority != 0) {
udev->link_priority = rule->link_priority;
info("link_priority=%i", udev->link_priority);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udev_selinux.c new/udev-109/udev_selinux.c
--- old/udev-108/udev_selinux.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udev_selinux.c 2007-04-23 18:22:43.000000000 +0200
@@ -118,10 +118,12 @@
char *media;
int ret = -1;
- media = get_media(devname, mode);
- if (media) {
- ret = matchmediacon(media, &scontext);
- free(media);
+ if (devname) {
+ media = get_media(devname, mode);
+ if (media) {
+ ret = matchmediacon(media, &scontext);
+ free(media);
+ }
}
if (ret < 0)
@@ -152,6 +154,8 @@
* restoration creation purposes.
*/
if (is_selinux_running()) {
+ if (!udev_root[0])
+ err("selinux_init: udev_root not set\n");
matchpathcon_init_prefix(NULL, udev_root);
if (getfscreatecon(&prev_scontext) < 0) {
err("getfscreatecon failed\n");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udevtest.c new/udev-109/udevtest.c
--- old/udev-108/udevtest.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udevtest.c 2007-04-23 18:22:43.000000000 +0200
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -48,6 +49,45 @@
}
#endif
+static int import_uevent_var(const char *devpath)
+{
+ char path[PATH_SIZE];
+ static char value[4096]; /* must stay, used with putenv */
+ ssize_t size;
+ int fd;
+ char *key;
+ char *next;
+ int rc = -1;
+
+ /* read uevent file */
+ strlcpy(path, sysfs_path, sizeof(path));
+ strlcat(path, devpath, sizeof(path));
+ strlcat(path, "/uevent", sizeof(path));
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ goto out;
+ size = read(fd, value, sizeof(value));
+ close(fd);
+ if (size < 0)
+ goto out;
+ value[size] = '\0';
+
+ /* import keys into environment */
+ key = value;
+ while (key[0] != '\0') {
+ next = strchr(key, '\n');
+ if (next == NULL)
+ goto out;
+ next[0] = '\0';
+ info("import into environment: '%s'", key);
+ putenv(key);
+ key = &next[1];
+ }
+ rc = 0;
+out:
+ return rc;
+}
+
int main(int argc, char *argv[], char *envp[])
{
int force = 0;
@@ -141,11 +181,12 @@
setenv("DEVPATH", udev->dev->devpath, 1);
setenv("SUBSYSTEM", udev->dev->subsystem, 1);
- setenv("ACTION", "add", 1);
+ setenv("ACTION", udev->action, 1);
+ import_uevent_var(udev->dev->devpath);
printf("This program is for debugging only, it does not run any program,\n"
- "specified by a RUN key. It may show incorrect results, if rules\n"
- "match against subsystem specfic kernel event variables.\n"
+ "specified by a RUN key. It may show incorrect results, because\n"
+ "some values may be different, or not available at a simulation run.\n"
"\n");
info("looking at device '%s' from subsystem '%s'", udev->dev->devpath, udev->dev->subsystem);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/udev-108/udev_utils_file.c new/udev-109/udev_utils_file.c
--- old/udev-108/udev_utils_file.c 2007-03-28 20:47:26.000000000 +0200
+++ new/udev-109/udev_utils_file.c 2007-04-23 18:22:43.000000000 +0200
@@ -36,14 +36,13 @@
char *pos;
struct stat stats;
- strcpy (p, path);
+ strlcpy(p, path, sizeof(p));
pos = strrchr(p, '/');
if (pos == p || pos == NULL)
return 0;
while (pos[-1] == '/')
pos--;
-
pos[0] = '\0';
dbg("stat '%s'\n", p);
@@ -54,7 +53,12 @@
return -1;
dbg("mkdir '%s'\n", p);
- return mkdir(p, 0755);
+ if (mkdir(p, 0755) == 0)
+ return 0;
+ if (errno == EEXIST)
+ if (stat(p, &stats) == 0 && (stats.st_mode & S_IFMT) == S_IFDIR)
+ return 0;
+ return -1;
}
int delete_path(const char *path)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org