udev 060
Let's start with the important things: as some people kindly (well, some not so kindly too) pointed to me NEWS.Debian of udev 0.060-1 warns that since this release kernels older than 2.6.12 are not fully supported anymore, but 2.6.12 has not been packaged yet. I do not think this is a big deal, there is a reason if we call it unstable. Anyway, with some hindsight I should have written a mode detailed entry. As explained in README.Debian, only kernels older than 2.6.10 cause problems, and they will not affect most people. Newer kernels may just slow down a bit the boot process.
It also looks like that the next udev release will require 2.6.12, as explained by one of the upstream maintainers. This means that upgrades from sarge to etch will require first updating the running kernel. I'm still trying to figure out the less painful way to arrange this, considering that the udev version in sarge does not work well with 2.6.12 kernels, which is why I had to upload a new one... This upgrade was needed because 2.6.12 kernels need udev 060 to fix rules which match on sysfs attributes, boot time delays and possibly something else I don't remember right now.
Now, the good part: udev 060 introduced some important new features, among them:
- Now udev can receive hotplug events from the kernel with a netlink socket, saving the need to run udevsend every time. I could not enable this yet, because the kernel input subsystem needs a fix which has not been merged and is not in Debian kernels.
- udev now supports recording the hotplug events in the initramfs and replaying them in a later phase of the boot process. It's still not clear how Debian systems will use initramfs so the programs are not yet installed, but later this will provide speed advantages and an important simplification of the boot process.
- Some syntax extensions for the rules files, which simplify some cases and help understanding the relationship among multiple rules.
- /etc/dev.d/ and /etc/hotplug.d/ are officially deprecated. udev still processes them with some helper programs to allow a smooth transition, but in the future the hotplug and udev scripts will be started only when needed by udev rules.
#316909 shows how a package can be converted from dev.d to a udev rule. There are only a few packages which need to be fixed, so I should be able to disable dev.d processing soon. hotplug.d will take more time because switching is useful only if a package depends on udev, so I need to plan how to make all hotplug users switch to it. I'm interested in hearing proposals about how this could be done. :-)