Opened 13 years ago
Closed 13 years ago
#3008 closed enhancement (fixed)
Udev-180
Reported by: | Matthew Burgess | Owned by: | Matthew Burgess |
---|---|---|---|
Priority: | normal | Milestone: | 7.1 |
Component: | Book | Version: | SVN |
Severity: | normal | Keywords: | |
Cc: |
Description
New version. Release announcement at http://www.spinics.net/lists/hotplug/msg05326.html.
Change History (5)
comment:1 by , 13 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 13 years ago
comment:3 by , 13 years ago
From reading Kay's reply at http://www.spinics.net/lists/hotplug/msg05330.html, it looks like they expect everyone to be following the merged / & /usr layout already! This is the trouble when the same maintainer seemingly looks after several areas of a distro at the same time; they lose the ability to understand/acknowledge that not all distros use the same layout, so such assumptions don't necessarily hold. So, now we're in the position that the upstream kernel will dump firmware blobs into /lib, but Udev expects them to be in /usr/lib. Using rootprefix= looks sensible enough for the time being (i.e. until Kay, Lennart and the gang change the default in the kernel). I'll fix this up with the version bump.
comment:4 by , 13 years ago
For now, I think a link /lib/firmware <--> /usr/lib/firmware will do. The direction doesn't matter.
Section 6.6 with a little explanation would seem the right place to me.
comment:5 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed in r9721. I ended up using the '--with-rootprefix' switch; whilst either way would have worked, it felt more natural to have the kernel put its firmware in /lib and have Udev expect to find it there.
Finally got a chance to test this out on a somewhat older system. There's a bug in the firmware loading that makes it break entirely. The default firmware search path is ${rootprefix}/lib/firmware{/updates,} -- which, given the default value of --with-rootprefix (${ac_default_prefix}, or /usr), means it looks in /usr/lib/firmware by default. But the kernel installs firmware to /lib, not /usr/lib.
It doesn't look like --with-rootprefix affects anything else in udev, except the shebang line in src/extras/keymap/keyboard-force-release.sh.in, which looks like this:
#!@rootprefix@/bin/sh -e
and therefore obviously requires that @rootprefix@ be the empty string. (We disable keymap-force-release.sh, though, so this doesn't affect us.)
Reported to upstream with a patch that removes the ${rootprefix} from the default value of the flag, but I'm not sure which way upstream will fall on this one. We should probably just set "--rootprefix=" in the configure flags ourselves.
(Especially since that's one of the flags that INSTALL recommends for "[t]he options to install udev in the rootfs instead of /usr, and udevadm in /sbin". Although that list of options also includes --with-rootlibdir=/lib64, which from reading Makefile.am, activates a whole bunch of postinstall shell crazy, which appears to move libudev.so.* (but not libudev.so) from --libdir (default /usr/lib) to /lib64. But nothing on this system except Xorg links to libudev, not even udevd itself, so I think it's fine to leave libudev in /usr.)