Index: udev/50-udev.rules
===================================================================
--- udev/50-udev.rules	(revision 2b92d039668ae340aa9cf07f226a06f47a9a7318)
+++ udev/50-udev.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -19,11 +19,10 @@
 
 # console
-KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", 	GROUP="tty", MODE="666", OPTIONS="last_rule"
-KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", 	GROUP="tty", MODE="666", OPTIONS="last_rule"
-KERNEL=="vcs*",						GROUP="tty", MODE="620", OPTIONS="last_rule"
-KERNEL=="tty",						GROUP="tty", MODE="666", OPTIONS="last_rule"
-KERNEL=="tty[0-9]*",					GROUP="tty", MODE="620", OPTIONS="last_rule"
-KERNEL=="console",					MODE="600", OPTIONS="last_rule"
-KERNEL=="ptmx",						GROUP="tty", MODE="666", OPTIONS="last_rule"
+KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]",	GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]",	GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="tty",						GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="tty[0-9]*|vcs*",				GROUP="tty", MODE="0620", OPTIONS="last_rule"
+KERNEL=="ptmx",						GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="console",					MODE="0600", OPTIONS="last_rule"
 
 # serial devices
@@ -51,9 +50,7 @@
 
 # input devices
-KERNEL=="mouse*|mice",		NAME="input/%k", MODE="0640"
-KERNEL=="event*",		NAME="input/%k", MODE="0640"
+KERNEL=="mouse*|mice|event*",	NAME="input/%k", MODE="0640"
 KERNEL=="js*",			NAME="input/%k", MODE="0644"
-KERNEL=="ts*",			NAME="input/%k", MODE="0600"
-KERNEL=="uinput",		NAME="input/%k", MODE="0600"
+KERNEL=="ts*|uinput",		NAME="input/%k", MODE="0600"
 KERNEL=="lirc0",		SYMLINK+="lirc"
 
@@ -89,27 +86,25 @@
 
 # misc devices
-KERNEL=="mem|kmem",		GROUP="kmem", MODE="640"
-KERNEL=="port",			GROUP="kmem", MODE="640"
-KERNEL=="nvram",		GROUP="kmem", MODE="600"
-KERNEL=="null",			MODE="666"
-KERNEL=="zero",			MODE="666"
-KERNEL=="full",			MODE="622"
-KERNEL=="random",		MODE="666"
-KERNEL=="urandom",		MODE="644"
-KERNEL=="rtc",			GROUP="audio"
-KERNEL=="sonypi",		MODE="666"
-KERNEL=="agpgart",		MODE="600", GROUP="video"
-KERNEL=="djs*",			MODE="644"
-KERNEL=="sgi_*",		MODE="666"
-KERNEL=="rrom*",		MODE="400"
-KERNEL=="rflash*",		MODE="400"
-KERNEL=="usbscanner*",		MODE="644"
-KERNEL=="3270/ttycons*",	MODE="600"
-KERNEL=="3270/tub*",		MODE="666"
-KERNEL=="3270/tubcons*",	MODE="600"
-KERNEL=="ica",			MODE="666"
-KERNEL=="z90crypt",		MODE="666"
-KERNEL=="mmtimer",		MODE="444"
-KERNEL=="auer[0-9]*"		NAME="usb/%k"
+KERNEL=="mem|kmem|port",	GROUP="kmem", MODE="0640"
+KERNEL=="nvram",		GROUP="kmem", MODE="0600"
+KERNEL=="null|zero|random",	MODE="0666"
+KERNEL=="full",			MODE="0622"
+KERNEL=="urandom",		MODE="0644"
+KERNEL=="rtc",			MODE="0600"
+KERNEL=="fuse",			MODE="0666"
+KERNEL=="sonypi",		MODE="0666"
+KERNEL=="agpgart",		MODE="0600", GROUP="video"
+KERNEL=="djs*",			MODE="0644"
+KERNEL=="sgi_*",		MODE="0666"
+KERNEL=="rrom*",		MODE="0400"
+KERNEL=="rflash*",		MODE="0400"
+KERNEL=="usbscanner*",		MODE="0644"
+KERNEL=="3270/ttycons*",	MODE="0600"
+KERNEL=="3270/tub*",		MODE="0666"
+KERNEL=="3270/tubcons*",	MODE="0600"
+KERNEL=="ica",			MODE="0666"
+KERNEL=="z90crypt",		MODE="0666"
+KERNEL=="mmtimer",		MODE="0644"
+KERNEL=="auer[0-9]*",		NAME="usb/%k"
 
 # packet writing interface
