I'll never understand why some people consider it acceptable to depend on udev

Fri, 23 Oct 2009 20:43:02 +0200
rants

This is just a reminder for all of you that have packages that depend on the udev package: I hate you.

A Debian package depending on the udev package (with very few exceptions like for example the initramfs-tools package that actually uses udev) is so wrong.

The majority of those packages will work just fine without. All that is lost is some autoconfiguration of devices, which can be properly be done by hand. So even if you feel like it would not be the same without, that is at most a reason for a recommend.

Depending on a package whose sole purpose is to heavily modify the behavior of the system and especially what modules are loaded at boot time and how device nodes are named is a no-go in my eyes.
Installing udev on a system not having udev installed has a realistic chance of breaking something or even making the system totally unbootable. (That is no bug in udev, it's main purpose is to load all the stuff and do much guessing. Unless you are able to write omniscient code there is no way for such a system to know what has to be changed to make the system still bootable with udev suddenly (re)installed in all cases.).

Before anyone wants to start to argue with some hypothetical uninformed user that could be confused by some magic not working: please switch on your brain and reconsider.
Udev has not be installed in new installs since ages. Lenny shipped without yaird so it is all but easy to have a system without udev running (if wanting to have a kernel installed). So if there is any user not having udev installed ending up with your package installed, that system was either time-consuming modified to not have udev or never had and was upgraded multiple times (thinking of a squeeze package) with each upgrade doing additional complex steps.
What do you think are the chances on such a system for a dependency on udev to do any good? And what are the chances for it to cause a catastrophic failure?