[dracut/f12/master] - backported a lot of bugfixes from git

Harald Hoyer harald at fedoraproject.org
Thu Sep 23 14:47:43 UTC 2010


commit 89bd69dc6f399036c5818351dbaec987298a109e
Author: Harald Hoyer <harald at redhat.com>
Date:   Thu Sep 23 16:47:34 2010 +0200

    - backported a lot of bugfixes from git

 0001-dracut.8-fixed-LUKS-paragraph.patch           |    6 +-
 0002-Fix-ahci-detection-in-kernel-2.6.35.patch     |   33 +++
 ...d-information-which-parameter-can-be-spec.patch |    6 +-
 ...004-dmraid-parse-different-error-messages.patch |    6 +-
 ...05-init-add-hacky-cdrom-polling-mechanism.patch |    6 +-
 ...dule-btrfs.patch => 0006-add-module-btrfs.patch |    6 +-
 ...teach-dmsquash-live-root-to-use-rootflags.patch |    6 +-
 ...atch => 0008-init-trigger-with-action-add.patch |    6 +-
 ...009-add-missing-paragraph-for-add-drivers.patch |    6 +-
 ... 0010-manpage-addition-for-kernel-drivers.patch |    6 +-
 ...drivers-from-the-command-line-should-add-.patch |    6 +-
 ...ORS-updated.patch => 0012-AUTHORS-updated.patch |    6 +-
 ...ch => 0013-kernel-modules-hardcode-sr_mod.patch |    8 +-
 ...les-only-remove-ocfs2-if-all-filesystems-.patch |    8 +-
 ...atch => 0015-dracut.spec-add-btrfs-module.patch |    6 +-
 ...> 0016-Use-pigz-for-gzipping-if-available.patch |    6 +-
 0017-nfs-fixed-nsswitch.conf-parsing.patch         |   37 +++
 0018-network-removed-bogus-udev-rules.patch        |   25 ++
 0019-network-correct-rules-for-multiple-nics.patch |   25 ++
 0020-nfs-add-missing-nfsidmap-libs.patch           |   26 ++
 ...be-more-careful-about-md-devices-and-blki.patch |   44 +++
 ...turn-of-shell-debug-mode-in-strstr-and-ge.patch |   59 ++++
 ...to-start-container-childs-manually-with-m.patch |   35 +++
 0024-init-fix-cdrom-polling-loop.patch             |   25 ++
 0025-init-do-not-redirect-to.patch                 |   24 ++
 0026-loginit-turn-off-debugging.patch              |   25 ++
 ...-RAID-DEG-create-root-filter-MD_UUID-only.patch |   39 +++
 ...n-qemu-add-usr-libexec-qemu-kvm-to-search.patch |   24 ++
 ...-testsuite-to-local-tcp-rather-than-udp-m.patch |   82 ++++++
 ...dd-rd_retry-kernel-command-line-parameter.patch |  174 ++++++++++++
 ...-test-nfs-correct-return-code-and-cleanup.patch |   36 +++
 0032-NBD-kill-server-after-failed-test.patch       |   44 +++
 ...50-MULTINIC-kill-server-after-failed-test.patch |   43 +++
 ...0-MULTINIC-install-all-nfsidmap-libs-for-.patch |   33 +++
 ...0-MULTINIC-install-sd_mod-and-ata_piix-ke.patch |   25 ++
 ...dracut.spec-removed-e2fsprogs-requirement.patch |   25 ++
 ...TINIC-kill-server-after-passing-all-tests.patch |   26 ++
 0038-NEWS-update.patch                             |   33 +++
 ...est-NBD-check-for-nbd-kernel-module-first.patch |   34 +++
 0040-Needs-btrfsctl-not-btrfs-module.patch         |   53 ++++
 ...-btfrs-load-btrfs-module-and-updated-NEWS.patch |   37 +++
 ...kernel-modules-add-more-hardcoded-modules.patch |   24 ++
 ...racut-functions-use-udevadm-to-get-ID_FS_.patch |   26 ++
 ....conf-use-as-default-for-config-variables.patch |  112 ++++++++
 ...w-init-and-ccw-rules-from-s390utils-in-dr.patch |  140 ++++++++++
 0046-znet-renamed-rd_CCW-to-rd_ZNET.patch          |   47 ++++
 ...-sbin-vconfig-and-the-8021q-kernel-module.patch |   34 +++
 0048-dracut.8-fix-rd_LVM_LV-description.patch      |   25 ++
 ...ly-display-luksname-and-device-for-multip.patch |   64 +++++
 ...t.spec-remove-elfutils-libelf-requirement.patch |   25 ++
 ...rectly-without-nm-to-drop-binutils-requir.patch |  105 +++++++
 ...h-plymouth-populate-initrd-get-rid-of-awk.patch |   25 ++
 0053-dracut-get-rid-of-the-file-command.patch      |   39 +++
 0054-dracut.spec-clean-up-the-requirements.patch   |   82 ++++++
 ...acut-functions-fix-md-raid-hostonly-detec.patch |   50 ++++
 ...arse-ip-opts.sh-add-ip-auto6-to-valid-opt.patch |   24 ++
 ...40network-dhclient-script-be-more-verbose.patch |   38 +++
 0058-40network-ifup-be-more-verbose.patch          |   44 +++
 ...TINIC-do-not-provide-a-cdrom-in-the-testc.patch |   26 ++
 0060-95fcoe-fcoe-up-wait_for_if_up.patch           |   25 ++
 0061-get-rid-of-rdnetdebug.patch                   |  154 +++++++++++
 ...-95znet-removed-55-ccw.rules-and-ccw_init.patch |   31 ++
 0063-Makefile-make-more-clean.patch                |   25 ++
 ...-selinux-loadpolicy.sh-exit-for-selinux-0.patch |   66 +++++
 ...tions-check-if-specific-dracut-module-is-.patch |   40 +++
 ...th-simplify-and-install-wwids-rhbz-595719.patch |  101 +++++++
 ...emove-multipath-udev-rules-if-no-multipat.patch |   28 ++
 ...-90crypt-crypto_LUKS-identifier-corrected.patch |   25 ++
 ...selinux-move-selinux-to-a-separate-module.patch |  194 +++++++++++++
 ...cryptroot-ask.sh-beautify-password-prompt.patch |   32 +++
 ...end-on-ifcfg-if-etc-sysconfig-network-scr.patch |   50 ++++
 ...ip-pxelinux-hardware-type-field-from-BOOT.patch |   25 ++
 ...-dracut.spec-moved-znet-to-dracut-network.patch |   32 +++
 ...-for-symlinks-to-dev-.udev-rules.d-for-la.patch |   99 +++++++
 ...nctions-set-LANG-C-for-ldd-output-parsing.patch |   25 ++
 ...functions-use-LC_ALL-C-rather-than-LANG-C.patch |   25 ++
 ...sume-do-not-name-the-dev-.udev-rules-like.patch |   38 +++
 ...ve-mount-live-image-at-dev-.initramfs-liv.patch |   82 ++++++
 0079-dmsquash-live-depend-on-dm-module.patch       |   28 ++
 ...ve-do-not-umount-dev-.initramfs-live-for-.patch |   34 +++
 ...outh-depend-on-crypt-if-cryptsetup-exists.patch |   21 ++
 0082-dracut.spec-removed-duplicate-COPYING.patch   |   48 ++++
 ...k-for-cryptroot-instead-of-sbin-cryptroot.patch |   27 ++
 ...ave-cryptroot-ask-load-dm_crypt-if-needed.patch |   26 ++
 ...-crypt-assemble-70-luks.rules-dynamically.patch |  153 +++++++++++
 ...sk-s-getargs-rd_NO_CRYPTTAB-getarg-rd_NO_.patch |   46 +++
 ...-crypt.sh-fix-end-label-for-luks-udev-rul.patch |   25 ++
 ...wait-for-all-rd_LUKS_UUID-disks-to-appear.patch |   30 ++
 ...sh-getarg-returns-the-value-of-the-last-a.patch |   29 ++
 ...-dracut-fixed-stripping-of-kernel-modules.patch |   25 ++
 0091-conffile-before-confdir.patch                 |   39 +++
 ...inux-fixed-error-handling-for-load-policy.patch |   50 ++++
 0093-btrfs-add-hostonly-check.patch                |   40 +++
 ...r-all-rd_LVM_LV-and-rd_LVM_VG-specified-t.patch |   40 +++
 ...-90crypt-keys-on-external-devices-support.patch |  281 +++++++++++++++++++
 ...-remove-emergency-source-of-dracut-lib.sh.patch |   24 ++
 0097-dracut-functions-fix-m-a-handling.patch       |   41 +++
 0098-removed-redundant-64-lvm.rules-install.patch  |   29 ++
 0099-crypt-strip-luks-from-rd_LUKS_UUID.patch      |   24 ++
 ...loop-until-all-non-busy-crypt-devs-closed.patch |   40 +++
 ...tions-fix-check-255-logic-and-dependencie.patch |   84 ++++++
 0102-crypt-fix-printf.patch                        |   25 ++
 0103-mdraid-remove-local.patch                     |   31 ++
 ...raid-remove-mdadm.conf-on-rd_NO_MDADMCONF.patch |   27 ++
 ...sh-fixed-getarg-for-nonexistent-parameter.patch |   69 +++++
 0106-mkdir-dev-.udev-rules.d-with-mode-0755.patch  |   47 ++++
 ...-dev-.udev-rules.d-with-correct-permissio.patch |   58 ++++
 0108-dracut-functions-fixed-omit.patch             |   24 ++
 ...n-check-for-used-modules-in-hostonly-mode.patch |   30 ++
 0110-fips-udev-trigger-with-action-add.patch       |   25 ++
 ...cut-let-fwdir-be-specified-multiple-times.patch |   25 ++
 ...tions-use-proc-self-mountinfo-instead-of-.patch |   38 +++
 ...t-add-fstab-to-ignore-proc-self-mountinfo.patch |  120 ++++++++
 0114-plymouth-load-dm_crypt-module.patch           |   26 ++
 0115-crypt-depend-on-dm.patch                      |   25 ++
 0116-plymouth-udev-trigger-with-action-add.patch   |   28 ++
 0117-dm-install-all-md-dm-kernel-modules.patch     |   28 ++
 ...itrd-do-not-call-dracut-in-host-only-mode.patch |   30 ++
 ...tch-to-rd_NO_MDIMSM-if-no-mdadm-installed.patch |   26 ++
 ...knod-with-mode-and-set-umask-for-the-rest.patch |   76 +++++
 0121-plymouth-do-not-create-hvc0.patch             |   25 ++
 0122-init-set-old-umask-before-switch_root.patch   |   33 +++
 0123-init-do-not-set-umask-yet.patch               |   25 ++
 0124-lvm-also-handle-LVM1-volumes.patch            |   26 ++
 ...tions-filter_kernel_modules-search-in-ext.patch |   27 ++
 0126-dracut-lib-and-usr-lib-dirs-detection.patch   |   46 +++
 0127-lvm-install-lvm-mirror-and-snaphot-libs.patch |   31 ++
 ...port-for-dynamic-LVM-SNAPSHOT-root-volume.patch |  138 ++++++++++
 ...-mount-all-etc-fstab.sys-volumes-before-s.patch |   75 +++++
 ...D-DEG-mark-test-failed-for-multiple-dummy.patch |   25 ++
 0131-test-double-disk-space-for-root-images.patch  |  125 +++++++++
 dracut-004-emergency.patch                         |   19 --
 dracut-004-forcepermissive.patch                   |   12 -
 dracut-004-multipath-check.patch                   |   48 ----
 dracut.spec                                        |  287 ++++++++++++++++++--
 135 files changed, 5926 insertions(+), 145 deletions(-)
---
diff --git a/0001-dracut.8-fixed-LUKS-paragraph.patch b/0001-dracut.8-fixed-LUKS-paragraph.patch
index 3721010..e2bb99f 100644
--- a/0001-dracut.8-fixed-LUKS-paragraph.patch
+++ b/0001-dracut.8-fixed-LUKS-paragraph.patch
@@ -1,7 +1,7 @@
-From 7ea25f3a3426bd60c26e2deaf07f2c3918e65dcb Mon Sep 17 00:00:00 2001
+From 0e4f752a79eab72aca25875f5fb91dd8f7f5bf0f Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 7 Apr 2010 11:17:46 +0200
-Subject: [PATCH 01/15] dracut.8: fixed LUKS paragraph
+Subject: [PATCH 001/133] dracut.8: fixed LUKS paragraph
 
 ---
  dracut.8 |    3 ++-
@@ -23,5 +23,5 @@ index 3ec9c4f..5220dea 100644
  .SS MD
  .TP
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0002-Fix-ahci-detection-in-kernel-2.6.35.patch b/0002-Fix-ahci-detection-in-kernel-2.6.35.patch
new file mode 100644
index 0000000..c97a240
--- /dev/null
+++ b/0002-Fix-ahci-detection-in-kernel-2.6.35.patch
@@ -0,0 +1,33 @@
+From bb580a3961502bdf502899ac5c31b19bca9d42dd Mon Sep 17 00:00:00 2001
+From: Andrey Borzenkov <arvidjaar at mail.ru>
+Date: Thu, 5 Aug 2010 20:06:57 +0400
+Subject: [PATCH 002/133] Fix ahci detection in kernel 2.6.35
+
+Kernel 2.6.35 (may be, earlier) split ahci into libahci.ko and ahci.ko
+and added ahci_platform.ko. As a result, drivers ahci and ahci_platform
+do not contain any symbol that are checked for storage modules (it is
+libahci.ko that references ata_scsi_ioctl now). So add additional
+symbol ahci_init_controller; it seems this is expected to be called by
+every driver based on libahci.ko.
+
+Signed-off-by: Andrey Borzenkov <arvidjaar at mail.ru>
+---
+ modules.d/90kernel-modules/installkernel |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90kernel-modules/installkernel b/modules.d/90kernel-modules/installkernel
+index 3416e7c..87819d3 100755
+--- a/modules.d/90kernel-modules/installkernel
++++ b/modules.d/90kernel-modules/installkernel
+@@ -1,7 +1,7 @@
+ #!/bin/bash
+ if [[ -z $drivers ]]; then
+     block_module_test() {
+-	local blockfuncs='ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
++	local blockfuncs='ahci_init_controller|ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
+ 
+ 	 nm -uPA "$1" | egrep -q "$blockfuncs"
+     }
+-- 
+1.7.3
+
diff --git a/0002-dracut.8-add-information-which-parameter-can-be-spec.patch b/0003-dracut.8-add-information-which-parameter-can-be-spec.patch
similarity index 94%
rename from 0002-dracut.8-add-information-which-parameter-can-be-spec.patch
rename to 0003-dracut.8-add-information-which-parameter-can-be-spec.patch
index 5e6adaf..57ba890 100644
--- a/0002-dracut.8-add-information-which-parameter-can-be-spec.patch
+++ b/0003-dracut.8-add-information-which-parameter-can-be-spec.patch
@@ -1,7 +1,7 @@
-From d1bae3cd17d61c5e27b66690a6a383a9bd0c369e Mon Sep 17 00:00:00 2001
+From 36af4ee09241b27608570929b3080a3821d59c27 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 7 Apr 2010 15:55:14 +0200
-Subject: [PATCH 02/15] dracut.8: add information, which parameter can be specified multiple times
+Subject: [PATCH 003/133] dracut.8: add information, which parameter can be specified multiple times
 
 ---
  dracut.8 |   15 ++++++++++++---
@@ -84,5 +84,5 @@ index 5220dea..57626fe 100644
  .SS ZFCP
  .TP
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0003-dmraid-parse-different-error-messages.patch b/0004-dmraid-parse-different-error-messages.patch
similarity index 81%
rename from 0003-dmraid-parse-different-error-messages.patch
rename to 0004-dmraid-parse-different-error-messages.patch
index faf27b4..405d0fc 100644
--- a/0003-dmraid-parse-different-error-messages.patch
+++ b/0004-dmraid-parse-different-error-messages.patch
@@ -1,7 +1,7 @@
-From d693f34afb5f4fccb75e44da2fa8378a67a0e68e Mon Sep 17 00:00:00 2001
+From f9039662a06a480583711aebf7eafe49e60d3d66 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Tue, 13 Apr 2010 12:54:12 +0200
-Subject: [PATCH 03/15] dmraid: parse different error messages
+Subject: [PATCH 004/133] dmraid: parse different error messages
 
 ---
  modules.d/90dmraid/dmraid.sh |    2 +-
@@ -21,5 +21,5 @@ index 4e47e2d..dba655b 100755
  fi
  
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0004-init-add-hacky-cdrom-polling-mechanism.patch b/0005-init-add-hacky-cdrom-polling-mechanism.patch
similarity index 87%
rename from 0004-init-add-hacky-cdrom-polling-mechanism.patch
rename to 0005-init-add-hacky-cdrom-polling-mechanism.patch
index 4c2af06..a04c39b 100644
--- a/0004-init-add-hacky-cdrom-polling-mechanism.patch
+++ b/0005-init-add-hacky-cdrom-polling-mechanism.patch
@@ -1,7 +1,7 @@
-From 0e0bf830577b5538ed010cf1eb4b1a57578ac3bb Mon Sep 17 00:00:00 2001
+From 18970c1993891dcdbe76068885fca6ef19d1dc04 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Tue, 13 Apr 2010 13:50:33 +0200
-Subject: [PATCH 04/15] init: add hacky cdrom polling mechanism
+Subject: [PATCH 005/133] init: add hacky cdrom polling mechanism
 
 ---
  modules.d/99base/init |   14 +++++++++++++-
@@ -34,5 +34,5 @@ index ab7aafe..b9b6361 100755
  done
  unset job
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0005-add-module-btrfs.patch b/0006-add-module-btrfs.patch
similarity index 94%
rename from 0005-add-module-btrfs.patch
rename to 0006-add-module-btrfs.patch
index 39267b9..5e059f0 100644
--- a/0005-add-module-btrfs.patch
+++ b/0006-add-module-btrfs.patch
@@ -1,7 +1,7 @@
-From 58ffd15bfffddd593b1a8f29eb5935a0ce39d2dc Mon Sep 17 00:00:00 2001
+From 20c749cc2f43f8bf2bf1bec8a684328f65ac1b7f Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Tue, 13 Apr 2010 14:03:05 +0200
-Subject: [PATCH 05/15] add module btrfs
+Subject: [PATCH 006/133] add module btrfs
 
 ---
  modules.d/90btrfs/40-btrfs.rules |    7 +++++++
@@ -66,5 +66,5 @@ index ae64f3e..23693fe 100755
  ata_id \
  cdrom_id \
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0006-teach-dmsquash-live-root-to-use-rootflags.patch b/0007-teach-dmsquash-live-root-to-use-rootflags.patch
similarity index 87%
rename from 0006-teach-dmsquash-live-root-to-use-rootflags.patch
rename to 0007-teach-dmsquash-live-root-to-use-rootflags.patch
index e5265d0..03d76d9 100644
--- a/0006-teach-dmsquash-live-root-to-use-rootflags.patch
+++ b/0007-teach-dmsquash-live-root-to-use-rootflags.patch
@@ -1,7 +1,7 @@
-From fbf1b5b138df65dc6ff309c6d015e0e5c887aa0e Mon Sep 17 00:00:00 2001
+From 14524581798f7aeae24b68a58b8a4e0fcc468c4a Mon Sep 17 00:00:00 2001
 From: Joey Boggs <jboggs at redhat.com>
 Date: Fri, 26 Mar 2010 10:01:16 -0400
-Subject: [PATCH 06/15] teach dmsquash-live-root to use rootflags
+Subject: [PATCH 007/133] teach dmsquash-live-root to use rootflags
 
 ---
  modules.d/90dmsquash-live/dmsquash-live-root |    7 ++++++-
@@ -26,5 +26,5 @@ index b1754dc..c98cdef 100755
  
  exit 0
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0007-init-trigger-with-action-add.patch b/0008-init-trigger-with-action-add.patch
similarity index 84%
rename from 0007-init-trigger-with-action-add.patch
rename to 0008-init-trigger-with-action-add.patch
index 4173f59..006a4df 100644
--- a/0007-init-trigger-with-action-add.patch
+++ b/0008-init-trigger-with-action-add.patch
@@ -1,7 +1,7 @@
-From cd83e4c54d195e12f709fdda279efb15c7c6cbf3 Mon Sep 17 00:00:00 2001
+From 7d0717804d99e8f88ffc40a197b411bc8ec9a086 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 14 Apr 2010 16:36:30 +0200
-Subject: [PATCH 07/15] init: trigger with --action=add
+Subject: [PATCH 008/133] init: trigger with --action=add
 
 ---
  modules.d/99base/init |    2 +-
@@ -21,5 +21,5 @@ index b9b6361..4696915 100755
  getarg 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
  
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0008-add-missing-paragraph-for-add-drivers.patch b/0009-add-missing-paragraph-for-add-drivers.patch
similarity index 83%
rename from 0008-add-missing-paragraph-for-add-drivers.patch
rename to 0009-add-missing-paragraph-for-add-drivers.patch
index 86a2b55..3339f05 100644
--- a/0008-add-missing-paragraph-for-add-drivers.patch
+++ b/0009-add-missing-paragraph-for-add-drivers.patch
@@ -1,7 +1,7 @@
-From d2931339823a1ea3a8ea9d13a274720b7057aa83 Mon Sep 17 00:00:00 2001
+From 2e4052566c9b1dba88d8af52e5d9fb1bcc42f3f1 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 14 Apr 2010 17:50:39 +0200
-Subject: [PATCH 08/15] add missing paragraph for --add-drivers
+Subject: [PATCH 009/133] add missing paragraph for --add-drivers
 
 ---
  dracut.8 |    3 ++-
@@ -23,5 +23,5 @@ index 57626fe..834c4f2 100644
  specify a space-separated list of kernel modules to add to the initramfs.
  .TP
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0009-manpage-addition-for-kernel-drivers.patch b/0010-manpage-addition-for-kernel-drivers.patch
similarity index 92%
rename from 0009-manpage-addition-for-kernel-drivers.patch
rename to 0010-manpage-addition-for-kernel-drivers.patch
index b38b4bf..b87bfcb 100644
--- a/0009-manpage-addition-for-kernel-drivers.patch
+++ b/0010-manpage-addition-for-kernel-drivers.patch
@@ -1,7 +1,7 @@
-From 9b17b085f3dbe1e48dfea2ed1b045fbbbc10d3d9 Mon Sep 17 00:00:00 2001
+From 0679d739b3750ae1e0dda73068688db4dd4cc7ba Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 14 Apr 2010 17:58:56 +0200
-Subject: [PATCH 09/15] manpage addition for kernel drivers
+Subject: [PATCH 010/133] manpage addition for kernel drivers
 
 The kernel modules have to be specified without the ".ko" suffix.
 ---
@@ -43,5 +43,5 @@ index 30bf16f..a781dfb 100644
  .BR filesystems= \%"[LIST]"
  Specify a space-separated list of kernel filesystem
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0010-dracut-add_drivers-from-the-command-line-should-add-.patch b/0011-dracut-add_drivers-from-the-command-line-should-add-.patch
similarity index 81%
rename from 0010-dracut-add_drivers-from-the-command-line-should-add-.patch
rename to 0011-dracut-add_drivers-from-the-command-line-should-add-.patch
index 5968ffa..63ff891 100644
--- a/0010-dracut-add_drivers-from-the-command-line-should-add-.patch
+++ b/0011-dracut-add_drivers-from-the-command-line-should-add-.patch
@@ -1,7 +1,7 @@
-From 4828beb949f25d894351c7abbe6a4930a1d1d95c Mon Sep 17 00:00:00 2001
+From 52970b82643800b67cf9b04e5d2a286a137e27fa Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Wed, 14 Apr 2010 19:32:44 +0200
-Subject: [PATCH 10/15] dracut: add_drivers from the command line should add up to the conffile
+Subject: [PATCH 011/133] dracut: add_drivers from the command line should add up to the conffile
 
 ---
  dracut |    2 +-
@@ -21,5 +21,5 @@ index b16e205..8c0adad 100755
  [[ $drivers_dir_l ]] && drivers_dir=$drivers_dir_l
  [[ $fw_dir_l ]] && fw_dir=$fw_dir_l
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0011-AUTHORS-updated.patch b/0012-AUTHORS-updated.patch
similarity index 92%
rename from 0011-AUTHORS-updated.patch
rename to 0012-AUTHORS-updated.patch
index 431945e..592a5db 100644
--- a/0011-AUTHORS-updated.patch
+++ b/0012-AUTHORS-updated.patch
@@ -1,7 +1,7 @@
-From ddbdebb9c855176831a74a727d5900ed3d86193b Mon Sep 17 00:00:00 2001
+From 722a95709746f29cc569ecca7998203ab3c60e76 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Thu, 15 Apr 2010 11:54:28 +0200
-Subject: [PATCH 11/15] AUTHORS: updated
+Subject: [PATCH 012/133] AUTHORS: updated
 
 ---
  AUTHORS |    6 ++++--
@@ -44,5 +44,5 @@ index ebb4157..0b449de 100644
  Peter Rajnoha <prajnoha at redhat.com>
  Quentin Armitage <quentin at armitage.org.uk>
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0012-kernel-modules-hardcode-sr_mod.patch b/0013-kernel-modules-hardcode-sr_mod.patch
similarity index 84%
rename from 0012-kernel-modules-hardcode-sr_mod.patch
rename to 0013-kernel-modules-hardcode-sr_mod.patch
index 657e7b4..35dd51e 100644
--- a/0012-kernel-modules-hardcode-sr_mod.patch
+++ b/0013-kernel-modules-hardcode-sr_mod.patch
@@ -1,14 +1,14 @@
-From d4abad22883978f60bf4df030186fc92187c757f Mon Sep 17 00:00:00 2001
+From b5ff85ff384a0a64b47b77745f8eb92e79079880 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Thu, 15 Apr 2010 12:47:26 +0200
-Subject: [PATCH 12/15] kernel-modules: hardcode sr_mod
+Subject: [PATCH 013/133] kernel-modules: hardcode sr_mod
 
 ---
  modules.d/90kernel-modules/installkernel |    4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/modules.d/90kernel-modules/installkernel b/modules.d/90kernel-modules/installkernel
-index 3416e7c..4848f2a 100755
+index 87819d3..63c5bde 100755
 --- a/modules.d/90kernel-modules/installkernel
 +++ b/modules.d/90kernel-modules/installkernel
 @@ -5,8 +5,8 @@ if [[ -z $drivers ]]; then
@@ -23,5 +23,5 @@ index 3416e7c..4848f2a 100755
      # install keyboard support
      hostonly='' instmods atkbd i8042 usbhid hid-apple ehci-hcd ohci-hcd uhci-hcd
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0013-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch b/0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
similarity index 82%
rename from 0013-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
rename to 0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
index 641c0e5..36476cd 100644
--- a/0013-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
+++ b/0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
@@ -1,14 +1,14 @@
-From e9e93e2ec6f58cfcd7e4680827b242a90a038710 Mon Sep 17 00:00:00 2001
+From 6412ce07c347bb1382260381107d80b2f7a79649 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Thu, 15 Apr 2010 12:47:52 +0200
-Subject: [PATCH 13/15] kernel-modules: only remove ocfs2, if all filesystems are installed
+Subject: [PATCH 014/133] kernel-modules: only remove ocfs2, if all filesystems are installed
 
 ---
  modules.d/90kernel-modules/installkernel |    5 +++--
  1 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/modules.d/90kernel-modules/installkernel b/modules.d/90kernel-modules/installkernel
-index 4848f2a..90b535e 100755
+index 63c5bde..7a669f6 100755
 --- a/modules.d/90kernel-modules/installkernel
 +++ b/modules.d/90kernel-modules/installkernel
 @@ -17,14 +17,15 @@ if [[ -z $drivers ]]; then
@@ -30,5 +30,5 @@ index 4848f2a..90b535e 100755
    hostonly='' instmods $drivers $filesystems
  fi
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0014-dracut.spec-add-btrfs-module.patch b/0015-dracut.spec-add-btrfs-module.patch
similarity index 82%
rename from 0014-dracut.spec-add-btrfs-module.patch
rename to 0015-dracut.spec-add-btrfs-module.patch
index 993aeb5..10e8a5c 100644
--- a/0014-dracut.spec-add-btrfs-module.patch
+++ b/0015-dracut.spec-add-btrfs-module.patch
@@ -1,7 +1,7 @@
-From fede5bbcdad4b35baba06eb5c5aebc0df4aa0347 Mon Sep 17 00:00:00 2001
+From a94e1c91f76e2af05096e1b842a11a5991dcb5a2 Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Thu, 15 Apr 2010 14:38:38 +0200
-Subject: [PATCH 14/15] dracut.spec: add btrfs module
+Subject: [PATCH 015/133] dracut.spec: add btrfs module
 
 ---
  dracut.spec |    1 +
@@ -20,5 +20,5 @@ index c4bc00d..e2b6f44 100644
  %{_datadir}/dracut/modules.d/90dm
  %{_datadir}/dracut/modules.d/90dmraid
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0015-Use-pigz-for-gzipping-if-available.patch b/0016-Use-pigz-for-gzipping-if-available.patch
similarity index 90%
rename from 0015-Use-pigz-for-gzipping-if-available.patch
rename to 0016-Use-pigz-for-gzipping-if-available.patch
index 4111bcd..6ab8dab 100644
--- a/0015-Use-pigz-for-gzipping-if-available.patch
+++ b/0016-Use-pigz-for-gzipping-if-available.patch
@@ -1,7 +1,7 @@
-From c91570782c2aa9128f204a21e5d2b516658febae Mon Sep 17 00:00:00 2001
+From d3631f0714f8a733d828c928436719ac1c5b8536 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta at iki.fi>
 Date: Thu, 18 Mar 2010 21:41:22 +0200
-Subject: [PATCH 15/15] Use pigz for gzipping if available.
+Subject: [PATCH 016/133] Use pigz for gzipping if available.
 
 ---
  dracut           |    3 ++-
@@ -37,5 +37,5 @@ index b19f20a..d49d0e2 100755
  
  if [[ ! $no_imagedir ]]; then
 -- 
-1.7.0.1
+1.7.3
 