@@ -128,6 +123,6 @@
 
 # misc storage devices (non-block)
-KERNEL=="sg*",			GROUP="disk", MODE="640"
-KERNEL=="sr*",			GROUP="cdrom", MODE="660"
+KERNEL=="sg*",			GROUP="disk", MODE="0640"
+KERNEL=="sr*",			GROUP="cdrom", MODE="0660"
 KERNEL=="st*",			GROUP="tape"
 KERNEL=="nst*",			GROUP="tape"
@@ -153,3 +148,4 @@
 
 # libusb device access
-SUBSYSTEM=="usb_device", 	PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0660", GROUP="usb"
+SUBSYSTEM=="usb",		ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
+SUBSYSTEM=="usb_device",	ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"
Index: udev/60-persistent-disk.rules
===================================================================
--- udev/60-persistent-disk.rules	(revision 2b92d039668ae340aa9cf07f226a06f47a9a7318)
+++ udev/60-persistent-disk.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -15,8 +15,8 @@
 ########################################################################
 
-# persistent disk links: /dev/disk/{by-id,by-uuid,by-label,by-path}
+# persistent storage links: /dev/{disk,tape}/{by-id,by-uuid,by-label,by-path,by-name}
 # scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
 
-ACTION!="add",		GOTO="persistent_storage_end"
+ACTION!="add", GOTO="persistent_storage_end"
 
 KERNEL=="nst[0-9]", SUBSYSTEMS=="scsi", ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -s %p -d $tempnode"
@@ -29,37 +29,38 @@
 KERNEL=="sg*", SUBSYSTEMS=="scsi", ATTRS{type}=="8", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
 
-SUBSYSTEM!="block",	GOTO="persistent_storage_end"
+SUBSYSTEM!="block", GOTO="persistent_storage_end"
 
 # skip rules for inappropriate block devices
 KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"
 
-# Set Permissions on CDOM
-BUS=="ide",     DRIVERS=="ide-cdrom", ATTRS{removable}=="1", GROUP="cdrom", MODE="660"
+# never access non-cdrom removable ide devices, the drivers are causing event loops on open()
+KERNEL=="hd*[!0-9]", 	ATTRS{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
+KERNEL=="hd*[0-9]", 	ATTRS{removable}=="1", GOTO="persistent_storage_end"
 
-# never access removable ide devices, the drivers are causing event loops on open()
-KERNEL=="hd*[!0-9]",	ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
-KERNEL=="hd*[0-9]",	ATTRS{removable}=="1", GOTO="persistent_storage_end"
+# ignore partitions that span the entire disk
+ATTR{whole_disk}=="", GOTO="persistent_storage_end"
 
 # for partitions import parent information
-KERNEL=="*[0-9]", IMPORT{parent}=="ID_*"
+KERNEL=="*[0-9]", IMPORT{parent}="ID_*"
 
 # by-id (hardware serial number)
-KERNEL=="hd*[!0-9]",	IMPORT{program}="ata_id --export $tempnode"
-KERNEL=="hd*[!0-9]",	ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}"
-KERNEL=="hd*[0-9]",	SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
+KERNEL=="hd*[!0-9]", 	IMPORT{program}="ata_id --export $tempnode"
+KERNEL=="hd*[!0-9]", 	ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}"
+KERNEL=="hd*[0-9]", 	SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
 
 KERNEL=="sd*[!0-9]|sr*|st*", 	ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
 KERNEL=="sd*[!0-9]|sr*|st*", 	ENV{ID_SERIAL}=="", IMPORT{program}="usb_id -x"
 KERNEL=="sd*[!0-9]|sr*|st*", 	ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -s %p -d $tempnode"
-KERNEL=="sd*[!0-9]|sr*|st*",	ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -a -s %p -d $tempnode"
+KERNEL=="sd*[!0-9]|sr*|st*", 	ENV{ID_SERIAL}=="", IMPORT{program}="scsi_id -g -x -a -s %p -d $tempnode"
 KERNEL=="sd*[!0-9]|sr*", 	ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
