udev 004 release
Hi,
I've released the 004 version of udev. It can be found at:
kernel.org/pub/linux/utils/kernel/hotplug/udev-004.tar.gz
Thanks to Robert Love, there are now rpms available at:
kernel.org/pub/linux/utils/kernel/hotplug/udev-004-1.i386.rpm
with the source rpm at:
kernel.org/pub/linux/utils/kernel/hotplug/udev-004-1.src.rpm
udev is a implementation of devfs in userspace using sysfs and /sbin/hotplug. It requires a 2.6 kernel to run properly.
The major changes since the 003 release are:
- MAJOR speedups over the previous version. No more "sleep(1)" always, we now wait for the "dev" file to show up, and not blindly guess.
- partitions now work again.
- removal of devices that were named differently from the kernel name work properly.
- proper spec file.
- a man page with real content.
- sync up with current version of libsysfs.
Many thanks to Dan Stekloff, Kay Sievers, and Robert Love for their help with patches for this release. I really appreciate it.
The full ChangeLog can be found below.
The udev FAQ can be found at:
kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ
Development of udev is done in a BitKeeper tree available at:
bk://kernel.bkbits.net/gregkh/udev/
If anyone ever wants a snapshot of the current tree, due to not using BitKeeper, or other reasons, is always available at any time by asking.
thanks,
greg k-h
Summary of changes from v003 to v004
============================================
Daniel E. F. Stekloff:
o new version of libsysfs patch
Greg Kroah-Hartman:
o 004 release
o major database cleanups
o Changed test.block and test.tty to take ACTION from the command line
o don't sleep if 'dev' file is already present on device add
o fix comment about how the "dev" file is made up
o more database work. Now we only store the info we really need right now
o add BUS= bug to TODO list so it will not get forgotten
o spec file changes
o test.block changes
o ok, rpm likes the "_" character instead of "-" better
o change the version to 003-bk to keep things sane with people using the bk tree
o got "remove of named devices" working
o fix segfaults when dealing with partitions
Kay Sievers:
o man file update
o man page update
Robert Love:
o udev: mode should be mode_t
o udev: trivial trivialities
o udev: cool test scripts again
o udev spec file symlink support
o udev: cool test scripts
o udev spec file bits
Thanks for the new release, Greg. I just tried it out on a system with some disks, but a bunch of udev processes ended up hanging. Is there something I'm missing or do you need a patch like this?
Thanks,
Jesse
udev-add.c +1 -1
@@ -141,7 +141,7 @@strcat (filename, path);strcat (filename,"/dev" ); -while (loop <SECONDS_TO_WAIT_FOR_DEV ) { +while (loop++ <SECONDS_TO_WAIT_FOR_DEV ) {dbg ("looking for %s" , filename); retval =stat (filename, &buf);if (retval ==0 ) {
Quoted 3 lines · Jesse Barnes
Thanks for the new release, Greg. I just tried it out on a system with some disks, but a bunch of udev processes ended up hanging. Is there something I'm missing or do you need a patch like this?
Yeah, sorry, this kind of fix is required :(
It's fixed in my bk tree now.
Oh, and it looks like the LABEL rule is also broken due to the libsysfs changes... I'm working on adding regression tests right now to prevent things like this from slipping through.
thanks,
greg k-h
Quoted 5 lines · Greg KH
Quoted 3 lines · Jesse Barnes
Thanks for the new release, Greg. I just tried it out on a system with some disks, but a bunch of udev processes ended up hanging. Is there something I'm missing or do you need a patch like this?
Quoted 7 lines
Yeah, sorry, this kind of fix is required :(
It's fixed in my bk tree now.
Oh, and it looks like the LABEL rule is also broken due to the libsysfs changes... I'm working on adding regression tests right now to prevent things like this from slipping through.
Here's a patch for this. It fixes the problem of LABEL rules on the device, not the class device. LABEL rules on the class device seem to work just fine.
Thanks to Dan Stekloff for help in finding this bug.
thanks,
greg k-h
# fix LABEL bug for device files (not class files.)
namedev.c +2 -2
@@ -566,7 +566,7 @@/* look in the class device directory if present */ if (class_dev->sysdevice) { - tmpattr =sysfs_get_classdev_attr (class_dev, dev->sysfs_file); + tmpattr =sysfs_get_device_attr (class_dev->sysdevice, dev->sysfs_file);if (tmpattr) goto label_found; }
@@ -599,7 +599,7 @@/* look in the class device directory if present */ if (class_dev_parent->sysdevice) { - tmpattr =sysfs_get_classdev_attr (class_dev_parent, dev->sysfs_file); + tmpattr =sysfs_get_device_attr (class_dev_parent->sysdevice, dev->sysfs_file);if (tmpattr) goto label_found; }