diff --git a/0017-nfs-fixed-nsswitch.conf-parsing.patch b/0017-nfs-fixed-nsswitch.conf-parsing.patch
new file mode 100644
index 0000000..920cd5d
--- /dev/null
+++ b/0017-nfs-fixed-nsswitch.conf-parsing.patch
@@ -0,0 +1,37 @@
+From 1d2c9b3fbe475b8a23682694b6cb7496cecd67d9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 15 Apr 2010 16:26:06 +0200
+Subject: [PATCH 017/133] nfs: fixed nsswitch.conf parsing
+
+based on a patch of Ian Dall.
+https://bugzilla.redhat.com/show_bug.cgi?id=578060
+---
+ modules.d/95nfs/install |   12 ++++--------
+ 1 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/modules.d/95nfs/install b/modules.d/95nfs/install
+index 43976f9..e0465bb 100755
+--- a/modules.d/95nfs/install
++++ b/modules.d/95nfs/install
+@@ -18,14 +18,10 @@ fi
+ dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null )
+ #dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
+ 
+-nsslibs=$(for j in $(for i in \
+-                         $(egrep -v '^#.*' /etc/nsswitch.conf|cut -f2 -d :\
+-                          |fgrep -v NOTFOUND); do \
+-                         echo "libnss_${i}.so";\
+-                     done|sort -u); do \
+-              echo -n "|$j";\
+-          done)
+-nsslibs=${nsslibs##|}
++nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
++              |  tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
++nsslibs=${nsslibs#|}
++nsslibs=${nsslibs%|}
+ 
+ dracut_install $(for i in $(ls {/usr,}$LIBDIR/libnss*.so 2>/dev/null); do echo $i;done | egrep "$nsslibs")
+ 
+-- 
+1.7.3
+
diff --git a/0018-network-removed-bogus-udev-rules.patch b/0018-network-removed-bogus-udev-rules.patch
new file mode 100644
index 0000000..d4e43ee
--- /dev/null
+++ b/0018-network-removed-bogus-udev-rules.patch
@@ -0,0 +1,25 @@
+From e5146d4ce595356a73d6b2e3ae2ee85204a0d83c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:40:59 +0200
+Subject: [PATCH 018/133] network: removed bogus udev rules
+
+---
+ modules.d/40network/ifname-genrules.sh |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/40network/ifname-genrules.sh b/modules.d/40network/ifname-genrules.sh
+index 547f230..5186e91 100755
+--- a/modules.d/40network/ifname-genrules.sh
++++ b/modules.d/40network/ifname-genrules.sh
+@@ -2,8 +2,6 @@
+ 
+ # if there are no ifname parameters, just use NAME=KERNEL
+ if ! getarg ifname= >/dev/null ; then
+-    echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{type}=="1", NAME="%k"' \
+-        > /etc/udev/rules.d/50-ifname.rules
+     return
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0019-network-correct-rules-for-multiple-nics.patch b/0019-network-correct-rules-for-multiple-nics.patch
new file mode 100644
index 0000000..b7311de
--- /dev/null
+++ b/0019-network-correct-rules-for-multiple-nics.patch
@@ -0,0 +1,25 @@
+From 98c1fb58ea59d91e005b1310ab2a198bee11e185 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:41:24 +0200
+Subject: [PATCH 019/133] network: correct rules for multiple nics
+
+---
+ modules.d/40network/net-genrules.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
+index fdb6ab6..10d6ecd 100755
+--- a/modules.d/40network/net-genrules.sh
++++ b/modules.d/40network/net-genrules.sh
+@@ -29,7 +29,7 @@ fix_bootif() {
+     # If we have to handle multiple interfaces, handle only them.
+     elif [ -n "$IFACES" ] ; then
+ 	for iface in $IFACES ; do
+-	    printf 'ACTION=="add", SUBSYSTEM=="net", NAME=="%s", RUN+="/sbin/ifup $env{INTERFACE}"\n' "$iface"
++	    printf 'ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="%s", RUN+="/sbin/ifup $env{INTERFACE}"\n' "$iface"
+ 	done
+ 
+     # Default: We don't know the interface to use, handle all
+-- 
+1.7.3
+
diff --git a/0020-nfs-add-missing-nfsidmap-libs.patch b/0020-nfs-add-missing-nfsidmap-libs.patch
new file mode 100644
index 0000000..e290a98
--- /dev/null
+++ b/0020-nfs-add-missing-nfsidmap-libs.patch
@@ -0,0 +1,26 @@
+From 28b90a0de3f14521b14bddcae0b7869257030781 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:42:27 +0200
+Subject: [PATCH 020/133] nfs: add missing nfsidmap libs
+
+---
+ modules.d/95nfs/install |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/95nfs/install b/modules.d/95nfs/install
+index e0465bb..5d3c535 100755
+--- a/modules.d/95nfs/install
++++ b/modules.d/95nfs/install
+@@ -16,7 +16,8 @@ else
+ fi
+ 
+ dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null )
+-#dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
++dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap/*.so 2>/dev/null )
++dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
+ 
+ nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
+               |  tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
+-- 
+1.7.3
+
diff --git a/0021-udev-rules-be-more-careful-about-md-devices-and-blki.patch b/0021-udev-rules-be-more-careful-about-md-devices-and-blki.patch
new file mode 100644
index 0000000..eb8ef41
--- /dev/null
+++ b/0021-udev-rules-be-more-careful-about-md-devices-and-blki.patch
@@ -0,0 +1,44 @@
+From 73406e567381285e48cd75ba9978dd3b6757205b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:42:54 +0200
+Subject: [PATCH 021/133] udev-rules: be more careful about md devices and blkid runs
+
+---
+ modules.d/95udev-rules/59-persistent-storage.rules |   21 +++++++++++++++++++-
+ 1 files changed, 20 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/95udev-rules/59-persistent-storage.rules b/modules.d/95udev-rules/59-persistent-storage.rules
+index 299a71d..89c7609 100644
+--- a/modules.d/95udev-rules/59-persistent-storage.rules
++++ b/modules.d/95udev-rules/59-persistent-storage.rules
+@@ -3,7 +3,26 @@ ACTION!="add|change", GOTO="ps_end"
+ 
+ KERNEL=="cciss[0-9]*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
+ KERNEL=="nbd[0-9]*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
+-KERNEL=="md[0-9]*|md_d[0-9]*|md/*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
++
++
++KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end"
++
++# partitions have no md/{array_state,metadata_version}
++ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
++
++# container devices have a metadata version of e.g. 'external:ddf' and
++# never leave state 'inactive'
++ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
++TEST!="md/array_state", GOTO="md_end"
++ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
++
++LABEL="md_ignore_state"
++
++IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
++IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
++OPTIONS+="link_priority=100"
++OPTIONS+="watch"
++LABEL="md_end"
+ 
+ 
+ KERNEL!="dm-[0-9]*", GOTO="ps_end"
+-- 
+1.7.3
+
diff --git a/0022-dracut-lib-turn-of-shell-debug-mode-in-strstr-and-ge.patch b/0022-dracut-lib-turn-of-shell-debug-mode-in-strstr-and-ge.patch
new file mode 100644
index 0000000..7c935bf
--- /dev/null
+++ b/0022-dracut-lib-turn-of-shell-debug-mode-in-strstr-and-ge.patch
@@ -0,0 +1,59 @@
+From 7525ff88fab3766fc1c29f5f2f0b96cdfc6718f0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:43:34 +0200
+Subject: [PATCH 022/133] dracut-lib: turn of shell debug mode in strstr and getarg(s)
+
+---
+ modules.d/99base/dracut-lib.sh |   12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index de23566..e9c2ccc 100644
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -5,6 +5,7 @@ strstr() {
+ }
+ 
+ getarg() {
++    set +x 
+     local o line
+     if [ -z "$CMDLINE" ]; then
+         if [ -e /etc/cmdline ]; then
+@@ -16,13 +17,15 @@ getarg() {
+ 	CMDLINE="$CMDLINE $CMDLINE_ETC"
+     fi
+     for o in $CMDLINE; do
+-	[ "$o" = "$1" ] && return 0
+-	[ "${o%%=*}" = "${1%=}" ] && { echo ${o#*=}; return 0; }
++	[ "$o" = "$1" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++	[ "${o%%=*}" = "${1%=}" ] && { echo ${o#*=}; [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
+     done
++    [ "$RDDEBUG" = "yes" ] && set -x 
+     return 1
+ }
+ 
+ getargs() {
++    set +x 
+     local o line found
+     if [ -z "$CMDLINE" ]; then
+ 	if [ -e /etc/cmdline ]; then
+@@ -34,13 +37,14 @@ getargs() {
+ 	CMDLINE="$CMDLINE $CMDLINE_ETC"
+     fi
+     for o in $CMDLINE; do
+-	[ "$o" = "$1" ] && return 0
++	[ "$o" = "$1" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
+ 	if [ "${o%%=*}" = "${1%=}" ]; then
+ 	    echo -n "${o#*=} "; 
+ 	    found=1;
+ 	fi
+     done
+-    [ -n "$found" ] && return 0
++    [ -n "$found" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++    [ "$RDDEBUG" = "yes" ] && set -x 
+     return 1;
+ }
+ 
+-- 
+1.7.3
+
diff --git a/0023-mdraid-try-to-start-container-childs-manually-with-m.patch b/0023-mdraid-try-to-start-container-childs-manually-with-m.patch
new file mode 100644
index 0000000..c5766d9
--- /dev/null
+++ b/0023-mdraid-try-to-start-container-childs-manually-with-m.patch
@@ -0,0 +1,35 @@
+From a1bdb4093090166bd35dba1bf404ae82db998bf5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:44:24 +0200
+Subject: [PATCH 023/133] mdraid: try to start container childs manually with "mdadm -R"
+
+---
+ modules.d/90mdraid/mdraid_start.sh |   12 ++++++++++++
+ 1 files changed, 12 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index 1701b6c..8662671 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -5,6 +5,18 @@
+ info "Assembling MD RAID arrays"
+ udevadm control --stop-exec-queue
+ mdadm -IRs 2>&1 | vinfo
++
++# there could still be some leftover devices
++# which have had a container added
++for md in /dev/md[0-9]* /dev/md/*; do 
++	[ -b "$md" ] || continue
++	local udevinfo="$(udevadm info --query=env --name=$md)"
++	strstr "$udevinfo" "MD_UUID=" && continue
++	strstr "$udevinfo" "MD_LEVEL=container" && continue
++	strstr "$udevinfo" "DEVTYPE=partition" && continue
++	mdadm -R "$md" 2>&1 | vinfo
++done
++
+ ln -s /sbin/mdraid-cleanup /pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
+ ln -s /sbin/mdraid-cleanup /pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+ udevadm control --start-exec-queue
+-- 
+1.7.3
+
diff --git a/0024-init-fix-cdrom-polling-loop.patch b/0024-init-fix-cdrom-polling-loop.patch
new file mode 100644
index 0000000..2444f1f
--- /dev/null
+++ b/0024-init-fix-cdrom-polling-loop.patch
@@ -0,0 +1,25 @@
+From 3a5259c71888d07ebc79102e65843c6b32eee711 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:45:25 +0200
+Subject: [PATCH 024/133] init: fix cdrom polling loop
+
+---
+ modules.d/99base/init |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 4696915..612c021 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -195,7 +195,7 @@ while :; do
+ 	# skip, if cdrom medium was already found
+         strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
+ 	    ID_CDROM_MEDIA && continue
+-        echo change > "$cdrom"        
++        echo change > "$cdrom/uevent"        
+     done
+     
+     i=$(($i+1))
+-- 
+1.7.3
+
diff --git a/0025-init-do-not-redirect-to.patch b/0025-init-do-not-redirect-to.patch
new file mode 100644
index 0000000..1366630
--- /dev/null
+++ b/0025-init-do-not-redirect-to.patch
@@ -0,0 +1,24 @@
+From 7ffee9f228a030c8385b709e2b1dcb08ba631f7a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:45:53 +0200
+Subject: [PATCH 025/133] init: do not redirect to -
+
+---
+ modules.d/99base/init |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 612c021..1262ae1 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -10,7 +10,6 @@ wait_for_loginit()
+ {
+     if getarg rdinitdebug; then
+ 	set +x
+-	exec 1>- 2>-
+ 	exec 0<>/dev/console 1<>/dev/console 2<>/dev/console
+ 	# wait for loginit
+ 	i=0
+-- 
+1.7.3
+
diff --git a/0026-loginit-turn-off-debugging.patch b/0026-loginit-turn-off-debugging.patch
new file mode 100644
index 0000000..4a8ad97
--- /dev/null
+++ b/0026-loginit-turn-off-debugging.patch
@@ -0,0 +1,25 @@
+From 6824ffa38aeda0856cb8948f15fcc534b40fe1a7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:47:28 +0200
+Subject: [PATCH 026/133] loginit: turn off debugging
+
+---
+ modules.d/99base/loginit |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/99base/loginit b/modules.d/99base/loginit
+index a777d6f..1fb2a92 100755
+--- a/modules.d/99base/loginit
++++ b/modules.d/99base/loginit
+@@ -1,5 +1,8 @@
+ #!/bin/sh
+ 
++# turn off debugging
++set +x
++
+ QUIET=$1
+ 
+ [ -e /dev/kmsg ] && exec 5>/dev/kmsg || exec 5>/dev/null
+-- 
+1.7.3
+
diff --git a/0027-TEST-12-RAID-DEG-create-root-filter-MD_UUID-only.patch b/0027-TEST-12-RAID-DEG-create-root-filter-MD_UUID-only.patch
new file mode 100644
index 0000000..d99af56
--- /dev/null
+++ b/0027-TEST-12-RAID-DEG-create-root-filter-MD_UUID-only.patch
@@ -0,0 +1,39 @@
+From be79b6ce5ec46dd267acc604856e4dda18018ff4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:48:08 +0200
+Subject: [PATCH 027/133] TEST-12-RAID-DEG/create-root: filter MD_UUID only
+
+---
+ test/TEST-12-RAID-DEG/create-root.sh |    2 +-
+ test/TEST-12-RAID-DEG/test.sh        |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
+index 23f1afc..6a2988d 100755
+--- a/test/TEST-12-RAID-DEG/create-root.sh
++++ b/test/TEST-12-RAID-DEG/create-root.sh
+@@ -35,7 +35,7 @@ cryptsetup luksClose /dev/mapper/dracut_crypt_test && \
+ mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2 && \
+ { mdadm -W /dev/md0 || : ;} && \
+ {
+-/sbin/mdadm --detail --export /dev/md0 > /tmp/mduuid ;
++/sbin/mdadm --detail --export /dev/md0 |grep MD_UUID > /tmp/mduuid ;
+ . /tmp/mduuid;
+ } && \
+ {
+diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
+index fb39551..0d78b93 100755
+--- a/test/TEST-12-RAID-DEG/test.sh
++++ b/test/TEST-12-RAID-DEG/test.sh
+@@ -74,7 +74,7 @@ test_setup() {
+     (
+ 	initdir=overlay
+ 	. $basedir/dracut-functions
+-	dracut_install sfdisk mke2fs poweroff cp umount dd
++	dracut_install sfdisk mke2fs poweroff cp umount dd grep
+ 	inst_simple ./create-root.sh /initqueue/01create-root.sh
+  	inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+    )
+-- 
+1.7.3
+
diff --git a/0028-run-qemu-add-usr-libexec-qemu-kvm-to-search.patch b/0028-run-qemu-add-usr-libexec-qemu-kvm-to-search.patch
new file mode 100644
index 0000000..b8c78fa
--- /dev/null
+++ b/0028-run-qemu-add-usr-libexec-qemu-kvm-to-search.patch
@@ -0,0 +1,24 @@
+From 10583c77e94ad5026b730e8dd973c591e297715a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:49:52 +0200
+Subject: [PATCH 028/133] run-qemu: add /usr/libexec/qemu-kvm to search
+
+---
+ test/run-qemu |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/test/run-qemu b/test/run-qemu
+index a63a644..667975f 100755
+--- a/test/run-qemu
++++ b/test/run-qemu
+@@ -7,6 +7,7 @@ export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu "
+ [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=""
+ [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=""
++[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=""
+ 
+ [[ $BIN ]] || {
+    echo "Could not find a working KVM or QEMU to test with!" >&2
+-- 
+1.7.3
+
diff --git a/0029-test-change-testsuite-to-local-tcp-rather-than-udp-m.patch b/0029-test-change-testsuite-to-local-tcp-rather-than-udp-m.patch
new file mode 100644
index 0000000..8a9f948
--- /dev/null
+++ b/0029-test-change-testsuite-to-local-tcp-rather-than-udp-m.patch
@@ -0,0 +1,82 @@
+From 4629b0fa51f6273930f91e329af6f3e8495556da Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:52:22 +0200
+Subject: [PATCH 029/133] test: change testsuite to local tcp rather than udp multicast
+
+multicast needs an ethernet device and correct firewall rules
+the loopback interface suites better as we only have 2 machines
+---
+ test/TEST-20-NFS/test.sh      |    4 ++--
+ test/TEST-30-ISCSI/test.sh    |    4 ++--
+ test/TEST-50-MULTINIC/test.sh |    4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
+index 380fe01..01e1d7a 100755
+--- a/test/TEST-20-NFS/test.sh
++++ b/test/TEST-20-NFS/test.sh
+@@ -12,7 +12,7 @@ run_server() {
+ 
+     $testdir/run-qemu -hda server.ext2 -m 256M -nographic \
+ 	-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
+-	-net socket,mcast=230.0.0.1:1234 \
++	-net socket,listen=127.0.0.1:12345 \
+ 	-serial udp:127.0.0.1:9999 \
+ 	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "root=/dev/sda rw quiet console=ttyS0,115200n81 selinux=0" \
+@@ -44,7 +44,7 @@ client_test() {
+ 
+     $testdir/run-qemu -hda client.img -m 256M -nographic \
+   	-net nic,macaddr=$mac,model=e1000 \
+-  	-net socket,mcast=230.0.0.1:1234 \
++	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+   	-append "$cmdline $DEBUGFAIL rdinitdebug rdinfo quiet rdnetdebug ro console=ttyS0,115200n81 selinux=0" \
+   	-initrd initramfs.testing
+diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
+index bde1e37..ba7465a 100755
+--- a/test/TEST-30-ISCSI/test.sh
++++ b/test/TEST-30-ISCSI/test.sh
+@@ -11,7 +11,7 @@ run_server() {
+ 
+     $testdir/run-qemu -hda server.ext2 -hdb root.ext2 -m 256M -nographic \
+ 	-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
+-	-net socket,mcast=230.0.0.1:1235 \
++	-net socket,listen=127.0.0.1:12345 \
+ 	-serial udp:127.0.0.1:9999 \
+ 	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "root=/dev/sda rw quiet console=ttyS0,115200n81 selinux=0" \
+@@ -35,7 +35,7 @@ run_client() {
+ 
+     $testdir/run-qemu -hda client.img -m 256M -nographic \
+   	-net nic,macaddr=52:54:00:12:34:00,model=e1000 \
+-  	-net socket,mcast=230.0.0.1:1235 \
++	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "root=dhcp rw quiet rdinitdebug rdinfo rdnetdebug console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" \
+   	-initrd initramfs.testing
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 5d714f2..c3e3eb8 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -12,7 +12,7 @@ run_server() {
+ 
+     $testdir/run-qemu -hda server.ext2 -m 256M -nographic \
+ 	-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
+-	-net socket,mcast=230.0.0.1:1234 \
++	-net socket,listen=127.0.0.1:12345 \
+ 	-serial udp:127.0.0.1:9999 \
+ 	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "selinux=0 root=/dev/sda rdinitdebug rdinfo rdnetdebug rw quiet console=ttyS0,115200n81" \
+@@ -46,7 +46,7 @@ client_test() {
+   	-net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+   	-net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+   	-net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+-  	-net socket,mcast=230.0.0.1:1234 \
++	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+   	-append "$cmdline $DEBUGFAIL rdinitdebug rdinfo rdnetdebug ro quiet console=ttyS0,115200n81 selinux=0 rdshell rdcopystate" \
+   	-initrd initramfs.testing
+-- 
+1.7.3
+
diff --git a/0030-add-rd_retry-kernel-command-line-parameter.patch b/0030-add-rd_retry-kernel-command-line-parameter.patch
new file mode 100644
index 0000000..0b3d261
--- /dev/null
+++ b/0030-add-rd_retry-kernel-command-line-parameter.patch
@@ -0,0 +1,174 @@
+From 0e94fa39e353dc19284c81c898a1d881f4eb4b38 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:55:14 +0200
+Subject: [PATCH 030/133] add rd_retry kernel command line parameter
+
+rd_retry=<seconds to retry in the main loop>
+
+speeds up internal test suite
+---
+ modules.d/99base/init             |    6 +++++-
+ test/TEST-10-RAID/test.sh         |    2 +-
+ test/TEST-11-LVM/test.sh          |    2 +-
+ test/TEST-12-RAID-DEG/test.sh     |    2 +-
+ test/TEST-13-ENC-RAID-LVM/test.sh |    2 +-
+ test/TEST-14-IMSM/test.sh         |    2 +-
+ test/TEST-20-NFS/test.sh          |    2 +-
+ test/TEST-30-ISCSI/test.sh        |    2 +-
+ test/TEST-40-NBD/test.sh          |    4 ++--
+ test/TEST-50-MULTINIC/test.sh     |    2 +-
+ 10 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 1262ae1..45033af 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -150,6 +150,10 @@ udevadm trigger --action=add $udevtriggeropts  >/dev/null 2>&1
+ 
+ getarg 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
+ 
++RDRETRY=$(getarg 'rd_retry=')
++RDRETRY=${RDRETRY:-20}
++RDRETRY=$(($RDRETRY*2))
++
+ i=0
+ while :; do
+ 
+@@ -198,7 +202,7 @@ while :; do
+     done
+     
+     i=$(($i+1))
+-    [ $i -gt 40 ] \
++    [ $i -gt $RDRETRY ] \
+         && { flock -s 9 ; emergency_shell "No root device found"; } 9>/.console_lock
+ done
+ unset job
+diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
+index 875f454..83a461a 100755
+--- a/test/TEST-10-RAID/test.sh
++++ b/test/TEST-10-RAID/test.sh
+@@ -9,7 +9,7 @@ KVERSION=${KVERSION-$(uname -r)}
+ test_run() {
+     $testdir/run-qemu -hda root.ext2 -m 256M -nographic \
+ 	-net none -kernel /boot/vmlinuz-$KVERSION \
+-	-append "root=/dev/dracut/root rw quiet rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
++	-append "root=/dev/dracut/root rw quiet rd_retry=3 rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
+ 	-initrd initramfs.testing
+     grep -m 1 -q dracut-root-block-success root.ext2 || return 1
+ }
+diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
+index 798b24f..849aeb1 100755
+--- a/test/TEST-11-LVM/test.sh
++++ b/test/TEST-11-LVM/test.sh
+@@ -9,7 +9,7 @@ KVERSION=${KVERSION-$(uname -r)}
+ test_run() {
+     $testdir/run-qemu -hda root.ext2 -m 256M -nographic \
+ 	-net none -kernel /boot/vmlinuz-$KVERSION \
+-	-append "root=/dev/dracut/root rw quiet rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
++	-append "root=/dev/dracut/root rw quiet rd_retry=3 rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
+ 	-initrd initramfs.testing
+     grep -m 1 -q dracut-root-block-success root.ext2 || return 1
+ }
+diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
+index 0d78b93..4618c0f 100755
+--- a/test/TEST-12-RAID-DEG/test.sh
++++ b/test/TEST-12-RAID-DEG/test.sh
+@@ -10,7 +10,7 @@ client_run() {
+     echo "CLIENT TEST START: $@"
+     $testdir/run-qemu -hda root.ext2 -m 256M -nographic \
+ 	-net none -kernel /boot/vmlinuz-$KVERSION \
+-	-append "$@ root=LABEL=root rw quiet rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL " \
++	-append "$@ root=LABEL=root rw quiet rd_retry=3 rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL " \
+ 	-initrd initramfs.testing
+     if ! grep -m 1 -q dracut-root-block-success root.ext2; then
+ 	echo "CLIENT TEST END: $@ [FAIL]"
+diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
+index 436e429..adb94cb 100755
+--- a/test/TEST-13-ENC-RAID-LVM/test.sh
++++ b/test/TEST-13-ENC-RAID-LVM/test.sh
+@@ -9,7 +9,7 @@ KVERSION=${KVERSION-$(uname -r)}
+ test_run() {
+     $testdir/run-qemu -hda root.ext2 -m 256M -nographic \
+ 	-net none -kernel /boot/vmlinuz-$KVERSION \
+-	-append "root=/dev/dracut/root rw quiet rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
++	-append "root=/dev/dracut/root rw quiet rd_retry=3 rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
+ 	-initrd initramfs.testing
+     grep -m 1 -q dracut-root-block-success root.ext2 || return 1
+ }
+diff --git a/test/TEST-14-IMSM/test.sh b/test/TEST-14-IMSM/test.sh
+index efddb9a..80d4b1b 100755
+--- a/test/TEST-14-IMSM/test.sh
++++ b/test/TEST-14-IMSM/test.sh
+@@ -10,7 +10,7 @@ client_run() {
+     echo "CLIENT TEST START: $@"
+     $testdir/run-qemu -hda root.ext2 -hdb disk1 -hdc disk2 -m 256M -nographic \
+ 	-net none -kernel /boot/vmlinuz-$KVERSION \
+-	-append "$@ root=LABEL=root rw quiet rdinfo console=ttyS0,115200n81 selinux=0 rdinitdebug rdnetdebug $DEBUGFAIL" \
++	-append "$@ root=LABEL=root rw quiet rd_retry=5 rdinitdebug console=ttyS0,115200n81 selinux=0 rdinfo $DEBUGFAIL" \
+ 	-initrd initramfs.testing
+     if ! grep -m 1 -q dracut-root-block-success root.ext2; then
+ 	echo "CLIENT TEST END: $@ [FAIL]"
+diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
+index 01e1d7a..62aa02c 100755
+--- a/test/TEST-20-NFS/test.sh
++++ b/test/TEST-20-NFS/test.sh
+@@ -46,7 +46,7 @@ client_test() {
+   	-net nic,macaddr=$mac,model=e1000 \
+ 	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+-  	-append "$cmdline $DEBUGFAIL rdinitdebug rdinfo quiet rdnetdebug ro console=ttyS0,115200n81 selinux=0" \
++  	-append "$cmdline $DEBUGFAIL rdinitdebug rd_retry=10 rdinfo quiet rdnetdebug ro console=ttyS0,115200n81 selinux=0" \
+   	-initrd initramfs.testing
+ 
+     if [[ $? -ne 0 ]] || ! grep -m 1 -q nfs-OK client.img; then
+diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
+index ba7465a..4dbd6d6 100755
+--- a/test/TEST-30-ISCSI/test.sh
++++ b/test/TEST-30-ISCSI/test.sh
+@@ -37,7 +37,7 @@ run_client() {
+   	-net nic,macaddr=52:54:00:12:34:00,model=e1000 \
+ 	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+-	-append "root=dhcp rw quiet rdinitdebug rdinfo rdnetdebug console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" \
++	-append "root=dhcp rw quiet rd_retry=5 rdinitdebug rdinfo rdnetdebug console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" \
+   	-initrd initramfs.testing
+     grep -m 1 -q iscsi-OK client.img || return 1
+ }
+diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
+index 58d93f3..d84d657 100755
+--- a/test/TEST-40-NBD/test.sh
++++ b/test/TEST-40-NBD/test.sh
+@@ -13,7 +13,7 @@ run_server() {
+     $testdir/run-qemu -hda server.ext2 -hdb nbd.ext2 -hdc encrypted.ext2 \
+ 	-m 256M -nographic \
+ 	-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
+-	-net socket,mcast=230.0.0.1:1236 \
++	-net socket,listen=127.0.0.1:12345 \
+ 	-serial udp:127.0.0.1:9999 \
+ 	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "root=/dev/sda rw quiet console=ttyS0,115200n81 selinux=0" \
+@@ -48,7 +48,7 @@ client_test() {
+ 
+     $testdir/run-qemu -hda flag.img -m 256M -nographic \
+ 	-net nic,macaddr=$mac,model=e1000 \
+-	-net socket,mcast=230.0.0.1:1236 \
++	-net socket,connect=127.0.0.1:12345 \
+ 	-kernel /boot/vmlinuz-$KVERSION \
+ 	-append "$cmdline $DEBUGFAIL rdinitdebug rdinfo rdnetdebug ro quiet console=ttyS0,115200n81 selinux=0" \
+ 	-initrd initramfs.testing
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index c3e3eb8..98d4504 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -48,7 +48,7 @@ client_test() {
+   	-net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ 	-net socket,connect=127.0.0.1:12345 \
+   	-kernel /boot/vmlinuz-$KVERSION \
+-  	-append "$cmdline $DEBUGFAIL rdinitdebug rdinfo rdnetdebug ro quiet console=ttyS0,115200n81 selinux=0 rdshell rdcopystate" \
++  	-append "$cmdline $DEBUGFAIL rd_retry=5 rdinitdebug rdinfo rdnetdebug ro quiet console=ttyS0,115200n81 selinux=0 rdcopystate" \
+   	-initrd initramfs.testing
+ 
+     if [[ $? -ne 0 ]] || ! grep -m 1 -q OK client.img; then
+-- 
+1.7.3
+
diff --git a/0031-test-nfs-correct-return-code-and-cleanup.patch b/0031-test-nfs-correct-return-code-and-cleanup.patch
new file mode 100644
index 0000000..4fd7dab
--- /dev/null
+++ b/0031-test-nfs-correct-return-code-and-cleanup.patch
@@ -0,0 +1,36 @@
+From ae5cc1246cc687c8e6605d670c0dfc5de3a9fe36 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:56:18 +0200
+Subject: [PATCH 031/133] test/nfs: correct return code and cleanup
+
+---
+ test/TEST-20-NFS/test.sh |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-20-NFS/test.sh b/test/TEST-20-NFS/test.sh
+index 62aa02c..530a42c 100755
+--- a/test/TEST-20-NFS/test.sh
++++ b/test/TEST-20-NFS/test.sh
+@@ -178,12 +178,17 @@ test_run() {
+ 	return 1
+     fi
+ 
+-    test_nfsv3 || return 1
+-    test_nfsv4
++    test_nfsv3 && \
++	test_nfsv4
++
++    ret=$?
++
+     if [[ -s server.pid ]]; then
+ 	sudo kill -TERM $(cat server.pid)
+ 	rm -f server.pid
+     fi
++
++    return $ret
+ }
+ 
+ test_setup() {
+-- 
+1.7.3
+
diff --git a/0032-NBD-kill-server-after-failed-test.patch b/0032-NBD-kill-server-after-failed-test.patch
new file mode 100644
index 0000000..eb3e322
--- /dev/null
+++ b/0032-NBD-kill-server-after-failed-test.patch
@@ -0,0 +1,44 @@
+From a848a083df258ea9d25b60ad86dc282196036724 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:58:16 +0200
+Subject: [PATCH 032/133] NBD: kill server after failed test
+
+---
+ test/TEST-40-NBD/test.sh |   10 +++++++++-
+ 1 files changed, 9 insertions(+), 1 deletions(-)
+
+diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
+index d84d657..8da1ba4 100755
+--- a/test/TEST-40-NBD/test.sh
++++ b/test/TEST-40-NBD/test.sh
+@@ -88,6 +88,10 @@ test_run() {
+ 	echo "Failed to start server" 1>&2
+ 	return 1
+     fi
++    client_run || { kill_server; return 1; }
++}
++
++client_run() {
+ 
+     # The default is ext3,errors=continue so use that to determine
+     # if our options were parsed and used
+@@ -309,11 +313,15 @@ test_setup() {
+ 	-f initramfs.testing $KVERSION || return 1
+ }
+ 
+-test_cleanup() {
++kill_server() {
+     if [[ -s server.pid ]]; then
+ 	sudo kill -TERM $(cat server.pid)
+ 	rm -f server.pid
+     fi
++}
++
++test_cleanup() {
++    kill_server
+     rm -fr overlay mnt
+     rm -f flag.img server.ext2 nbd.ext2 encrypted.ext2
+     rm -f initramfs.server initramfs.testing initramfs.makeroot
+-- 
+1.7.3
+
diff --git a/0033-test-TEST-50-MULTINIC-kill-server-after-failed-test.patch b/0033-test-TEST-50-MULTINIC-kill-server-after-failed-test.patch
new file mode 100644
index 0000000..a7fd407
--- /dev/null
+++ b/0033-test-TEST-50-MULTINIC-kill-server-after-failed-test.patch
@@ -0,0 +1,43 @@
+From b4b93d568a2fb2b43d22719fcb23ddcf01fcc2dd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:59:11 +0200
+Subject: [PATCH 033/133] test/TEST-50-MULTINIC: kill server after failed test
+
+---
+ test/TEST-50-MULTINIC/test.sh |    8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 98d4504..1e6cdab 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -75,7 +75,10 @@ test_run() {
+ 	echo "Failed to start server" 1>&2
+ 	return 1
+     fi
++    test_client || { kill_server; return 1; }
++}
+ 
++test_client() {
+     # Mac Numbering Scheme
+     # ...:00-02 receive IP adresses all others don't
+     # ...:02 receives a dhcp root-path
+@@ -217,11 +220,14 @@ test_setup() {
+ 	-f initramfs.testing $KVERSION || return 1
+ }
+ 
+-test_cleanup() {
++kill_server() {
+     if [[ -s server.pid ]]; then
+ 	sudo kill -TERM $(cat server.pid)
+ 	rm -f server.pid
+     fi
++}
++
++test_cleanup() {
+     rm -rf mnt overlay
+     rm -f server.ext2 client.img initramfs.server initramfs.testing
+ }
+-- 
+1.7.3
+
diff --git a/0034-test-TEST-50-MULTINIC-install-all-nfsidmap-libs-for-.patch b/0034-test-TEST-50-MULTINIC-install-all-nfsidmap-libs-for-.patch
new file mode 100644
index 0000000..c5b66a1
--- /dev/null
+++ b/0034-test-TEST-50-MULTINIC-install-all-nfsidmap-libs-for-.patch
@@ -0,0 +1,33 @@
+From 64aeace4e633469a09a60c1f8f8de4553366a9a2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 16:59:53 +0200
+Subject: [PATCH 034/133] test/TEST-50-MULTINIC: install all nfsidmap libs for server
+
+---
+ test/TEST-50-MULTINIC/test.sh |    9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 1e6cdab..b995902 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -148,7 +148,16 @@ test_setup() {
+  	fi
+ 
+  	dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
++ 	dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap/*.so 2>/dev/null )
+  	dracut_install $(ls {/usr,}$LIBDIR/libnss*.so 2>/dev/null)
++
++
++	nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
++              |  tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
++	nsslibs=${nsslibs#|}
++	nsslibs=${nsslibs%|}
++
++	dracut_install $(for i in $(ls {/usr,}$LIBDIR/libnss*.so 2>/dev/null); do echo $i;done | egrep "$nsslibs")
+  	(
+  	    cd "$initdir";
+  	    mkdir -p dev sys proc etc var/run tmp var/lib/{dhcpd,rpcbind}
+-- 
+1.7.3
+
diff --git a/0035-test-TEST-50-MULTINIC-install-sd_mod-and-ata_piix-ke.patch b/0035-test-TEST-50-MULTINIC-install-sd_mod-and-ata_piix-ke.patch
new file mode 100644
index 0000000..195b5f0
--- /dev/null
+++ b/0035-test-TEST-50-MULTINIC-install-sd_mod-and-ata_piix-ke.patch
@@ -0,0 +1,25 @@
+From dbafa30da719ded73acca253582ec63bb81ebc88 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 17:00:28 +0200
+Subject: [PATCH 035/133] test/TEST-50-MULTINIC: install sd_mod and ata_piix kernel modules
+
+---
+ test/TEST-50-MULTINIC/test.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index b995902..a97d9a3 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -225,7 +225,7 @@ test_setup() {
+     $basedir/dracut -l -i overlay / \
+ 	-o "plymouth" \
+ 	-a "debug" \
+-	-d "piix ide-gd_mod e1000 nfs sunrpc" \
++	-d "piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfs sunrpc" \
+ 	-f initramfs.testing $KVERSION || return 1
+ }
+ 
+-- 
+1.7.3
+
diff --git a/0036-dracut.spec-removed-e2fsprogs-requirement.patch b/0036-dracut.spec-removed-e2fsprogs-requirement.patch
new file mode 100644
index 0000000..0d93bff
--- /dev/null
+++ b/0036-dracut.spec-removed-e2fsprogs-requirement.patch
@@ -0,0 +1,25 @@
+From 14f850c8c913dfb958fe7ded854c9580f6ed48b0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 17:03:34 +0200
+Subject: [PATCH 036/133] dracut.spec: removed e2fsprogs requirement
+
+---
+ dracut.spec |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index e2b6f44..a29098a 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -58,7 +58,7 @@ Requires: /bin/sh
+ Requires: fileutils, gzip, tar
+ Requires: lvm2 >= 2.02.33-9, dhclient
+ Requires: filesystem >= 2.1.0, cpio, device-mapper, initscripts >= 8.63-1
+-Requires: e2fsprogs >= 1.38-12, coreutils
++Requires: coreutils
+ Requires: mdadm, elfutils-libelf 
+ Requires(pre): plymouth >= 0.8.0-0.2009.29.09.19.1
+ Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
+-- 
+1.7.3
+
diff --git a/0037-test-MULTINIC-kill-server-after-passing-all-tests.patch b/0037-test-MULTINIC-kill-server-after-passing-all-tests.patch
new file mode 100644
index 0000000..7368e75
--- /dev/null
+++ b/0037-test-MULTINIC-kill-server-after-passing-all-tests.patch
@@ -0,0 +1,26 @@
+From 0836c76318ee95df16a2e8864db914685734dff0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 17:09:31 +0200
+Subject: [PATCH 037/133] test/MULTINIC: kill server after passing all tests
+
+---
+ test/TEST-50-MULTINIC/test.sh |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index a97d9a3..083cf60 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -112,6 +112,9 @@ test_client() {
+ 	00 01 02 \
+ 	"root=dhcp ip=eth0:dhcp ip=eth1:dhcp ip=eth2:dhcp bootdev=eth2" \
+ 	"eth0 eth1 eth2" || return 1
++
++    kill_server
++    return 0
+ }
+ 
+ test_setup() {
+-- 
+1.7.3
+
diff --git a/0038-NEWS-update.patch b/0038-NEWS-update.patch
new file mode 100644
index 0000000..330ddc9
--- /dev/null
+++ b/0038-NEWS-update.patch
@@ -0,0 +1,33 @@
+From a888c421e5923b6ff33e6362e31019de79b2b44c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 17:13:15 +0200
+Subject: [PATCH 038/133] NEWS: update
+
+---
+ NEWS |   13 +++++++++++++
+ 1 files changed, 13 insertions(+), 0 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 5f8b18c..a177156 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,3 +1,16 @@
++dracut-006
++==========
++- fixed mdraid with IMSM
++- fixed dracut manpages
++- dmraid parse different error messages
++- add cdrom polling mechanism for slow cdroms
++- add module btrfs
++- teach dmsquash live-root to use rootflags
++- trigger udev with action=add
++- fixed add_drivers handling 
++- add sr_mod
++- use pigz instead of gzip, if available
++
+ dracut-005
+ ==========
+ - dcb support to dracut's FCoE support 
+-- 
+1.7.3
+
diff --git a/0039-test-NBD-check-for-nbd-kernel-module-first.patch b/0039-test-NBD-check-for-nbd-kernel-module-first.patch
new file mode 100644
index 0000000..a0603c5
--- /dev/null
+++ b/0039-test-NBD-check-for-nbd-kernel-module-first.patch
@@ -0,0 +1,34 @@
+From cb5071d76dc0483ac88074ece02277ec5fdde5b4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 17:54:29 +0200
+Subject: [PATCH 039/133] test/NBD: check for nbd kernel module first
+
+---
+ test/TEST-40-NBD/test.sh |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
+index 8da1ba4..1a46ed1 100755
+--- a/test/TEST-40-NBD/test.sh
++++ b/test/TEST-40-NBD/test.sh
+@@ -84,6 +84,7 @@ client_test() {
+ }
+ 
+ test_run() {
++    modinfo nbd &>/dev/null || { echo "Kernel does not support nbd"; exit 1; }
+     if ! run_server; then
+ 	echo "Failed to start server" 1>&2
+ 	return 1
+@@ -287,6 +288,9 @@ make_server_root() {
+ }
+ 
+ test_setup() {
++
++    modinfo nbd &>/dev/null || { echo "Kernel does not support nbd"; exit 1; }
++
+     make_encrypted_root || return 1
+     make_client_root || return 1
+     make_server_root || return 1
+-- 
+1.7.3
+
diff --git a/0040-Needs-btrfsctl-not-btrfs-module.patch b/0040-Needs-btrfsctl-not-btrfs-module.patch
new file mode 100644
index 0000000..e8325a2
--- /dev/null
+++ b/0040-Needs-btrfsctl-not-btrfs-module.patch
@@ -0,0 +1,53 @@
+From 88196feaa9146e969c7ed2c018d7d76ce80de398 Mon Sep 17 00:00:00 2001
+From: Matt <smoothsailing72 at hotmail.com>
+Date: Fri, 16 Apr 2010 18:03:08 +0200
+Subject: [PATCH 040/133] Needs btrfsctl, not btrfs module
+
+---
+ modules.d/90btrfs/40-btrfs.rules |    2 +-
+ modules.d/90btrfs/check          |    6 +++---
+ modules.d/90btrfs/install        |    2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/90btrfs/40-btrfs.rules b/modules.d/90btrfs/40-btrfs.rules
+index e74ba1a..6bc8a14 100644
+--- a/modules.d/90btrfs/40-btrfs.rules
++++ b/modules.d/90btrfs/40-btrfs.rules
+@@ -1,7 +1,7 @@
+ SUBSYSTEM!="block", GOTO="btrfs_end"
+ ACTION!="add|change", GOTO="btrfs_end"
+ 
+-ENV{ID_FS_TYPE}=="btrfs", RUN+="/sbin/btrfs device scan $env{DEVNAME}"
++ENV{ID_FS_TYPE}=="btrfs", RUN+="/sbin/btrfsctl -A $env{DEVNAME}"
+ 
+ LABEL="btrfs_end"
+ 
+diff --git a/modules.d/90btrfs/check b/modules.d/90btrfs/check
+index 2897d46..532e2ef 100755
+--- a/modules.d/90btrfs/check
++++ b/modules.d/90btrfs/check
+@@ -3,8 +3,8 @@
+ # We depend on udev-rules being loaded
+ [ "$1" = "-d" ] && exit 0
+ 
+-# if we don't have dmraid installed on the host system, no point
+-# in trying to support it in the initramfs.
+-which btrfs >/dev/null 2>&1 || exit 1
++# if we don't have btrfs (btrfsctl) installed on the host system,
++# no point in trying to support it in the initramfs.
++which btrfsctl >/dev/null 2>&1 || exit 1
+ 
+ exit 0
+diff --git a/modules.d/90btrfs/install b/modules.d/90btrfs/install
+index 130a84d..c6a8f48 100755
+--- a/modules.d/90btrfs/install
++++ b/modules.d/90btrfs/install
+@@ -1,4 +1,4 @@
+ #!/bin/bash
+ 
+ inst_rules "$moddir/40-btrfs.rules"
+-dracut_install btrfs
++dracut_install btrfsctl
+-- 
+1.7.3
+
diff --git a/0041-btfrs-load-btrfs-module-and-updated-NEWS.patch b/0041-btfrs-load-btrfs-module-and-updated-NEWS.patch
new file mode 100644
index 0000000..1c0714a
--- /dev/null
+++ b/0041-btfrs-load-btrfs-module-and-updated-NEWS.patch
@@ -0,0 +1,37 @@
+From 19046f45e879610ae2d19b1ed1ed61b0322f094a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 16 Apr 2010 18:10:47 +0200
+Subject: [PATCH 041/133] btfrs: load btrfs module and updated NEWS
+
+---
+ NEWS                             |    1 +
+ modules.d/90btrfs/40-btrfs.rules |    1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index a177156..bd6bf32 100644
+--- a/NEWS
++++ b/NEWS
+@@ -5,6 +5,7 @@ dracut-006
+ - dmraid parse different error messages
+ - add cdrom polling mechanism for slow cdroms
+ - add module btrfs
++- add btrfsctl scan for btrfs multi-devices (raid)
+ - teach dmsquash live-root to use rootflags
+ - trigger udev with action=add
+ - fixed add_drivers handling 
+diff --git a/modules.d/90btrfs/40-btrfs.rules b/modules.d/90btrfs/40-btrfs.rules
+index 6bc8a14..92c8553 100644
+--- a/modules.d/90btrfs/40-btrfs.rules
++++ b/modules.d/90btrfs/40-btrfs.rules
+@@ -1,6 +1,7 @@
+ SUBSYSTEM!="block", GOTO="btrfs_end"
+ ACTION!="add|change", GOTO="btrfs_end"
+ 
++ENV{ID_FS_TYPE}=="btrfs", RUN+="/sbin/modprobe btrfs"
+ ENV{ID_FS_TYPE}=="btrfs", RUN+="/sbin/btrfsctl -A $env{DEVNAME}"
+ 
+ LABEL="btrfs_end"
+-- 
+1.7.3
+
diff --git a/0042-kernel-modules-add-more-hardcoded-modules.patch b/0042-kernel-modules-add-more-hardcoded-modules.patch
new file mode 100644
index 0000000..89227c3
--- /dev/null
+++ b/0042-kernel-modules-add-more-hardcoded-modules.patch
@@ -0,0 +1,24 @@
+From e85b89fb08381bee6183940db7d7e75b73e30029 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 3 May 2010 11:33:52 +0200
+Subject: [PATCH 042/133] kernel-modules: add more hardcoded modules
+
+---
+ modules.d/90kernel-modules/installkernel |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90kernel-modules/installkernel b/modules.d/90kernel-modules/installkernel
+index 7a669f6..747e4fe 100755
+--- a/modules.d/90kernel-modules/installkernel
++++ b/modules.d/90kernel-modules/installkernel
+@@ -7,6 +7,7 @@ if [[ -z $drivers ]]; then
+     }
+     hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
+     hostonly='' instmods pcmcia firewire-ohci
++    hostonly='' instmods usb_storage sdhci sdhci-pci
+ 
+     # install keyboard support
+     hostonly='' instmods atkbd i8042 usbhid hid-apple ehci-hcd ohci-hcd uhci-hcd
+-- 
+1.7.3
+
diff --git a/0043-dracut-functions-use-udevadm-to-get-ID_FS_.patch b/0043-dracut-functions-use-udevadm-to-get-ID_FS_.patch
new file mode 100644
index 0000000..89610a1
--- /dev/null
+++ b/0043-dracut-functions-use-udevadm-to-get-ID_FS_.patch
@@ -0,0 +1,26 @@
+From 19cd752d7ce1568226ad437f5f12cd0855600bd5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 3 May 2010 11:34:30 +0200
+Subject: [PATCH 043/133] dracut-functions: use udevadm to get ID_FS_*
+
+---
+ dracut-functions |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 16b7d3d..fdcfb7e 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -51,6 +51,9 @@ derror() {
+ }
+ 
+ get_fs_env() {
++    eval $(udevadm info --query=env --name=$1|egrep 'ID_FS_(TYPE|UUID)=')
++    [[ $ID_FS_TYPE ]] && return
++
+     if [[ -x /lib/udev/vol_id ]]; then
+ 	eval $(/lib/udev/vol_id --export $1)
+     elif find_binary blkid >/dev/null; then
+-- 
+1.7.3
+
diff --git a/0044-dracut.conf-use-as-default-for-config-variables.patch b/0044-dracut.conf-use-as-default-for-config-variables.patch
new file mode 100644
index 0000000..8adee42
--- /dev/null
+++ b/0044-dracut.conf-use-as-default-for-config-variables.patch
@@ -0,0 +1,112 @@
+From 6441645401d1a50db2baa3aacd9f80d0443f007a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 3 May 2010 11:35:10 +0200
+Subject: [PATCH 044/133] dracut.conf: use "+=" as default for config variables
+
+---
+ dracut        |    6 ++++--
+ dracut.conf   |   10 +++++-----
+ dracut.conf.5 |   14 +++++++-------
+ 3 files changed, 16 insertions(+), 14 deletions(-)
+
+diff --git a/dracut b/dracut
+index 0ae07f2..cd52499 100755
+--- a/dracut
++++ b/dracut
+@@ -138,12 +138,14 @@ fi
+ # source our config file
+ [[ -f $conffile ]] && . "$conffile"
+ 
++# these optins add to the stuff in the config file
++[[ $add_dracutmodules_l ]] && add_dracutmodules+=" $add_dracutmodules_l"
++[[ $add_drivers_l ]] && add_drivers+=" $add_drivers_l"
++
+ # these options override the stuff in the config file
+ [[ $dracutmodules_l ]] && dracutmodules=$dracutmodules_l
+ [[ $omit_dracutmodules_l ]] && omit_dracutmodules=$omit_dracutmodules_l
+-[[ $add_dracutmodules_l ]] && add_dracutmodules="$add_dracutmodules $add_dracutmodules_l"
+ [[ $drivers_l ]] && drivers=$drivers_l
+-[[ $add_drivers_l ]] && add_drivers="$add_drivers $add_drivers_l"
+ [[ $filesystems_l ]] && filesystems=$filesystems_l
+ [[ $drivers_dir_l ]] && drivers_dir=$drivers_dir_l
+ [[ $fw_dir_l ]] && fw_dir=$fw_dir_l
+diff --git a/dracut.conf b/dracut.conf
+index a39925a..c921a00 100644
+--- a/dracut.conf
++++ b/dracut.conf
+@@ -1,19 +1,19 @@
+ # Sample dracut config file
+ 
+ # Specific list of dracut modules to use
+-#dracutmodules=""
++#dracutmodules+=""
+ 
+ # Dracut modules to omit
+-#omit_dracutmodules=""
++#omit_dracutmodules+=""
+ 
+ # Dracut modules to add to the default
+-#add_dracutmodules=""
++#add_dracutmodules+=""
+ 
+ # additional kernel modules to the default
+-#add_drivers=""
++#add_drivers+=""
+ 
+ # list of kernel filesystem modules to be included in the generic initramfs
+-#filesystems=""
++#filesystems+=""
+ 
+ # build initrd only to boot current hardware
+ #hostonly="yes"
+diff --git a/dracut.conf.5 b/dracut.conf.5
+index a781dfb..a62c912 100644
+--- a/dracut.conf.5
++++ b/dracut.conf.5
+@@ -12,28 +12,28 @@ Command line parameter will overwrite any values set here.
+ 
+ .SH OPTIONS
+ .TP
+-.BR dracutmodules= \%"[LIST]"
++.BR dracutmodules+= \%"[LIST]"
+ Specify a space-separated list of dracut modules to
+ call when building the initramfs. Modules are located
+ in /usr/share/dracut/modules.d.
+ .TP
+-.BR omit_dracutmodules= \%"[LIST]"
++.BR omit_dracutmodules+= \%"[LIST]"
+ Omit a space-separated list of dracut modules.
+ .TP
+-.BR add_dracutmodules= \%"[LIST]"
++.BR add_dracutmodules+= \%"[LIST]"
+ Add a space-separated list of dracut modules.
+ .TP
+-.BR drivers= \%"[LIST]"
++.BR drivers+= \%"[LIST]"
+ Specify a space-separated list of kernel modules to
+ exclusively include in the initramfs.
+ The kernel modules have to be specified without the ".ko" suffix.
+ .TP
+-.BR add_drivers= \%"[LIST]"
++.BR add_drivers+= \%"[LIST]"
+ Specify a space-separated list of kernel 
+ modules to add to the initramfs.
+ The kernel modules have to be specified without the ".ko" suffix.
+ .TP
+-.BR filesystems= \%"[LIST]"
++.BR filesystems+= \%"[LIST]"
+ Specify a space-separated list of kernel filesystem
+ modules to exclusively include in the generic
+ initramfs.
+@@ -41,7 +41,7 @@ initramfs.
+ .BR drivers_dir= \%"<dir>"
+ Specify the directory, where to look for kernel modules
+ .TP
+-.BR fw_dir= \%"<dir>[:<dir>\ ...]"
++.BR fw_dir+= \%":<dir>[:<dir>\ ...]"
+ Specify additional directories, where to look for firmwares, separated by :
+ .TP
+ .BR do_strip= \%"yes|no"
+-- 
+1.7.3
+
diff --git a/0045-znet-use-ccw-init-and-ccw-rules-from-s390utils-in-dr.patch b/0045-znet-use-ccw-init-and-ccw-rules-from-s390utils-in-dr.patch
new file mode 100644
index 0000000..76b8d16
--- /dev/null
+++ b/0045-znet-use-ccw-init-and-ccw-rules-from-s390utils-in-dr.patch
@@ -0,0 +1,140 @@
+From 21a2792f5b5677e89f8dbd79de1ff13d6292640c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dhorak at redhat.com>
+Date: Wed, 5 May 2010 12:51:46 +0200
+Subject: [PATCH 045/133] znet: use ccw-init and ccw rules from s390utils in dracut
+
+---
+ modules.d/95znet/55-ccw.rules |   12 -----
+ modules.d/95znet/ccw_init     |   90 -----------------------------------------
+ modules.d/95znet/install      |    6 +-
+ 3 files changed, 3 insertions(+), 105 deletions(-)
+
+diff --git a/modules.d/95znet/55-ccw.rules b/modules.d/95znet/55-ccw.rules
+index 2c6a805..e69de29 100644
+--- a/modules.d/95znet/55-ccw.rules
++++ b/modules.d/95znet/55-ccw.rules
+@@ -1,12 +0,0 @@
+-ACTION!="add|change", GOTO="ccw_end"
+-SUBSYSTEM!="ccw", GOTO="ccw_end"
+-SYSFS{cutype}=="1731/01", RUN+="ccw_init"
+-SYSFS{cutype}=="1731/05", RUN+="ccw_init"
+-SYSFS{cutype}=="1731/06", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/01", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/08", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/60", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/61", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/1E", RUN+="ccw_init"
+-SYSFS{cutype}=="3088/1F", RUN+="ccw_init"
+-LABEL="ccw_end"
+diff --git a/modules.d/95znet/ccw_init b/modules.d/95znet/ccw_init
+index 83fba8f..e69de29 100755
+--- a/modules.d/95znet/ccw_init
++++ b/modules.d/95znet/ccw_init
+@@ -1,90 +0,0 @@
+-#!/bin/sh
+-
+-[ -z "$DEVPATH" ] && exit 0
+-[ "$SUBSYSTEM" != "ccw" ] && exit 0
+-
+-[ -e /etc/ccw.conf ] || exit 0
+-
+-get_config_by_subchannel()
+-{
+-    CHANNEL="$1"
+-    while read line; do	
+-	IFS=, 
+-	set $line
+-	for i in $@; do
+-	    if [ "$CHANNEL" = "$i" ]; then
+-	 	echo $line
+-	 	return 0
+-	     fi
+-	done
+-	if [ "$CHANNEL" = "$2" ]; then
+-	    echo $line
+-	    return 0
+-	fi
+-    done < /etc/ccw.conf
+-    return 1
+-}
+-
+-# First, determine our channel
+-
+-CHANNEL=${DEVPATH##*/}
+-
+-CONFIG=$(get_config_by_subchannel $CHANNEL)
+-
+-[ $? -ne 0 -o -z "$CONFIG" ] && exit 0
+-
+-set $CONFIG
+-NETTYPE=$1
+-shift
+-SUBCHANNELS="$1"
+-OPTIONS=""
+-CHANNEL1="$1"
+-shift
+-while [ $# -gt 0 ]; do
+-    case $1 in
+-	layer2=*) LAYER2=${1##layer2=};;
+-	*=*) OPTIONS="$OPTIONS $1";;
+-	[0-9]*) SUBCHANNELS="$SUBCHANNELS,$1";;
+-    esac
+-    shift
+-done
+-
+-# SUBCHANNELS is only set on mainframe ccwgroup devices
+-[ -z "$SUBCHANNELS" -o -z "$NETTYPE" ] && exit 0
+-DIR="/sys/bus/ccwgroup/drivers/$NETTYPE"
+-
+-i=0
+-while [ $i -lt 20 ]; do
+-    [ -e $DIR ] && break
+-    sleep 0.1
+-    i=$(($i+1))
+-done
+-
+-SYSDIR="$DIR/$CHANNEL1"
+-
+-if [ ! -e $SYSDIR ]; then
+-    echo "$SUBCHANNELS" > $DIR/group
+-    i=0
+-    while [ $i -lt 20 ]; do
+-	[ -e $SYSDIR ] && break
+-	sleep 0.1
+-	i=$(($i+1))
+-    done
+-fi
+-
+-# check if the interface is already online
+-if [ -e $SYSDIR/online ]; then
+-    read on <$SYSDIR/online
+-    [ "$on" = "1" ] && exit 0
+-fi
+-
+-# first set layer2, other options may depend on it
+-[ -n "$LAYER2" ] && echo $LAYER2 > $SYSDIR/layer2
+-
+-if [ -n "$OPTIONS" ]; then         
+-    for i in $OPTIONS; do
+-	echo "${i##*=}" > "$SYSDIR/${i%%=*}"
+-    done
+-fi
+-
+-[ -e $SYSDIR/online ] && echo 1 > $SYSDIR/online
+diff --git a/modules.d/95znet/install b/modules.d/95znet/install
+index 2d2aaef..bd3603a 100755
+--- a/modules.d/95znet/install
++++ b/modules.d/95znet/install
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+ inst_hook cmdline 30 "$moddir/parse-ccw.sh"
+-inst "$moddir/ccw_init" /lib/udev/ccw_init
++inst /lib/udev/ccw_init
+ #inst_rules 55-ccw.rules || inst_rules "$moddir/55-ccw.rules"
+-inst_rules "$moddir/55-ccw.rules"
+-dracut_install znet_cio_free grep sed seq
++inst_rules 81-ccw.rules
++dracut_install znet_cio_free grep sed seq readlink
+-- 
+1.7.3
+
diff --git a/0046-znet-renamed-rd_CCW-to-rd_ZNET.patch b/0046-znet-renamed-rd_CCW-to-rd_ZNET.patch
new file mode 100644
index 0000000..1d8e4e2
--- /dev/null
+++ b/0046-znet-renamed-rd_CCW-to-rd_ZNET.patch
@@ -0,0 +1,47 @@
+From 67ddc4ea021283ab0e4d89141df6be564fd249b5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 5 May 2010 12:54:04 +0200
+Subject: [PATCH 046/133] znet: renamed rd_CCW to rd_ZNET
+
+but parse old rd_CCW anyway
+---
+ dracut.8                      |   10 +++++-----
+ modules.d/95znet/parse-ccw.sh |    2 +-
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index 31a70fc..ca27728 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -394,12 +394,12 @@ example: rd_ZFCP=0.0.4000,0x5005076300C213e9,0x5022000000000000
+ .BR rd_NO_ZFCPCONF
+ ignore zfcp.conf included in the initramfs
+ 
+-.SS CCW
++.SS ZNET
+ .TP
+-.BR rd_CCW= "<nettype>,<subchannels>,<options>"
+-rd_CCW can be specified multiple times on the kernel command line. Examples:
+-    rd_CCW=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
+-    rd_CCW=ctc,0.0.0600,0.0.0601,0.0.0602,protocol=bar
++.BR rd_ZNET= "<nettype>,<subchannels>,<options>"
++rd_ZNET can be specified multiple times on the kernel command line. Examples:
++    rd_ZNET=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
++    rd_ZNET=ctc,0.0.0600,0.0.0601,0.0.0602,protocol=bar
+ 
+ .SS "Plymouth Boot Splash"
+ .TP
+diff --git a/modules.d/95znet/parse-ccw.sh b/modules.d/95znet/parse-ccw.sh
+index 8e839c3..7960e6a 100755
+--- a/modules.d/95znet/parse-ccw.sh
++++ b/modules.d/95znet/parse-ccw.sh
+@@ -1,5 +1,5 @@
+ #!/bin/sh
+-for ccw_arg in $(getargs 'rd_CCW='); do
++for ccw_arg in $(getargs 'rd_CCW=') $(getargs 'rd_ZNET='); do
+     echo $ccw_arg >> /etc/ccw.conf
+ done
+ 
+-- 
+1.7.3
+
diff --git a/0047-fcoe-add-sbin-vconfig-and-the-8021q-kernel-module.patch b/0047-fcoe-add-sbin-vconfig-and-the-8021q-kernel-module.patch
new file mode 100644
index 0000000..b921a16
--- /dev/null
+++ b/0047-fcoe-add-sbin-vconfig-and-the-8021q-kernel-module.patch
@@ -0,0 +1,34 @@
+From f7f6a316c70e655f0ff903cf5d60b955f4d0adc0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 6 May 2010 16:23:46 +0200
+Subject: [PATCH 047/133] fcoe: add /sbin/vconfig and the 8021q kernel module
+
+---
+ modules.d/95fcoe/install       |    2 ++
+ modules.d/95fcoe/installkernel |    2 +-
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/95fcoe/install b/modules.d/95fcoe/install
+index 69f6bf5..db08a34 100755
+--- a/modules.d/95fcoe/install
++++ b/modules.d/95fcoe/install
+@@ -4,6 +4,8 @@ dracut_install ip
+ inst dcbtool 
+ inst fipvlan
+ inst lldpad
++inst vconfig
++
+ mkdir -p "$initdir/var/lib/lldpad"
+ 
+ inst "$moddir/fcoe-up" "/sbin/fcoe-up"
+diff --git a/modules.d/95fcoe/installkernel b/modules.d/95fcoe/installkernel
+index f3409b3..5ce7ca8 100755
+--- a/modules.d/95fcoe/installkernel
++++ b/modules.d/95fcoe/installkernel
+@@ -1,2 +1,2 @@
+ #!/bin/bash
+-instmods fcoe
++instmods fcoe 8021q
+-- 
+1.7.3
+
diff --git a/0048-dracut.8-fix-rd_LVM_LV-description.patch b/0048-dracut.8-fix-rd_LVM_LV-description.patch
new file mode 100644
index 0000000..4a895e6
--- /dev/null
+++ b/0048-dracut.8-fix-rd_LVM_LV-description.patch
@@ -0,0 +1,25 @@
+From e38b4bd440511064f95c0d5547475ae1c3ba9c88 Mon Sep 17 00:00:00 2001
+From: Alexander Todorov <atodorov at redhat.com>
+Date: Thu, 6 May 2010 16:58:51 +0200
+Subject: [PATCH 048/133] dracut.8: fix rd_LVM_LV description
+
+---
+ dracut.8 |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index ca27728..404c2a1 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -203,7 +203,7 @@ only activate the volume groups with the given name
+ rd_LVM_VG can be specified multiple times on the kernel command line.
+ .TP
+ .BR rd_LVM_LV= "<logical volume name>"
+-only activate the volume groups with the given name
++only activate the logical volumes with the given name
+ rd_LVM_LV can be specified multiple times on the kernel command line.
+ .TP
+ .BR rd_NO_LVMCONF
+-- 
+1.7.3
+
diff --git a/0049-plymouth-only-display-luksname-and-device-for-multip.patch b/0049-plymouth-only-display-luksname-and-device-for-multip.patch
new file mode 100644
index 0000000..aeeb5f4
--- /dev/null
+++ b/0049-plymouth-only-display-luksname-and-device-for-multip.patch
@@ -0,0 +1,64 @@
+From 89fc86b94c29a99dd3a457eb3d520766f03ae091 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 6 May 2010 17:31:46 +0200
+Subject: [PATCH 049/133] plymouth: only display luksname and device for multiple luks
+
+https://bugzilla.redhat.com/show_bug.cgi?id=561092
+---
+ modules.d/50plymouth/cryptroot-ask.sh |   18 +++++++++++++++---
+ 1 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/50plymouth/cryptroot-ask.sh b/modules.d/50plymouth/cryptroot-ask.sh
+index b9f2461..7dee9a1 100755
+--- a/modules.d/50plymouth/cryptroot-ask.sh
++++ b/modules.d/50plymouth/cryptroot-ask.sh
+@@ -50,25 +50,37 @@ fi
+ 
+ LUKS=$(getargs rd_LUKS_UUID=)
+ ask=1
++num=0
+ if [ -n "$LUKS" ]; then
+     ask=0
+     luuid=${2##luks-}
+     for luks in $LUKS; do
++        num=$(($num+1))
+ 	luks=${luks##luks-}
+ 	if [ "${luuid##$luks}" != "$luuid" ] || [ "$luksname" = "$luks" ]; then
+ 	    ask=1
+-	    break
+ 	fi
++        [ $num -ge 2 -a "$ask" = "1" ] && break
+     done
+ fi
+ unset LUKS luks luuid
+ 
+ if [ $ask -gt 0 ]; then
+     info "luksOpen $device $luksname"
++    if [ $num -eq 1 ]; then
++         prompt="Password:"
++    else
++         prompt="Password [$device ($luksname)]:" 
++         if [ ${#luksname} -gt 8 ]; then
++	     sluksname=${sluksname##luks-}
++             sluksname=${luksname%%${luksname##????????}}
++             prompt="Password [$device ($sluksname...)]:"
++         fi
++    fi
+     # flock against other interactive activities
+     { flock -s 9; 
+ 	/bin/plymouth ask-for-password \
+-	    --prompt "$device ($luksname) is password protected" \
++	    --prompt "$prompt" \
+ 	    --command="/sbin/cryptsetup luksOpen -T1 $device $luksname"
+     } 9>/.console.lock
+ fi
+@@ -80,4 +92,4 @@ unset ask device luksname
+ udevsettle
+ 
+ exit 0
+-# vim:ts=8:sw=4:sts=4:et
+\ No newline at end of file
++# vim:ts=8:sw=4:sts=4:et
+-- 
+1.7.3
+
diff --git a/0050-dracut.spec-remove-elfutils-libelf-requirement.patch b/0050-dracut.spec-remove-elfutils-libelf-requirement.patch
new file mode 100644
index 0000000..91b1d5c
--- /dev/null
+++ b/0050-dracut.spec-remove-elfutils-libelf-requirement.patch
@@ -0,0 +1,25 @@
+From fb290780ad38882508fe05cba21f700797c4b1f0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 7 May 2010 10:16:03 +0200
+Subject: [PATCH 050/133] dracut.spec: remove elfutils-libelf requirement
+
+---
+ dracut.spec |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index a29098a..7a2816d 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -59,7 +59,7 @@ Requires: fileutils, gzip, tar
+ Requires: lvm2 >= 2.02.33-9, dhclient
+ Requires: filesystem >= 2.1.0, cpio, device-mapper, initscripts >= 8.63-1
+ Requires: coreutils
+-Requires: mdadm, elfutils-libelf 
++Requires: mdadm  
+ Requires(pre): plymouth >= 0.8.0-0.2009.29.09.19.1
+ Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
+ Requires: cryptsetup-luks
+-- 
+1.7.3
+
diff --git a/0051-use-grep-directly-without-nm-to-drop-binutils-requir.patch b/0051-use-grep-directly-without-nm-to-drop-binutils-requir.patch
new file mode 100644
index 0000000..16e233c
--- /dev/null
+++ b/0051-use-grep-directly-without-nm-to-drop-binutils-requir.patch
@@ -0,0 +1,105 @@
+From d4cb4c5ca5811e74077db31cdc5d4d2457fbf1fc Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 7 May 2010 10:44:30 +0200
+Subject: [PATCH 051/133] use "grep" directly without "nm" to drop binutils requirement
+
+---
+ dracut                                   |    6 +++---
+ dracut.spec                              |    1 -
+ modules.d/40network/installkernel        |    4 ++--
+ modules.d/50plymouth/installkernel       |    2 +-
+ modules.d/90kernel-modules/installkernel |    2 +-
+ modules.d/90multipath/installkernel      |    2 +-
+ 6 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/dracut b/dracut
+index cd52499..6d9bf7c 100755
+--- a/dracut
++++ b/dracut
+@@ -46,8 +46,8 @@ Creates initial ramdisk images for preloading modules
+                         firmwares, separated by :
+   --kernel-only         Only install kernel drivers and firmware files
+   --no-kernel           Do not install kernel drivers and firmware files
+-  --strip               Strip binaries in the initramfs (default)
+-  --nostrip             Do not strip binaries in the initramfs
++  --strip               Strip binaries in the initramfs
++  --nostrip             Do not strip binaries in the initramfs (default)
+   --mdadmconf           Include local /etc/mdadm.conf
+   --nomdadmconf         Do not include local /etc/mdadm.conf
+   --lvmconf             Include local /etc/lvm/lvm.conf
+@@ -155,7 +155,7 @@ fi
+ [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
+ [[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut
+ [[ $fw_dir ]] || fw_dir=/lib/firmware
+-[[ $do_strip ]] || do_strip=yes
++[[ $do_strip ]] || do_strip=no
+ # eliminate IFS hackery when messing with fw_dir
+ fw_dir=${fw_dir//:/ }
+ 
+diff --git a/dracut.spec b/dracut.spec
+index 7a2816d..64a287f 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -47,7 +47,6 @@ Requires: module-init-tools >= 3.7-9
+ Requires: cpio
+ Requires: coreutils
+ Requires: findutils
+-Requires: binutils
+ Requires: grep
+ Requires: which
+ Requires: mktemp >= 1.5-5
+diff --git a/modules.d/40network/installkernel b/modules.d/40network/installkernel
+index 514902d..4c7adcd 100755
+--- a/modules.d/40network/installkernel
++++ b/modules.d/40network/installkernel
+@@ -4,8 +4,8 @@
+ net_module_test() {
+     local net_drivers='eth_type_trans|register_virtio_device'
+     local unwanted_drivers='/(wireless|isdn|uwb)/'
+-    nm -uPA "$1" | egrep -q $net_drivers && \
+-	nm -uPA "$1" | egrep -qv 'iw_handler_get_spy' && \
++    egrep -q $net_drivers "$1" && \
++	egrep -qv 'iw_handler_get_spy' "$1" && \
+ 	[[ ! $1 =~ $unwanted_drivers ]]
+ }
+ 
+diff --git a/modules.d/50plymouth/installkernel b/modules.d/50plymouth/installkernel
+index 61f2422..9f3291d 100755
+--- a/modules.d/50plymouth/installkernel
++++ b/modules.d/50plymouth/installkernel
+@@ -1,5 +1,5 @@
+ #!/bin/bash
+ # Include KMS capable drm drivers
+ for modname in $(find "$srcmods/kernel/drivers/gpu/drm" -name '*.ko' 2>/dev/null); do
+-    nm -uPA $modname | grep -q drm_crtc_init && instmods $modname
++    grep -q drm_crtc_init  $modname && instmods $modname
+ done
+diff --git a/modules.d/90kernel-modules/installkernel b/modules.d/90kernel-modules/installkernel
+index 747e4fe..e679b10 100755
+--- a/modules.d/90kernel-modules/installkernel
++++ b/modules.d/90kernel-modules/installkernel
+@@ -3,7 +3,7 @@ if [[ -z $drivers ]]; then
+     block_module_test() {
+ 	local blockfuncs='ahci_init_controller|ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'
+ 
+-	 nm -uPA "$1" | egrep -q "$blockfuncs"
++	egrep -q "$blockfuncs" "$1"
+     }
+     hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
+     hostonly='' instmods pcmcia firewire-ohci
+diff --git a/modules.d/90multipath/installkernel b/modules.d/90multipath/installkernel
+index 4a596f0..c2f4ec0 100755
+--- a/modules.d/90multipath/installkernel
++++ b/modules.d/90multipath/installkernel
+@@ -2,7 +2,7 @@
+ 
+ mp_mod_test() {
+     local mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target'
+-    nm -uPA "$1" | egrep -q "$mpfuncs"
++    egrep -q "$mpfuncs" "$1"
+ }
+ 
+ instmods $(filter_kernel_modules mp_mod_test)
+-- 
+1.7.3
+
diff --git a/0052-plymouth-plymouth-populate-initrd-get-rid-of-awk.patch b/0052-plymouth-plymouth-populate-initrd-get-rid-of-awk.patch
new file mode 100644
index 0000000..a120169
--- /dev/null
+++ b/0052-plymouth-plymouth-populate-initrd-get-rid-of-awk.patch
@@ -0,0 +1,25 @@
+From 89a30899d9212dd3c402598b7b47ad682d1e2a2b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 7 May 2010 11:02:31 +0200
+Subject: [PATCH 052/133] plymouth/plymouth-populate-initrd: get rid of awk
+
+---
+ modules.d/50plymouth/plymouth-populate-initrd |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/50plymouth/plymouth-populate-initrd b/modules.d/50plymouth/plymouth-populate-initrd
+index b35a46f..effb0f9 100755
+--- a/modules.d/50plymouth/plymouth-populate-initrd
++++ b/modules.d/50plymouth/plymouth-populate-initrd
+@@ -30,7 +30,7 @@ if [[ $hostonly ]]; then
+     if [ -L /usr/share/plymouth/themes/default.plymouth ]; then
+ 	inst /usr/share/plymouth/themes/default.plymouth
+         # Install plugin for this theme
+-	PLYMOUTH_PLUGIN=$(grep "^ModuleName=" /usr/share/plymouth/themes/default.plymouth |awk -F= {'print $2'})
++	PLYMOUTH_PLUGIN=$(grep "^ModuleName=" /usr/share/plymouth/themes/default.plymouth | while read a b c; do echo $b; done;)
+ 	inst ${LIBDIR}/plymouth/${PLYMOUTH_PLUGIN}.so
+     fi
+ else
+-- 
+1.7.3
+
diff --git a/0053-dracut-get-rid-of-the-file-command.patch b/0053-dracut-get-rid-of-the-file-command.patch
new file mode 100644
index 0000000..a35dc34
--- /dev/null
+++ b/0053-dracut-get-rid-of-the-file-command.patch
@@ -0,0 +1,39 @@
+From a254ca12cc23ca215aa4fa3927ba41944582d2d9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 7 May 2010 11:03:55 +0200
+Subject: [PATCH 053/133] dracut: get rid of the "file" command
+
+---
+ dracut |    8 +++-----
+ 1 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/dracut b/dracut
+index 6d9bf7c..35be7eb 100755
+--- a/dracut
++++ b/dracut
+@@ -278,7 +278,7 @@ ldconfig -r "$initdir" || [[ $(id -u) != "0" ]] && dinfo "ldconfig might need ui
+ 
+ # strip binaries 
+ if [[ $do_strip = yes ]] ; then
+-    for p in strip objdump sed grep find; do 
++    for p in strip grep find; do 
+ 	if ! which $p >/dev/null 2>&1; then
+ 	    derror "Could not find '$p'. You should run $0 with '--nostrip'."
+ 	    do_strip=no
+@@ -287,11 +287,9 @@ if [[ $do_strip = yes ]] ; then
+ fi
+ 
+ if [[ $do_strip = yes ]] ; then
+-    for f in $(find "$initdir" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 -or -path '/lib/modules/*.ko' \) -exec file {} \; | 
+-	grep -v ' shared object,' | 
+-	sed -n -e 's/^\(.*\):[ 	]*ELF.*, not stripped/\1/p'); do
++    for f in $(find "$initdir" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 -or -path '/lib/modules/*.ko' \) ); do
+ 	dinfo "Stripping $f"
+-	strip -g "$f" || :
++	strip -g "$f" 2>/dev/null|| :
+         #
+         # FIXME: only strip -g for now
+         #
+-- 
+1.7.3
+
diff --git a/0054-dracut.spec-clean-up-the-requirements.patch b/0054-dracut.spec-clean-up-the-requirements.patch
new file mode 100644
index 0000000..6f78d58
--- /dev/null
+++ b/0054-dracut.spec-clean-up-the-requirements.patch
@@ -0,0 +1,82 @@
+From dd01b807e1b419a45ac30bc70311c7a9e5dbcf12 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 7 May 2010 11:04:23 +0200
+Subject: [PATCH 054/133] dracut.spec: clean up the requirements
+
+---
+ dracut.spec |   38 +++++++++++++++-----------------------
+ 1 files changed, 15 insertions(+), 23 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index 64a287f..a25b92f 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -41,35 +41,26 @@ Obsoletes: libbdevid-python <= 6.0.93
+ Obsoletes: dracut-kernel < 005
+ Provides:  dracut-kernel = %{version}-%{release}
+ 
+-Requires: udev
+-Requires: util-linux-ng
+-Requires: module-init-tools >= 3.7-9
+-Requires: cpio
++Requires: bash
++Requires: bzip2
+ Requires: coreutils
++Requires: cpio
++Requires: dash
++Requires: filesystem >= 2.1.0
+ Requires: findutils
+ Requires: grep
+-Requires: which
++Requires: gzip
++Requires: initscripts >= 8.63-1
+ Requires: mktemp >= 1.5-5
++Requires: module-init-tools >= 3.7-9
+ Requires: mount
+-Requires: bash
+-Requires: dash
+-Requires: /bin/sh 
+-Requires: fileutils, gzip, tar
+-Requires: lvm2 >= 2.02.33-9, dhclient
+-Requires: filesystem >= 2.1.0, cpio, device-mapper, initscripts >= 8.63-1
+-Requires: coreutils
+-Requires: mdadm  
+-Requires(pre): plymouth >= 0.8.0-0.2009.29.09.19.1
+-Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
+-Requires: cryptsetup-luks
+-Requires: file
+-Requires: bzip2
+-Requires: dmraid
+-Requires: kbd
+-Requires: plymouth-scripts
++Requires: sed
++Requires: tar
++Requires: udev
++Requires: util-linux-ng >= 2.16
++Requires: which
+ 
+ %if ! 0%{?with_switch_root}
+-Requires: util-linux-ng >= 2.16
+ BuildArch: noarch
+ %endif
+ 
+@@ -85,6 +76,7 @@ Summary: Dracut modules to build a dracut initramfs with network support
+ Requires: %{name} = %{version}-%{release}
+ Requires: rpcbind nfs-utils 
+ Requires: iscsi-initiator-utils
++Requires: dhclient
+ %if %{with_nbd}
+ Requires: nbd
+ %endif
+@@ -123,7 +115,7 @@ all purpose initramfs with dracut.
+ %package tools
+ Summary: Dracut tools to build the local initramfs
+ Requires: coreutils cryptsetup-luks device-mapper
+-Requires: diffutils dmraid findutils gawk grep lvm2
++Requires: diffutils dmraid findutils grep lvm2 gawk
+ Requires: module-init-tools sed
+ Requires: cpio gzip
+ 
+-- 
+1.7.3
+
diff --git a/0055-90mdraid-dracut-functions-fix-md-raid-hostonly-detec.patch b/0055-90mdraid-dracut-functions-fix-md-raid-hostonly-detec.patch
new file mode 100644
index 0000000..dbf937f
--- /dev/null
+++ b/0055-90mdraid-dracut-functions-fix-md-raid-hostonly-detec.patch
@@ -0,0 +1,50 @@
+From 4644f51e78dfe3713a24dcacb5f0a28a9dc8c362 Mon Sep 17 00:00:00 2001
+From: Andy Lutomirski <luto at mit.edu>
+Date: Wed, 19 May 2010 08:13:12 +0200
+Subject: [PATCH 055/133] 90mdraid dracut-functions: fix md raid hostonly detection
+
+check_block_and_slaves looks at slaves but not parents.
+---
+ dracut-functions         |    3 +++
+ modules.d/90mdraid/check |    4 ++--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index fdcfb7e..7181d3f 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -97,6 +97,9 @@ check_block_and_slaves() {
+     [[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry.
+     "$1" $2 && return
+     check_vol_slaves "$@" && return 0
++    if [[ -f "/sys/dev/block/$2/../dev" ]]; then
++	check_block_and_slaves $1 $(cat "/sys/dev/block/$2/../dev") &&  return 0
++    fi
+     [[ -d /sys/dev/block/$2/slaves ]] || return 1
+     for x in /sys/dev/block/$2/slaves/*/dev; do
+         [[ -f $x ]] || continue
+diff --git a/modules.d/90mdraid/check b/modules.d/90mdraid/check
+index be200e1..cad3d0b 100755
+--- a/modules.d/90mdraid/check
++++ b/modules.d/90mdraid/check
+@@ -6,7 +6,7 @@ which mdadm >/dev/null 2>&1 || exit 1
+ . $dracutfunctions
+ [[ $debug ]] && set -x
+ 
+-is_mdraid() { get_fs_type /dev/block/$1 |egrep -q '(linux|isw)_raid'; }
++is_mdraid() { [[ -d "/sys/dev/block/$1/md" ]]; }
+ 
+ [[ $1 = '-h' ]] && {
+     rootdev=$(find_root_block_device)
+@@ -16,7 +16,7 @@ is_mdraid() { get_fs_type /dev/block/$1 |egrep -q '(linux|isw)_raid'; }
+ 	check_block_and_slaves is_mdraid "$rootdev" || exit 1
+     else
+ 	# root is not on a block device, use the shotgun approach
+-	blkid | grep -q linux_raid || exit 1
++	blkid | egrep -q '(linux|isw)_raid' || exit 1
+     fi
+ }
+ 
+-- 
+1.7.3
+
diff --git a/0056-40network-parse-ip-opts.sh-add-ip-auto6-to-valid-opt.patch b/0056-40network-parse-ip-opts.sh-add-ip-auto6-to-valid-opt.patch
new file mode 100644
index 0000000..5b78ca2
--- /dev/null
+++ b/0056-40network-parse-ip-opts.sh-add-ip-auto6-to-valid-opt.patch
@@ -0,0 +1,24 @@
+From e520470066ced33084890285ebc955844ab46b4b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 08:28:19 +0200
+Subject: [PATCH 056/133] 40network/parse-ip-opts.sh: add "ip=auto6" to valid options
+
+---
+ modules.d/40network/parse-ip-opts.sh |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh
+index 327ba5e..7362669 100755
+--- a/modules.d/40network/parse-ip-opts.sh
++++ b/modules.d/40network/parse-ip-opts.sh
+@@ -73,6 +73,7 @@ for p in $(getargs ip=); do
+ 	    [ -z "$mask" ] && \
+ 		die "Sorry, automatic calculation of netmask is not yet supported"
+ 	    ;;
++	auto6);;
+ 	dhcp|on|any) \
+ 	    [ -n "$NEEDBOOTDEV" ] && [ -z "$dev" ] && \
+ 	        die "Sorry, 'ip=$p' does not make sense for multiple interface configurations"
+-- 
+1.7.3
+
diff --git a/0057-40network-dhclient-script-be-more-verbose.patch b/0057-40network-dhclient-script-be-more-verbose.patch
new file mode 100644
index 0000000..5b23698
--- /dev/null
+++ b/0057-40network-dhclient-script-be-more-verbose.patch
@@ -0,0 +1,38 @@
+From 7777ee22b9f49c6e33cedfacc17b51447413948c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:33:20 +0200
+Subject: [PATCH 057/133] 40network/dhclient-script: be more verbose
+
+---
+ modules.d/40network/dhclient-script |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/40network/dhclient-script b/modules.d/40network/dhclient-script
+index ac7d5e1..3efbc2d 100755
+--- a/modules.d/40network/dhclient-script
++++ b/modules.d/40network/dhclient-script
+@@ -60,10 +60,12 @@ netif=$interface
+ 
+ case $reason in
+     PREINIT)
++	echo "dhcp: PREINIT $netif up"
+ 	ip link set $netif up
+ 	wait_for_if_up $netif
+ 	;;
+     BOUND)
++	echo "dhcp: BOND setting $netif"
+ 	if ! arping -q -D -c 2 -I $netif $new_ip_address ; then
+ 	    warn "Duplicate address detected for $new_ip_address while doing dhcp. retrying"
+ 	    exit 1
+@@ -76,7 +78,7 @@ case $reason in
+ 	echo online > /sys/class/net/$netif/uevent
+ 	/sbin/initqueue --onetime --name netroot-$netif  /sbin/netroot $netif 
+ 	;;
+-    *) ;;
++    *) echo "dhcp: $reason";;
+ esac
+ 
+ exit 0
+-- 
+1.7.3
+
diff --git a/0058-40network-ifup-be-more-verbose.patch b/0058-40network-ifup-be-more-verbose.patch
new file mode 100644
index 0000000..a73f902
--- /dev/null
+++ b/0058-40network-ifup-be-more-verbose.patch
@@ -0,0 +1,44 @@
+From 25cc58ebec71b31ee23e11c88a6c9acc92b76669 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:33:58 +0200
+Subject: [PATCH 058/133] 40network/ifup: be more verbose
+
+---
+ modules.d/40network/ifup |   12 +++++-------
+ 1 files changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/modules.d/40network/ifup b/modules.d/40network/ifup
+index e2237ef..6ef1010 100755
+--- a/modules.d/40network/ifup
++++ b/modules.d/40network/ifup
+@@ -12,7 +12,9 @@ do_dhcp() {
+     # /sbin/dhclient-script will mark the netif up and generate the online
+     # event for nfsroot
+     # XXX add -V vendor class and option parsing per kernel
+-    dhclient "$@" -1 -q -cf /etc/dhclient.conf -pf /tmp/dhclient.$netif.pid -lf /tmp/dhclient.$netif.lease $netif
++    echo "Starting dhcp for interface $netif"
++    dhclient "$@" -1 -q -cf /etc/dhclient.conf -pf /tmp/dhclient.$netif.pid -lf /tmp/dhclient.$netif.lease $netif \
++    || echo "dhcp failed"
+ }
+ 
+ load_ipv6() {
+@@ -78,14 +80,10 @@ do_static() {
+ 
+ PATH=$PATH:/sbin:/usr/sbin
+ 
++export PS4="ifup.$1.$$ + "
++exec >>/dev/initlog.pipe 2>>/dev/initlog.pipe
+ . /lib/dracut-lib.sh
+ 
+-if getarg rdnetdebug ; then
+-    exec >/tmp/ifup.$1.$$.out
+-    exec 2>>/tmp/ifup.$1.$$.out
+-    set -x
+-fi
+-
+ # Huh? No $1?
+ [ -z "$1" ] && exit 1
+ 
+-- 
+1.7.3
+
diff --git a/0059-TEST-50-MULTINIC-do-not-provide-a-cdrom-in-the-testc.patch b/0059-TEST-50-MULTINIC-do-not-provide-a-cdrom-in-the-testc.patch
new file mode 100644
index 0000000..af776b7
--- /dev/null
+++ b/0059-TEST-50-MULTINIC-do-not-provide-a-cdrom-in-the-testc.patch
@@ -0,0 +1,26 @@
+From fa3b6765467bd8bc396b03e36958cfd69c8232ed Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:35:01 +0200
+Subject: [PATCH 059/133] TEST-50-MULTINIC: do not provide a cdrom in the testcase
+
+---
+ test/TEST-50-MULTINIC/test.sh |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
+index 083cf60..9a3f619 100755
+--- a/test/TEST-50-MULTINIC/test.sh
++++ b/test/TEST-50-MULTINIC/test.sh
+@@ -47,6 +47,9 @@ client_test() {
+   	-net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+   	-net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ 	-net socket,connect=127.0.0.1:12345 \
++        -drive if=ide,index=1,media=disk \
++        -drive if=ide,index=2,media=disk \
++        -drive if=ide,index=3,media=disk \
+   	-kernel /boot/vmlinuz-$KVERSION \
+   	-append "$cmdline $DEBUGFAIL rd_retry=5 rdinitdebug rdinfo rdnetdebug ro quiet console=ttyS0,115200n81 selinux=0 rdcopystate" \
+   	-initrd initramfs.testing
+-- 
+1.7.3
+
diff --git a/0060-95fcoe-fcoe-up-wait_for_if_up.patch b/0060-95fcoe-fcoe-up-wait_for_if_up.patch
new file mode 100644
index 0000000..c4fb9b9
--- /dev/null
+++ b/0060-95fcoe-fcoe-up-wait_for_if_up.patch
@@ -0,0 +1,25 @@
+From edbdbfdada96601e4e6f2e2e113edcbebc8f7534 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:36:11 +0200
+Subject: [PATCH 060/133] 95fcoe/fcoe-up: wait_for_if_up
+
+---
+ modules.d/95fcoe/fcoe-up |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/95fcoe/fcoe-up b/modules.d/95fcoe/fcoe-up
+index bd6294a..47a7e8d 100755
+--- a/modules.d/95fcoe/fcoe-up
++++ b/modules.d/95fcoe/fcoe-up
+@@ -15,6 +15,8 @@ netif=$1
+ dcb=$2
+ 
+ /sbin/ip link set "$netif" up
++wait_for_if_up "$netif"
++
+ if [ "$dcb" = "dcb" ]; then
+     # Note lldpad will stay running after switchroot, the system initscripts
+     # are to kill it and start a new lldpad to take over. Data is transfered
+-- 
+1.7.3
+
diff --git a/0061-get-rid-of-rdnetdebug.patch b/0061-get-rid-of-rdnetdebug.patch
new file mode 100644
index 0000000..6dedf4f
--- /dev/null
+++ b/0061-get-rid-of-rdnetdebug.patch
@@ -0,0 +1,154 @@
+From 22f684bff6585183b015d8c11eedef19b1730c7b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:37:20 +0200
+Subject: [PATCH 061/133] get rid of rdnetdebug
+
+set PS4 and output to /dev/initlog.pipe
+---
+ dracut.8                                |    3 ---
+ modules.d/40network/dhclient-script     |    8 ++------
+ modules.d/95fcoe/fcoe-up                |    4 ++++
+ modules.d/98syslog/parse-syslog-opts.sh |    6 +-----
+ modules.d/98syslog/rsyslogd-start.sh    |    7 +------
+ modules.d/98syslog/syslog-cleanup.sh    |    8 +-------
+ modules.d/98syslog/syslog-genrules.sh   |    6 ------
+ modules.d/99base/dracut-lib.sh          |    2 +-
+ 8 files changed, 10 insertions(+), 34 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index 404c2a1..0946b99 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -165,9 +165,6 @@ set udev to loglevel info
+ .TP
+ .B rdudevdebug
+ set udev to loglevel debug
+-.TP
+-.B rdnetdebug
+-debug network scripts in dracut. Output is written to /tmp/
+ 
+ .SS I18N
+  e.g.
+diff --git a/modules.d/40network/dhclient-script b/modules.d/40network/dhclient-script
+index 3efbc2d..1f5c4c0 100755
+--- a/modules.d/40network/dhclient-script
++++ b/modules.d/40network/dhclient-script
+@@ -44,14 +44,10 @@ setup_interface() {
+ 
+ PATH=$PATH:/sbin:/usr/sbin
+ 
++export PS4="dhclient.$interface.$$ + "
++exec >>/dev/initlog.pipe 2>>/dev/initlog.pipe
+ . /lib/dracut-lib.sh
+ 
+-if getarg rdnetdebug ; then
+-    exec >/tmp/dhclient.$interface.$$.out
+-    exec 2>>/tmp/dhclient.$interface.$$.out
+-    set -x
+-fi
+-
+ # We already need a set netif here
+ netif=$interface
+ 
+diff --git a/modules.d/95fcoe/fcoe-up b/modules.d/95fcoe/fcoe-up
+index 47a7e8d..9954e0a 100755
+--- a/modules.d/95fcoe/fcoe-up
++++ b/modules.d/95fcoe/fcoe-up
+@@ -11,6 +11,10 @@ PATH=$PATH:/sbin:/usr/sbin
+ # Huh? Missing arguments ??
+ [ -z "$1" -o -z "$2" ] && exit 1
+ 
++export PS4="fcoe-up.$1.$$ + "
++exec >>/dev/initlog.pipe 2>>/dev/initlog.pipe
++. /lib/dracut-lib.sh
++
+ netif=$1
+ dcb=$2
+ 
+diff --git a/modules.d/98syslog/parse-syslog-opts.sh b/modules.d/98syslog/parse-syslog-opts.sh
+index 0ec3015..438ab4b 100755
+--- a/modules.d/98syslog/parse-syslog-opts.sh
++++ b/modules.d/98syslog/parse-syslog-opts.sh
+@@ -6,11 +6,7 @@
+ #sysloglevel=level  What level has to be logged
+ #syslogtype=rsyslog|syslog|syslogng  
+ #                   Don't auto detect syslog but set it
+-if getarg rdnetdebug ; then
+-    exec >/tmp/syslog-parse-opts.$1.$$.out
+-    exec 2>>/tmp/syslog-parse-opts.$1.$$.out
+-    set -x
+-fi
++. /lib/dracut-lib.sh
+ 
+ syslogserver=$(getarg syslog)
+ syslogfilters=$(getargs filter)
+diff --git a/modules.d/98syslog/rsyslogd-start.sh b/modules.d/98syslog/rsyslogd-start.sh
+index abab484..4bfadc1 100755
+--- a/modules.d/98syslog/rsyslogd-start.sh
++++ b/modules.d/98syslog/rsyslogd-start.sh
+@@ -1,12 +1,7 @@
+ #!/bin/sh
+ # Triggered by udev and starts rsyslogd with bootparameters
+-. /lib/dracut-lib.sh
+ 
+-if getarg rdnetdebug ; then
+-    exec >/tmp/rsyslogd-start.$1.$$.out
+-    exec 2>>/tmp/rsyslogd-start.$1.$$.out
+-    set -x
+-fi
++. /lib/dracut-lib.sh
+ 
+ rsyslog_config() {
+ 	local server=$1
+diff --git a/modules.d/98syslog/syslog-cleanup.sh b/modules.d/98syslog/syslog-cleanup.sh
+index 8fdf21b..4e1c531 100755
+--- a/modules.d/98syslog/syslog-cleanup.sh
++++ b/modules.d/98syslog/syslog-cleanup.sh
+@@ -1,13 +1,7 @@
+ #!/bin/sh
+ # Just cleans up a previously started syslogd
+-. /lib/dracut-lib.sh
+-
+ 
+-if getarg rdnetdebug ; then
+-    exec >/tmp/syslog-cleanup.$1.$$.out
+-    exec 2>>/tmp/syslog-cleanup.$1.$$.out
+-    set -x
+-fi
++. /lib/dracut-lib.sh
+ 
+ if [ -f /tmp/syslog.server ]; then
+ 	read syslogtype < /tmp/syslog.type
+diff --git a/modules.d/98syslog/syslog-genrules.sh b/modules.d/98syslog/syslog-genrules.sh
+index 8d99fb8..fb11f44 100755
+--- a/modules.d/98syslog/syslog-genrules.sh
++++ b/modules.d/98syslog/syslog-genrules.sh
+@@ -17,12 +17,6 @@ detect_syslog() {
+     [ -n "$syslogtype" ]
+ }	
+ 
+-if getarg rdnetdebug ; then
+-    exec >/tmp/syslog-genrules.$1.$$.out
+-    exec 2>>/tmp/syslog-genrules.$1.$$.out
+-    set -x
+-fi
+-
+ read syslogtype < /tmp/syslog.type
+ if [ -z "$syslogtype" ]; then
+ 	syslogtype=$(detect_syslog)
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index e9c2ccc..9666232 100644
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -52,7 +52,7 @@ setdebug() {
+     if [ -z "$RDDEBUG" ]; then
+         if [ -e /proc/cmdline ]; then
+             RDDEBUG=no
+-            if getarg rdinitdebug; then
++            if getarg rdinitdebug || getarg rdnetdebug; then
+                 RDDEBUG=yes 
+             fi
+         fi
+-- 
+1.7.3
+
diff --git a/0062-95znet-removed-55-ccw.rules-and-ccw_init.patch b/0062-95znet-removed-55-ccw.rules-and-ccw_init.patch
new file mode 100644
index 0000000..c266066
--- /dev/null
+++ b/0062-95znet-removed-55-ccw.rules-and-ccw_init.patch
@@ -0,0 +1,31 @@
+From 2c1425e4ebacfd75f56d9f4464c35c94c29aabce Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:39:07 +0200
+Subject: [PATCH 062/133] 95znet: removed 55-ccw.rules and ccw_init
+
+---
+ modules.d/95znet/install      |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+ delete mode 100644 modules.d/95znet/55-ccw.rules
+ delete mode 100755 modules.d/95znet/ccw_init
+
+diff --git a/modules.d/95znet/55-ccw.rules b/modules.d/95znet/55-ccw.rules
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/modules.d/95znet/ccw_init b/modules.d/95znet/ccw_init
+deleted file mode 100755
+index e69de29..0000000
+diff --git a/modules.d/95znet/install b/modules.d/95znet/install
+index bd3603a..ff85db6 100755
+--- a/modules.d/95znet/install
++++ b/modules.d/95znet/install
+@@ -1,6 +1,5 @@
+ #!/bin/bash
+ inst_hook cmdline 30 "$moddir/parse-ccw.sh"
+ inst /lib/udev/ccw_init
+-#inst_rules 55-ccw.rules || inst_rules "$moddir/55-ccw.rules"
+ inst_rules 81-ccw.rules
+ dracut_install znet_cio_free grep sed seq readlink
+-- 
+1.7.3
+
diff --git a/0063-Makefile-make-more-clean.patch b/0063-Makefile-make-more-clean.patch
new file mode 100644
index 0000000..9b3625a
--- /dev/null
+++ b/0063-Makefile-make-more-clean.patch
@@ -0,0 +1,25 @@
+From c387f858a7fcd56cf1d64a223ac7251883bb6800 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 09:55:48 +0200
+Subject: [PATCH 063/133] Makefile: make more clean
+
+---
+ Makefile |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 7b1e410..7979725 100644
+--- a/Makefile
++++ b/Makefile
+@@ -50,6 +50,8 @@ endif
+ 
+ clean:
+ 	rm -f *~
++	rm -f */*~
++	rm -f */*/*~
+ 	rm -f modules.d/99base/switch_root
+ 	rm -f test-*.img
+ 	rm -f dracut-*.rpm dracut-*.tar.bz2
+-- 
+1.7.3
+
diff --git a/0064-selinux-loadpolicy.sh-exit-for-selinux-0.patch b/0064-selinux-loadpolicy.sh-exit-for-selinux-0.patch
new file mode 100644
index 0000000..500e0ef
--- /dev/null
+++ b/0064-selinux-loadpolicy.sh-exit-for-selinux-0.patch
@@ -0,0 +1,66 @@
+From d8ad4bf55945c1f12aa0f5d3049df25eac193884 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 19 May 2010 10:01:33 +0200
+Subject: [PATCH 064/133] selinux-loadpolicy.sh: exit for "selinux=0"
+
+---
+ modules.d/99base/selinux-loadpolicy.sh |   17 +++++++----------
+ 1 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/99base/selinux-loadpolicy.sh b/modules.d/99base/selinux-loadpolicy.sh
+index 93d6f2c..7db9f8c 100755
+--- a/modules.d/99base/selinux-loadpolicy.sh
++++ b/modules.d/99base/selinux-loadpolicy.sh
+@@ -3,20 +3,15 @@
+ 
+ rd_load_policy()
+ {
++    # If SELinux is disabled exit now 
++    getarg "selinux=0" > /dev/null && return 0
+ 
+     SELINUX="enforcing"
+     [ -e "$NEWROOT/etc/selinux/config" ] && . "$NEWROOT/etc/selinux/config"
+ 
+-    disabled=0
+-    # If SELinux is disabled exit now 
+-    getarg "selinux=0" > /dev/null
+-    if [ $? -eq 0 -o "$SELINUX" = "disabled" ]; then
+-	disabled=1
+-    fi
+-
+     # Check whether SELinux is in permissive mode
+     permissive=0
+-    getarg "enforcing=0" > /dev/null
++    getarg "enforcing=0" > /dev/null 
+     if [ $? -eq 0 -o "$SELINUX" = "permissive" ]; then
+ 	permissive=1
+     fi
+@@ -37,13 +32,15 @@ rd_load_policy()
+             fi
+ 	} 2>&1 | vinfo
+ 
+-	if [ $disabled -eq 1 ]; then
++	if [ "$SELINUX" = "disabled" ]; then
+ 	    return 0;
+ 	fi
+ 
+ 	if [ $ret -eq 0 -o $ret -eq 2 ]; then
+ 	    # If machine requires a relabel, force to permissive mode
+ 	    [ -e "$NEWROOT"/.autorelabel ] && ( echo 0 > "$NEWROOT"/selinux/enforce )
++            mount --bind /dev "$NEWROOT/dev"
++            chroot "$NEWROOT" /sbin/restorecon -R /dev
+ 	    return 0
+ 	fi
+ 
+@@ -55,7 +52,7 @@ rd_load_policy()
+ 	    exit 1
+ 	fi
+ 	return 0
+-    elif [ $permissive -eq 0 -a $disabled -eq 0 ]; then
++    elif [ $permissive -eq 0 -a "$SELINUX" != "disabled" ]; then
+ 	warn "Machine in enforcing mode and cannot execute load_policy."
+ 	warn "To disable selinux, add selinux=0 to the kernel command line."
+ 	warn "Not continuing"
+-- 
+1.7.3
+
diff --git a/0065-dracut-functions-check-if-specific-dracut-module-is-.patch b/0065-dracut-functions-check-if-specific-dracut-module-is-.patch
new file mode 100644
index 0000000..bce2897
--- /dev/null
+++ b/0065-dracut-functions-check-if-specific-dracut-module-is-.patch
@@ -0,0 +1,40 @@
+From 225bc9e7aa62a9de131f70ae8f48fe56c204bd4a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 26 May 2010 17:42:57 +0200
+Subject: [PATCH 065/133] dracut-functions: check if specific dracut module is missing
+
+---
+ dracut-functions |   10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 7181d3f..fce5abb 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -393,6 +393,8 @@ should_source_module() {
+ }
+ 
+ check_modules() {
++    local modcheck;
++    local mod;
+     for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
+ 	local mod=${moddir##*/}; mod=${mod#[0-9][0-9]}
+ 	# If we are already scheduled to be loaded, no need to check again.
+@@ -407,6 +409,14 @@ check_modules() {
+         fi
+ 	mods_to_load+=" $mod "
+     done
++
++    modcheck=$add_dracutmodules
++    [[ $dracutmodules != all ]] && modcheck="$m $dracutmodules"
++    for mod in $modcheck; do
++        strstr "$mods_to_load" "$mod" && continue
++        strstr "$omit_dracutmodules" "$mod" && continue
++        dwarning "Dracut module \"$mod\" cannot be found."
++    done
+ }
+ 
+ # Install a single kernel module along with any firmware it may require.
+-- 
+1.7.3
+
diff --git a/0066-multipath-simplify-and-install-wwids-rhbz-595719.patch b/0066-multipath-simplify-and-install-wwids-rhbz-595719.patch
new file mode 100644
index 0000000..e5fc9c7
--- /dev/null
+++ b/0066-multipath-simplify-and-install-wwids-rhbz-595719.patch
@@ -0,0 +1,101 @@
+From 007cdb0b7231bf0fbd4797b84834d57b1d5975c0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 26 May 2010 17:44:07 +0200
+Subject: [PATCH 066/133] multipath: simplify and install wwids (rhbz 595719)
+
+install /etc/multipath/wwids
+
+With the proper 40-multipath.rules and new udev device-mapper mechanism,
+we don't need the multipath scan anymore.
+
+rhbz#595719
+---
+ modules.d/90multipath/9-multipath-scan.rules |    9 ---------
+ modules.d/90multipath/install                |    8 ++------
+ modules.d/90multipath/multipath-scan.sh      |   16 ----------------
+ modules.d/90multipath/multipathd.sh          |    1 +
+ 4 files changed, 3 insertions(+), 31 deletions(-)
+ delete mode 100644 modules.d/90multipath/9-multipath-scan.rules
+ delete mode 100755 modules.d/90multipath/multipath-scan.sh
+
+diff --git a/modules.d/90multipath/9-multipath-scan.rules b/modules.d/90multipath/9-multipath-scan.rules
+deleted file mode 100644
+index 99c2b7c..0000000
+--- a/modules.d/90multipath/9-multipath-scan.rules
++++ /dev/null
+@@ -1,9 +0,0 @@
+-# scan for multipath devices
+-SUBSYSTEM!="block", GOTO="end_mpath_scan"
+-KERNEL!="sd*", GOTO="end_mpath_scan"
+-PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", GOTO="end_mpath_scan"
+-RUN+="/sbin/modprobe dm-multipath"
+-RUN+="/bin/echo 'queuing multipath scan'"
+-RUN+="/sbin/initqueue --settled --onetime --unique --name mpscan /sbin/multipath-scan"
+-RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'"
+-LABEL="end_mpath_scan"
+diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install
+index 8b4d693..ed2d698 100755
+--- a/modules.d/90multipath/install
++++ b/modules.d/90multipath/install
+@@ -1,9 +1,5 @@
+ #!/bin/bash
+ 
+-if [ -f /etc/multipath.conf ]; then
+-    inst /etc/multipath.conf
+-fi
+-
+ if ldd $(which multipath) 2>/dev/null |grep -q lib64; then
+     LIBDIR="/lib64"
+ else
+@@ -19,6 +15,8 @@ for f in  \
+     /sbin/xdrgetuid \
+     /sbin/xdrgetprio \
+     /etc/xdrdevices.conf \
++    /etc/multipath.conf \
++    /etc/multipath/wwids \
+     $(ls $LIBDIR/libmultipath* $LIBDIR/multipath/* 2>/dev/null) \
+     	;do
+     [ -e "$f" ] && inst "$f"
+@@ -28,5 +26,3 @@ inst_hook pre-trigger 02 "$moddir/multipathd.sh"
+ inst_hook pre-pivot   02 "$moddir/multipathd-stop.sh"
+ inst_rules 40-multipath.rules
+ 
+-inst "$moddir/multipath-scan.sh" /sbin/multipath-scan
+-inst_rules "$moddir/9-multipath-scan.rules"
+diff --git a/modules.d/90multipath/multipath-scan.sh b/modules.d/90multipath/multipath-scan.sh
+deleted file mode 100755
+index 0e1d3f2..0000000
+--- a/modules.d/90multipath/multipath-scan.sh
++++ /dev/null
+@@ -1,16 +0,0 @@
+-#!/bin/sh
+-
+-# scan for multipaths if udev has settled
+-
+-. /lib/dracut-lib.sh
+-
+-[ -d /etc/multipath ] || mkdir -p /etc/multipath
+-mpdevs=$(
+-    for f in /tmp/.multipath-scan-* ; do
+-        [ -e "$f" ] || continue
+-        echo -n "${f##/tmp/.multipath-scan-} "
+-    done
+-)
+-
+-[ -e /etc/multipath.conf ] || exit 1
+-multipath ${mpdevs}
+diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh
+index 5dd8a4e..851c08e 100755
+--- a/modules.d/90multipath/multipathd.sh
++++ b/modules.d/90multipath/multipathd.sh
+@@ -1,6 +1,7 @@
+ #!/bin/sh
+ 
+ if [ -e /etc/multipath.conf ]; then
++        modprobe dm-multipath
+ 	multipathd
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0067-multipath-remove-multipath-udev-rules-if-no-multipat.patch b/0067-multipath-remove-multipath-udev-rules-if-no-multipat.patch
new file mode 100644
index 0000000..364fcea
--- /dev/null
+++ b/0067-multipath-remove-multipath-udev-rules-if-no-multipat.patch
@@ -0,0 +1,28 @@
+From 5705cd2edabd2d4ac3de65ba5378eb47a24ca7a2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 27 May 2010 14:34:02 +0200
+Subject: [PATCH 067/133] multipath: remove multipath udev rules, if no multipath.conf was found
+
+---
+ modules.d/90multipath/multipathd.sh |    6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh
+index 851c08e..e26ab84 100755
+--- a/modules.d/90multipath/multipathd.sh
++++ b/modules.d/90multipath/multipathd.sh
+@@ -1,7 +1,9 @@
+ #!/bin/sh
+ 
+ if [ -e /etc/multipath.conf ]; then
+-        modprobe dm-multipath
+-	multipathd
++    modprobe dm-multipath
++    multipathd
++else
++    rm /etc/udev/rules.d/??-multipath.rules 2>/dev/null    
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0068-90crypt-crypto_LUKS-identifier-corrected.patch b/0068-90crypt-crypto_LUKS-identifier-corrected.patch
new file mode 100644
index 0000000..cbd4d62
--- /dev/null
+++ b/0068-90crypt-crypto_LUKS-identifier-corrected.patch
@@ -0,0 +1,25 @@
+From cbb5583b1da25bb87b9491e0085508254ae038f8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe at aidecoe.name>
+Date: Wed, 9 Jun 2010 10:40:31 +0200
+Subject: [PATCH 068/133] 90crypt: 'crypto_LUKS' identifier corrected
+
+---
+ modules.d/90crypt/check |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90crypt/check b/modules.d/90crypt/check
+index 07c53f9..852695b 100755
+--- a/modules.d/90crypt/check
++++ b/modules.d/90crypt/check
+@@ -19,7 +19,7 @@ is_crypt() { [[ $(get_fs_type /dev/block/$1) = crypto_LUKS ]]; }
+ 	check_block_and_slaves is_crypt "$rootdev" || exit 1
+     else
+ 	# root is not on a block device, use the shotgun approach
+-	blkid | grep -q crypt_LUKS || exit 1
++	blkid | grep -q crypto\?_LUKS || exit 1
+     fi
+ }
+ 
+-- 
+1.7.3
+
diff --git a/0069-selinux-move-selinux-to-a-separate-module.patch b/0069-selinux-move-selinux-to-a-separate-module.patch
new file mode 100644
index 0000000..c14eae8
--- /dev/null
+++ b/0069-selinux-move-selinux-to-a-separate-module.patch
@@ -0,0 +1,194 @@
+From d99f5d547a70af450bed9f44884af2141bd499c1 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 9 Jun 2010 11:22:22 +0200
+Subject: [PATCH 069/133] selinux: move selinux to a separate module
+
+---
+ modules.d/98selinux/check                 |    8 ++++
+ modules.d/98selinux/install               |    2 +
+ modules.d/98selinux/selinux-loadpolicy.sh |   64 +++++++++++++++++++++++++++++
+ modules.d/99base/install                  |    3 -
+ modules.d/99base/selinux-loadpolicy.sh    |   64 -----------------------------
+ 5 files changed, 74 insertions(+), 67 deletions(-)
+ create mode 100755 modules.d/98selinux/check
+ create mode 100755 modules.d/98selinux/install
+ create mode 100755 modules.d/98selinux/selinux-loadpolicy.sh
+ delete mode 100755 modules.d/99base/selinux-loadpolicy.sh
+
+diff --git a/modules.d/98selinux/check b/modules.d/98selinux/check
+new file mode 100755
+index 0000000..751b002
+--- /dev/null
++++ b/modules.d/98selinux/check
+@@ -0,0 +1,8 @@
++#!/bin/bash
++[[ $1 = '-h' ]] && {
++    [ -x "/usr/sbin/load_policy" -o -x "/sbin/load_policy" ] || exit 1
++    exit 0
++}
++
++exit 0
++
+diff --git a/modules.d/98selinux/install b/modules.d/98selinux/install
+new file mode 100755
+index 0000000..4216c77
+--- /dev/null
++++ b/modules.d/98selinux/install
+@@ -0,0 +1,2 @@
++#!/bin/bash
++inst_hook pre-pivot 50 "$moddir/selinux-loadpolicy.sh"
+diff --git a/modules.d/98selinux/selinux-loadpolicy.sh b/modules.d/98selinux/selinux-loadpolicy.sh
+new file mode 100755
+index 0000000..7db9f8c
+--- /dev/null
++++ b/modules.d/98selinux/selinux-loadpolicy.sh
+@@ -0,0 +1,64 @@
++#!/bin/sh
++# FIXME: load selinux policy.  this should really be done after we switchroot 
++
++rd_load_policy()
++{
++    # If SELinux is disabled exit now 
++    getarg "selinux=0" > /dev/null && return 0
++
++    SELINUX="enforcing"
++    [ -e "$NEWROOT/etc/selinux/config" ] && . "$NEWROOT/etc/selinux/config"
++
++    # Check whether SELinux is in permissive mode
++    permissive=0
++    getarg "enforcing=0" > /dev/null 
++    if [ $? -eq 0 -o "$SELINUX" = "permissive" ]; then
++	permissive=1
++    fi
++
++    # Attempt to load SELinux Policy
++    if [ -x "$NEWROOT/usr/sbin/load_policy" -o -x "$NEWROOT/sbin/load_policy" ]; then
++	ret=0
++	info "Loading SELinux policy"
++	{
++            # load_policy does mount /proc and /selinux in 
++            # libselinux,selinux_init_load_policy()
++            if [ -x "$NEWROOT/sbin/load_policy" ]; then
++		chroot "$NEWROOT" /sbin/load_policy -i
++		ret=$?
++            else
++		chroot "$NEWROOT" /usr/sbin/load_policy -i
++		ret=$?
++            fi
++	} 2>&1 | vinfo
++
++	if [ "$SELINUX" = "disabled" ]; then
++	    return 0;
++	fi
++
++	if [ $ret -eq 0 -o $ret -eq 2 ]; then
++	    # If machine requires a relabel, force to permissive mode
++	    [ -e "$NEWROOT"/.autorelabel ] && ( echo 0 > "$NEWROOT"/selinux/enforce )
++            mount --bind /dev "$NEWROOT/dev"
++            chroot "$NEWROOT" /sbin/restorecon -R /dev
++	    return 0
++	fi
++
++	warn "Initial SELinux policy load failed."
++	if [ $ret -eq 3 -o $permissive -eq 0 ]; then
++	    warn "Machine in enforcing mode."
++	    warn "Not continuing"
++	    sleep 100d
++	    exit 1
++	fi
++	return 0
++    elif [ $permissive -eq 0 -a "$SELINUX" != "disabled" ]; then
++	warn "Machine in enforcing mode and cannot execute load_policy."
++	warn "To disable selinux, add selinux=0 to the kernel command line."
++	warn "Not continuing"
++	sleep 100d
++	exit 1
++    fi
++}
++
++rd_load_policy
+diff --git a/modules.d/99base/install b/modules.d/99base/install
+index c0dff8c..6ba9e7e 100755
+--- a/modules.d/99base/install
++++ b/modules.d/99base/install
+@@ -23,7 +23,4 @@ fi
+ inst "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh"
+ inst_hook cmdline 10 "$moddir/parse-root-opts.sh"
+ inst_hook cmdline 20 "$moddir/parse-blacklist.sh"
+-if [ -x "/usr/sbin/load_policy" -o -x "/sbin/load_policy" ]; then
+-	inst_hook pre-pivot 50 "$moddir/selinux-loadpolicy.sh"
+-fi
+ mkdir -p "${initdir}/var/run"
+diff --git a/modules.d/99base/selinux-loadpolicy.sh b/modules.d/99base/selinux-loadpolicy.sh
+deleted file mode 100755
+index 7db9f8c..0000000
+--- a/modules.d/99base/selinux-loadpolicy.sh
++++ /dev/null
+@@ -1,64 +0,0 @@
+-#!/bin/sh
+-# FIXME: load selinux policy.  this should really be done after we switchroot 
+-
+-rd_load_policy()
+-{
+-    # If SELinux is disabled exit now 
+-    getarg "selinux=0" > /dev/null && return 0
+-
+-    SELINUX="enforcing"
+-    [ -e "$NEWROOT/etc/selinux/config" ] && . "$NEWROOT/etc/selinux/config"
+-
+-    # Check whether SELinux is in permissive mode
+-    permissive=0
+-    getarg "enforcing=0" > /dev/null 
+-    if [ $? -eq 0 -o "$SELINUX" = "permissive" ]; then
+-	permissive=1
+-    fi
+-
+-    # Attempt to load SELinux Policy
+-    if [ -x "$NEWROOT/usr/sbin/load_policy" -o -x "$NEWROOT/sbin/load_policy" ]; then
+-	ret=0
+-	info "Loading SELinux policy"
+-	{
+-            # load_policy does mount /proc and /selinux in 
+-            # libselinux,selinux_init_load_policy()
+-            if [ -x "$NEWROOT/sbin/load_policy" ]; then
+-		chroot "$NEWROOT" /sbin/load_policy -i
+-		ret=$?
+-            else
+-		chroot "$NEWROOT" /usr/sbin/load_policy -i
+-		ret=$?
+-            fi
+-	} 2>&1 | vinfo
+-
+-	if [ "$SELINUX" = "disabled" ]; then
+-	    return 0;
+-	fi
+-
+-	if [ $ret -eq 0 -o $ret -eq 2 ]; then
+-	    # If machine requires a relabel, force to permissive mode
+-	    [ -e "$NEWROOT"/.autorelabel ] && ( echo 0 > "$NEWROOT"/selinux/enforce )
+-            mount --bind /dev "$NEWROOT/dev"
+-            chroot "$NEWROOT" /sbin/restorecon -R /dev
+-	    return 0
+-	fi
+-
+-	warn "Initial SELinux policy load failed."
+-	if [ $ret -eq 3 -o $permissive -eq 0 ]; then
+-	    warn "Machine in enforcing mode."
+-	    warn "Not continuing"
+-	    sleep 100d
+-	    exit 1
+-	fi
+-	return 0
+-    elif [ $permissive -eq 0 -a "$SELINUX" != "disabled" ]; then
+-	warn "Machine in enforcing mode and cannot execute load_policy."
+-	warn "To disable selinux, add selinux=0 to the kernel command line."
+-	warn "Not continuing"
+-	sleep 100d
+-	exit 1
+-    fi
+-}
+-
+-rd_load_policy
+-- 
+1.7.3
+
diff --git a/0070-plymouth-cryptroot-ask.sh-beautify-password-prompt.patch b/0070-plymouth-cryptroot-ask.sh-beautify-password-prompt.patch
new file mode 100644
index 0000000..6214e71
--- /dev/null
+++ b/0070-plymouth-cryptroot-ask.sh-beautify-password-prompt.patch
@@ -0,0 +1,32 @@
+From c634889ecd248be9b9eaf78e8f1ee2a0913d94bf Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 9 Jun 2010 11:56:06 +0200
+Subject: [PATCH 070/133] plymouth/cryptroot-ask.sh: beautify password prompt
+
+---
+ modules.d/50plymouth/cryptroot-ask.sh |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/50plymouth/cryptroot-ask.sh b/modules.d/50plymouth/cryptroot-ask.sh
+index 7dee9a1..3897b33 100755
+--- a/modules.d/50plymouth/cryptroot-ask.sh
++++ b/modules.d/50plymouth/cryptroot-ask.sh
+@@ -68,13 +68,13 @@ unset LUKS luks luuid
+ if [ $ask -gt 0 ]; then
+     info "luksOpen $device $luksname"
+     if [ $num -eq 1 ]; then
+-         prompt="Password:"
++         prompt="Password for filesystem"
+     else
+          prompt="Password [$device ($luksname)]:" 
+          if [ ${#luksname} -gt 8 ]; then
+ 	     sluksname=${sluksname##luks-}
+              sluksname=${luksname%%${luksname##????????}}
+-             prompt="Password [$device ($sluksname...)]:"
++             prompt="Password for $device ($sluksname...)"
+          fi
+     fi
+     # flock against other interactive activities
+-- 
+1.7.3
+
diff --git a/0071-network-depend-on-ifcfg-if-etc-sysconfig-network-scr.patch b/0071-network-depend-on-ifcfg-if-etc-sysconfig-network-scr.patch
new file mode 100644
index 0000000..aabac7f
--- /dev/null
+++ b/0071-network-depend-on-ifcfg-if-etc-sysconfig-network-scr.patch
@@ -0,0 +1,50 @@
+From 872c785b8e4786584767f4c73fd5c0e16d699228 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 10 Jun 2010 13:52:31 +0200
+Subject: [PATCH 071/133] network: depend on ifcfg, if /etc/sysconfig/network-scripts exist
+
+---
+ modules.d/40network/check |    8 ++++++++
+ modules.d/45ifcfg/check   |    4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/40network/check b/modules.d/40network/check
+index e5cd87e..48b7f12 100755
+--- a/modules.d/40network/check
++++ b/modules.d/40network/check
+@@ -1,5 +1,10 @@
+ #!/bin/bash
+ 
++if [[ $1 = -d ]]; then
++  [ -d /etc/sysconfig/network-scripts/ ] && echo ifcfg
++  exit 0
++fi
++
+ . $dracutfunctions
+ 
+ for program in ip arping; do 
+@@ -15,5 +20,8 @@ for program in dhclient brctl; do
+     dwarning "Could not find program \"$program\" it might be required by network." 
+   fi
+ done
++
++
++
+ exit 255
+ 
+diff --git a/modules.d/45ifcfg/check b/modules.d/45ifcfg/check
+index 6ebc8d4..b8e40d9 100755
+--- a/modules.d/45ifcfg/check
++++ b/modules.d/45ifcfg/check
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+-[ -d /etc/sysconfig/network-scripts/ ] || exit 1
+ 
+-[[ $1 = -d ]] && echo network
++# ifcfg is required by network
++#[[ $1 = -d ]] && echo network
+ 
+ exit 255
+-- 
+1.7.3
+
diff --git a/0072-network-strip-pxelinux-hardware-type-field-from-BOOT.patch b/0072-network-strip-pxelinux-hardware-type-field-from-BOOT.patch
new file mode 100644
index 0000000..b432230
--- /dev/null
+++ b/0072-network-strip-pxelinux-hardware-type-field-from-BOOT.patch
@@ -0,0 +1,25 @@
+From 77e9227304af8e4f2e8bbee4013ab7db0ccb4f04 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 11 Jun 2010 13:16:36 +0200
+Subject: [PATCH 072/133] network: strip pxelinux hardware type field from BOOTIF
+
+---
+ modules.d/40network/net-genrules.sh |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
+index 10d6ecd..7a26909 100755
+--- a/modules.d/40network/net-genrules.sh
++++ b/modules.d/40network/net-genrules.sh
+@@ -6,6 +6,8 @@ fix_bootif() {
+     local IFS='-'
+     macaddr=$(for i in ${macaddr} ; do echo -n $i:; done)
+     macaddr=${macaddr%:}
++    # strip hardware type field from pxelinux
++    [ -n "${macaddr%??:??:??:??:??:??}" ] && macaddr=${macaddr#??:}
+     echo $macaddr
+ }
+ 
+-- 
+1.7.3
+
diff --git a/0073-dracut.spec-moved-znet-to-dracut-network.patch b/0073-dracut.spec-moved-znet-to-dracut-network.patch
new file mode 100644
index 0000000..d481d8b
--- /dev/null
+++ b/0073-dracut.spec-moved-znet-to-dracut-network.patch
@@ -0,0 +1,32 @@
+From a3e125cb6c306eca510fcc508a2e812d172de977 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 17 Jun 2010 10:45:39 +0200
+Subject: [PATCH 073/133] dracut.spec: moved znet to dracut-network
+
+---
+ dracut.spec |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index a25b92f..b47d6d2 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -186,7 +186,6 @@ rm -rf $RPM_BUILD_ROOT
+ %{_datadir}/dracut/modules.d/95dasd
+ %{_datadir}/dracut/modules.d/95dasd_mod
+ %{_datadir}/dracut/modules.d/95zfcp
+-%{_datadir}/dracut/modules.d/95znet
+ %{_datadir}/dracut/modules.d/95terminfo
+ %{_datadir}/dracut/modules.d/95udev-rules
+ %{_datadir}/dracut/modules.d/95uswsusp
+@@ -205,6 +204,7 @@ rm -rf $RPM_BUILD_ROOT
+ %{_datadir}/dracut/modules.d/95nbd
+ %{_datadir}/dracut/modules.d/95nfs
+ %{_datadir}/dracut/modules.d/45ifcfg
++%{_datadir}/dracut/modules.d/95znet
+ 
+ %files fips
+ %defattr(-,root,root,0755)
+-- 
+1.7.3
+
diff --git a/0074-Write-rules-for-symlinks-to-dev-.udev-rules.d-for-la.patch b/0074-Write-rules-for-symlinks-to-dev-.udev-rules.d-for-la.patch
new file mode 100644
index 0000000..dbe9cbe
--- /dev/null
+++ b/0074-Write-rules-for-symlinks-to-dev-.udev-rules.d-for-la.patch
@@ -0,0 +1,99 @@
+From 875e5da1b1c23e52cd6a62cb1fe64157714d45d3 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 22 Jun 2010 10:30:39 +0200
+Subject: [PATCH 074/133] Write rules for symlinks to /dev/.udev/rules.d for later usage
+
+We want some symlinks to persist in the real root, so we write them to
+/dev/.udev/rules.d, that they survive a retrigger.
+---
+ .../90dmsquash-live/dmsquash-live-genrules.sh      |    8 +++++---
+ .../90dmsquash-live/dmsquash-liveiso-genrules.sh   |    4 ++--
+ modules.d/95resume/resume-genrules.sh              |   12 ++++++++----
+ modules.d/95rootfs-block/block-genrules.sh         |    5 +++--
+ 4 files changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+index 56199d5..1057c8c 100644
+--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+@@ -1,14 +1,16 @@
+ if [ "${root%%:*}" = "live" ]; then
+-    (
++    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
++    {
+     printf 'KERNEL=="%s", SYMLINK+="live"\n' \
+     	${root#live:/dev/} 
+     printf 'SYMLINK=="%s", SYMLINK+="live"\n' \
+ 	${root#live:/dev/} 
++    } >> /dev/.udev/rules.d/99-live-mount.rules
++    {
+     printf 'KERNEL=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
+     	${root#live:/dev/} 
+     printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
+ 	${root#live:/dev/} 
+-
+-    ) >> /etc/udev/rules.d/99-live-mount.rules
++    } >> /etc/udev/rules.d/99-live-mount.rules
+     echo '[ -e /dev/root ]' > /initqueue-finished/dmsquash.sh
+ fi
+diff --git a/modules.d/90dmsquash-live/dmsquash-liveiso-genrules.sh b/modules.d/90dmsquash-live/dmsquash-liveiso-genrules.sh
+index a196202..fa771f8 100644
+--- a/modules.d/90dmsquash-live/dmsquash-liveiso-genrules.sh
++++ b/modules.d/90dmsquash-live/dmsquash-liveiso-genrules.sh
+@@ -1,7 +1,7 @@
+ if [ "${root%%:*}" = "liveiso" ]; then
+-    (
++    {
+      printf 'KERNEL=="loop0", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root `/sbin/losetup -f --show %s`"\n' \
+ 	  ${root#liveiso:}
+-    ) >> /etc/udev/rules.d/99-liveiso-mount.rules
++    } >> /etc/udev/rules.d/99-liveiso-mount.rules
+     echo '[ -e /dev/root ]' > /initqueue-finished/dmsquash.sh
+ fi
+diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
+index a00a362..59e1024 100644
+--- a/modules.d/95resume/resume-genrules.sh
++++ b/modules.d/95resume/resume-genrules.sh
+@@ -1,13 +1,17 @@
+ if [ -n "$resume" ]; then
++    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
+     {
+-    printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \
+-		${resume#/dev/};
+-    printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \
+-		${resume#/dev/};
+     printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ 		${resume#/dev/};
+     printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ 		${resume#/dev/};
++    } >> /dev/.udev/rules.d/99-resume.rules
++
++    {
++    printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \
++		${resume#/dev/};
++    printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \
++		${resume#/dev/};
+     } >> /etc/udev/rules.d/99-resume.rules
+ 
+     printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm "$job"; }\n' \
+diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh
+index 1b650f8..80e0c4c 100644
+--- a/modules.d/95rootfs-block/block-genrules.sh
++++ b/modules.d/95rootfs-block/block-genrules.sh
+@@ -1,10 +1,11 @@
+ if [ "${root%%:*}" = "block" ]; then
+-    (
++    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
++    {
+     printf 'KERNEL=="%s", SYMLINK+="root"\n' \
+ 	${root#block:/dev/} 
+     printf 'SYMLINK=="%s", SYMLINK+="root"\n' \
+ 	${root#block:/dev/} 
+-    ) >> /etc/udev/rules.d/99-mount.rules
++    } >> /dev/.udev/rules.d/99-root.rules
+     
+     printf '[ -e "%s" ] && { ln -s "%s" /dev/root 2>/dev/null; rm "$job"; }\n' \
+ 	"${root#block:}" "${root#block:}" >> /initqueue-settled/blocksymlink.sh
+-- 
+1.7.3
+
diff --git a/0075-dracut-functions-set-LANG-C-for-ldd-output-parsing.patch b/0075-dracut-functions-set-LANG-C-for-ldd-output-parsing.patch
new file mode 100644
index 0000000..8733df0
--- /dev/null
+++ b/0075-dracut-functions-set-LANG-C-for-ldd-output-parsing.patch
@@ -0,0 +1,25 @@
+From 1c9e3d0152b0b161ed942e5751992e1cd7a768ca Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 22 Jun 2010 10:32:25 +0200
+Subject: [PATCH 075/133] dracut-functions: set LANG=C for ldd output parsing
+
+---
+ dracut-functions |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index fce5abb..8c4a938 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -221,7 +221,7 @@ inst_binary() {
+     local LDSO NAME IO FILE ADDR I1 n f TLIBDIR
+     [[ -e $initdir$target ]] && return 0
+     # I love bash!
+-    ldd $bin 2>/dev/null | while read line; do
++    LANG=C ldd $bin 2>/dev/null | while read line; do
+ 	[[ $line = 'not a dynamic executable' ]] && return 1
+ 	if [[ $line =~ not\ found ]]; then
+ 	    derror "Missing a shared library required by $bin."
+-- 
+1.7.3
+
diff --git a/0076-dracut-functions-use-LC_ALL-C-rather-than-LANG-C.patch b/0076-dracut-functions-use-LC_ALL-C-rather-than-LANG-C.patch
new file mode 100644
index 0000000..3babec5
--- /dev/null
+++ b/0076-dracut-functions-use-LC_ALL-C-rather-than-LANG-C.patch
@@ -0,0 +1,25 @@
+From b3cf8f22bc3c04796a8c0dfb2c5199e9f86496ce Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 22 Jun 2010 11:59:49 +0200
+Subject: [PATCH 076/133] dracut-functions: use LC_ALL=C rather than LANG=C
+
+---
+ dracut-functions |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 8c4a938..5df4fbb 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -221,7 +221,7 @@ inst_binary() {
+     local LDSO NAME IO FILE ADDR I1 n f TLIBDIR
+     [[ -e $initdir$target ]] && return 0
+     # I love bash!
+-    LANG=C ldd $bin 2>/dev/null | while read line; do
++    LC_ALL=C ldd $bin 2>/dev/null | while read line; do
+ 	[[ $line = 'not a dynamic executable' ]] && return 1
+ 	if [[ $line =~ not\ found ]]; then
+ 	    derror "Missing a shared library required by $bin."
+-- 
+1.7.3
+
diff --git a/0077-dmsquash-resume-do-not-name-the-dev-.udev-rules-like.patch b/0077-dmsquash-resume-do-not-name-the-dev-.udev-rules-like.patch
new file mode 100644
index 0000000..d053cf6
--- /dev/null
+++ b/0077-dmsquash-resume-do-not-name-the-dev-.udev-rules-like.patch
@@ -0,0 +1,38 @@
+From 0d5c51c517147ed9c8f5e4afc36e73f4619937a7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 25 Jun 2010 11:42:51 +0200
+Subject: [PATCH 077/133] dmsquash, resume: do not name the /dev/.udev/rules like the /etc ones
+
+---
+ .../90dmsquash-live/dmsquash-live-genrules.sh      |    2 +-
+ modules.d/95resume/resume-genrules.sh              |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+index 1057c8c..f3ea0a3 100644
+--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+@@ -11,6 +11,6 @@ if [ "${root%%:*}" = "live" ]; then
+     	${root#live:/dev/} 
+     printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root $env{DEVNAME}"\n' \
+ 	${root#live:/dev/} 
+-    } >> /etc/udev/rules.d/99-live-mount.rules
++    } >> /etc/udev/rules.d/99-live-squash.rules
+     echo '[ -e /dev/root ]' > /initqueue-finished/dmsquash.sh
+ fi
+diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
+index 59e1024..dfe0e2d 100644
+--- a/modules.d/95resume/resume-genrules.sh
++++ b/modules.d/95resume/resume-genrules.sh
+@@ -5,7 +5,7 @@ if [ -n "$resume" ]; then
+ 		${resume#/dev/};
+     printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ 		${resume#/dev/};
+-    } >> /dev/.udev/rules.d/99-resume.rules
++    } >> /dev/.udev/rules.d/99-resume-link.rules
+ 
+     {
+     printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/bin/sh -c 'echo %%M:%%m > /sys/power/resume'\"\n" \
+-- 
+1.7.3
+
diff --git a/0078-dmsquash-live-mount-live-image-at-dev-.initramfs-liv.patch b/0078-dmsquash-live-mount-live-image-at-dev-.initramfs-liv.patch
new file mode 100644
index 0000000..a947310
--- /dev/null
+++ b/0078-dmsquash-live-mount-live-image-at-dev-.initramfs-liv.patch
@@ -0,0 +1,82 @@
+From 6a516d6a39eae74b433d6c9df176e781299f66ba Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 6 Jul 2010 10:16:25 +0200
+Subject: [PATCH 078/133] dmsquash-live: mount live image at /dev/.initramfs/live
+
+---
+ modules.d/90dmsquash-live/dmsquash-live-root |   21 +++++++++++----------
+ 1 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
+index c98cdef..dc7c737 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root
++++ b/modules.d/90dmsquash-live/dmsquash-live-root
+@@ -41,7 +41,8 @@ getarg ro && liverw=ro
+ getarg rw && liverw=rw
+ [ -z "$liverw" ] && liverw=ro
+ # mount the backing of the live image first
+-mount -n -t $fstype -o $liverw $livedev $NEWROOT
++mkdir -p /dev/.initramfs/live
++mount -n -t $fstype -o $liverw $livedev /dev/.initramfs/live
+ RES=$?
+ if [ "$RES" != "0" ]; then
+     die "Failed to mount block device of live image"
+@@ -105,8 +106,8 @@ do_live_from_base_loop() {
+ }
+ 
+ # we might have a genMinInstDelta delta file for anaconda to take advantage of
+-if [ -e $NEWROOT/${live_dir}/osmin.img ]; then
+-    OSMINSQFS=$NEWROOT/${live_dir}/osmin.img
++if [ -e /dev/.initramfs/live/${live_dir}/osmin.img ]; then
++    OSMINSQFS=/dev/.initramfs/live/${live_dir}/osmin.img
+ fi
+ 
+ if [ -n "$OSMINSQFS" ]; then
+@@ -122,21 +123,21 @@ if [ -n "$OSMINSQFS" ]; then
+ fi
+ 
+ # we might have just an embedded ext3 to use as rootfs (uncompressed live)
+-if [ -e $NEWROOT/${live_dir}/ext3fs.img ]; then
+-  EXT3FS="$NEWROOT/${live_dir}/ext3fs.img"
++if [ -e /dev/.initramfs/live/${live_dir}/ext3fs.img ]; then
++  EXT3FS="/dev/.initramfs/live/${live_dir}/ext3fs.img"
+ fi
+ 
+ if [ -n "$EXT3FS" ] ; then
+     BASE_LOOPDEV=$( losetup -f )
+     losetup -r $BASE_LOOPDEV $EXT3FS
+-    umount -l $NEWROOT
++    umount -l /dev/.initramfs/live
+ 
+     do_live_from_base_loop
+ fi
+ 
+ # we might have an embedded ext3 on squashfs to use as rootfs (compressed live)
+-if [ -e $NEWROOT/${live_dir}/squashfs.img ]; then
+-  SQUASHED="$NEWROOT/${live_dir}/squashfs.img"
++if [ -e /dev/.initramfs/live/${live_dir}/squashfs.img ]; then
++  SQUASHED="/dev/.initramfs/live/${live_dir}/squashfs.img"
+ fi
+ 
+ if [ -e "$SQUASHED" ] ; then
+@@ -144,7 +145,7 @@ if [ -e "$SQUASHED" ] ; then
+         echo "Copying live image to RAM..."
+         echo "(this may take a few minutes)"
+         dd if=$SQUASHED of=/squashed.img bs=512 2> /dev/null
+-        umount -n $NEWROOT
++        umount -n /dev/.initramfs/live
+         echo "Done copying live image to RAM."
+         eject -p $livedev || :
+         SQUASHED="/squashed.img"
+@@ -160,7 +161,7 @@ if [ -e "$SQUASHED" ] ; then
+ 
+     umount -l /squashfs
+     if [ -z "$live_ram" ] ; then
+-        umount -l $NEWROOT
++        umount -l /dev/.initramfs/live
+     fi
+ 
+     do_live_from_base_loop
+-- 
+1.7.3
+
diff --git a/0079-dmsquash-live-depend-on-dm-module.patch b/0079-dmsquash-live-depend-on-dm-module.patch
new file mode 100644
index 0000000..de973e7
--- /dev/null
+++ b/0079-dmsquash-live-depend-on-dm-module.patch
@@ -0,0 +1,28 @@
+From 19f5f76bebb4b26f38ea47699b2533ad8246d352 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 8 Jul 2010 16:14:55 +0200
+Subject: [PATCH 079/133] dmsquash-live: depend on dm module
+
+---
+ modules.d/90dmsquash-live/check |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/check b/modules.d/90dmsquash-live/check
+index 54e5007..ae7306e 100755
+--- a/modules.d/90dmsquash-live/check
++++ b/modules.d/90dmsquash-live/check
+@@ -2,7 +2,10 @@
+ 
+ # if dmsetup is not installed, then we cannot support fedora/red hat 
+ # style live images
+-which dmsetup >/dev/null 2>&1 || exit 1
++if [ "$1" = "-d" ]; then
++    echo dm
++    exit 0
++fi
+ 
+ # a live host-only image doesn't really make a lot of sense
+ if [ "$1" = "-h" ] ; then
+-- 
+1.7.3
+
diff --git a/0080-dmsquash-live-do-not-umount-dev-.initramfs-live-for-.patch b/0080-dmsquash-live-do-not-umount-dev-.initramfs-live-for-.patch
new file mode 100644
index 0000000..8eb64fb
--- /dev/null
+++ b/0080-dmsquash-live-do-not-umount-dev-.initramfs-live-for-.patch
@@ -0,0 +1,34 @@
+From bf04221cc283989cc01cdac7adf804e6ce6506a5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 9 Jul 2010 11:18:31 +0200
+Subject: [PATCH 080/133] dmsquash-live: do not umount /dev/.initramfs/live for cdrom_id to work
+
+---
+ modules.d/90dmsquash-live/dmsquash-live-root |    4 ----
+ 1 files changed, 0 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
+index dc7c737..1b7fe19 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root
++++ b/modules.d/90dmsquash-live/dmsquash-live-root
+@@ -130,7 +130,6 @@ fi
+ if [ -n "$EXT3FS" ] ; then
+     BASE_LOOPDEV=$( losetup -f )
+     losetup -r $BASE_LOOPDEV $EXT3FS
+-    umount -l /dev/.initramfs/live
+ 
+     do_live_from_base_loop
+ fi
+@@ -160,9 +159,6 @@ if [ -e "$SQUASHED" ] ; then
+     losetup -r $BASE_LOOPDEV /squashfs/LiveOS/ext3fs.img
+ 
+     umount -l /squashfs
+-    if [ -z "$live_ram" ] ; then
+-        umount -l /dev/.initramfs/live
+-    fi
+ 
+     do_live_from_base_loop
+ fi
+-- 
+1.7.3
+
diff --git a/0081-plymouth-depend-on-crypt-if-cryptsetup-exists.patch b/0081-plymouth-depend-on-crypt-if-cryptsetup-exists.patch
new file mode 100644
index 0000000..9b2888b
--- /dev/null
+++ b/0081-plymouth-depend-on-crypt-if-cryptsetup-exists.patch
@@ -0,0 +1,21 @@
+From 35e91992f18e867aa45b87c31d7841b76525f153 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 9 Jul 2010 11:19:32 +0200
+Subject: [PATCH 081/133] plymouth: depend on crypt, if cryptsetup exists
+
+---
+ modules.d/50plymouth/check |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/50plymouth/check b/modules.d/50plymouth/check
+index 838e7e2..ceb26a7 100755
+--- a/modules.d/50plymouth/check
++++ b/modules.d/50plymouth/check
+@@ -1,3 +1,3 @@
+ #!/bin/bash
+-[[ $1 = -d ]] && echo crypt
++[[ $1 = -d ]] && which cryptsetup &>/dev/null && echo crypt
+ [[ -x /sbin/plymouthd && -x /bin/plymouth && -x /usr/sbin/plymouth-set-default-theme ]]
+-- 
+1.7.3
+
diff --git a/0082-dracut.spec-removed-duplicate-COPYING.patch b/0082-dracut.spec-removed-duplicate-COPYING.patch
new file mode 100644
index 0000000..6fb1c52
--- /dev/null
+++ b/0082-dracut.spec-removed-duplicate-COPYING.patch
@@ -0,0 +1,48 @@
+From d9c651ae0b536e33af52991c202fc9f6af813dc7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 9 Jul 2010 11:19:57 +0200
+Subject: [PATCH 082/133] dracut.spec: removed duplicate COPYING
+
+---
+ dracut.spec |    4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index b47d6d2..04a699b 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -118,6 +118,7 @@ Requires: coreutils cryptsetup-luks device-mapper
+ Requires: diffutils dmraid findutils grep lvm2 gawk
+ Requires: module-init-tools sed
+ Requires: cpio gzip
++Requires: %{name} = %{version}-%{release}
+ 
+ %description tools
+ This package contains tools to assemble the local initrd and host configuration.
+@@ -197,7 +198,6 @@ rm -rf $RPM_BUILD_ROOT
+ 
+ %files network
+ %defattr(-,root,root,0755)
+-%doc README HACKING TODO COPYING AUTHORS NEWS
+ %{_datadir}/dracut/modules.d/40network
+ %{_datadir}/dracut/modules.d/95fcoe
+ %{_datadir}/dracut/modules.d/95iscsi
+@@ -208,7 +208,6 @@ rm -rf $RPM_BUILD_ROOT
+ 
+ %files fips
+ %defattr(-,root,root,0755)
+-%doc COPYING
+ %{_datadir}/dracut/modules.d/01fips
+ 
+ %files generic
+@@ -217,7 +216,6 @@ rm -rf $RPM_BUILD_ROOT
+ 
+ %files tools 
+ %defattr(-,root,root,0755)
+-%doc COPYING NEWS
+ %{_mandir}/man8/dracut-gencmdline.8*
+ %{_mandir}/man8/dracut-catimages.8*
+ /sbin/dracut-gencmdline
+-- 
+1.7.3
+
diff --git a/0083-Just-look-for-cryptroot-instead-of-sbin-cryptroot.patch b/0083-Just-look-for-cryptroot-instead-of-sbin-cryptroot.patch
new file mode 100644
index 0000000..357678f
--- /dev/null
+++ b/0083-Just-look-for-cryptroot-instead-of-sbin-cryptroot.patch
@@ -0,0 +1,27 @@
+From 9e11aa8b8dea6a53e85436fad89bb35755813bd1 Mon Sep 17 00:00:00 2001
+From: Victor Lowther <victor.lowther at gmail.com>
+Date: Wed, 2 Jun 2010 07:07:55 -0500
+Subject: [PATCH 083/133] Just look for cryptroot instead of /sbin/cryptroot
+
+We know what the path is and what it contains in the initrd, and
+not everyone puts cryptroot in /sbin
+---
+ modules.d/90crypt/cryptroot-ask.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 13487c8..2f39667 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -68,7 +68,7 @@ if [ $ask -gt 0 ]; then
+     # flock against other interactive activities
+     { flock -s 9; 
+ 	echo -n "$device ($luksname) is password protected"
+-	/sbin/cryptsetup luksOpen -T1 $1 $luksname 
++	cryptsetup luksOpen -T1 $1 $luksname 
+     } 9>/.console.lock
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0084-Have-cryptroot-ask-load-dm_crypt-if-needed.patch b/0084-Have-cryptroot-ask-load-dm_crypt-if-needed.patch
new file mode 100644
index 0000000..41f9ee5
--- /dev/null
+++ b/0084-Have-cryptroot-ask-load-dm_crypt-if-needed.patch
@@ -0,0 +1,26 @@
+From 088cadc41b7cf22839cfc486a2cec4d74bca283f Mon Sep 17 00:00:00 2001
+From: Victor Lowther <victor.lowther at gmail.com>
+Date: Wed, 2 Jun 2010 07:07:55 -0500
+Subject: [PATCH 084/133] Have cryptroot-ask load dm_crypt if needed.
+
+---
+ modules.d/90crypt/cryptroot-ask.sh |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 2f39667..430155a 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -9,6 +9,9 @@
+ # we already asked for this device
+ [ -f /tmp/cryptroot-asked-$2 ] && exit 0
+ 
++# load dm_crypt if it is not already loaded
++[ -d /sys/module/dm_crypt ] || modprobe dm_crypt
++
+ . /lib/dracut-lib.sh
+ 
+ # default luksname - luks-UUID
+-- 
+1.7.3
+
diff --git a/0085-crypt-assemble-70-luks.rules-dynamically.patch b/0085-crypt-assemble-70-luks.rules-dynamically.patch
new file mode 100644
index 0000000..c2bbe78
--- /dev/null
+++ b/0085-crypt-assemble-70-luks.rules-dynamically.patch
@@ -0,0 +1,153 @@
+From b2195881010927eb1be117c3c275572e8fe94012 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 12 Jul 2010 14:31:21 +0200
+Subject: [PATCH 085/133] crypt: assemble 70-luks.rules dynamically
+
+---
+ modules.d/50plymouth/cryptroot-ask.sh |   46 ++++++++------------------------
+ modules.d/90crypt/crypt-cleanup.sh    |    2 +
+ modules.d/90crypt/cryptroot-ask.sh    |   29 ++++----------------
+ modules.d/90crypt/parse-crypt.sh      |   17 ++++++++++++
+ 4 files changed, 37 insertions(+), 57 deletions(-)
+
+diff --git a/modules.d/50plymouth/cryptroot-ask.sh b/modules.d/50plymouth/cryptroot-ask.sh
+index 3897b33..b1a7465 100755
+--- a/modules.d/50plymouth/cryptroot-ask.sh
++++ b/modules.d/50plymouth/cryptroot-ask.sh
+@@ -48,42 +48,20 @@ if [ -f /etc/crypttab ] && ! getargs rd_NO_CRYPTTAB; then
+     unset name dev rest
+ fi
+ 
+-LUKS=$(getargs rd_LUKS_UUID=)
+-ask=1
+-num=0
+-if [ -n "$LUKS" ]; then
+-    ask=0
+-    luuid=${2##luks-}
+-    for luks in $LUKS; do
+-        num=$(($num+1))
+-	luks=${luks##luks-}
+-	if [ "${luuid##$luks}" != "$luuid" ] || [ "$luksname" = "$luks" ]; then
+-	    ask=1
+-	fi
+-        [ $num -ge 2 -a "$ask" = "1" ] && break
+-    done
++prompt="Password [$device ($luksname)]:" 
++if [ ${#luksname} -gt 8 ]; then
++    sluksname=${sluksname##luks-}
++    sluksname=${luksname%%${luksname##????????}}
++    prompt="Password for $device ($sluksname...)"
+ fi
+-unset LUKS luks luuid
+ 
+-if [ $ask -gt 0 ]; then
+-    info "luksOpen $device $luksname"
+-    if [ $num -eq 1 ]; then
+-         prompt="Password for filesystem"
+-    else
+-         prompt="Password [$device ($luksname)]:" 
+-         if [ ${#luksname} -gt 8 ]; then
+-	     sluksname=${sluksname##luks-}
+-             sluksname=${luksname%%${luksname##????????}}
+-             prompt="Password for $device ($sluksname...)"
+-         fi
+-    fi
+-    # flock against other interactive activities
+-    { flock -s 9; 
+-	/bin/plymouth ask-for-password \
+-	    --prompt "$prompt" \
+-	    --command="/sbin/cryptsetup luksOpen -T1 $device $luksname"
+-    } 9>/.console.lock
+-fi
++# flock against other interactive activities
++{ flock -s 9; 
++    /bin/plymouth ask-for-password \
++	--prompt "$prompt" \
++	--command="/sbin/cryptsetup luksOpen -T1 $device $luksname"
++} 9>/.console.lock
++
+ unset ask device luksname
+ 
+ # mark device as asked
+diff --git a/modules.d/90crypt/crypt-cleanup.sh b/modules.d/90crypt/crypt-cleanup.sh
+index 3959a07..a9c976a 100755
+--- a/modules.d/90crypt/crypt-cleanup.sh
++++ b/modules.d/90crypt/crypt-cleanup.sh
+@@ -1,5 +1,7 @@
+ #!/bin/sh
+ # close everything which is not busy
++rm -f /etc/udev/rules.d/70-luks.rules >/dev/null 2>&1
++
+ for i in /dev/mapper/luks-*; do
+     cryptsetup luksClose $i >/dev/null 2>&1
+ done
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 430155a..a6a9af1 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -51,29 +51,12 @@ if [ -f /etc/crypttab ] && ! getargs rd_NO_CRYPTTAB; then
+     unset name dev rest
+ fi
+ 
+-LUKS=$(getargs rd_LUKS_UUID=)
+-ask=1
+-if [ -n "$LUKS" ]; then
+-    ask=0
+-    luuid=${2##luks-}
+-    for luks in $LUKS; do
+-	luks=${luks##luks-}
+-	if [ "${luuid##$luks}" != "$luuid" ] || [ "$luksname" = "$luks" ]; then
+-	    ask=1
+-	    break
+-	fi
+-    done
+-fi
+-unset LUKS luks luuid
+-
+-if [ $ask -gt 0 ]; then
+-    info "luksOpen $device $luksname"
+-    # flock against other interactive activities
+-    { flock -s 9; 
+-	echo -n "$device ($luksname) is password protected"
+-	cryptsetup luksOpen -T1 $1 $luksname 
+-    } 9>/.console.lock
+-fi
++info "luksOpen $device $luksname"
++# flock against other interactive activities
++{ flock -s 9; 
++    echo -n "$device ($luksname) is password protected"
++    cryptsetup luksOpen -T1 $1 $luksname 
++} 9>/.console.lock
+ 
+ # mark device as asked
+ >> /tmp/cryptroot-asked-$2
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index 5c2a94a..1e8a659 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -2,5 +2,22 @@
+ if getarg rd_NO_LUKS; then
+     info "rd_NO_LUKS: removing cryptoluks activation"
+     rm -f /etc/udev/rules.d/70-luks.rules
++else
++    {
++	echo 'SUBSYSTEM!="block", GOTO="luks_end"'
++	echo 'ACTION!="add|change", GOTO="luks_end"'
++    } > /etc/udev/rules.d/70-luks.rules
++    LUKS=$(getargs rd_LUKS_UUID=)
++    if [ -n "$LUKS" ]; then
++	for luksid in $LUKS; do 
++	printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", ENV{ID_FS_UUID}=="*%s*", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $luksid \
++	    >> /etc/udev/rules.d/70-luks.rules	
++	done
++    else
++	echo 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"' \
++	    >> /etc/udev/rules.d/70-luks.rules	
++    fi
++    echo LABEL="luks_end" >> /etc/udev/rules.d/70-luks.rules
++
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0086-cryptroot-ask-s-getargs-rd_NO_CRYPTTAB-getarg-rd_NO_.patch b/0086-cryptroot-ask-s-getargs-rd_NO_CRYPTTAB-getarg-rd_NO_.patch
new file mode 100644
index 0000000..3e5fec3
--- /dev/null
+++ b/0086-cryptroot-ask-s-getargs-rd_NO_CRYPTTAB-getarg-rd_NO_.patch
@@ -0,0 +1,46 @@
+From 6dd74976d3090aca2195c246a6431530961fe635 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 12 Jul 2010 18:47:08 +0200
+Subject: [PATCH 086/133] cryptroot-ask: s/getargs rd_NO_CRYPTTAB/getarg rd_NO_CRYPTTAB/g
+
+---
+ modules.d/50plymouth/cryptroot-ask.sh |    2 +-
+ modules.d/90crypt/cryptroot-ask.sh    |    4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/50plymouth/cryptroot-ask.sh b/modules.d/50plymouth/cryptroot-ask.sh
+index b1a7465..0740cd6 100755
+--- a/modules.d/50plymouth/cryptroot-ask.sh
++++ b/modules.d/50plymouth/cryptroot-ask.sh
+@@ -21,7 +21,7 @@ else
+     device="$1"
+ fi
+ 
+-if [ -f /etc/crypttab ] && ! getargs rd_NO_CRYPTTAB; then
++if [ -f /etc/crypttab ] && ! getarg rd_NO_CRYPTTAB; then
+     while read name dev rest; do
+ 	# ignore blank lines and comments
+ 	if [ -z "$name" -o "${name#\#}" != "$name" ]; then
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index a6a9af1..3fd75c0 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -24,7 +24,7 @@ else
+     device="$1"
+ fi
+ 
+-if [ -f /etc/crypttab ] && ! getargs rd_NO_CRYPTTAB; then
++if [ -f /etc/crypttab ] && ! getarg rd_NO_CRYPTTAB; then
+     while read name dev rest; do
+ 	# ignore blank lines and comments
+ 	if [ -z "$name" -o "${name#\#}" != "$name" ]; then
+@@ -62,4 +62,4 @@ info "luksOpen $device $luksname"
+ >> /tmp/cryptroot-asked-$2
+ 
+ exit 0
+-# vim:ts=8:sw=4:sts=4:et
+\ No newline at end of file
++# vim:ts=8:sw=4:sts=4:et
+-- 
+1.7.3
+
diff --git a/0087-crypt-parse-crypt.sh-fix-end-label-for-luks-udev-rul.patch b/0087-crypt-parse-crypt.sh-fix-end-label-for-luks-udev-rul.patch
new file mode 100644
index 0000000..1bd4d64
--- /dev/null
+++ b/0087-crypt-parse-crypt.sh-fix-end-label-for-luks-udev-rul.patch
@@ -0,0 +1,25 @@
+From 3c88a1bd9bcf685e6891c8062c45b56db5ddf325 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 12 Jul 2010 14:43:11 +0200
+Subject: [PATCH 087/133] crypt/parse-crypt.sh: fix end label for luks udev rules
+
+---
+ modules.d/90crypt/parse-crypt.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index 1e8a659..775617f 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -17,7 +17,7 @@ else
+ 	echo 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"' \
+ 	    >> /etc/udev/rules.d/70-luks.rules	
+     fi
+-    echo LABEL="luks_end" >> /etc/udev/rules.d/70-luks.rules
++    echo 'LABEL="luks_end"' >> /etc/udev/rules.d/70-luks.rules
+ 
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0088-crypt-wait-for-all-rd_LUKS_UUID-disks-to-appear.patch b/0088-crypt-wait-for-all-rd_LUKS_UUID-disks-to-appear.patch
new file mode 100644
index 0000000..72c28d7
--- /dev/null
+++ b/0088-crypt-wait-for-all-rd_LUKS_UUID-disks-to-appear.patch
@@ -0,0 +1,30 @@
+From 7d3b14d36057ae5f966ac15dc94a5e66a1442086 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 12 Jul 2010 16:16:39 +0200
+Subject: [PATCH 088/133] crypt: wait for all rd_LUKS_UUID disks to appear
+
+Also give a hint in emergency, if one disk is not found.
+---
+ modules.d/90crypt/parse-crypt.sh |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index 775617f..04d9ecb 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -9,9 +9,12 @@ else
+     } > /etc/udev/rules.d/70-luks.rules
+     LUKS=$(getargs rd_LUKS_UUID=)
+     if [ -n "$LUKS" ]; then
++	echo '. /lib/dracut-lib.sh' > /emergency/crypt.sh
+ 	for luksid in $LUKS; do 
+ 	printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", ENV{ID_FS_UUID}=="*%s*", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $luksid \
+ 	    >> /etc/udev/rules.d/70-luks.rules	
++	printf '[ -e /dev/disk/by-uuid/*%s* ] || exit 1 \n'  $luksid >> /initqueue-finished/crypt.sh
++	printf '[ -e /dev/disk/by-uuid/*%s* ] || warn "crypto LUKS UUID "%s" not found" \n' $luksid $luksid >> /emergency/00-crypt.sh
+ 	done
+     else
+ 	echo 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"' \
+-- 
+1.7.3
+
diff --git a/0089-dracut-lib.sh-getarg-returns-the-value-of-the-last-a.patch b/0089-dracut-lib.sh-getarg-returns-the-value-of-the-last-a.patch
new file mode 100644
index 0000000..485d7e0
--- /dev/null
+++ b/0089-dracut-lib.sh-getarg-returns-the-value-of-the-last-a.patch
@@ -0,0 +1,29 @@
+From 50ae6519c90f5c0dd7400a18dd0aeaa3e8667944 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 12 Jul 2010 18:52:44 +0200
+Subject: [PATCH 089/133] dracut-lib.sh: getarg() returns the value of the last argument
+
+a=0 a=1 a=2
+$(getarg a) == "2"
+---
+ modules.d/99base/dracut-lib.sh |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 9666232..d7a632e 100644
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -18,8 +18,9 @@ getarg() {
+     fi
+     for o in $CMDLINE; do
+ 	[ "$o" = "$1" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
+-	[ "${o%%=*}" = "${1%=}" ] && { echo ${o#*=}; [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++        [ "${o%%=*}" = "${1%=}" ] && val=${o#*=};
+     done
++    [ -n "$val" ] && { echo $val; [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
+     [ "$RDDEBUG" = "yes" ] && set -x 
+     return 1
+ }
+-- 
+1.7.3
+
diff --git a/0090-dracut-fixed-stripping-of-kernel-modules.patch b/0090-dracut-fixed-stripping-of-kernel-modules.patch
new file mode 100644
index 0000000..f5c2bb6
--- /dev/null
+++ b/0090-dracut-fixed-stripping-of-kernel-modules.patch
@@ -0,0 +1,25 @@
+From aa09424d798da537fd1377a56e40f1748da35086 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 20 Jul 2010 11:24:37 +0200
+Subject: [PATCH 090/133] dracut: fixed stripping of kernel modules
+
+---
+ dracut |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut b/dracut
+index 35be7eb..e5ca5d3 100755
+--- a/dracut
++++ b/dracut
+@@ -287,7 +287,7 @@ if [[ $do_strip = yes ]] ; then
+ fi
+ 
+ if [[ $do_strip = yes ]] ; then
+-    for f in $(find "$initdir" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 -or -path '/lib/modules/*.ko' \) ); do
++    for f in $(find "$initdir" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 -or -path '*/lib/modules/*.ko' \) ); do
+ 	dinfo "Stripping $f"
+ 	strip -g "$f" 2>/dev/null|| :
+         #
+-- 
+1.7.3
+
diff --git a/0091-conffile-before-confdir.patch b/0091-conffile-before-confdir.patch
new file mode 100644
index 0000000..37d6449
--- /dev/null
+++ b/0091-conffile-before-confdir.patch
@@ -0,0 +1,39 @@
+From dbd855ce7b4199404dd8a847c31889ebdd5ce419 Mon Sep 17 00:00:00 2001
+From: Andrey Borzenkov <arvidjaar at mail.ru>
+Date: Wed, 14 Jul 2010 01:30:16 +0200
+Subject: [PATCH 091/133] conffile before confdir
+
+conffile should be sourced before confdir
+
+Signed-off-by: Maarten Vanraes <maarten.vanraes at gmail.com>
+---
+ dracut |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/dracut b/dracut
+index e5ca5d3..36509ac 100755
+--- a/dracut
++++ b/dracut
+@@ -128,6 +128,9 @@ if [[ ! -d $confdir ]]; then
+     [[ $allowlocal ]] && confdir="$dracutbasedir/dracut.conf.d"
+ fi
+ 
++# source our config file
++[[ -f $conffile ]] && . "$conffile"
++
+ # source our config dir
+ if [ "$confdir" ] && [  -d "$confdir" ]; then
+     for f in "$confdir"/*.conf; do 
+@@ -135,9 +138,6 @@ if [ "$confdir" ] && [  -d "$confdir" ]; then
+     done
+ fi
+ 
+-# source our config file
+-[[ -f $conffile ]] && . "$conffile"
+-
+ # these optins add to the stuff in the config file
+ [[ $add_dracutmodules_l ]] && add_dracutmodules+=" $add_dracutmodules_l"
+ [[ $add_drivers_l ]] && add_drivers+=" $add_drivers_l"
+-- 
+1.7.3
+
diff --git a/0092-selinux-fixed-error-handling-for-load-policy.patch b/0092-selinux-fixed-error-handling-for-load-policy.patch
new file mode 100644
index 0000000..a8a82c7
--- /dev/null
+++ b/0092-selinux-fixed-error-handling-for-load-policy.patch
@@ -0,0 +1,50 @@
+From 9b3ad00b78dab7065bfeca2c50ef8f1447fecc21 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 21 Jul 2010 13:44:03 +0200
+Subject: [PATCH 092/133] selinux: fixed error handling for load-policy
+
+{} | cmd opens a subshell for {}
+---
+ modules.d/98selinux/selinux-loadpolicy.sh |   25 +++++++++++++------------
+ 1 files changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/modules.d/98selinux/selinux-loadpolicy.sh b/modules.d/98selinux/selinux-loadpolicy.sh
+index 7db9f8c..9959993 100755
+--- a/modules.d/98selinux/selinux-loadpolicy.sh
++++ b/modules.d/98selinux/selinux-loadpolicy.sh
+@@ -18,19 +18,20 @@ rd_load_policy()
+ 
+     # Attempt to load SELinux Policy
+     if [ -x "$NEWROOT/usr/sbin/load_policy" -o -x "$NEWROOT/sbin/load_policy" ]; then
+-	ret=0
++	local ret=0
++	local out
+ 	info "Loading SELinux policy"
+-	{
+-            # load_policy does mount /proc and /selinux in 
+-            # libselinux,selinux_init_load_policy()
+-            if [ -x "$NEWROOT/sbin/load_policy" ]; then
+-		chroot "$NEWROOT" /sbin/load_policy -i
+-		ret=$?
+-            else
+-		chroot "$NEWROOT" /usr/sbin/load_policy -i
+-		ret=$?
+-            fi
+-	} 2>&1 | vinfo
++        # load_policy does mount /proc and /selinux in 
++        # libselinux,selinux_init_load_policy()
++        if [ -x "$NEWROOT/sbin/load_policy" ]; then
++            out=$(chroot "$NEWROOT" /sbin/load_policy -i 2>&1)
++            ret=$?
++	    info $out
++        else
++	    out=$(chroot "$NEWROOT" /usr/sbin/load_policy -i 2>&1)
++	    ret=$?
++	    info $out
++        fi
+ 
+ 	if [ "$SELINUX" = "disabled" ]; then
+ 	    return 0;
+-- 
+1.7.3
+
diff --git a/0093-btrfs-add-hostonly-check.patch b/0093-btrfs-add-hostonly-check.patch
new file mode 100644
index 0000000..a7d77a0
--- /dev/null
+++ b/0093-btrfs-add-hostonly-check.patch
@@ -0,0 +1,40 @@
+From 2fa1c599e40a6044055f08031b09a30295643125 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 21 Jul 2010 14:25:42 +0200
+Subject: [PATCH 093/133] btrfs: add hostonly check
+
+---
+ modules.d/90btrfs/check |   14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90btrfs/check b/modules.d/90btrfs/check
+index 532e2ef..99aa712 100755
+--- a/modules.d/90btrfs/check
++++ b/modules.d/90btrfs/check
+@@ -1,10 +1,22 @@
+ #!/bin/bash
+ 
+ # We depend on udev-rules being loaded
+-[ "$1" = "-d" ] && exit 0
++[[ "$1" = "-d" ]] && exit 0
+ 
+ # if we don't have btrfs (btrfsctl) installed on the host system,
+ # no point in trying to support it in the initramfs.
+ which btrfsctl >/dev/null 2>&1 || exit 1
+ 
++. $dracutfunctions
++[[ $debug ]] && set -x
++
++is_btrfs() { get_fs_type /dev/block/$1 |grep -q btrfs; }
++
++if [[ "$1" = "-h" ]]; then
++    rootdev=$(find_root_block_device)
++    if [[ $rootdev ]]; then
++	is_btrfs "$rootdev" || exit 1
++    fi
++fi
++
+ exit 0
+-- 
+1.7.3
+
diff --git a/0094-lvm-wait-for-all-rd_LVM_LV-and-rd_LVM_VG-specified-t.patch b/0094-lvm-wait-for-all-rd_LVM_LV-and-rd_LVM_VG-specified-t.patch
new file mode 100644
index 0000000..2191a78
--- /dev/null
+++ b/0094-lvm-wait-for-all-rd_LVM_LV-and-rd_LVM_VG-specified-t.patch
@@ -0,0 +1,40 @@
+From cc645fd9e275fb63a5e84111a423d39f91e65044 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 23 Jul 2010 12:16:11 +0200
+Subject: [PATCH 094/133] lvm: wait for all rd_LVM_LV and rd_LVM_VG specified to appear
+
+---
+ modules.d/90lvm/parse-lvm.sh |   18 +++++++++++++-----
+ 1 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/90lvm/parse-lvm.sh b/modules.d/90lvm/parse-lvm.sh
+index 2d453e8..5e93d3e 100644
+--- a/modules.d/90lvm/parse-lvm.sh
++++ b/modules.d/90lvm/parse-lvm.sh
+@@ -1,10 +1,18 @@
+-if getarg rd_NO_LVM; then
+-    info "rd_NO_LVM: removing LVM activation"
+-    rm -f /etc/udev/rules.d/64-lvm*.rules
+-fi
+-
+ if [ -e /etc/lvm/lvm.conf ] && getarg rd_NO_LVMCONF; then
+     rm -f /etc/lvm/lvm.conf
+ fi
+ 
++if getarg rd_NO_LVM; then
++    info "rd_NO_LVM: removing LVM activation"
++    rm -f /etc/udev/rules.d/64-lvm*.rules
++else
++    for dev in $(getargs rd_LVM_VG=) $(getargs rd_LVM_LV=); do
++        printf '[ -e "/dev/%s" ] || exit 1\n' $dev \
++            >> /initqueue-finished/lvm.sh
++        {
++            printf '[ -e "/dev/%s" ] || ' $dev
++            printf 'warn "LVM "%s" not found"\n' $dev
++        } >> /emergency/00-lvm.sh
++    done
++fi
+ 
+-- 
+1.7.3
+
diff --git a/0095-90crypt-keys-on-external-devices-support.patch b/0095-90crypt-keys-on-external-devices-support.patch
new file mode 100644
index 0000000..50b57bb
--- /dev/null
+++ b/0095-90crypt-keys-on-external-devices-support.patch
@@ -0,0 +1,281 @@
+From 41ba3b047a7ecb4d1eee87834db5a0270b70a15c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe at aidecoe.name>
+Date: Tue, 13 Jul 2010 19:14:47 +0200
+Subject: [PATCH 095/133] 90crypt: keys on external devices support
+
+99base/dracut-lib.sh: new fun.: getoptcomma, foreach_uuid_until
+---
+ modules.d/90crypt/cryptroot-ask.sh |  119 ++++++++++++++++++++++++++++--------
+ modules.d/90crypt/parse-crypt.sh   |   45 +++++++++----
+ modules.d/99base/dracut-lib.sh     |   57 +++++++++++++++++
+ 3 files changed, 181 insertions(+), 40 deletions(-)
+
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index 3fd75c0..8bed056 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -26,37 +26,104 @@ fi
+ 
+ if [ -f /etc/crypttab ] && ! getarg rd_NO_CRYPTTAB; then
+     while read name dev rest; do
+-	# ignore blank lines and comments
+-	if [ -z "$name" -o "${name#\#}" != "$name" ]; then
+-	    continue
+-	fi
+-
+-	# UUID used in crypttab
+-	if [ "${dev%%=*}" = "UUID" ]; then
+-	    if [ "luks-${dev##UUID=}" = "$2" ]; then
+-		luksname="$name"
+-		break
+-	    fi
+-	
+-	# path used in crypttab
+-	else
+-	    cdev=$(readlink -f $dev)
+-	    mdev=$(readlink -f $device)
+-	    if [ "$cdev" = "$mdev" ]; then
+-		luksname="$name"
+-		break
+-	    fi
+-	fi
++        # ignore blank lines and comments
++        if [ -z "$name" -o "${name#\#}" != "$name" ]; then
++            continue
++        fi
++
++        # UUID used in crypttab
++        if [ "${dev%%=*}" = "UUID" ]; then
++            if [ "luks-${dev##UUID=}" = "$2" ]; then
++                luksname="$name"
++                break
++            fi
++        
++        # path used in crypttab
++        else
++            cdev=$(readlink -f $dev)
++            mdev=$(readlink -f $device)
++            if [ "$cdev" = "$mdev" ]; then
++                luksname="$name"
++                break
++            fi
++        fi
+     done < /etc/crypttab
+     unset name dev rest
+ fi
+ 
++#
++# Search key on external devices
++#
++
++# Try to mount device specified by UUID and probe for existence of any of
++# the paths.  On success return 0 and print "<uuid> <first-existing-path>",
++# otherwise return 1.
++# Function leaves mount point created.
++probe_keydev() {
++    local uuid="$1"; shift; local keypaths="$*"
++    local ret=1; local mount_point=/mnt/keydev
++    local path
++
++    [ -n "${uuid}" -a -n "${keypaths}" ] || return 1
++    [ -d ${mount_point} ] || mkdir -p "${mount_point}" || return 1
++
++    if mount -r -U "${uuid}" "${mount_point}" 2>/dev/null >/dev/null; then
++        for path in ${keypaths}; do
++            if [ -f "${mount_point}/${path}" ]; then
++                echo "${uuid} ${path}"
++                ret=0
++                break
++            fi
++        done
++    fi
++
++    umount "${mount_point}" 2>/dev/null >/dev/null
++
++    return ${ret}
++}
++
++keypaths="$(getargs rd_LUKS_KEYPATH)"
++unset keydev_uuid keypath
++
++if [ -n "$keypaths" ]; then
++    keydev_uuids="$(getargs rd_LUKS_KEYDEV_UUID)"
++    [ -n "$keydev_uuids" ] || {
++            warn 'No UUID of device storing LUKS key specified.'
++            warn 'It is recommended to set rd_LUKS_KEYDEV_UUID.'
++            warn 'Performing scan of *all* devices accessible by UUID...'
++    }
++    tmp=$(foreach_uuid_until "probe_keydev \$full_uuid $keypaths" \
++            $keydev_uuids) && {
++        keydev_uuid="${tmp%% *}"
++        keypath="${tmp#* }"
++    } || {
++        warn "Key for $device not found."
++    }
++    unset tmp keydev_uuids
++fi
++
++unset keypaths
++
++#
++# Open LUKS device
++#
++
+ info "luksOpen $device $luksname"
+-# flock against other interactive activities
+-{ flock -s 9; 
+-    echo -n "$device ($luksname) is password protected"
+-    cryptsetup luksOpen -T1 $1 $luksname 
+-} 9>/.console.lock
++
++if [ -n "$keydev_uuid" ]; then
++    mntp=/mnt/keydev
++    mkdir -p "$mntp"
++    mount -r -U "$keydev_uuid" "$mntp"
++    cryptsetup -d "$mntp/$keypath" luksOpen "$device" "$luksname"
++    umount "$mntp"
++    rmdir -p "$mntp" 2>/dev/null
++else
++    # flock against other interactive activities
++    { flock -s 9;
++        echo -n "$device ($luksname) is password protected"
++        cryptsetup luksOpen -T1 $1 $luksname
++    } 9>/.console.lock
++fi
+ 
+ # mark device as asked
+ >> /tmp/cryptroot-asked-$2
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index 04d9ecb..fce952d 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -4,23 +4,40 @@ if getarg rd_NO_LUKS; then
+     rm -f /etc/udev/rules.d/70-luks.rules
+ else
+     {
+-	echo 'SUBSYSTEM!="block", GOTO="luks_end"'
+-	echo 'ACTION!="add|change", GOTO="luks_end"'
++        echo 'SUBSYSTEM!="block", GOTO="luks_end"'
++        echo 'ACTION!="add|change", GOTO="luks_end"'
+     } > /etc/udev/rules.d/70-luks.rules
+-    LUKS=$(getargs rd_LUKS_UUID=)
++
++    LUKS=$(getargs rd_LUKS_UUID)
++    unset settled
++    [ -n "$(getargs rd_LUKS_KEYPATH)" ] && \
++            [ -z "$(getargs rd_LUKS_KEYDEV_UUID)" ] && \
++            settled='--settled'
++
+     if [ -n "$LUKS" ]; then
+-	echo '. /lib/dracut-lib.sh' > /emergency/crypt.sh
+-	for luksid in $LUKS; do 
+-	printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", ENV{ID_FS_UUID}=="*%s*", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $luksid \
+-	    >> /etc/udev/rules.d/70-luks.rules	
+-	printf '[ -e /dev/disk/by-uuid/*%s* ] || exit 1 \n'  $luksid >> /initqueue-finished/crypt.sh
+-	printf '[ -e /dev/disk/by-uuid/*%s* ] || warn "crypto LUKS UUID "%s" not found" \n' $luksid $luksid >> /emergency/00-crypt.sh
+-	done
++        echo '. /lib/dracut-lib.sh' > /emergency/crypt.sh
++        for luksid in $LUKS; do 
++            {
++                printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
++                printf 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
++                printf 'RUN+="/sbin/initqueue --unique --onetime %s ' "$settled"
++                printf '--name cryptroot-ask-%%k /sbin/cryptroot-ask '
++                printf '$env{DEVNAME} luks-$env{ID_FS_UUID}"\n'
++            } >> /etc/udev/rules.d/70-luks.rules
++
++            printf '[ -e /dev/disk/by-uuid/*%s* ] || exit 1\n' $luksid \
++                    >> /initqueue-finished/crypt.sh
++            {
++                printf '[ -e /dev/disk/by-uuid/*%s* ] || ' $luksid
++                printf 'warn "crypto LUKS UUID "%s" not found"\n' $luksid
++            } >> /emergency/00-crypt.sh
++        done
+     else
+-	echo 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/initqueue --unique --onetime --name cryptroot-ask-%k /sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"' \
+-	    >> /etc/udev/rules.d/70-luks.rules	
++        echo 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/initqueue' $settled \
++                '--unique --onetime --name cryptroot-ask-%k' \
++                '/sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"' \
++                >> /etc/udev/rules.d/70-luks.rules
+     fi
+-    echo 'LABEL="luks_end"' >> /etc/udev/rules.d/70-luks.rules
+ 
++    echo 'LABEL="luks_end"' >> /etc/udev/rules.d/70-luks.rules
+ fi
+-
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index d7a632e..4ff9c0b 100644
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -49,6 +49,31 @@ getargs() {
+     return 1;
+ }
+ 
++# Prints value of given option.  If option is a flag and it's present,
++# it just returns 0.  Otherwise 1 is returned.
++# $1 = options separated by commas
++# $2 = option we are interested in
++# 
++# Example:
++# $1 = cipher=aes-cbc-essiv:sha256,hash=sha256,verify
++# $2 = hash
++# Output:
++# sha256
++getoptcomma() {
++    local line=",$1,"; local opt="$2"; local tmp
++
++    case "${line}" in
++        *,${opt}=*,*)
++            tmp="${line#*,${opt}=}"
++            echo "${tmp%%,*}"
++            return 0
++        ;;
++        *,${opt},*) return 0 ;;
++    esac
++
++    return 1
++}
++
+ setdebug() {
+     if [ -z "$RDDEBUG" ]; then
+         if [ -e /proc/cmdline ]; then
+@@ -243,3 +268,35 @@ ip_to_var() {
+     esac
+ }
+ 
++# Evaluate command for UUIDs either given as arguments for this function or all
++# listed in /dev/disk/by-uuid.  UUIDs doesn't have to be fully specified.  If
++# beginning is given it is expanded to all matching UUIDs.  To pass full UUID
++# to your command use '${full_uuid}'.  Remember to escape '$'!
++#
++# $1 = command to be evaluated
++# $2 = list of UUIDs separated by space
++#
++# The function returns after *first successful evaluation* of the given command
++# with status 0.  If evaluation fails for every UUID function returns with
++# status 1.
++#
++# Example:
++# foreach_uuid_until "mount -U \${full_uuid} /mnt; echo OK; umount /mnt" \
++#       "01234 f512 a235567f-12a3-c123-a1b1-01234567abcb"
++foreach_uuid_until() (
++    cd /dev/disk/by-uuid
++
++    local cmd="$1"; shift; local uuids_list="$*"
++    local uuid; local full_uuid
++
++    [ -n "${cmd}" ] || return 1
++
++    for uuid in ${uuids_list:-*}; do
++        for full_uuid in ${uuid}*; do
++            [ -e "${full_uuid}" ] || continue
++            eval ${cmd} && return 0
++        done
++    done
++
++    return 1
++)
+-- 
+1.7.3
+
diff --git a/0096-crypt-remove-emergency-source-of-dracut-lib.sh.patch b/0096-crypt-remove-emergency-source-of-dracut-lib.sh.patch
new file mode 100644
index 0000000..785a900
--- /dev/null
+++ b/0096-crypt-remove-emergency-source-of-dracut-lib.sh.patch
@@ -0,0 +1,24 @@
+From aba335c99241c1ad77700c7f08a7a46c5cba966c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 23 Jul 2010 12:26:42 +0200
+Subject: [PATCH 096/133] crypt: remove emergency source of dracut-lib.sh
+
+---
+ modules.d/90crypt/parse-crypt.sh |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index fce952d..a360079 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -15,7 +15,6 @@ else
+             settled='--settled'
+ 
+     if [ -n "$LUKS" ]; then
+-        echo '. /lib/dracut-lib.sh' > /emergency/crypt.sh
+         for luksid in $LUKS; do 
+             {
+                 printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
+-- 
+1.7.3
+
diff --git a/0097-dracut-functions-fix-m-a-handling.patch b/0097-dracut-functions-fix-m-a-handling.patch
new file mode 100644
index 0000000..02fb574
--- /dev/null
+++ b/0097-dracut-functions-fix-m-a-handling.patch
@@ -0,0 +1,41 @@
+From 92d6107b94bcda52934109caf73cb1061c6d37af Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 27 Jul 2010 11:51:27 +0200
+Subject: [PATCH 097/133] dracut-functions: fix "-m -a" handling
+
+---
+ dracut-functions |   16 ++++++++++++----
+ 1 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 5df4fbb..de0c81d 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -401,12 +401,20 @@ check_modules() {
+ 	strstr "$mods_to_load" " $mod " && continue
+ 	# This should never happen, but...
+ 	[[ -d $moddir ]] || continue
+-	[[ $dracutmodules != all ]] && ! strstr "$dracutmodules" "$mod" && \
+-	    continue
++
+ 	strstr "$omit_dracutmodules" "$mod" && continue
+-	if ! strstr "$add_dracutmodules" "$mod"; then
+-	    should_source_module "$moddir" || continue
++
++        if ! strstr "$dracutmodules $add_dracutmodules" "$mod"; then
++            # module not in our list
++	    if [[ $dracutmodules = all ]]; then
++                # check, if we can install this module
++	        should_source_module "$moddir" || continue
++            else
++                # skip this module
++                continue
++            fi
+         fi
++
+ 	mods_to_load+=" $mod "
+     done
+ 
+-- 
+1.7.3
+
diff --git a/0098-removed-redundant-64-lvm.rules-install.patch b/0098-removed-redundant-64-lvm.rules-install.patch
new file mode 100644
index 0000000..5aaa50a
--- /dev/null
+++ b/0098-removed-redundant-64-lvm.rules-install.patch
@@ -0,0 +1,29 @@
+From 1b9bb10c590f120b0b400b47a8cb226b6251aa8f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 28 Jul 2010 14:09:28 +0200
+Subject: [PATCH 098/133] removed redundant 64-lvm.rules install
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Thanks to Amadeusz Żołnowski, who found it.
+---
+ modules.d/90lvm/install |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install
+index 706c2c2..7ee940b 100755
+--- a/modules.d/90lvm/install
++++ b/modules.d/90lvm/install
+@@ -1,7 +1,7 @@
+ #!/bin/bash
+ inst lvm
+ 
+-inst_rules "$moddir/64-lvm.rules" 64-lvm.rules
++inst_rules "$moddir/64-lvm.rules" 
+ 
+ if [[ $hostonly ]] || [[ $lvmconf = "yes" ]]; then 
+     if [ -f /etc/lvm/lvm.conf ]; then
+-- 
+1.7.3
+
diff --git a/0099-crypt-strip-luks-from-rd_LUKS_UUID.patch b/0099-crypt-strip-luks-from-rd_LUKS_UUID.patch
new file mode 100644
index 0000000..66d98bf
--- /dev/null
+++ b/0099-crypt-strip-luks-from-rd_LUKS_UUID.patch
@@ -0,0 +1,24 @@
+From 429fbe115d26f4a7967bd86c7bc8bc31029846f5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 29 Jul 2010 16:35:31 +0200
+Subject: [PATCH 099/133] crypt: strip "luks-" from rd_LUKS_UUID
+
+---
+ modules.d/90crypt/parse-crypt.sh |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index a360079..9615e73 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -16,6 +16,7 @@ else
+ 
+     if [ -n "$LUKS" ]; then
+         for luksid in $LUKS; do 
++            luksid=${luksid##luks-}
+             {
+                 printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
+                 printf 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
+-- 
+1.7.3
+
diff --git a/0100-crypt-loop-until-all-non-busy-crypt-devs-closed.patch b/0100-crypt-loop-until-all-non-busy-crypt-devs-closed.patch
new file mode 100644
index 0000000..7580161
--- /dev/null
+++ b/0100-crypt-loop-until-all-non-busy-crypt-devs-closed.patch
@@ -0,0 +1,40 @@
+From 3ddfe6bf424dbadd3d9a1aa538e297a2b078f3e1 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 09:40:55 +0200
+Subject: [PATCH 100/133] crypt: loop until all non-busy crypt devs closed
+
+---
+ modules.d/90crypt/crypt-cleanup.sh |    8 ++++++--
+ modules.d/90crypt/install          |    1 -
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/90crypt/crypt-cleanup.sh b/modules.d/90crypt/crypt-cleanup.sh
+index a9c976a..1242b1c 100755
+--- a/modules.d/90crypt/crypt-cleanup.sh
++++ b/modules.d/90crypt/crypt-cleanup.sh
+@@ -2,6 +2,10 @@
+ # close everything which is not busy
+ rm -f /etc/udev/rules.d/70-luks.rules >/dev/null 2>&1
+ 
+-for i in /dev/mapper/luks-*; do
+-    cryptsetup luksClose $i >/dev/null 2>&1
++while true; do
++	local do_break="y"
++	for i in /dev/mapper/luks-*; do
++	    cryptsetup luksClose $i >/dev/null 2>&1 && do_break=n
++	done
++	[ "$do_break" = "y" ] && break
+ done
+diff --git a/modules.d/90crypt/install b/modules.d/90crypt/install
+index 4097592..ee139e3 100755
+--- a/modules.d/90crypt/install
++++ b/modules.d/90crypt/install
+@@ -4,5 +4,4 @@ inst_rules "$moddir/70-luks.rules"
+ inst "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask
+ inst_hook cmdline 30 "$moddir/parse-crypt.sh"
+ inst_hook pre-pivot 30 "$moddir/crypt-cleanup.sh"
+-inst_hook pre-pivot 31 "$moddir/crypt-cleanup.sh"
+ inst /etc/crypttab
+-- 
+1.7.3
+
diff --git a/0101-dracut-functions-fix-check-255-logic-and-dependencie.patch b/0101-dracut-functions-fix-check-255-logic-and-dependencie.patch
new file mode 100644
index 0000000..488e4ff
--- /dev/null
+++ b/0101-dracut-functions-fix-check-255-logic-and-dependencie.patch
@@ -0,0 +1,84 @@
+From e27f3303982c76fbcb9c6f1f227c6eb16d60dcce Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 09:40:18 +0200
+Subject: [PATCH 101/133] dracut-functions: fix check=255 logic and dependencies
+
+---
+ dracut-functions |   24 ++++++++++++++++--------
+ 1 files changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index de0c81d..978e4f0 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -357,7 +357,8 @@ dracut_install() {
+ check_module_deps() {
+     local moddir dep ret
+     # if we are already set to be loaded, we do not have to be checked again.
+-    strstr "$mods_to_load" " $1 " && return
++    strstr " $mods_to_load " " $1 " && return
++    strstr " $omit_dracutmodules " " $1 " && return 1
+     # turn a module name into a directory, if we can.
+     moddir=$(echo ${dracutbasedir}/modules.d/??${1})
+     [[ -d $moddir && -x $moddir/install ]] || return 1
+@@ -378,13 +379,14 @@ check_module_deps() {
+ 
+ should_source_module() {
+     local dep
++    local ret
+     if [[ $kernel_only = yes ]]; then
+         [[ -x $1/installkernel ]] && return 0
+         return 1
+     fi
+     [[ -x $1/install ]] || [[ -x $1/installkernel ]] || return 1
+     [[ -x $1/check ]] || return 0
+-    "$1/check" $hostonly || return 1
++    "$1/check" $hostonly || continue
+     for dep in $("$1/check" -d); do
+ 	check_module_deps "$dep" && continue
+ 	dwarning "Cannot load $mod, dependencies failed."
+@@ -398,13 +400,11 @@ check_modules() {
+     for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
+ 	local mod=${moddir##*/}; mod=${mod#[0-9][0-9]}
+ 	# If we are already scheduled to be loaded, no need to check again.
+-	strstr "$mods_to_load" " $mod " && continue
++	strstr " $mods_to_load " " $mod " && continue
+ 	# This should never happen, but...
+ 	[[ -d $moddir ]] || continue
+ 
+-	strstr "$omit_dracutmodules" "$mod" && continue
+-
+-        if ! strstr "$dracutmodules $add_dracutmodules" "$mod"; then
++        if ! strstr " $dracutmodules $add_dracutmodules " " $mod "; then
+             # module not in our list
+ 	    if [[ $dracutmodules = all ]]; then
+                 # check, if we can install this module
+@@ -413,6 +413,14 @@ check_modules() {
+                 # skip this module
+                 continue
+             fi
++	else
++	    if [ -x "$moddir/check" ] \
++                && "$moddir/check" -d > /dev/null 2>&1; then
++		check_module_deps "$mod" || {
++		    dwarning "Cannot load dracut module \"$mod\", dependencies failed."
++                    continue
++                }
++            fi
+         fi
+ 
+ 	mods_to_load+=" $mod "
+@@ -421,8 +429,8 @@ check_modules() {
+     modcheck=$add_dracutmodules
+     [[ $dracutmodules != all ]] && modcheck="$m $dracutmodules"
+     for mod in $modcheck; do
+-        strstr "$mods_to_load" "$mod" && continue
+-        strstr "$omit_dracutmodules" "$mod" && continue
++        strstr " $mods_to_load " " $mod " && continue
++        strstr " $omit_dracutmodules " " $mod " && continue
+         dwarning "Dracut module \"$mod\" cannot be found."
+     done
+ }
+-- 
+1.7.3
+
diff --git a/0102-crypt-fix-printf.patch b/0102-crypt-fix-printf.patch
new file mode 100644
index 0000000..4fe402b
--- /dev/null
+++ b/0102-crypt-fix-printf.patch
@@ -0,0 +1,25 @@
+From 5720124e6d60fe3cade8e4c1068e8b64ff0e0aea Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 11:26:49 +0200
+Subject: [PATCH 102/133] crypt: fix printf
+
+---
+ modules.d/90crypt/parse-crypt.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
+index 9615e73..c42ff80 100755
+--- a/modules.d/90crypt/parse-crypt.sh
++++ b/modules.d/90crypt/parse-crypt.sh
+@@ -21,7 +21,7 @@ else
+                 printf 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
+                 printf 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
+                 printf 'RUN+="/sbin/initqueue --unique --onetime %s ' "$settled"
+-                printf '--name cryptroot-ask-%%k /sbin/cryptroot-ask '
++                printf -- '--name cryptroot-ask-%%k /sbin/cryptroot-ask '
+                 printf '$env{DEVNAME} luks-$env{ID_FS_UUID}"\n'
+             } >> /etc/udev/rules.d/70-luks.rules
+ 
+-- 
+1.7.3
+
diff --git a/0103-mdraid-remove-local.patch b/0103-mdraid-remove-local.patch
new file mode 100644
index 0000000..6a71550
--- /dev/null
+++ b/0103-mdraid-remove-local.patch
@@ -0,0 +1,31 @@
+From 1f9c79629c390627942471ce6654aa88d40ba364 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 11:35:25 +0200
+Subject: [PATCH 103/133] mdraid: remove "local"
+
+---
+ modules.d/90mdraid/mdraid_start.sh |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index 8662671..0963658 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -10,12 +10,13 @@ mdadm -IRs 2>&1 | vinfo
+ # which have had a container added
+ for md in /dev/md[0-9]* /dev/md/*; do 
+ 	[ -b "$md" ] || continue
+-	local udevinfo="$(udevadm info --query=env --name=$md)"
++	udevinfo="$(udevadm info --query=env --name=$md)"
+ 	strstr "$udevinfo" "MD_UUID=" && continue
+ 	strstr "$udevinfo" "MD_LEVEL=container" && continue
+ 	strstr "$udevinfo" "DEVTYPE=partition" && continue
+ 	mdadm -R "$md" 2>&1 | vinfo
+ done
++unset udevinfo
+ 
+ ln -s /sbin/mdraid-cleanup /pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
+ ln -s /sbin/mdraid-cleanup /pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+-- 
+1.7.3
+
diff --git a/0104-mdraid-remove-mdadm.conf-on-rd_NO_MDADMCONF.patch b/0104-mdraid-remove-mdadm.conf-on-rd_NO_MDADMCONF.patch
new file mode 100644
index 0000000..641fd09
--- /dev/null
+++ b/0104-mdraid-remove-mdadm.conf-on-rd_NO_MDADMCONF.patch
@@ -0,0 +1,27 @@
+From 675faaf1584b2403af70b39d8927aadf5082419c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 13:31:36 +0200
+Subject: [PATCH 104/133] mdraid: remove mdadm.conf on rd_NO_MDADMCONF
+
+---
+ modules.d/90mdraid/parse-md.sh |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index 6e2a3bf..5d03d5c 100644
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -30,6 +30,10 @@ if [ -e /etc/mdadm.conf ] && ! getarg rd_NO_MDADMCONF; then
+     rm -f /pre-pivot/*mdraid-cleanup.sh
+ fi
+ 
++if getarg rd_NO_MDADMCONF; then
++	rm -f /etc/mdadm/mdadm.conf /etc/mdadm.conf
++fi
++
+ # noiswmd nodmraid for anaconda / rc.sysinit compatibility
+ # note nodmraid really means nobiosraid, so we don't want MDIMSM then either
+ if getarg rd_NO_MDIMSM || getarg noiswmd || getarg nodmraid; then
+-- 
+1.7.3
+
diff --git a/0105-dracut-lib.sh-fixed-getarg-for-nonexistent-parameter.patch b/0105-dracut-lib.sh-fixed-getarg-for-nonexistent-parameter.patch
new file mode 100644
index 0000000..4da9deb
--- /dev/null
+++ b/0105-dracut-lib.sh-fixed-getarg-for-nonexistent-parameter.patch
@@ -0,0 +1,69 @@
+From 652fd5ff6d5fb896f7decf47d489bbc1c1f1ee9b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 14:16:10 +0200
+Subject: [PATCH 105/133] dracut-lib.sh: fixed getarg for nonexistent parameters
+
+getarg returned an old "$val" for nonexistent parameters, because "val"
+was not local
+---
+ modules.d/99base/dracut-lib.sh |   23 ++++++++++++++++++-----
+ 1 files changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 4ff9c0b..c898ee6 100644
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -6,7 +6,7 @@ strstr() {
+ 
+ getarg() {
+     set +x 
+-    local o line
++    local o line val
+     if [ -z "$CMDLINE" ]; then
+         if [ -e /etc/cmdline ]; then
+             while read line; do
+@@ -17,10 +17,17 @@ getarg() {
+ 	CMDLINE="$CMDLINE $CMDLINE_ETC"
+     fi
+     for o in $CMDLINE; do
+-	[ "$o" = "$1" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++	if [ "$o" = "$1" ]; then
++            [ "$RDDEBUG" = "yes" ] && set -x; 
++	    return 0; 
++        fi
+         [ "${o%%=*}" = "${1%=}" ] && val=${o#*=};
+     done
+-    [ -n "$val" ] && { echo $val; [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++    if [ -n "$val" ]; then
++        echo $val; 
++        [ "$RDDEBUG" = "yes" ] && set -x; 
++	return 0;
++    fi
+     [ "$RDDEBUG" = "yes" ] && set -x 
+     return 1
+ }
+@@ -38,13 +45,19 @@ getargs() {
+ 	CMDLINE="$CMDLINE $CMDLINE_ETC"
+     fi
+     for o in $CMDLINE; do
+-	[ "$o" = "$1" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++	if [ "$o" = "$1" ]; then
++             [ "$RDDEBUG" = "yes" ] && set -x; 
++	     return 0;
++	fi
+ 	if [ "${o%%=*}" = "${1%=}" ]; then
+ 	    echo -n "${o#*=} "; 
+ 	    found=1;
+ 	fi
+     done
+-    [ -n "$found" ] && { [ "$RDDEBUG" = "yes" ] && set -x; return 0; }
++    if [ -n "$found" ]; then
++        [ "$RDDEBUG" = "yes" ] && set -x
++	return 0;
++    fi
+     [ "$RDDEBUG" = "yes" ] && set -x 
+     return 1;
+ }
+-- 
+1.7.3
+
diff --git a/0106-mkdir-dev-.udev-rules.d-with-mode-0755.patch b/0106-mkdir-dev-.udev-rules.d-with-mode-0755.patch
new file mode 100644
index 0000000..0a750cd
--- /dev/null
+++ b/0106-mkdir-dev-.udev-rules.d-with-mode-0755.patch
@@ -0,0 +1,47 @@
+From 3c8224f8987c79294d4511814c7976bae5251fb9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 15:26:55 +0200
+Subject: [PATCH 106/133] mkdir /dev/.udev/rules.d with mode 0755
+
+---
+ .../90dmsquash-live/dmsquash-live-genrules.sh      |    2 +-
+ modules.d/95resume/resume-genrules.sh              |    2 +-
+ modules.d/95rootfs-block/block-genrules.sh         |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+index f3ea0a3..5e5b27b 100644
+--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+@@ -1,5 +1,5 @@
+ if [ "${root%%:*}" = "live" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
++    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf 'KERNEL=="%s", SYMLINK+="live"\n' \
+     	${root#live:/dev/} 
+diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
+index dfe0e2d..91e8a20 100644
+--- a/modules.d/95resume/resume-genrules.sh
++++ b/modules.d/95resume/resume-genrules.sh
+@@ -1,5 +1,5 @@
+ if [ -n "$resume" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
++    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ 		${resume#/dev/};
+diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh
+index 80e0c4c..2d9fc43 100644
+--- a/modules.d/95rootfs-block/block-genrules.sh
++++ b/modules.d/95rootfs-block/block-genrules.sh
+@@ -1,5 +1,5 @@
+ if [ "${root%%:*}" = "block" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -p /dev/.udev/rules.d
++    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf 'KERNEL=="%s", SYMLINK+="root"\n' \
+ 	${root#block:/dev/} 
+-- 
+1.7.3
+
diff --git a/0107-init-create-dev-.udev-rules.d-with-correct-permissio.patch b/0107-init-create-dev-.udev-rules.d-with-correct-permissio.patch
new file mode 100644
index 0000000..ff9ced2
--- /dev/null
+++ b/0107-init-create-dev-.udev-rules.d-with-correct-permissio.patch
@@ -0,0 +1,58 @@
+From dfcd238846d578621fd099631ecece90a40e7aef Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 15:58:48 +0200
+Subject: [PATCH 107/133] init: create /dev/.udev/rules.d with correct permissions
+
+---
+ .../90dmsquash-live/dmsquash-live-genrules.sh      |    1 -
+ modules.d/95resume/resume-genrules.sh              |    1 -
+ modules.d/95rootfs-block/block-genrules.sh         |    1 -
+ modules.d/99base/init                              |    2 ++
+ 4 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+index 5e5b27b..c2aee3a 100644
+--- a/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-genrules.sh
+@@ -1,5 +1,4 @@
+ if [ "${root%%:*}" = "live" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf 'KERNEL=="%s", SYMLINK+="live"\n' \
+     	${root#live:/dev/} 
+diff --git a/modules.d/95resume/resume-genrules.sh b/modules.d/95resume/resume-genrules.sh
+index 91e8a20..a2718b3 100644
+--- a/modules.d/95resume/resume-genrules.sh
++++ b/modules.d/95resume/resume-genrules.sh
+@@ -1,5 +1,4 @@
+ if [ -n "$resume" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+ 		${resume#/dev/};
+diff --git a/modules.d/95rootfs-block/block-genrules.sh b/modules.d/95rootfs-block/block-genrules.sh
+index 2d9fc43..caafb65 100644
+--- a/modules.d/95rootfs-block/block-genrules.sh
++++ b/modules.d/95rootfs-block/block-genrules.sh
+@@ -1,5 +1,4 @@
+ if [ "${root%%:*}" = "block" ]; then
+-    [ -d /dev/.udev/rules.d ] || mkdir -m 0755 -p /dev/.udev/rules.d
+     {
+     printf 'KERNEL=="%s", SYMLINK+="root"\n' \
+ 	${root#block:/dev/} 
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 45033af..12153b4 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -102,6 +102,8 @@ mkdir /dev/shm
+ mkdir /dev/pts
+ mount -t devpts -o gid=5,mode=620 devpts /dev/pts >/dev/null 2>&1
+ mount -t tmpfs tmpfs /dev/shm >/dev/null 2>&1
++mkdir -m 0755 /dev/.udev
++mkdir -m 0755 /dev/.udev/rules.d
+ 
+ UDEVVERSION=$(udevadm --version)
+ 
+-- 
+1.7.3
+
diff --git a/0108-dracut-functions-fixed-omit.patch b/0108-dracut-functions-fixed-omit.patch
new file mode 100644
index 0000000..9401647
--- /dev/null
+++ b/0108-dracut-functions-fixed-omit.patch
@@ -0,0 +1,24 @@
+From 7471d0664b5c8fa2ec1bb47e8bccf9fd4138c69f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 4 Aug 2010 17:46:54 +0200
+Subject: [PATCH 108/133] dracut-functions: fixed --omit
+
+---
+ dracut-functions |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 978e4f0..9985078 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -403,6 +403,7 @@ check_modules() {
+ 	strstr " $mods_to_load " " $mod " && continue
+ 	# This should never happen, but...
+ 	[[ -d $moddir ]] || continue
++        strstr " $omit_dracutmodules " " $mod " && continue
+ 
+         if ! strstr " $dracutmodules $add_dracutmodules " " $mod "; then
+             # module not in our list
+-- 
+1.7.3
+
diff --git a/0109-Harden-check-for-used-modules-in-hostonly-mode.patch b/0109-Harden-check-for-used-modules-in-hostonly-mode.patch
new file mode 100644
index 0000000..839a7bd
--- /dev/null
+++ b/0109-Harden-check-for-used-modules-in-hostonly-mode.patch
@@ -0,0 +1,30 @@
+From 7360ae71d3b9b559869182225dbf34bbe29d404c Mon Sep 17 00:00:00 2001
+From: Andrey Borzenkov <arvidjaar at mail.ru>
+Date: Sun, 9 May 2010 22:23:58 +0400
+Subject: [PATCH 109/133] Harden check for used modules in hostonly mode
+
+Make sure that we do not accept module name which is substring of
+some other module name. This resulted in piix being mistakenly loaded
+together with ata_piix. It completely broke DVD access here.
+
+Signed-off-by: Andrey Borzenkov <arvidjaar at mail.ru>
+---
+ dracut-functions |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 9985078..9c686fc 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -532,7 +532,7 @@ instmods() {
+ 	        [[ -f $initdir/$1 ]] && { shift; continue; }
+ 		# If we are building a host-specific initramfs and this
+ 		# module is not already loaded, move on to the next one.
+-		[[ $hostonly ]] && ! grep -q "${mod//-/_}" /proc/modules && \
++		[[ $hostonly ]] && ! grep -qe "\<${mod//-/_}\>" /proc/modules && \
+ 	        ! echo $add_drivers | grep -qe "\<${mod}\>" &&	{
+ 		    shift; continue; 
+ 		}
+-- 
+1.7.3
+
diff --git a/0110-fips-udev-trigger-with-action-add.patch b/0110-fips-udev-trigger-with-action-add.patch
new file mode 100644
index 0000000..dc331bb
--- /dev/null
+++ b/0110-fips-udev-trigger-with-action-add.patch
@@ -0,0 +1,25 @@
+From b4fbbb923d27df9ac272dd5e525cdb58df78d20c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Aug 2010 08:47:17 +0200
+Subject: [PATCH 110/133] fips: udev trigger with action=add
+
+---
+ modules.d/01fips/fips.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
+index 2f6cb97..fbd809e 100755
+--- a/modules.d/01fips/fips.sh
++++ b/modules.d/01fips/fips.sh
+@@ -4,7 +4,7 @@ do_fips()
+     FIPSMODULES=$(cat /etc/fipsmodules)
+     BOOT=$(getarg boot=)
+     KERNEL=$(uname -r)
+-    udevadm trigger >/dev/null 2>&1
++    udevadm trigger --action=add >/dev/null 2>&1
+     case "$boot" in
+     block:LABEL=*|LABEL=*)
+         boot="${boot#block:}"
+-- 
+1.7.3
+
diff --git a/0111-dracut-let-fwdir-be-specified-multiple-times.patch b/0111-dracut-let-fwdir-be-specified-multiple-times.patch
new file mode 100644
index 0000000..ac3a2fc
--- /dev/null
+++ b/0111-dracut-let-fwdir-be-specified-multiple-times.patch
@@ -0,0 +1,25 @@
+From 4c6bc82d747276f1875f5c4313ed457b0979d45a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Aug 2010 18:12:08 +0200
+Subject: [PATCH 111/133] dracut: let --fwdir be specified multiple times
+
+---
+ dracut |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut b/dracut
+index 36509ac..33a116c 100755
+--- a/dracut
++++ b/dracut
+@@ -81,7 +81,7 @@ while (($# > 0)); do
+ 	--add-drivers) add_drivers_l="$2"; shift;;
+ 	--filesystems) filesystems_l="$2"; shift;;
+ 	-k|--kmoddir) drivers_dir_l="$2"; shift;;
+-	--fwdir) fw_dir_l="$2"; shift;;
++	--fwdir) fw_dir_l="$fw_dir_l:$2"; shift;;
+ 	--kernel-only) kernel_only="yes"; no_kernel="no";;
+ 	--no-kernel) kernel_only="no"; no_kernel="yes";;
+ 	--strip) do_strip_l="yes";;
+-- 
+1.7.3
+
diff --git a/0112-dracut-functions-use-proc-self-mountinfo-instead-of-.patch b/0112-dracut-functions-use-proc-self-mountinfo-instead-of-.patch
new file mode 100644
index 0000000..544c5f1
--- /dev/null
+++ b/0112-dracut-functions-use-proc-self-mountinfo-instead-of-.patch
@@ -0,0 +1,38 @@
+From 8cc5e4080ac16ffab664b7715fbf892b7777e6bf Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Aug 2010 18:59:51 +0200
+Subject: [PATCH 112/133] dracut-functions: use /proc/self/mountinfo, instead of /proc/mounts
+
+1. it's easier to get the major:minor
+2. it's more failsafe in a chroot() (rescue CD case)
+---
+ dracut-functions |   13 ++++---------
+ 1 files changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 9c686fc..7f65824 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -75,15 +75,10 @@ get_fs_uuid() (
+ 
+ # finds the major:minor of the block device backing the root filesystem.
+ find_block_device() {
+-    local rootdev blkdev fs type opts misc
+-    while read blkdev fs type opts misc; do
+-	[[ $blkdev = rootfs ]] && continue # skip rootfs entry
+-	[[ $fs = $1 ]] && { rootdev=$blkdev; break; } # we have a winner!
+-    done < /proc/mounts
+-    [[ -b $rootdev ]] || return 1 # oops, not a block device.
+-    # get major/minor for the device
+-    ls -nLl "$rootdev" | \
+-	(read x x x x maj min x; maj=${maj//,/}; echo $maj:$min)
++    local majmin rootdev blkdev fs type opts misc
++    while read a b majmin c mpt opts d fs type opts misc; do
++	[[ $mpt = $1 ]] && { echo $majmin; break; } # we have a winner!
++    done < /proc/self/mountinfo
+ }
+ 
+ find_root_block_device() { find_block_device /; }
+-- 
+1.7.3
+
diff --git a/0113-dracut-add-fstab-to-ignore-proc-self-mountinfo.patch b/0113-dracut-add-fstab-to-ignore-proc-self-mountinfo.patch
new file mode 100644
index 0000000..beae008
--- /dev/null
+++ b/0113-dracut-add-fstab-to-ignore-proc-self-mountinfo.patch
@@ -0,0 +1,120 @@
+From 3f090859e527b7cfc6fe20fc8dcf0c62a4247e4d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 6 Aug 2010 13:54:34 +0200
+Subject: [PATCH 113/133] dracut: add --fstab, to ignore /proc/self/mountinfo
+
+---
+ dracut           |    8 ++++++--
+ dracut-functions |   41 +++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 43 insertions(+), 6 deletions(-)
+
+diff --git a/dracut b/dracut
+index 33a116c..10931b5 100755
+--- a/dracut
++++ b/dracut
+@@ -61,8 +61,9 @@ Creates initial ramdisk images for preloading modules
+                          directory instead of the system-wide installed in
+                          /usr/share/dracut/modules.d.
+                          Useful when running dracut from a git checkout.
+-  -H, --hostonly          Host-Only mode: Install only what is needed for
++  -H, --hostonly        Host-Only mode: Install only what is needed for
+                          booting the local host instead of a generic host.
++  --fstab               Use /etc/fstab to determine the root device.
+   -i, --include [SOURCE] [TARGET]
+                         Include the files in the SOURCE directory into the
+                          Target directory in the final initramfs.
+@@ -97,6 +98,7 @@ while (($# > 0)); do
+ 	--confdir) confdir="$2"; shift;;
+ 	-l|--local) allowlocal="yes" ;;
+ 	-H|--hostonly) hostonly_l="yes" ;;
++	--fstab) use_fstab_l="yes" ;;
+ 	-i|--include) include_src="$2"; include_target="$3"; shift 2;;
+ 	-I|--install) install_items="$2"; shift;;
+ 	-*) printf "\nUnknown option: %s\n\n" "$1" >&2; usage; exit 1;;
+@@ -151,6 +153,7 @@ fi
+ [[ $fw_dir_l ]] && fw_dir=$fw_dir_l
+ [[ $do_strip_l ]] && do_strip=$do_strip_l
+ [[ $hostonly_l ]] && hostonly=$hostonly_l
++[[ $use_fstab_l ]] && use_fstab=$use_fstab_l
+ [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
+ [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
+ [[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut
+@@ -220,7 +223,8 @@ chmod 755 "$initdir"
+ 
+ export initdir hookdirs dracutbasedir dracutmodules drivers \
+     fw_dir drivers_dir debug beverbose no_kernel kernel_only \
+-    add_drivers mdadmconf lvmconf filesystems
++    add_drivers mdadmconf lvmconf filesystems ignore_kmodules \
++    use_fstab
+ 
+ if [[ $kernel_only != yes ]]; then
+     # Create some directory structure first
+diff --git a/dracut-functions b/dracut-functions
+index 7f65824..d4cef6f 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -51,6 +51,7 @@ derror() {
+ }
+ 
+ get_fs_env() {
++    [[ $1 ]] || return
+     eval $(udevadm info --query=env --name=$1|egrep 'ID_FS_(TYPE|UUID)=')
+     [[ $ID_FS_TYPE ]] && return
+ 
+@@ -64,6 +65,13 @@ get_fs_env() {
+ }
+ 
+ get_fs_type() (
++    [[ $1 ]] || return
++    if [[ $1 != ${1#/dev/block/nfs:} ]] \
++	|| [[ $1 != ${1#/dev/block/nfs3:} ]] \
++	|| [[ $1 != ${1#/dev/block/nfs4:} ]]; then
++	echo "nfs"
++	return
++    fi
+     get_fs_env $1 || return
+     echo $ID_FS_TYPE
+ )
+@@ -75,10 +83,35 @@ get_fs_uuid() (
+ 
+ # finds the major:minor of the block device backing the root filesystem.
+ find_block_device() {
+-    local majmin rootdev blkdev fs type opts misc
+-    while read a b majmin c mpt opts d fs type opts misc; do
+-	[[ $mpt = $1 ]] && { echo $majmin; break; } # we have a winner!
+-    done < /proc/self/mountinfo
++    local x mpt majmin dev fs misc maj min
++    if [[ $use_fstab != yes ]]; then	
++	while read x x majmin x mpt x x fs misc; do
++            [[ $fs = nfs ]] && { echo $dev; return 0;}
++            [[ $fs = nfs3 ]] && { echo $dev; return 0;}
++            [[ $fs = nfs4 ]] && { echo $dev; return 0;}
++	    if [[ $mpt = $1 ]] && [[ ${majmin#0:} = $majmin ]]; then
++		echo $majmin; 
++		return 0 # we have a winner!
++	    fi
++	done < /proc/self/mountinfo       
++    fi
++    # fall back to /etc/fstab    
++    while read dev mpt fs misc; do
++	if [[ $mpt = $1 ]]; then
++            [[ $fs = nfs ]] && { echo $dev; return 0;}
++            [[ $fs = nfs3 ]] && { echo $dev; return 0;}
++            [[ $fs = nfs4 ]] && { echo $dev; return 0;}
++            [[ $dev != ${dev#UUID=} ]] && dev=/dev/disk/by-uuid/${dev#UUID=}
++            [[ $dev != ${dev#LABEL=} ]] && dev=/dev/disk/by-label/${dev#LABEL=}
++	    [[ -b $dev ]] || return 1 # oops, not a block device.
++	    ls -nLl "$dev" | { 
++		read x x x x maj min x;
++		maj=${maj//,/}; 
++		echo $maj:$min; 
++	    } && return 0
++	fi
++    done < /etc/fstab
++    return 1;
+ }
+ 
+ find_root_block_device() { find_block_device /; }
+-- 
+1.7.3
+
diff --git a/0114-plymouth-load-dm_crypt-module.patch b/0114-plymouth-load-dm_crypt-module.patch
new file mode 100644
index 0000000..d19d6be
--- /dev/null
+++ b/0114-plymouth-load-dm_crypt-module.patch
@@ -0,0 +1,26 @@
+From 7d1c33e3fcc8a606f83c27f3495528cffd1d2366 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 9 Aug 2010 13:09:13 +0200
+Subject: [PATCH 114/133] plymouth: load dm_crypt module
+
+---
+ modules.d/50plymouth/cryptroot-ask.sh |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/50plymouth/cryptroot-ask.sh b/modules.d/50plymouth/cryptroot-ask.sh
+index 0740cd6..d1c4770 100755
+--- a/modules.d/50plymouth/cryptroot-ask.sh
++++ b/modules.d/50plymouth/cryptroot-ask.sh
+@@ -9,6 +9,9 @@
+ # we already asked for this device
+ [ -f /tmp/cryptroot-asked-$2 ] && exit 0
+ 
++# load dm_crypt if it is not already loaded
++[ -d /sys/module/dm_crypt ] || modprobe dm_crypt
++
+ . /lib/dracut-lib.sh
+ 
+ # default luksname - luks-UUID
+-- 
+1.7.3
+
diff --git a/0115-crypt-depend-on-dm.patch b/0115-crypt-depend-on-dm.patch
new file mode 100644
index 0000000..a4bb231
--- /dev/null
+++ b/0115-crypt-depend-on-dm.patch
@@ -0,0 +1,25 @@
+From 041b5ec7d905aee822199a2024113fab4df66946 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 9 Aug 2010 13:24:08 +0200
+Subject: [PATCH 115/133] crypt: depend on dm
+
+---
+ modules.d/90crypt/check |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90crypt/check b/modules.d/90crypt/check
+index 852695b..a34a05e 100755
+--- a/modules.d/90crypt/check
++++ b/modules.d/90crypt/check
+@@ -3,6 +3,8 @@
+ # if cryptsetup is not installed, then we cannot support encrypted devices.
+ which cryptsetup >/dev/null 2>&1 || exit 1
+ 
++[ "$1" = "-d" ] && echo dm
++
+ # hostonly checking should only return true if root is on a LUKS device
+ # in some way, but I am too lazy to figure out how to do that.
+ # Instead, fail if we do not have a LUKS device in use somewhere.
+-- 
+1.7.3
+
diff --git a/0116-plymouth-udev-trigger-with-action-add.patch b/0116-plymouth-udev-trigger-with-action-add.patch
new file mode 100644
index 0000000..543e948
--- /dev/null
+++ b/0116-plymouth-udev-trigger-with-action-add.patch
@@ -0,0 +1,28 @@
+From f052b4d195f51aaa66d5d9f761ff0170b1faa34f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 13 Aug 2010 11:26:34 +0200
+Subject: [PATCH 116/133] plymouth: udev trigger with action=add
+
+---
+ modules.d/50plymouth/plymouth-pretrigger.sh |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh
+index 8605c61..96a5a1b 100755
+--- a/modules.d/50plymouth/plymouth-pretrigger.sh
++++ b/modules.d/50plymouth/plymouth-pretrigger.sh
+@@ -3,9 +3,9 @@
+ if ! getarg rd_NO_PLYMOUTH; then
+     [ -c /dev/null ] || mknod /dev/null c 1 3
+     # first trigger graphics subsystem
+-    udevadm trigger --attr-match=class=0x030000 >/dev/null 2>&1
++    udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
+     # first trigger graphics and tty subsystem
+-    udevadm trigger --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
++    udevadm trigger --action=add --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
+ 
+     udevadm settle --timeout=30 2>&1 | vinfo
+     [ -c /dev/zero ] || mknod /dev/zero c 1 5
+-- 
+1.7.3
+
diff --git a/0117-dm-install-all-md-dm-kernel-modules.patch b/0117-dm-install-all-md-dm-kernel-modules.patch
new file mode 100644
index 0000000..74acc43
--- /dev/null
+++ b/0117-dm-install-all-md-dm-kernel-modules.patch
@@ -0,0 +1,28 @@
+From c41b09663f4bd28594ec3a0b341b6ebbb20ee34e Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 23 Aug 2010 11:01:04 +0200
+Subject: [PATCH 117/133] dm: install all md/dm* kernel modules
+
+---
+ modules.d/90dm/installkernel |    8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/modules.d/90dm/installkernel b/modules.d/90dm/installkernel
+index af51a22..f5a8ad9 100755
+--- a/modules.d/90dm/installkernel
++++ b/modules.d/90dm/installkernel
+@@ -1,9 +1,5 @@
+ #!/bin/bash
+ 
+-for i in \
+-    dm-snapshot dm-delay dm-mirror dm-mod dm-queue-length \
+-    dm-region-hash dm-round-robin dm-service-time dm-snapshot \
+-    ; do
+-    modinfo -k $kernel $i >/dev/null 2>&1 && instmods $i
+-done
++instmods =drivers/md
++
+ 
+-- 
+1.7.3
+
diff --git a/0118-mkinitrd-do-not-call-dracut-in-host-only-mode.patch b/0118-mkinitrd-do-not-call-dracut-in-host-only-mode.patch
new file mode 100644
index 0000000..262f424
--- /dev/null
+++ b/0118-mkinitrd-do-not-call-dracut-in-host-only-mode.patch
@@ -0,0 +1,30 @@
+From 84848d34dbf32f3668275e10acc2adb928f0879b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 23 Aug 2010 10:36:46 +0200
+Subject: [PATCH 118/133] mkinitrd: do not call dracut in host only mode
+
+---
+ mkinitrd-dracut.sh |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh
+index 64b3069..66e6196 100644
+--- a/mkinitrd-dracut.sh
++++ b/mkinitrd-dracut.sh
+@@ -141,10 +141,10 @@ if [ -n "$img_vers" ]; then
+     target="$target-$kernel"
+ fi
+ 
+-if [ -n "$basicmodules" ]; then
+-	dracut -H $dracut_args --add-drivers "$basicmodules" "$target" "$kernel"
++if [[ $basicmodules ]]; then
++	dracut $dracut_args --add-drivers "$basicmodules" "$target" "$kernel"
+ else
+-	dracut -H $dracut_args "$target" "$kernel"
++	dracut $dracut_args "$target" "$kernel"
+ fi
+ 
+ # vim:ts=8:sw=4:sts=4:et
+-- 
+1.7.3
+
diff --git a/0119-dmraid-switch-to-rd_NO_MDIMSM-if-no-mdadm-installed.patch b/0119-dmraid-switch-to-rd_NO_MDIMSM-if-no-mdadm-installed.patch
new file mode 100644
index 0000000..a64081b
--- /dev/null
+++ b/0119-dmraid-switch-to-rd_NO_MDIMSM-if-no-mdadm-installed.patch
@@ -0,0 +1,26 @@
+From 55102c72b00f1aba6d6e7ea8b90f45f3f0a6726d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 23 Aug 2010 14:42:33 +0200
+Subject: [PATCH 119/133] dmraid: switch to rd_NO_MDIMSM, if no mdadm installed
+
+---
+ modules.d/90dmraid/parse-dm.sh |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90dmraid/parse-dm.sh b/modules.d/90dmraid/parse-dm.sh
+index f031569..63780bd 100644
+--- a/modules.d/90dmraid/parse-dm.sh
++++ b/modules.d/90dmraid/parse-dm.sh
+@@ -3,3 +3,9 @@ if getarg rd_NO_DM || getarg nodmraid; then
+     info "rd_NO_DM: removing DM RAID activation"
+     udevproperty rd_NO_DM=1
+ fi
++
++if [ ! -x /sbin/mdadm ] || getarg rd_NO_MDIMSM || getarg noiswmd; then
++    info "rd_NO_MDIMSM: no MD RAID for imsm/isw raids"
++    udevproperty rd_NO_MDIMSM=1
++fi
++
+-- 
+1.7.3
+
diff --git a/0120-mknod-with-mode-and-set-umask-for-the-rest.patch b/0120-mknod-with-mode-and-set-umask-for-the-rest.patch
new file mode 100644
index 0000000..429c4bd
--- /dev/null
+++ b/0120-mknod-with-mode-and-set-umask-for-the-rest.patch
@@ -0,0 +1,76 @@
+From f9b9cdea16db96fa1064b65ad78e20790ebbd3f0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 23 Jul 2010 11:17:19 +0200
+Subject: [PATCH 120/133] mknod with mode and set umask for the rest
+
+---
+ modules.d/50plymouth/plymouth-pretrigger.sh |   12 +++++++-----
+ modules.d/99base/init                       |   12 +++++++-----
+ 2 files changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh
+index 96a5a1b..9fcfde6 100755
+--- a/modules.d/50plymouth/plymouth-pretrigger.sh
++++ b/modules.d/50plymouth/plymouth-pretrigger.sh
+@@ -1,17 +1,19 @@
+ #!/bin/sh
+ 
+ if ! getarg rd_NO_PLYMOUTH; then
+-    [ -c /dev/null ] || mknod /dev/null c 1 3
++    [ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
+     # first trigger graphics subsystem
+     udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
+     # first trigger graphics and tty subsystem
+     udevadm trigger --action=add --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
+ 
+     udevadm settle --timeout=30 2>&1 | vinfo
+-    [ -c /dev/zero ] || mknod /dev/zero c 1 5
+-    [ -c /dev/systty ] || mknod /dev/systty c 4 0
+-    [ -c /dev/fb ] || mknod /dev/fb c 29 0
+-    [ -c /dev/hvc0 ] || mknod /dev/hvc0 c 229 0
++    [ -c /dev/zero ] || mknod -m 0666 /dev/zero c 1 5
++    [ -c /dev/tty0 ] || mknod -m 0620 /dev/tty0 c 4 0
++    [ -e /dev/systty ] || ln -s tty0 /dev/systty
++    [ -c /dev/fb0 ] || mknod -m 0660 /dev/fb0 c 29 0
++    [ -e /dev/fb ] || ln -s fb0 /dev/fb
++    [ -c /dev/hvc0 ] || mknod -m 0600 /dev/hvc0 c 229 0
+ 
+     info "Starting plymouth daemon"
+     [ -x /bin/plymouthd ] && /bin/plymouthd --attach-to-session
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 12153b4..2870e2a 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -62,11 +62,13 @@ export TERM=linux
+ NEWROOT="/sysroot"
+ 
+ trap "emergency_shell Signal caught!" 0
++# set umask
++umask 0007
+ 
+ RDDEBUG=""
+ . /lib/dracut-lib.sh
+ 
+-mknod /dev/null c 1 3
++mknod -m 0666 /dev/null c 1 3
+ 
+ # mount some important things
+ mount -t proc /proc /proc >/dev/null 2>&1
+@@ -78,10 +80,10 @@ if [ ! -c /dev/ptmx ]; then
+         # if it failed fall back to normal tmpfs
+ 	mount -t tmpfs -omode=0755 udev /dev >/dev/null 2>&1 
+ 	# Make some basic devices first, let udev handle the rest
+-	mknod /dev/null c 1 3
+-	mknod /dev/ptmx c 5 2
+-	mknod /dev/console c 5 1
+-	mknod /dev/kmsg c 1 11
++	mknod -m 0666 /dev/null c 1 3
++	mknod -m 0666 /dev/ptmx c 5 2
++	mknod -m 0600 /dev/console c 5 1
++	mknod -m 0660 /dev/kmsg c 1 11
+     fi
+ fi
+ 
+-- 
+1.7.3
+
diff --git a/0121-plymouth-do-not-create-hvc0.patch b/0121-plymouth-do-not-create-hvc0.patch
new file mode 100644
index 0000000..92380b6
--- /dev/null
+++ b/0121-plymouth-do-not-create-hvc0.patch
@@ -0,0 +1,25 @@
+From 0ac5b5143924b270df4dede7b0374fa4553ac0b1 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 25 Aug 2010 13:26:13 +0200
+Subject: [PATCH 121/133] plymouth: do not create hvc0
+
+must have been a copy&paste error
+---
+ modules.d/50plymouth/plymouth-pretrigger.sh |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh
+index 9fcfde6..36f9966 100755
+--- a/modules.d/50plymouth/plymouth-pretrigger.sh
++++ b/modules.d/50plymouth/plymouth-pretrigger.sh
+@@ -13,7 +13,6 @@ if ! getarg rd_NO_PLYMOUTH; then
+     [ -e /dev/systty ] || ln -s tty0 /dev/systty
+     [ -c /dev/fb0 ] || mknod -m 0660 /dev/fb0 c 29 0
+     [ -e /dev/fb ] || ln -s fb0 /dev/fb
+-    [ -c /dev/hvc0 ] || mknod -m 0600 /dev/hvc0 c 229 0
+ 
+     info "Starting plymouth daemon"
+     [ -x /bin/plymouthd ] && /bin/plymouthd --attach-to-session
+-- 
+1.7.3
+
diff --git a/0122-init-set-old-umask-before-switch_root.patch b/0122-init-set-old-umask-before-switch_root.patch
new file mode 100644
index 0000000..6b7029c
--- /dev/null
+++ b/0122-init-set-old-umask-before-switch_root.patch
@@ -0,0 +1,33 @@
+From 957144aa800ba044af38563b0b5fd083beb7d226 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Aug 2010 11:28:16 +0200
+Subject: [PATCH 122/133] init: set old umask before switch_root
+
+---
+ modules.d/99base/init |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 2870e2a..2a376dd 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -63,6 +63,7 @@ NEWROOT="/sysroot"
+ 
+ trap "emergency_shell Signal caught!" 0
+ # set umask
++OLD_UMASK=$(umask)
+ umask 0007
+ 
+ RDDEBUG=""
+@@ -314,6 +315,8 @@ info "Switching root"
+ 
+ wait_for_loginit
+ 
++umask $OLD_UMASK
++
+ exec switch_root "$NEWROOT" "$INIT" $initargs || {
+     echo "Something went very badly wrong in the initramfs.  Please "
+     echo "file a bug against dracut."
+-- 
+1.7.3
+
diff --git a/0123-init-do-not-set-umask-yet.patch b/0123-init-do-not-set-umask-yet.patch
new file mode 100644
index 0000000..9cd0d73
--- /dev/null
+++ b/0123-init-do-not-set-umask-yet.patch
@@ -0,0 +1,25 @@
+From cf7ee0d589ae38461cf4add515d7fac6a7f8d92c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 22 Sep 2010 16:10:58 +0200
+Subject: [PATCH 123/133] init: do not set umask, yet
+
+---
+ modules.d/99base/init |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index 2a376dd..ed5ec6f 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -64,7 +64,7 @@ NEWROOT="/sysroot"
+ trap "emergency_shell Signal caught!" 0
+ # set umask
+ OLD_UMASK=$(umask)
+-umask 0007
++#umask 0007
+ 
+ RDDEBUG=""
+ . /lib/dracut-lib.sh
+-- 
+1.7.3
+
diff --git a/0124-lvm-also-handle-LVM1-volumes.patch b/0124-lvm-also-handle-LVM1-volumes.patch
new file mode 100644
index 0000000..13b3c0a
--- /dev/null
+++ b/0124-lvm-also-handle-LVM1-volumes.patch
@@ -0,0 +1,26 @@
+From 35e2b75f9b1a28bf9ad67e8ed2f1755e4a2ed967 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 22 Sep 2010 16:12:55 +0200
+Subject: [PATCH 124/133] lvm: also handle LVM1 volumes
+
+---
+ modules.d/90lvm/64-lvm.rules |    3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules
+index 1c28b54..b2af312 100644
+--- a/modules.d/90lvm/64-lvm.rules
++++ b/modules.d/90lvm/64-lvm.rules
+@@ -7,8 +7,7 @@
+ SUBSYSTEM!="block", GOTO="lvm_end"
+ ACTION!="add|change", GOTO="lvm_end"
+ KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end"
+-ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end"
+-
++ENV{ID_FS_TYPE}!="LVM?_member", GOTO="lvm_end"
+ 
+ PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+     GOTO="lvm_end"
+-- 
+1.7.3
+
diff --git a/0125-dracut-functions-filter_kernel_modules-search-in-ext.patch b/0125-dracut-functions-filter_kernel_modules-search-in-ext.patch
new file mode 100644
index 0000000..88d2edf
--- /dev/null
+++ b/0125-dracut-functions-filter_kernel_modules-search-in-ext.patch
@@ -0,0 +1,27 @@
+From 4e06eb9b92b75f3b8cc8e01694da294b12f77062 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 10 Aug 2010 15:54:03 +0200
+Subject: [PATCH 125/133] dracut-functions: filter_kernel_modules() search in extra dirs
+
+search also in "extra" and "weak-updates" for kernel modules
+https://bugzilla.redhat.com/show_bug.cgi?id=622641
+---
+ dracut-functions |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index d4cef6f..7058b85 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -511,7 +511,7 @@ for_each_kmod_dep() {
+ # This function returns the full filenames of modules that match $1
+ filter_kernel_modules () (
+     if ! [[ $hostonly ]]; then
+-	filtercmd='find "$srcmods/kernel/drivers" -name "*.ko" -o -name "*.ko.gz"'
++        filtercmd='find "$srcmods/kernel/drivers" "$srcmods/extra" "$srcmods/weak-updates" -name "*.ko" -o -name "*.ko.gz" 2>/dev/null'
+     else
+ 	filtercmd='cut -d " " -f 1 </proc/modules|xargs modinfo -F filename -k $kernel'
+     fi
+-- 
+1.7.3
+
diff --git a/0126-dracut-lib-and-usr-lib-dirs-detection.patch b/0126-dracut-lib-and-usr-lib-dirs-detection.patch
new file mode 100644
index 0000000..14cdb21
--- /dev/null
+++ b/0126-dracut-lib-and-usr-lib-dirs-detection.patch
@@ -0,0 +1,46 @@
+From a4e43d3211333c0f0395a101831f9a78bd60e544 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe at aidecoe.name>
+Date: Wed, 18 Aug 2010 20:06:44 +0200
+Subject: [PATCH 126/133] dracut: lib and usr/lib dirs detection
+
+First we check if $libdir and $usrlibdir vars are already set in config
+file. If not we perform simple detect. Vars are exported - to be useful
+in module/check scripts.
+---
+ dracut |   13 ++++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletions(-)
+
+diff --git a/dracut b/dracut
+index 10931b5..0fcf632 100755
+--- a/dracut
++++ b/dracut
+@@ -176,6 +176,17 @@ fi
+ dracutfunctions=$dracutbasedir/dracut-functions
+ export dracutfunctions
+ 
++# Detect lib paths
++[[ $libdir ]] || for libdir in /lib64 /lib; do
++    [[ -d $libdir ]] && break
++done || {
++    derror 'No lib directory?!!!'
++    exit 1
++}
++[[ $usrlibdir ]] || for usrlibdir in /usr/lib64 /usr/lib; do
++    [[ -d $usrlibdir ]] && break
++done || dwarning 'No usr/lib directory!'
++
+ # This is kinda legacy -- eventually it should go away.
+ case $dracutmodules in
+     ""|auto) dracutmodules="all" ;;
+@@ -224,7 +235,7 @@ chmod 755 "$initdir"
+ export initdir hookdirs dracutbasedir dracutmodules drivers \
+     fw_dir drivers_dir debug beverbose no_kernel kernel_only \
+     add_drivers mdadmconf lvmconf filesystems ignore_kmodules \
+-    use_fstab
++    use_fstab libdir usrlibdir
+ 
+ if [[ $kernel_only != yes ]]; then
+     # Create some directory structure first
+-- 
+1.7.3
+
diff --git a/0127-lvm-install-lvm-mirror-and-snaphot-libs.patch b/0127-lvm-install-lvm-mirror-and-snaphot-libs.patch
new file mode 100644
index 0000000..b4172a0
--- /dev/null
+++ b/0127-lvm-install-lvm-mirror-and-snaphot-libs.patch
@@ -0,0 +1,31 @@
+From 32fbabce8b5d763abcd5a4d704132cfbae094158 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 10 Jun 2010 13:51:40 +0200
+Subject: [PATCH 127/133] lvm: install lvm mirror and snaphot libs
+
+---
+ modules.d/90lvm/install |   11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install
+index 7ee940b..3e20866 100755
+--- a/modules.d/90lvm/install
++++ b/modules.d/90lvm/install
+@@ -16,3 +16,14 @@ inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules 11-dm-lvm.rules
+ 
+ inst "$moddir/lvm_scan.sh" /sbin/lvm_scan
+ inst_hook cmdline 30 "$moddir/parse-lvm.sh"
++
++
++if ldd $(which lvm) | grep -q lib64; then
++    LIBDIR="/lib64"
++else
++    LIBDIR="/lib"
++fi
++
++for i in $(ls /{usr,}/$LIBDIR/libdevmapper-event-lvm*.so 2>/dev/null); do
++    dracut_install $i
++done
+-- 
+1.7.3
+
diff --git a/0128-lvm-support-for-dynamic-LVM-SNAPSHOT-root-volume.patch b/0128-lvm-support-for-dynamic-LVM-SNAPSHOT-root-volume.patch
new file mode 100644
index 0000000..a13ed1e
--- /dev/null
+++ b/0128-lvm-support-for-dynamic-LVM-SNAPSHOT-root-volume.patch
@@ -0,0 +1,138 @@
+From 8c416065c9018646f13847de9067a4f16ff89440 Mon Sep 17 00:00:00 2001
+From: James Laska <jlaska at redhat.com>
+Date: Wed, 22 Sep 2010 16:28:59 +0200
+Subject: [PATCH 128/133] lvm: support for dynamic LVM SNAPSHOT root volume
+
+I'm looking for a way to have a system with disposable storage that can be
+rebooted and all filesystem changes are thrown away.  After reboot, the system
+starts with a fresh root volume again.  The use case is for automated testing.
+We run test scripts that could potentially not clean up after themselves.
+
+This is almost like stateless, but the storage is local to the system (not
+iSCSI, NFS or NBB).
+
+1. Install Fedora 13 using default partition layout
+  NOTE: modify the layout to leave extra room in the LVM volume group
+2. Apply attached patch
+3. Update grub.conf to enable dracut LVM snapshot support.  Add the following
+boot arguments
+
+ rd_LVM_SNAPSHOT=vg_test1055/lv_snap (note the VG name will depend on your
+system).
+ rd_LVM_SNAPSIZE= (optional, defaults to size of volume specified with by
+rd_LVM_SNAPSHOT)
+
+4. Adjust grub.conf and fstab to use LVM snapshot
+ $ sed -i -e 's|lv_root|lv_snap|' /boot/grub/grub.conf
+ $ sed -i -e 's|lv_root|lv_snap|' /etc/fstab
+5. Reboot system
+
+Expected results (no value provided for rd_LVM_SNAPSIZE):
+
+  dracut: Starting plymouth daemon
+  dracut: rd_NO_DM: removing DM RAID activation
+  dracut: rd_NO_MD: removing MD RAID activation
+  dracut: Removing existing LVM snapshot vg_test1055/lv_snap
+  dracut: Logical volume "lv_snap" successfully removed
+  dracut: No LVM snapshot size provided, using size of vg_test1055/lv_root (
+9024.00m)
+  dracut: Creating LVM snapshot vg_test1055/lv_snap  (  9024.00m)
+  dracut: Logical volume "lv_snap" created
+  dracut: Scanning devices sda2  for LVM logical volumes vg_test1055/lv_root
+vg_test1055/lv_swap
+  dracut: inactive Original '/dev/vg_test1055/lv_root' [8.81 GiB] inherit
+  dracut: inactive '/dev/vg_test1055/lv_swap' [1.00 GiB] inherit
+  dracut: inactive Snapshot '/dev/vg_test1055/lv_snap' [8.81 GiB] inherit
+  dracut: Mounted root filesystem /dev/mapper/vg_test1055-lv_snap
+  dracut: Loading SELinux policy
+  dracut: Switching root
+
+Expected results (rd_LVM_SNAPSIZE=100m):
+
+  dracut: Starting plymouth daemon
+  dracut: rd_NO_DM: removing DM RAID activation
+  dracut: rd_NO_MD: removing MD RAID activation
+  dracut: Removing existing LVM snapshot vg_test1055/lv_snap
+  dracut: Logical volume "lv_snap" successfully removed
+  dracut: Creating LVM snapshot vg_test1055/lv_snap  (100m )
+  dracut: Rounding up size to full physical extent 128.00 MiB
+  dracut: Logical volume "lv_snap" created
+  dracut: Scanning devices sda2  for LVM logical volumes vg_test1055/lv_root
+vg_test1055/lv_swap
+  dracut: inactive Original '/dev/vg_test1055/lv_root' [8.81 GiB] inherit
+  dracut: inactive '/dev/vg_test1055/lv_swap' [1.00 GiB] inherit
+  dracut: inactive Snapshot '/dev/vg_test1055/lv_snap' [128.00 MiB] inherit
+  dracut: Mounted root filesystem /dev/mapper/vg_test1055-lv_snap
+  dracut: Loading SELinux policy
+  dracut: Switching root
+---
+ modules.d/90lvm/lvm_scan.sh |   39 +++++++++++++++++++++++++++++++++++----
+ 1 files changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
+index 784329e..8bf6727 100755
+--- a/modules.d/90lvm/lvm_scan.sh
++++ b/modules.d/90lvm/lvm_scan.sh
+@@ -6,6 +6,8 @@
+ 
+ VGS=$(getargs rd_LVM_VG=)
+ LVS=$(getargs rd_LVM_LV=)
++SNAPSHOT=$(getargs rd_LVM_SNAPSHOT=)
++SNAPSIZE=$(getargs rd_LVM_SNAPSIZE=)
+ 
+ [ -d /etc/lvm ] || mkdir -p /etc/lvm
+ # build a list of devices to scan
+@@ -25,10 +27,17 @@ if [ ! -e /etc/lvm/lvm.conf ]; then
+ 	done;
+ 	echo '"r/.*/" ]';
+ 	echo '}';	  
+-	# establish read-only locking
+-	echo 'global {';
+-	echo '    locking_type = 4';
+-	echo '}';
++
++	# establish LVM locking
++    if [ -n $SNAPSHOT ]; then
++        echo 'global {';
++        echo '    locking_type = 1';
++        echo '}';
++    else
++        echo 'global {';
++        echo '    locking_type = 4';
++        echo '}';
++    fi
+     } > /etc/lvm/lvm.conf
+     lvmwritten=1
+ fi
+@@ -57,6 +66,28 @@ nopoll=$(
+ 	check_lvm_ver $maj $min $sub && \
+ 	    echo " --poll n ") 2>/dev/null )
+ 
++if [ -n "$SNAPSHOT" ] ; then
++    # HACK - this should probably be done elsewhere or turned into a function
++    # Enable read-write LVM locking
++    sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type =  1/' ${initdir}/etc/lvm/lvm.conf
++
++    # Expected SNAPSHOT format "<orig lv name>:<snap lv name>"
++    ORIG_LV=${SNAPSHOT%%:*}
++    SNAP_LV=${SNAPSHOT##*:}
++
++    info "Removing existing LVM snapshot $SNAP_LV"
++    lvm lvremove --force $SNAP_LV 2>&1| vinfo
++
++    # Determine snapshot size
++    if [ -z "$SNAPSIZE" ] ; then
++        SNAPSIZE=$(lvm lvs --noheadings  --units m --options lv_size $ORIG_LV)
++        info "No LVM snapshot size provided, using size of $ORIG_LV ($SNAPSIZE)"
++    fi
++
++    info "Creating LVM snapshot $SNAP_LV ($SNAPSIZE)"
++    lvm lvcreate -s -n $SNAP_LV -L $SNAPSIZE $ORIG_LV 2>&1| vinfo
++fi
++
+ if [ -n "$LVS" ] ; then
+     info "Scanning devices $lvmdevs for LVM logical volumes $LVS"
+     lvm lvscan --ignorelockingfailure 2>&1 | vinfo
+-- 
+1.7.3
+
diff --git a/0129-95fstab-sys-mount-all-etc-fstab.sys-volumes-before-s.patch b/0129-95fstab-sys-mount-all-etc-fstab.sys-volumes-before-s.patch
new file mode 100644
index 0000000..eeadfd2
--- /dev/null
+++ b/0129-95fstab-sys-mount-all-etc-fstab.sys-volumes-before-s.patch
@@ -0,0 +1,75 @@
+From 0d186afccd8ad113f21757642c7903d1956200cd Mon Sep 17 00:00:00 2001
+From: Ian Dall <ian at beware.dropbear.id.au>
+Date: Wed, 22 Sep 2010 16:49:19 +0200
+Subject: [PATCH 129/133] 95fstab-sys: mount all /etc/fstab.sys volumes before switch_root
+
+A new dracut module to implement fstab.sys handling
+
+This module implements fstab.sys handling. This has to happen after the root
+mount and before the nfsroot-cleanup pre-pivot at least. I've made to happen at
+the beginning of the pre-pivot scripts, although it should maybe be at the end
+of the mount scripts. This latter would be harder to do because the actual
+mount is currently done by 99mount-root.sh and there is no 2 digit integer
+higher than 99 :-(
+
+There are perhaps other ways of achieving this end, such as having the
+nfsroot-cleanup trawl through the newroot's /etc/fstab and auto-magically
+figure out if there are any mounts which are pre-requisites for the
+/var/lib/nfs/rpc_pipefs mount and do them first. Likewise post pivot,
+/etc/rc.sysinit could figure out of there are any pre-requisite mounts for
+/var/lib/stateless/{writeable,state} before doing those mounts. In short, make
+it the responsibility of anything doing a mount to check if there are any
+pre-requisites in /etc/fstab and mount them first. However, this spreads the
+changes needed over more places, so I favour the fstab.sys approach. Also, who
+knows what other uses administartors may have put fstab.sys to? and this undoes
+a regression caused by the move from mkinitrd to dracut.
+---
+ modules.d/95fstab-sys/check        |    2 ++
+ modules.d/95fstab-sys/install      |    3 +++
+ modules.d/95fstab-sys/mount-sys.sh |   15 +++++++++++++++
+ 3 files changed, 20 insertions(+), 0 deletions(-)
+ create mode 100755 modules.d/95fstab-sys/check
+ create mode 100755 modules.d/95fstab-sys/install
+ create mode 100755 modules.d/95fstab-sys/mount-sys.sh
+
+diff --git a/modules.d/95fstab-sys/check b/modules.d/95fstab-sys/check
+new file mode 100755
+index 0000000..f5e2f55
+--- /dev/null
++++ b/modules.d/95fstab-sys/check
+@@ -0,0 +1,2 @@
++#!/bin/sh
++test -f /etc/fstab.sys
+diff --git a/modules.d/95fstab-sys/install b/modules.d/95fstab-sys/install
+new file mode 100755
+index 0000000..a42ee25
+--- /dev/null
++++ b/modules.d/95fstab-sys/install
+@@ -0,0 +1,3 @@
++#!/bin/sh
++dracut_install /etc/fstab.sys
++inst_hook pre-pivot 00 "$moddir/mount-sys.sh"
+diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh
+new file mode 100755
+index 0000000..e8260da
+--- /dev/null
++++ b/modules.d/95fstab-sys/mount-sys.sh
+@@ -0,0 +1,15 @@
++#!/bin/sh
++fstab_mount(){
++    local dev mp type opts rest
++    test -e "$1" || return 1
++    info "Mounting from $1"
++    while read dev mp type opts rest; do
++	[ -z "${dev%%#*}" ]&& continue # Skip comment lines
++	mount -v -t $type -o $opts $dev $NEWROOT/$mp
++    done < $1 | vinfo
++    return 0
++}
++
++for r in $NEWROOT /; do
++    fstab_mount "$r/etc/fstab.sys" && break
++done
+-- 
+1.7.3
+
diff --git a/0130-TEST-12-RAID-DEG-mark-test-failed-for-multiple-dummy.patch b/0130-TEST-12-RAID-DEG-mark-test-failed-for-multiple-dummy.patch
new file mode 100644
index 0000000..a905ec1
--- /dev/null
+++ b/0130-TEST-12-RAID-DEG-mark-test-failed-for-multiple-dummy.patch
@@ -0,0 +1,25 @@
+From 1c69437f7acd7370ecc343dc528d0a627f143deb Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 23 Sep 2010 16:05:42 +0200
+Subject: [PATCH 130/133] TEST-12-RAID-DEG: mark test failed for multiple dummy rd_LVM_VG
+
+---
+ test/TEST-12-RAID-DEG/test.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
+index 4618c0f..37f5891 100755
+--- a/test/TEST-12-RAID-DEG/test.sh
++++ b/test/TEST-12-RAID-DEG/test.sh
+@@ -36,7 +36,7 @@ test_run() {
+ 
+     client_run rd_LVM_VG=dracut || return 1
+ 
+-    client_run rd_LVM_VG=dummy1 rd_LVM_VG=dracut rd_LVM_VG=dummy2 rd_NO_LVMCONF || return 1
++    client_run rd_LVM_VG=dummy1 rd_LVM_VG=dracut rd_LVM_VG=dummy2 rd_NO_LVMCONF failme && return 1
+ 
+     client_run rd_MD_UUID=failme rd_NO_MDADMCONF failme && return 1
+ 
+-- 
+1.7.3
+
diff --git a/0131-test-double-disk-space-for-root-images.patch b/0131-test-double-disk-space-for-root-images.patch
new file mode 100644
index 0000000..e941b1b
--- /dev/null
+++ b/0131-test-double-disk-space-for-root-images.patch
@@ -0,0 +1,125 @@
+From b93bde235c17e7aa730b928eaf6de1dbeaaf1fb2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 23 Sep 2010 16:06:53 +0200
+Subject: [PATCH 131/133] test: double disk space for root images
+
+---
+ test/TEST-11-LVM/create-root.sh      |    8 ++++----
+ test/TEST-11-LVM/test.sh             |    2 +-
+ test/TEST-12-RAID-DEG/create-root.sh |    8 ++++----
+ test/TEST-12-RAID-DEG/test.sh        |    2 +-
+ test/TEST-14-IMSM/create-root.sh     |   17 +++++++++--------
+ 5 files changed, 19 insertions(+), 18 deletions(-)
+
+diff --git a/test/TEST-11-LVM/create-root.sh b/test/TEST-11-LVM/create-root.sh
+index c569cd4..357c481 100755
+--- a/test/TEST-11-LVM/create-root.sh
++++ b/test/TEST-11-LVM/create-root.sh
+@@ -6,11 +6,11 @@ done
+ rm /etc/lvm/lvm.conf
+ udevadm control --reload-rules
+ # save a partition at the beginning for future flagging purposes
+-sfdisk -C 640 -H 2 -S 32 -L /dev/sda <<EOF
++sfdisk -C 1280 -H 2 -S 32 -L /dev/sda <<EOF
+ ,1
+-,213
+-,213
+-,213
++,400
++,400
++,400
+ EOF
+ for i in sda2 sda3 sda4; do
+ lvm pvcreate -ff  -y /dev/$i ;
+diff --git a/test/TEST-11-LVM/test.sh b/test/TEST-11-LVM/test.sh
+index 849aeb1..0b6d020 100755
+--- a/test/TEST-11-LVM/test.sh
++++ b/test/TEST-11-LVM/test.sh
+@@ -16,7 +16,7 @@ test_run() {
+ 
+ test_setup() {
+     # Create the blank file to use as a root filesystem
+-    dd if=/dev/zero of=root.ext2 bs=1M count=20
++    dd if=/dev/zero of=root.ext2 bs=1M count=40
+ 
+     kernel=$KVERSION
+     # Create what will eventually be our root filesystem onto an overlay
+diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
+index 6a2988d..ec1f067 100755
+--- a/test/TEST-12-RAID-DEG/create-root.sh
++++ b/test/TEST-12-RAID-DEG/create-root.sh
+@@ -6,11 +6,11 @@ done
+ rm /etc/lvm/lvm.conf
+ udevadm control --reload-rules
+ # save a partition at the beginning for future flagging purposes
+-sfdisk -C 640 -H 2 -S 32 -L /dev/sda <<EOF
++sfdisk -C 1280 -H 2 -S 32 -L /dev/sda <<EOF
+ ,1
+-,213
+-,213
+-,213
++,400
++,400
++,400
+ EOF
+ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda2 /dev/sda3 /dev/sda4
+ # wait for the array to finish initailizing, otherwise this sometimes fails
+diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
+index 37f5891..32d9bf5 100755
+--- a/test/TEST-12-RAID-DEG/test.sh
++++ b/test/TEST-12-RAID-DEG/test.sh
+@@ -51,7 +51,7 @@ test_run() {
+ 
+ test_setup() {
+     # Create the blank file to use as a root filesystem
+-    dd if=/dev/zero of=root.ext2 bs=1M count=20
++    dd if=/dev/zero of=root.ext2 bs=1M count=40
+  
+     kernel=$KVERSION
+     # Create what will eventually be our root filesystem onto an overlay
+diff --git a/test/TEST-14-IMSM/create-root.sh b/test/TEST-14-IMSM/create-root.sh
+index 05006c9..ce3fafe 100755
+--- a/test/TEST-14-IMSM/create-root.sh
++++ b/test/TEST-14-IMSM/create-root.sh
+@@ -22,19 +22,20 @@ for s in $SETS; do
+ done
+ 
+ udevadm settle
+-
++sfdisk -g /dev/mapper/isw*Test0 
+ # save a partition at the beginning for future flagging purposes
+-sfdisk -H 255 -S 63 -L /dev/mapper/isw*Test0 <<EOF
+-,1
+-,1
++sfdisk -C 1280 -H 2 -S 32 -L /dev/mapper/isw*Test0 <<EOF
+ ,1
+-,
++,300
++,300
++,300
+ EOF
++
+ udevadm settle
+ dmraid -a n
+ udevadm settle
+ 
+-SETS=$(dmraid -c -s)
++SETS=$(dmraid -c -s -i)
+ # scan and activate all DM RAIDS
+ for s in $SETS; do
+    dmraid -ay -i -p --rm_partitions "$s" 
+@@ -44,9 +45,9 @@ done
+ udevadm settle
+ 
+ mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 \
+-	/dev/mapper/isw*p1 \
+ 	/dev/mapper/isw*p2 \
+-	/dev/mapper/isw*p3 
++	/dev/mapper/isw*p3 \
++	/dev/mapper/isw*p4 
+ 
+ # wait for the array to finish initailizing, otherwise this sometimes fails
+ # randomly.
+-- 
+1.7.3
+
diff --git a/dracut.spec b/dracut.spec
index 6d71666..c3ee5e5 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -20,7 +20,7 @@
 
 Name: dracut
 Version: 005
-Release: 2%{?rdist}
+Release: 4%{?rdist}
 Summary: Initramfs generator using udev
 Group: System Environment/Base          
 License: GPLv2+ 
@@ -30,19 +30,138 @@ URL: http://apps.sourceforge.net/trac/dracut/wiki
 Source0: dracut-%{version}%{?dashgittag}.tar.bz2
 
 Patch1: 0001-dracut.8-fixed-LUKS-paragraph.patch
-Patch2: 0002-dracut.8-add-information-which-parameter-can-be-spec.patch
-Patch3: 0003-dmraid-parse-different-error-messages.patch
-Patch4: 0004-init-add-hacky-cdrom-polling-mechanism.patch
-Patch5: 0005-add-module-btrfs.patch
-Patch6: 0006-teach-dmsquash-live-root-to-use-rootflags.patch
-Patch7: 0007-init-trigger-with-action-add.patch
-Patch8: 0008-add-missing-paragraph-for-add-drivers.patch
-Patch9: 0009-manpage-addition-for-kernel-drivers.patch
-Patch10: 0010-dracut-add_drivers-from-the-command-line-should-add-.patch
-Patch11: 0011-AUTHORS-updated.patch
-Patch12: 0012-kernel-modules-hardcode-sr_mod.patch
-Patch13: 0013-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
-Patch15: 0015-Use-pigz-for-gzipping-if-available.patch
+Patch2: 0002-Fix-ahci-detection-in-kernel-2.6.35.patch
+Patch3: 0003-dracut.8-add-information-which-parameter-can-be-spec.patch
+Patch4: 0004-dmraid-parse-different-error-messages.patch
+Patch5: 0005-init-add-hacky-cdrom-polling-mechanism.patch
+Patch6: 0006-add-module-btrfs.patch
+Patch7: 0007-teach-dmsquash-live-root-to-use-rootflags.patch
+Patch8: 0008-init-trigger-with-action-add.patch
+Patch9: 0009-add-missing-paragraph-for-add-drivers.patch
+Patch10: 0010-manpage-addition-for-kernel-drivers.patch
+Patch11: 0011-dracut-add_drivers-from-the-command-line-should-add-.patch
+Patch12: 0012-AUTHORS-updated.patch
+Patch13: 0013-kernel-modules-hardcode-sr_mod.patch
+Patch14: 0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
+Patch15: 0015-dracut.spec-add-btrfs-module.patch
+Patch16: 0016-Use-pigz-for-gzipping-if-available.patch
+Patch17: 0017-nfs-fixed-nsswitch.conf-parsing.patch
+Patch18: 0018-network-removed-bogus-udev-rules.patch
+Patch19: 0019-network-correct-rules-for-multiple-nics.patch
+Patch20: 0020-nfs-add-missing-nfsidmap-libs.patch
+Patch21: 0021-udev-rules-be-more-careful-about-md-devices-and-blki.patch
+Patch22: 0022-dracut-lib-turn-of-shell-debug-mode-in-strstr-and-ge.patch
+Patch23: 0023-mdraid-try-to-start-container-childs-manually-with-m.patch
+Patch24: 0024-init-fix-cdrom-polling-loop.patch
+Patch25: 0025-init-do-not-redirect-to.patch
+Patch26: 0026-loginit-turn-off-debugging.patch
+Patch27: 0027-TEST-12-RAID-DEG-create-root-filter-MD_UUID-only.patch
+Patch28: 0028-run-qemu-add-usr-libexec-qemu-kvm-to-search.patch
+Patch29: 0029-test-change-testsuite-to-local-tcp-rather-than-udp-m.patch
+Patch30: 0030-add-rd_retry-kernel-command-line-parameter.patch
+Patch31: 0031-test-nfs-correct-return-code-and-cleanup.patch
+Patch32: 0032-NBD-kill-server-after-failed-test.patch
+Patch33: 0033-test-TEST-50-MULTINIC-kill-server-after-failed-test.patch
+Patch34: 0034-test-TEST-50-MULTINIC-install-all-nfsidmap-libs-for-.patch
+Patch35: 0035-test-TEST-50-MULTINIC-install-sd_mod-and-ata_piix-ke.patch
+Patch36: 0036-dracut.spec-removed-e2fsprogs-requirement.patch
+Patch37: 0037-test-MULTINIC-kill-server-after-passing-all-tests.patch
+Patch38: 0038-NEWS-update.patch
+Patch39: 0039-test-NBD-check-for-nbd-kernel-module-first.patch
+Patch40: 0040-Needs-btrfsctl-not-btrfs-module.patch
+Patch41: 0041-btfrs-load-btrfs-module-and-updated-NEWS.patch
+Patch42: 0042-kernel-modules-add-more-hardcoded-modules.patch
+Patch43: 0043-dracut-functions-use-udevadm-to-get-ID_FS_.patch
+Patch44: 0044-dracut.conf-use-as-default-for-config-variables.patch
+Patch45: 0045-znet-use-ccw-init-and-ccw-rules-from-s390utils-in-dr.patch
+Patch46: 0046-znet-renamed-rd_CCW-to-rd_ZNET.patch
+Patch47: 0047-fcoe-add-sbin-vconfig-and-the-8021q-kernel-module.patch
+Patch48: 0048-dracut.8-fix-rd_LVM_LV-description.patch
+Patch49: 0049-plymouth-only-display-luksname-and-device-for-multip.patch
+Patch50: 0050-dracut.spec-remove-elfutils-libelf-requirement.patch
+Patch51: 0051-use-grep-directly-without-nm-to-drop-binutils-requir.patch
+Patch52: 0052-plymouth-plymouth-populate-initrd-get-rid-of-awk.patch
+Patch53: 0053-dracut-get-rid-of-the-file-command.patch
+Patch54: 0054-dracut.spec-clean-up-the-requirements.patch
+Patch55: 0055-90mdraid-dracut-functions-fix-md-raid-hostonly-detec.patch
+Patch56: 0056-40network-parse-ip-opts.sh-add-ip-auto6-to-valid-opt.patch
+Patch57: 0057-40network-dhclient-script-be-more-verbose.patch
+Patch58: 0058-40network-ifup-be-more-verbose.patch
+Patch59: 0059-TEST-50-MULTINIC-do-not-provide-a-cdrom-in-the-testc.patch
+Patch60: 0060-95fcoe-fcoe-up-wait_for_if_up.patch
+Patch61: 0061-get-rid-of-rdnetdebug.patch
+Patch62: 0062-95znet-removed-55-ccw.rules-and-ccw_init.patch
+Patch63: 0063-Makefile-make-more-clean.patch
+Patch64: 0064-selinux-loadpolicy.sh-exit-for-selinux-0.patch
+Patch65: 0065-dracut-functions-check-if-specific-dracut-module-is-.patch
+Patch66: 0066-multipath-simplify-and-install-wwids-rhbz-595719.patch
+Patch67: 0067-multipath-remove-multipath-udev-rules-if-no-multipat.patch
+Patch68: 0068-90crypt-crypto_LUKS-identifier-corrected.patch
+Patch69: 0069-selinux-move-selinux-to-a-separate-module.patch
+Patch70: 0070-plymouth-cryptroot-ask.sh-beautify-password-prompt.patch
+Patch71: 0071-network-depend-on-ifcfg-if-etc-sysconfig-network-scr.patch
+Patch72: 0072-network-strip-pxelinux-hardware-type-field-from-BOOT.patch
+Patch73: 0073-dracut.spec-moved-znet-to-dracut-network.patch
+Patch74: 0074-Write-rules-for-symlinks-to-dev-.udev-rules.d-for-la.patch
+Patch75: 0075-dracut-functions-set-LANG-C-for-ldd-output-parsing.patch
+Patch76: 0076-dracut-functions-use-LC_ALL-C-rather-than-LANG-C.patch
+Patch77: 0077-dmsquash-resume-do-not-name-the-dev-.udev-rules-like.patch
+Patch78: 0078-dmsquash-live-mount-live-image-at-dev-.initramfs-liv.patch
+Patch79: 0079-dmsquash-live-depend-on-dm-module.patch
+Patch80: 0080-dmsquash-live-do-not-umount-dev-.initramfs-live-for-.patch
+Patch81: 0081-plymouth-depend-on-crypt-if-cryptsetup-exists.patch
+Patch82: 0082-dracut.spec-removed-duplicate-COPYING.patch
+Patch83: 0083-Just-look-for-cryptroot-instead-of-sbin-cryptroot.patch
+Patch84: 0084-Have-cryptroot-ask-load-dm_crypt-if-needed.patch
+Patch85: 0085-crypt-assemble-70-luks.rules-dynamically.patch
+Patch86: 0086-cryptroot-ask-s-getargs-rd_NO_CRYPTTAB-getarg-rd_NO_.patch
+Patch87: 0087-crypt-parse-crypt.sh-fix-end-label-for-luks-udev-rul.patch
+Patch88: 0088-crypt-wait-for-all-rd_LUKS_UUID-disks-to-appear.patch
+Patch89: 0089-dracut-lib.sh-getarg-returns-the-value-of-the-last-a.patch
+Patch90: 0090-dracut-fixed-stripping-of-kernel-modules.patch
+Patch91: 0091-conffile-before-confdir.patch
+Patch92: 0092-selinux-fixed-error-handling-for-load-policy.patch
+Patch93: 0093-btrfs-add-hostonly-check.patch
+Patch94: 0094-lvm-wait-for-all-rd_LVM_LV-and-rd_LVM_VG-specified-t.patch
+Patch95: 0095-90crypt-keys-on-external-devices-support.patch
+Patch96: 0096-crypt-remove-emergency-source-of-dracut-lib.sh.patch
+Patch97: 0097-dracut-functions-fix-m-a-handling.patch
+Patch98: 0098-removed-redundant-64-lvm.rules-install.patch
+Patch99: 0099-crypt-strip-luks-from-rd_LUKS_UUID.patch
+Patch100: 0100-crypt-loop-until-all-non-busy-crypt-devs-closed.patch
+Patch101: 0101-dracut-functions-fix-check-255-logic-and-dependencie.patch
+Patch102: 0102-crypt-fix-printf.patch
+Patch103: 0103-mdraid-remove-local.patch
+Patch104: 0104-mdraid-remove-mdadm.conf-on-rd_NO_MDADMCONF.patch
+Patch105: 0105-dracut-lib.sh-fixed-getarg-for-nonexistent-parameter.patch
+Patch106: 0106-mkdir-dev-.udev-rules.d-with-mode-0755.patch
+Patch107: 0107-init-create-dev-.udev-rules.d-with-correct-permissio.patch
+Patch108: 0108-dracut-functions-fixed-omit.patch
+Patch109: 0109-Harden-check-for-used-modules-in-hostonly-mode.patch
+Patch110: 0110-fips-udev-trigger-with-action-add.patch
+Patch111: 0111-dracut-let-fwdir-be-specified-multiple-times.patch
+Patch112: 0112-dracut-functions-use-proc-self-mountinfo-instead-of-.patch
+Patch113: 0113-dracut-add-fstab-to-ignore-proc-self-mountinfo.patch
+Patch114: 0114-plymouth-load-dm_crypt-module.patch
+Patch115: 0115-crypt-depend-on-dm.patch
+Patch116: 0116-plymouth-udev-trigger-with-action-add.patch
+Patch117: 0117-dm-install-all-md-dm-kernel-modules.patch
+Patch118: 0118-mkinitrd-do-not-call-dracut-in-host-only-mode.patch
+Patch119: 0119-dmraid-switch-to-rd_NO_MDIMSM-if-no-mdadm-installed.patch
+Patch120: 0120-mknod-with-mode-and-set-umask-for-the-rest.patch
+Patch121: 0121-plymouth-do-not-create-hvc0.patch
+Patch122: 0122-init-set-old-umask-before-switch_root.patch
+Patch123: 0123-init-do-not-set-umask-yet.patch
+Patch124: 0124-lvm-also-handle-LVM1-volumes.patch
+Patch125: 0125-dracut-functions-filter_kernel_modules-search-in-ext.patch
+Patch126: 0126-dracut-lib-and-usr-lib-dirs-detection.patch
+Patch127: 0127-lvm-install-lvm-mirror-and-snaphot-libs.patch
+Patch128: 0128-lvm-support-for-dynamic-LVM-SNAPSHOT-root-volume.patch
+Patch129: 0129-95fstab-sys-mount-all-etc-fstab.sys-volumes-before-s.patch
+Patch130: 0130-TEST-12-RAID-DEG-mark-test-failed-for-multiple-dummy.patch
+Patch131: 0131-test-double-disk-space-for-root-images.patch
+Patch132: 0132-network-kill-9-dhclient-if-normal-kill-does-not-succ.patch
+Patch133: 0133-md-do-not-use-no-degraded-for-incremental-mode.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -72,10 +191,10 @@ Requires: bash
 Requires: dash
 Requires: /bin/sh 
 Requires: fileutils, gzip, tar
-Requires: lvm2 >= 2.02.33-9, dhclient
+Requires: lvm2 >= 2.02.33-9
 Requires: filesystem >= 2.1.0, cpio, device-mapper, initscripts >= 8.63-1
 Requires: e2fsprogs >= 1.38-12, coreutils
-Requires: mdadm, elfutils-libelf 
+Requires: mdadm
 Requires(pre): plymouth >= 0.8.0-0.2009.29.09.19.1
 Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
 Requires: cryptsetup-luks
@@ -102,6 +221,7 @@ Summary: Dracut modules to build a dracut initramfs with network support
 Requires: %{name} = %{version}-%{release}
 Requires: rpcbind nfs-utils 
 Requires: iscsi-initiator-utils
+Requires: dhclient
 %if %{with_nbd}
 Requires: nbd
 %endif
@@ -143,6 +263,7 @@ Requires: coreutils cryptsetup-luks device-mapper
 Requires: diffutils dmraid findutils gawk grep lvm2
 Requires: module-init-tools sed
 Requires: cpio gzip
+Requires: %{name} = %{version}-%{release}
 
 %description tools
 This package contains tools to assemble the local initrd and host configuration.
@@ -163,7 +284,126 @@ This package contains tools to assemble the local initrd and host configuration.
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 %patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
+%patch56 -p1
+%patch57 -p1
+%patch58 -p1
+%patch59 -p1
+%patch60 -p1
+%patch61 -p1
+%patch62 -p1
+%patch63 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
+%patch68 -p1
+%patch69 -p1
+%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p1
+%patch77 -p1
+%patch78 -p1
+%patch79 -p1
+%patch80 -p1
+%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
+%patch90 -p1
+%patch91 -p1
+%patch92 -p1
+%patch93 -p1
+%patch94 -p1
+%patch95 -p1
+%patch96 -p1
+%patch97 -p1
+%patch98 -p1
+%patch99 -p1
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+%patch109 -p1
+%patch110 -p1
+%patch111 -p1
+%patch112 -p1
+%patch113 -p1
+%patch114 -p1
+%patch115 -p1
+%patch116 -p1
+%patch117 -p1
+%patch118 -p1
+%patch119 -p1
+%patch120 -p1
+%patch121 -p1
+%patch122 -p1
+%patch123 -p1
+%patch124 -p1
+%patch125 -p1
+%patch126 -p1
+%patch127 -p1
+%patch128 -p1
+%patch129 -p1
+%patch130 -p1
+%patch131 -p1
+%patch132 -p1
+%patch133 -p1
 
 %build
 make WITH_SWITCH_ROOT=0%{?with_switch_root}
@@ -226,10 +466,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/dracut/modules.d/95dasd
 %{_datadir}/dracut/modules.d/95dasd_mod
 %{_datadir}/dracut/modules.d/95zfcp
-%{_datadir}/dracut/modules.d/95znet
 %{_datadir}/dracut/modules.d/95terminfo
 %{_datadir}/dracut/modules.d/95udev-rules
 %{_datadir}/dracut/modules.d/95uswsusp
+%{_datadir}/dracut/modules.d/98selinux
 %{_datadir}/dracut/modules.d/98syslog
 %{_datadir}/dracut/modules.d/99base
 # logfile needs no logrotate, because it gets overwritten
@@ -245,10 +485,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/dracut/modules.d/95nbd
 %{_datadir}/dracut/modules.d/95nfs
 %{_datadir}/dracut/modules.d/45ifcfg
+%{_datadir}/dracut/modules.d/95znet
 
 %files fips
 %defattr(-,root,root,0755)
-%doc COPYING
 %{_datadir}/dracut/modules.d/01fips
 
 %files generic
@@ -257,7 +497,6 @@ rm -rf $RPM_BUILD_ROOT
 
 %files tools 
 %defattr(-,root,root,0755)
-%doc COPYING NEWS
 %{_mandir}/man8/dracut-gencmdline.8*
 %{_mandir}/man8/dracut-catimages.8*
 /sbin/dracut-gencmdline
@@ -267,6 +506,16 @@ rm -rf $RPM_BUILD_ROOT
 %dir /var/lib/dracut/overlay
 
 %changelog
+* Wed Sep 22 2010 Harald Hoyer <harald at redhat.com> 005-4
+- backported a lot of bugfixes from git 
+
+* Tue Apr 20 2010 Harald Hoyer <harald at redhat.com> 005-3
+- fixed network with multiple nics
+- fixed nfsidmap paths
+- do not run blkid on non active container raids
+- fixed cdrom polling mechanism
+- update to latest git
+
 * Thu Apr 15 2010 Harald Hoyer <harald at redhat.com> 005-2
 - fixed dracut manpages
 - dmraid parse different error messages


More information about the scm-commits mailing list