+KERNEL=="sd*[0-9]", 		ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
 
 # libata compat (links like hd*)
-KERNEL=="sd*[!0-9]|sr*",	ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", ENV{ID_ATA_COMPAT}="$result"
-KERNEL=="sd*[!0-9]|sr*",	ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
-KERNEL=="sd*[0-9]",		ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
+KERNEL=="sd*[!0-9]|sr*", 	ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", ENV{ID_ATA_COMPAT}="$result"
+KERNEL=="sd*[!0-9]|sr*", 	ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
+KERNEL=="sd*[0-9]", 		ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
 
-KERNEL=="mmcblk[0-9]", 		ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
-KERNEL=="mmcblk[0-9]p[0-9]", 	ATTR{name}=="?*", ATTR{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}",  SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
+KERNEL=="mmcblk[0-9]", 		ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
+KERNEL=="mmcblk[0-9]p[0-9]", 	ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
 
 # by-path (shortest physical path)
@@ -70,13 +71,13 @@
 
 # by-label/by-uuid (filesystem properties)
-KERNEL=="*[!0-9]", 				ATTR{removable}=="1", GOTO="persistent_storage_end"
+KERNEL=="*[!0-9]",				ATTRS{removable}=="1", GOTO="persistent_storage_end"
 IMPORT{program}="vol_id --export $tempnode"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", 	ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
-ENV{ID_FS_USAGE}=="filesystem|other", 		ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto",	ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ENV{ID_FS_USAGE}=="filesystem|other",		ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
 
 # BIOS Enhanced Disk Device
-KERNEL=="*[!0-9]", 	IMPORT{program}="edd_id --export $tempnode"
-KERNEL=="*[!0-9]", 	ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}"
-KERNEL=="*[0-9]", 	ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n"
+KERNEL=="*[!0-9]",	IMPORT{program}="edd_id --export $tempnode"
+KERNEL=="*[!0-9]",	ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}"
+KERNEL=="*[0-9]",	ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n"
 
 LABEL="persistent_storage_end"
Index: udev/61-persistent-input.rules
===================================================================
--- udev/61-persistent-input.rules	(revision 2b92d039668ae340aa9cf07f226a06f47a9a7318)
+++ udev/61-persistent-input.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -20,25 +20,26 @@
 
 # usb devices
-BUS=="usb", IMPORT{program}="usb_id -x"
-BUS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
-BUS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse"
+SUBSYSTEMS=="usb", IMPORT{program}="usb_id -x"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse"
 
 # other devices
-DRIVERS=="pcspkr", ENV{ID_CLASS}="spkr"
-DRIVERS=="atkbd", ENV{ID_CLASS}="kbd"
-DRIVERS=="psmouse", ENV{ID_CLASS}="mouse"
-ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir"
-ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
+DRIVERS=="pcspkr", 						ENV{ID_CLASS}="spkr"
+DRIVERS=="atkbd", 						ENV{ID_CLASS}="kbd"
+DRIVERS=="psmouse",						ENV{ID_CLASS}="mouse"
+ATTRS{name}=="*dvb*|*DVB*|* IR *", 				ENV{ID_CLASS}="ir"
+ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", 	ATTRS{modalias}!="input:*-*k*14A,*r*", ENV{ID_CLASS}="joystick"
 
-ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
+# fill empty serial number
+ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial"
 
 # by-id links
-KERNEL=="mouse*", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
-KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
+KERNEL=="mouse*|js*",	ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}"
+KERNEL=="event*",	ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}"
 
 # by-path
 IMPORT{program}="path_id %p"
-ENV{ID_PATH}=="?*", KERNEL=="mouse*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
-ENV{ID_PATH}=="?*", KERNEL=="event*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
+ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}"
+ENV{ID_PATH}=="?*", KERNEL=="event*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}"
 
 LABEL="persistent_input_end"
Index: udev/64-device-mapper.rules
===================================================================
--- udev/64-device-mapper.rules	(revision 2b92d039668ae340aa9cf07f226a06f47a9a7318)
+++ udev/64-device-mapper.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -14,19 +14,25 @@
 #               of this package
 #
+# Requirements: mdadm 2.6.2 or higher
+#
 ########################################################################
 
