* udev: updated to 145. Dropped support for doing a static build
since we don't need it anymore. Patched the udev rules/helper programs for CD-ROM symlink generation and firmware loading so that we don't have to provide our own. svn path=/nixpkgs/trunk/; revision=16684
This commit is contained in:
parent
17132958a9
commit
17828d8442
|
@ -1,34 +1,47 @@
|
|||
{stdenv, fetchurl}:
|
||||
{stdenv, fetchurl, gperf, pkgconfig, glib, acl, libusb, usbutils, pciutils}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "udev-125";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "udev-145";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://kernel/linux/utils/kernel/hotplug/udev-125.tar.bz2;
|
||||
sha256 = "1w75c6vaqw8587djd8g380h1jrbj7fx9441bvvy4gj9jz21r00ks";
|
||||
url = "mirror://kernel/linux/utils/kernel/hotplug/${name}.tar.bz2";
|
||||
sha256 = "1zmibp6n7d582fqx8vmg9vb2a1435hghfpz36056bc25ccwf7yiv";
|
||||
};
|
||||
|
||||
# "DESTDIR=/" is a hack to prevent "make install" from trying to
|
||||
# mess with /dev.
|
||||
preBuild =
|
||||
''
|
||||
makeFlagsArray=(prefix=$out usrbindir=$out/bin usrsbindir=$out/sbin usrlibdir=$out/lib \
|
||||
mandir=$out/share/man includedir=$out/include \
|
||||
EXTRAS="extras/volume_id extras/ata_id extras/edd_id extras/floppy extras/path_id ${if stdenv ? isKlibc then "" else "extras/scsi_id"} extras/usb_id ${if stdenv ? isKlibc then "" else "extras/cdrom_id"}"
|
||||
INSTALL='install -c' DESTDIR=/ \
|
||||
${if stdenv ? isStatic then "USE_STATIC=true SHLIB= VOLUME_ID_STATIC=true" else ""})
|
||||
buildInputs = [gperf pkgconfig glib acl libusb usbutils];
|
||||
|
||||
substituteInPlace udev_rules.c --replace /lib/udev $out/lib/udev
|
||||
''
|
||||
configureFlags = "--with-pci-ids-path=${pciutils}/share/pci.ids";
|
||||
|
||||
+ (if stdenv ? isStatic then
|
||||
preConfigure =
|
||||
''
|
||||
# `make install' would cause the shared library to be installed, which we don't build.
|
||||
substituteInPlace extras/volume_id/lib/Makefile --replace 'install:' 'disabled:'
|
||||
'' else "");
|
||||
substituteInPlace extras/keymap/Makefile.in \
|
||||
--replace /usr/include ${stdenv.glibc}/include
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
installFlagsArray=(udevdir=$TMPDIR/dummy)
|
||||
postInstall =
|
||||
''
|
||||
# Install some rules that really should be installed by default.
|
||||
for i in 40-alsa.rules 40-infiniband.rules 40-isdn.rules 40-pilot-links.rules 64-device-mapper.rules 64-md-raid.rules; do
|
||||
cp rules/packages/$i $out/libexec/rules.d/
|
||||
done
|
||||
|
||||
# The path to rule_generator.functions in write_cd_rules and
|
||||
# write_net_rules is broken. Also, don't store the mutable
|
||||
# persistant rules in /etc/udev/rules.d but in
|
||||
# /var/lib/udev/rules.d.
|
||||
for i in $out/libexec/write_cd_rules $out/libexec/write_net_rules; do
|
||||
substituteInPlace $i \
|
||||
--replace /lib/udev $out/libexec \
|
||||
--replace /etc/udev/rules.d /var/lib/udev/rules.d
|
||||
done
|
||||
|
||||
# Don't set PATH to /bin:/sbin; won't work in NixOS.
|
||||
substituteInPlace $out/libexec/rule_generator.functions \
|
||||
--replace 'PATH=' '#PATH='
|
||||
|
||||
# Don't hardcore the FIRMWARE_DIRS variable; obtain it from the
|
||||
# environment of the caller.
|
||||
sed '3,4d' -i $out/libexec/firmware.sh
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
|
Loading…
Reference in New Issue