-KERNEL=="device-mapper", SYMLINK+="mapper/control"
+KERNEL=="device-mapper",	SYMLINK+="mapper/control"
 
-KERNEL=="dm-*", ACTION=="add|change", GOTO="device_mapper_do"
-GOTO="device_mapper_end"
+KERNEL!="dm-*",		GOTO="device_mapper_end"
+ACTION!="add|change",	GOTO="device_mapper_end"
 
-LABEL="device_mapper_do"
-PROGRAM!="/sbin/dmsetup status -j %M -m %m", 	GOTO="device_mapper_end"
-RESULT=="|*snapshot*|*error*",			GOTO="device_mapper_end"
+# skip snapshot and error tables
+IMPORT{program}="/sbin/dmsetup export -j%M -m%m"
+ENV{DM_STATE}!="ACTIVE",			GOTO="device_mapper_end"
+ENV{DM_TARGET_TYPES}=="|*snapshot*|*error*",	GOTO="device_mapper_end"
+
+SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
+ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
 
 IMPORT{program}="vol_id --export $tempnode"
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", 	ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
-ENV{ID_FS_USAGE}=="filesystem|other",		ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
+OPTIONS="link_priority=-100"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto",	ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ENV{ID_FS_USAGE}=="filesystem|other",		ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
 
 LABEL="device_mapper_end"
-
Index: udev/65-dm-raid.rules
===================================================================
--- udev/65-dm-raid.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
+++ udev/65-dm-raid.rules	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -0,0 +1,37 @@
+########################################################################
+#
+# Description : 65-md-raid.rules
+#
+# Authors     : Based on Open Suse Udev Rules
+#               kay.sievers@suse.de
+#
+# Adapted to  : Jim Gifford
+# LFS
+#
+# Version     : 00.01
+#
+# Notes       : This is where you can put rules that are a part
+#               of this package
+#
+# Requirements: mdadm 2.6.2 or higher
+#
+########################################################################
+
+# md links hook into "change" events, when the array becomes available
+
+SUBSYSTEM!="block",	GOTO="md_raid_end"
+KERNEL!="md[0-9]*",	GOTO="md_raid_end"
+ACTION!="add|change",	GOTO="md_raid_end"
+
+ATTR{md/array_state}=="|clear|inactive", GOTO="md_raid_end"
+
+IMPORT{program}="/sbin/mdadm -D --export $tempnode"
+ENV{MD_NAME}=="?*",	SYMLINK+="disk/by-id/md-name-$env{MD_NAME}"
+ENV{MD_UUID}=="?*",	SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
+
+IMPORT{program}="vol_id --export $tempnode"
+OPTIONS="link_priority=100"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto",	ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ENV{ID_FS_USAGE}=="filesystem|other",		ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
+
+LABEL="md_raid_end"
Index: udev/Makefile
===================================================================
--- udev/Makefile	(revision 2b92d039668ae340aa9cf07f226a06f47a9a7318)
+++ udev/Makefile	(revision 95756c0d2a11781ebd6251b908cd1d2c7ea07ecc)
@@ -86,4 +86,5 @@
 	@echo "make install			install udev rules package and helper scripts"
 	@echo "make install-device-mapper	install device-mapper rules"
+	@echo "make install-dm			install dm rules"
 	@echo "make install-netboot		install udev rules package for netboot"
 	@echo "make install-network		install network helper package"
@@ -101,8 +102,11 @@
 	install -m 644 contrib/common/udev_helper ${DESTDIR}/etc/sysconfig/udev_helper
 	
+install-dm: install-device-mapper
+
 install-device-mapper:
 	install -d ${DESTDIR}/${LIBDIR}/udev
 	install -d ${DESTDIR}/etc/rc.d/init.d
 	install -m ${RULESMODE} 64-device-mapper.rules ${DESTDIR}/etc/udev/rules.d/64-device-mapper.rules
+	install -m ${RULESMODE} 65-dm-raid.rules ${DESTDIR}/etc/udev/rules.d/65-dm-raid.rules
 
 install-network: install-helper-functions install-network-update
@@ -127,3 +131,4 @@
 .PHONY: all install device_dirs device_links rules scripts boot mknod_devices \
 	help install-helper-functions install-network install-network-update \
-	install-netboot rules-netboot
+	install-netboot rules-netboot install-dm install-device-mapper \
+	install-sound
