[dracut/f13/master] - backported a lot of bugfixes from git
Harald Hoyer
harald at fedoraproject.org
Thu Sep 23 15:16:50 UTC 2010
commit 1e022ab492e9b2be3db3c1d6800bf6039f67ef12
Author: Harald Hoyer <harald at redhat.com>
Date: Thu Sep 23 17:16:49 2010 +0200
- backported a lot of bugfixes from git
0001-Fix-ahci-detection-in-kernel-2.6.35.patch | 33 +++
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 | 88 ++++++
0004-dmraid-parse-different-error-messages.patch | 25 ++
0005-init-add-hacky-cdrom-polling-mechanism.patch | 38 +++
0006-add-module-btrfs.patch | 70 +++++
...teach-dmsquash-live-root-to-use-rootflags.patch | 30 ++
0008-init-trigger-with-action-add.patch | 25 ++
0009-add-missing-paragraph-for-add-drivers.patch | 27 ++
0010-manpage-addition-for-kernel-drivers.patch | 47 ++++
...drivers-from-the-command-line-should-add-.patch | 25 ++
0012-AUTHORS-updated.patch | 48 ++++
0013-kernel-modules-hardcode-sr_mod.patch | 27 ++
...les-only-remove-ocfs2-if-all-filesystems-.patch | 34 +++
0015-dracut.spec-add-btrfs-module.patch | 24 ++
0016-Use-pigz-for-gzipping-if-available.patch | 41 +++
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 +++++++++
...l-9-dhclient-if-normal-kill-does-not-succ.patch | 29 ++
...-not-use-no-degraded-for-incremental-mode.patch | 25 ++
dracut.spec | 281 ++++++++++++++++---
135 files changed, 6486 insertions(+), 48 deletions(-)
---
diff --git a/0001-Fix-ahci-detection-in-kernel-2.6.35.patch b/0001-Fix-ahci-detection-in-kernel-2.6.35.patch
new file mode 100644
index 0000000..ae76d84
--- /dev/null
+++ b/0001-Fix-ahci-detection-in-kernel-2.6.35.patch
@@ -0,0 +1,33 @@
+From 0493f9c8491fc31e7b08b55183b2f6decdc98f97 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] 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 2171e5a..e679b10 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'
+
+ egrep -q "$blockfuncs" "$1"
+ }
+--
+1.7.2
+
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/0003-dracut.8-add-information-which-parameter-can-be-spec.patch b/0003-dracut.8-add-information-which-parameter-can-be-spec.patch
new file mode 100644
index 0000000..57ba890
--- /dev/null
+++ b/0003-dracut.8-add-information-which-parameter-can-be-spec.patch
@@ -0,0 +1,88 @@
+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 003/133] dracut.8: add information, which parameter can be specified multiple times
+
+---
+ dracut.8 | 15 ++++++++++++---
+ 1 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index 5220dea..57626fe 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -132,9 +132,11 @@ do not honor special mount options for the root filesystem found in
+ .TP
+ .BR rdblacklist= <drivername>
+ do not load kernel module <drivername>
++This parameter can be specified multiple times.
+ .TP
+ .BR rdloaddriver= <drivername>
+ force loading kernel module <drivername>
++This parameter can be specified multiple times.
+
+ .SS Debug
+ .TP
+@@ -214,6 +216,7 @@ only activate the LUKS partitions with the given UUID
+ Any "luks-" of the LUKS UUID is removed before comparing to <luks uuid>.
+ The comparisons also matches, if <luks uuid> is only the beginning of the
+ LUKS UUID, so you don't have to specify the full UUID.
++This parameter can be specified multiple times.
+ .TP
+ .BR rd_NO_CRYPTTAB
+ do not check, if LUKS partition is in /etc/crypttab
+@@ -230,7 +233,8 @@ no MD RAID for imsm/isw raids, use dmraid instead
+ ignore mdadm.conf included in initramfs
+ .TP
+ .BR rd_MD_UUID= "<md uuid>"
+-only activate the raid sets with the given UUID
++only activate the raid sets with the given UUID.
++This parameter can be specified multiple times.
+
+ .SS DMRAID
+ .TP
+@@ -238,7 +242,8 @@ only activate the raid sets with the given UUID
+ disable DM RAID detection
+ .TP
+ .BR rd_DM_UUID= "<dmraid uuid>"
+-only activate the raid sets with the given UUID
++only activate the raid sets with the given UUID.
++This parameter can be specified multiple times.
+
+ .SS Network
+ .TP
+@@ -251,19 +256,22 @@ auto6: do IPv6 autoconfiguration
+ .TP
+ .BR ip= <interface>:{dhcp|on|any|dhcp6|auto6}
+ dhcp|on|any|dhcp6: get ip from dhcp server on a specific interface
+-
+ auto6: do IPv6 autoconfiguration
++This parameter can be specified multiple times.
++
+ .TP
+ .ad l
+ .BR ip= "\%<client-IP>\::[<server-id>]\::<gateway-IP>\::<netmask>\::<client\%hostname>\::<interface>\::{none|off}"
+ .ad
+ explicit network configuration. If you want do define a IPv6 address, put it in brackets (e.g. [2001:DB8::1]).
++This parameter can be specified multiple times.
+ .TP
+ .BR ifname= <interface>:<MAC>
+ Assign network device name <interface> (ie eth0) to the NIC with MAC <MAC>.
+ Note letters in the MAC-address must be lowercase!
+ Note that if you use this option you \fBmust\fR specify an ifname= argument
+ for all interfaces used in ip= or fcoe= arguments
++This parameter can be specified multiple times.
+ .TP
+ .BR bootdev= <interface>
+ specify network interface to use routing and netroot information from.
+@@ -371,6 +379,7 @@ same syntax as the kernel module parameter (s390 only)
+ .ad
+ activate DASD device with the given adaptor device bus ID and setting the sysfs attributes
+ to the specified values
++This parameter can be specified multiple times.
+
+ .SS ZFCP
+ .TP
+--
+1.7.3
+
diff --git a/0004-dmraid-parse-different-error-messages.patch b/0004-dmraid-parse-different-error-messages.patch
new file mode 100644
index 0000000..405d0fc
--- /dev/null
+++ b/0004-dmraid-parse-different-error-messages.patch
@@ -0,0 +1,25 @@
+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 004/133] dmraid: parse different error messages
+
+---
+ modules.d/90dmraid/dmraid.sh | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh
+index 4e47e2d..dba655b 100755
+--- a/modules.d/90dmraid/dmraid.sh
++++ b/modules.d/90dmraid/dmraid.sh
+@@ -10,7 +10,7 @@ DM_CLEANUP="no"
+ info "Scanning for dmraid devices $DM_RAIDS"
+ SETS=$(dmraid -c -s)
+
+-if [ "$SETS" = "no raid disks" ]; then
++if [ "$SETS" = "no raid disks" -o "$SETS" = "no raid sets" ]; then
+ return
+ fi
+
+--
+1.7.3
+
diff --git a/0005-init-add-hacky-cdrom-polling-mechanism.patch b/0005-init-add-hacky-cdrom-polling-mechanism.patch
new file mode 100644
index 0000000..a04c39b
--- /dev/null
+++ b/0005-init-add-hacky-cdrom-polling-mechanism.patch
@@ -0,0 +1,38 @@
+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 005/133] init: add hacky cdrom polling mechanism
+
+---
+ modules.d/99base/init | 14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/init b/modules.d/99base/init
+index ab7aafe..b9b6361 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -186,8 +186,20 @@ while :; do
+
+ # no more udev jobs and queues empty.
+ sleep 0.5
++
++ # dirty hack for some cdrom drives,
++ # which report no medium for quiet
++ # some time.
++ for cdrom in /sys/block/sr*; do
++ [ -e "$cdrom" ] || continue
++ # skip, if cdrom medium was already found
++ strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
++ ID_CDROM_MEDIA && continue
++ echo change > "$cdrom"
++ done
++
+ i=$(($i+1))
+- [ $i -gt 20 ] \
++ [ $i -gt 40 ] \
+ && { flock -s 9 ; emergency_shell "No root device found"; } 9>/.console_lock
+ done
+ unset job
+--
+1.7.3
+
diff --git a/0006-add-module-btrfs.patch b/0006-add-module-btrfs.patch
new file mode 100644
index 0000000..5e059f0
--- /dev/null
+++ b/0006-add-module-btrfs.patch
@@ -0,0 +1,70 @@
+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 006/133] add module btrfs
+
+---
+ modules.d/90btrfs/40-btrfs.rules | 7 +++++++
+ modules.d/90btrfs/check | 10 ++++++++++
+ modules.d/90btrfs/install | 4 ++++
+ modules.d/95udev-rules/install | 2 +-
+ 4 files changed, 22 insertions(+), 1 deletions(-)
+ create mode 100644 modules.d/90btrfs/40-btrfs.rules
+ create mode 100755 modules.d/90btrfs/check
+ create mode 100755 modules.d/90btrfs/install
+
+diff --git a/modules.d/90btrfs/40-btrfs.rules b/modules.d/90btrfs/40-btrfs.rules
+new file mode 100644
+index 0000000..e74ba1a
+--- /dev/null
++++ b/modules.d/90btrfs/40-btrfs.rules
+@@ -0,0 +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}"
++
++LABEL="btrfs_end"
++
+diff --git a/modules.d/90btrfs/check b/modules.d/90btrfs/check
+new file mode 100755
+index 0000000..2897d46
+--- /dev/null
++++ b/modules.d/90btrfs/check
+@@ -0,0 +1,10 @@
++#!/bin/bash
++
++# 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
++
++exit 0
+diff --git a/modules.d/90btrfs/install b/modules.d/90btrfs/install
+new file mode 100755
+index 0000000..130a84d
+--- /dev/null
++++ b/modules.d/90btrfs/install
+@@ -0,0 +1,4 @@
++#!/bin/bash
++
++inst_rules "$moddir/40-btrfs.rules"
++dracut_install btrfs
+diff --git a/modules.d/95udev-rules/install b/modules.d/95udev-rules/install
+index ae64f3e..23693fe 100755
+--- a/modules.d/95udev-rules/install
++++ b/modules.d/95udev-rules/install
+@@ -24,7 +24,7 @@ else
+ inst_rules "$moddir/59-persistent-storage-volid.rules"
+ fi
+ inst_rules "$moddir/61-persistent-storage.rules"
+-
++
+ for i in \
+ ata_id \
+ cdrom_id \
+--
+1.7.3
+
diff --git a/0007-teach-dmsquash-live-root-to-use-rootflags.patch b/0007-teach-dmsquash-live-root-to-use-rootflags.patch
new file mode 100644
index 0000000..03d76d9
--- /dev/null
+++ b/0007-teach-dmsquash-live-root-to-use-rootflags.patch
@@ -0,0 +1,30 @@
+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 007/133] teach dmsquash-live-root to use rootflags
+
+---
+ modules.d/90dmsquash-live/dmsquash-live-root | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root b/modules.d/90dmsquash-live/dmsquash-live-root
+index b1754dc..c98cdef 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root
++++ b/modules.d/90dmsquash-live/dmsquash-live-root
+@@ -172,7 +172,12 @@ if [ -b "$OSMIN_LOOPDEV" ]; then
+ echo "0 $( blockdev --getsz $BASE_LOOPDEV ) snapshot $BASE_LOOPDEV $OSMIN_LOOPDEV p 8" | dmsetup create --readonly live-osimg-min
+ fi
+
++ROOTFLAGS="$(getarg rootflags)"
++if [ -n "$ROOTFLAGS" ]; then
++ ROOTFLAGS="-o $ROOTFLAGS"
++fi
++
+ ln -s /dev/mapper/live-rw /dev/root
+-printf '/bin/mount /dev/mapper/live-rw %s\n' "$NEWROOT" > /mount/01-$$-live.sh
++printf '/bin/mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS" "$NEWROOT" > /mount/01-$$-live.sh
+
+ exit 0
+--
+1.7.3
+
diff --git a/0008-init-trigger-with-action-add.patch b/0008-init-trigger-with-action-add.patch
new file mode 100644
index 0000000..006a4df
--- /dev/null
+++ b/0008-init-trigger-with-action-add.patch
@@ -0,0 +1,25 @@
+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 008/133] init: trigger with --action=add
+
+---
+ 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 b9b6361..4696915 100755
+--- a/modules.d/99base/init
++++ b/modules.d/99base/init
+@@ -147,7 +147,7 @@ getarg 'rdbreak=pre-trigger' && emergency_shell -n pre-trigger "Break before pre
+ source_all pre-trigger
+
+ # then the rest
+-udevadm trigger $udevtriggeropts >/dev/null 2>&1
++udevadm trigger --action=add $udevtriggeropts >/dev/null 2>&1
+
+ getarg 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
+
+--
+1.7.3
+
diff --git a/0009-add-missing-paragraph-for-add-drivers.patch b/0009-add-missing-paragraph-for-add-drivers.patch
new file mode 100644
index 0000000..3339f05
--- /dev/null
+++ b/0009-add-missing-paragraph-for-add-drivers.patch
@@ -0,0 +1,27 @@
+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 009/133] add missing paragraph for --add-drivers
+
+---
+ dracut.8 | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index 57626fe..834c4f2 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -28,8 +28,9 @@ omit a space-separated list of dracut modules.
+ add a space-separated list of dracut modules.
+ .TP
+ .BR \-d ", " \-\-drivers " \fILIST\fR"
+-specify a space-separated list of kernel modules to exclusively include#
++specify a space-separated list of kernel modules to exclusively include
+ in the initramfs.
++.TP
+ .BR \-\-add-drivers " \fILIST\fR"
+ specify a space-separated list of kernel modules to add to the initramfs.
+ .TP
+--
+1.7.3
+
diff --git a/0010-manpage-addition-for-kernel-drivers.patch b/0010-manpage-addition-for-kernel-drivers.patch
new file mode 100644
index 0000000..b87bfcb
--- /dev/null
+++ b/0010-manpage-addition-for-kernel-drivers.patch
@@ -0,0 +1,47 @@
+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 010/133] manpage addition for kernel drivers
+
+The kernel modules have to be specified without the ".ko" suffix.
+---
+ dracut.8 | 2 ++
+ dracut.conf.5 | 2 ++
+ 2 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/dracut.8 b/dracut.8
+index 834c4f2..31a70fc 100644
+--- a/dracut.8
++++ b/dracut.8
+@@ -30,9 +30,11 @@ add a space-separated list of dracut modules.
+ .BR \-d ", " \-\-drivers " \fILIST\fR"
+ 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 " \fILIST\fR"
+ 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 " \fILIST\fR"
+ specify a space-separated list of kernel filesystem modules to exclusively
+diff --git a/dracut.conf.5 b/dracut.conf.5
+index 30bf16f..a781dfb 100644
+--- a/dracut.conf.5
++++ b/dracut.conf.5
+@@ -26,10 +26,12 @@ Add a space-separated list of dracut modules.
+ .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]"
+ 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]"
+ Specify a space-separated list of kernel filesystem
+--
+1.7.3
+
diff --git a/0011-dracut-add_drivers-from-the-command-line-should-add-.patch b/0011-dracut-add_drivers-from-the-command-line-should-add-.patch
new file mode 100644
index 0000000..63ff891
--- /dev/null
+++ b/0011-dracut-add_drivers-from-the-command-line-should-add-.patch
@@ -0,0 +1,25 @@
+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 011/133] dracut: add_drivers from the command line should add up to the conffile
+
+---
+ dracut | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut b/dracut
+index b16e205..8c0adad 100755
+--- a/dracut
++++ b/dracut
+@@ -143,7 +143,7 @@ fi
+ [[ $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_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
+--
+1.7.3
+
diff --git a/0012-AUTHORS-updated.patch b/0012-AUTHORS-updated.patch
new file mode 100644
index 0000000..592a5db
--- /dev/null
+++ b/0012-AUTHORS-updated.patch
@@ -0,0 +1,48 @@
+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 012/133] AUTHORS: updated
+
+---
+ AUTHORS | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/AUTHORS b/AUTHORS
+index ebb4157..0b449de 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -1,7 +1,7 @@
+ Harald Hoyer <harald at redhat.com>
+ Victor Lowther <victor.lowther at gmail.com>
+-Warren Togami <wtogami at redhat.com>
+ Philippe Seewer <philippe.seewer at bfh.ch>
++Warren Togami <wtogami at redhat.com>
+ Jeremy Katz <katzj at redhat.com>
+ David Dillow <dave at thedillows.org>
+ Andreas Thienemann <andreas at bawue.net>
+@@ -9,6 +9,7 @@ Hans de Goede <hdegoede at redhat.com>
+ Peter Jones <pjones at redhat.com>
+ Luca Berra <bluca at comedia.it>
+ Marc Grimme <grimme at atix.de>
++Andrey Borzenkov <arvidjaar at mail.ru>
+ Bill Nottingham <notting at redhat.com>
+ Daniel Drake <dsd at laptop.org>
+ David Cantrell <dcantrell at redhat.com>
+@@ -16,12 +17,13 @@ Lance Albertson <lance at osuosl.org>
+ Michael Ploujnikov <plouj at somanetworks.com>
+ Alan Jenkins <alan-jenkins at tuffmail.co.uk>
+ Dan Horák <dan at danny.cz>
+-Andrey Borzenkov <arvidjaar at mail.ru>
++Joey Boggs <jboggs at redhat.com>
+ Dave Jones <davej at redhat.com>
+ Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
+ Luca Berra <bluca at vodka.it>
+ Michal Schmidt <mschmidt at redhat.com>
+ Mike Snitzer <msnitzer at redhat.com>
++Mike Snitzer <snitzer at redhat.com>
+ Munehiro Matsuda <haro at kgt.co.jp>
+ Peter Rajnoha <prajnoha at redhat.com>
+ Quentin Armitage <quentin at armitage.org.uk>
+--
+1.7.3
+
diff --git a/0013-kernel-modules-hardcode-sr_mod.patch b/0013-kernel-modules-hardcode-sr_mod.patch
new file mode 100644
index 0000000..35dd51e
--- /dev/null
+++ b/0013-kernel-modules-hardcode-sr_mod.patch
@@ -0,0 +1,27 @@
+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 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 87819d3..63c5bde 100755
+--- a/modules.d/90kernel-modules/installkernel
++++ b/modules.d/90kernel-modules/installkernel
+@@ -5,8 +5,8 @@ if [[ -z $drivers ]]; then
+
+ nm -uPA "$1" | egrep -q "$blockfuncs"
+ }
+- hostonly='' instmods pcmcia sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
+- hostonly='' instmods firewire-ohci
++ hostonly='' instmods sr_mod sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
++ hostonly='' instmods pcmcia firewire-ohci
+
+ # install keyboard support
+ hostonly='' instmods atkbd i8042 usbhid hid-apple ehci-hcd ohci-hcd uhci-hcd
+--
+1.7.3
+
diff --git a/0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch b/0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
new file mode 100644
index 0000000..36476cd
--- /dev/null
+++ b/0014-kernel-modules-only-remove-ocfs2-if-all-filesystems-.patch
@@ -0,0 +1,34 @@
+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 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 63c5bde..7a669f6 100755
+--- a/modules.d/90kernel-modules/installkernel
++++ b/modules.d/90kernel-modules/installkernel
+@@ -17,14 +17,15 @@ if [[ -z $drivers ]]; then
+ if ! [[ $hostonly ]]; then
+ if [[ -z $filesystems ]]; then
+ instmods '=fs'
++ # hardcoded list of exceptions
++ # to save a lot of space
++ rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
+ else
+ instmods $filesystems
+ fi
+ else
+ hostonly='' instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
+ fi
+- # hardcoded list of exceptions
+- rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
+ else
+ hostonly='' instmods $drivers $filesystems
+ fi
+--
+1.7.3
+
diff --git a/0015-dracut.spec-add-btrfs-module.patch b/0015-dracut.spec-add-btrfs-module.patch
new file mode 100644
index 0000000..10e8a5c
--- /dev/null
+++ b/0015-dracut.spec-add-btrfs-module.patch
@@ -0,0 +1,24 @@
+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 015/133] dracut.spec: add btrfs module
+
+---
+ dracut.spec | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index c4bc00d..e2b6f44 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -180,6 +180,7 @@ rm -rf $RPM_BUILD_ROOT
+ %{_datadir}/dracut/modules.d/10rpmversion
+ %{_datadir}/dracut/modules.d/50plymouth
+ %{_datadir}/dracut/modules.d/60xen
++%{_datadir}/dracut/modules.d/90btrfs
+ %{_datadir}/dracut/modules.d/90crypt
+ %{_datadir}/dracut/modules.d/90dm
+ %{_datadir}/dracut/modules.d/90dmraid
+--
+1.7.3
+
diff --git a/0016-Use-pigz-for-gzipping-if-available.patch b/0016-Use-pigz-for-gzipping-if-available.patch
new file mode 100644
index 0000000..6ab8dab
--- /dev/null
+++ b/0016-Use-pigz-for-gzipping-if-available.patch
@@ -0,0 +1,41 @@
+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 016/133] Use pigz for gzipping if available.
+
+---
+ dracut | 3 ++-
+ dracut-catimages | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/dracut b/dracut
+index 8c0adad..0ae07f2 100755
+--- a/dracut
++++ b/dracut
+@@ -303,7 +303,8 @@ if [[ $do_strip = yes ]] ; then
+ done
+ fi
+
+-( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet |gzip -9 > "$outfile"; )
++type pigz &>/dev/null && gzip=pigz || gzip=gzip
++( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet |$gzip -9 > "$outfile"; )
+ if [ $? -ne 0 ]; then
+ derror "dracut: creation of $outfile failed"
+ exit 1
+diff --git a/dracut-catimages b/dracut-catimages
+index b19f20a..d49d0e2 100755
+--- a/dracut-catimages
++++ b/dracut-catimages
+@@ -102,7 +102,8 @@ fi
+ if [[ ! $no_overlay ]]; then
+ ofile="$imagedir/90-overlay.img"
+ dinfo "Creating image $ofile from directory $overlay"
+- ( cd "$overlay"; find . |cpio --quiet -H newc -o |gzip -9 > "$ofile"; )
++ type pigz &>/dev/null && gzip=pigz || gzip=gzip
++ ( cd "$overlay"; find . |cpio --quiet -H newc -o |$gzip -9 > "$ofile"; )
+ fi
+
+ if [[ ! $no_imagedir ]]; then
+--
+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/0132-network-kill-9-dhclient-if-normal-kill-does-not-succ.patch b/0132-network-kill-9-dhclient-if-normal-kill-does-not-succ.patch
new file mode 100644
index 0000000..7376da1
--- /dev/null
+++ b/0132-network-kill-9-dhclient-if-normal-kill-does-not-succ.patch
@@ -0,0 +1,29 @@
+From 20415e1dfdc88697e0869a086fcb11fd9f4b91e7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 23 Sep 2010 16:23:33 +0200
+Subject: [PATCH 132/133] network: kill -9 dhclient, if normal kill does not succeed
+
+https://bugzilla.redhat.com/show_bug.cgi?id=583348
+---
+ modules.d/40network/kill-dhclient.sh | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/40network/kill-dhclient.sh
+index 54b3344..fb74385 100755
+--- a/modules.d/40network/kill-dhclient.sh
++++ b/modules.d/40network/kill-dhclient.sh
+@@ -5,3 +5,11 @@ for f in /tmp/dhclient.*.pid; do
+ read PID < $f;
+ kill $PID;
+ done
++
++sleep 0.1
++
++for f in /tmp/dhclient.*.pid; do
++ [ -e $f ] || continue
++ read PID < $f;
++ kill -9 $PID;
++done
+--
+1.7.3
+
diff --git a/0133-md-do-not-use-no-degraded-for-incremental-mode.patch b/0133-md-do-not-use-no-degraded-for-incremental-mode.patch
new file mode 100644
index 0000000..6eb5a74
--- /dev/null
+++ b/0133-md-do-not-use-no-degraded-for-incremental-mode.patch
@@ -0,0 +1,25 @@
+From d5e7a9520cdcd7353c763386f35c30769a429096 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 23 Sep 2010 16:25:35 +0200
+Subject: [PATCH 133/133] md: do not use --no-degraded for incremental mode
+
+---
+ modules.d/90mdraid/65-md-incremental-imsm.rules | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index 93715f5..57db798 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -37,7 +37,7 @@ LABEL="md_auto_end"
+ #
+ # Incrementally build the md array
+ #
+-RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}"
++RUN+="/sbin/mdadm -I $env{DEVNAME}"
+
+ RUN+="/bin/ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh"
+
+--
+1.7.3
+
diff --git a/dracut.spec b/dracut.spec
index 0368aa1..246c004 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -20,7 +20,7 @@
Name: dracut
Version: 005
-Release: 3%{?rdist}
+Release: 4%{?rdist}
Summary: Initramfs generator using udev
Group: System Environment/Base
License: GPLv2+
@@ -30,45 +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
-Patch14: 0014-dracut.spec-add-btrfs-module.patch
-Patch15: 0015-Use-pigz-for-gzipping-if-available.patch
-Patch16: 0016-nfs-fixed-nsswitch.conf-parsing.patch
-Patch17: 0017-network-removed-bogus-udev-rules.patch
-Patch18: 0018-network-correct-rules-for-multiple-nics.patch
-Patch19: 0019-nfs-add-missing-nfsidmap-libs.patch
-Patch20: 0020-udev-rules-be-more-careful-about-md-devices-and-blki.patch
-Patch21: 0021-dracut-lib-turn-of-shell-debug-mode-in-strstr-and-ge.patch
-Patch22: 0022-mdraid-try-to-start-container-childs-manually-with-m.patch
-Patch23: 0023-init-fix-cdrom-polling-loop.patch
-Patch24: 0024-init-do-not-redirect-to.patch
-Patch25: 0025-loginit-turn-off-debugging.patch
-Patch26: 0026-TEST-12-RAID-DEG-create-root-filter-MD_UUID-only.patch
-Patch27: 0027-run-qemu-add-usr-libexec-qemu-kvm-to-search.patch
-Patch28: 0028-test-change-testsuite-to-local-tcp-rather-than-udp-m.patch
-Patch29: 0029-add-rd_retry-kernel-command-line-parameter.patch
-Patch30: 0030-test-nfs-correct-return-code-and-cleanup.patch
-Patch31: 0031-NBD-kill-server-after-failed-test.patch
-Patch32: 0032-test-TEST-50-MULTINIC-kill-server-after-failed-test.patch
-Patch33: 0033-test-TEST-50-MULTINIC-install-all-nfsidmap-libs-for-.patch
-Patch34: 0034-test-TEST-50-MULTINIC-install-sd_mod-and-ata_piix-ke.patch
-Patch35: 0035-dracut.spec-removed-e2fsprogs-requirement.patch
-Patch36: 0036-test-MULTINIC-kill-server-after-passing-all-tests.patch
-Patch37: 0037-NEWS-update.patch
-Patch38: 0038-test-NBD-check-for-nbd-kernel-module-first.patch
-Patch39: 0039-Needs-btrfsctl-not-btrfs-module.patch
-Patch40: 0040-btfrs-load-btrfs-module-and-updated-NEWS.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)
@@ -98,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
@@ -128,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
@@ -169,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.
@@ -216,6 +311,99 @@ This package contains tools to assemble the local initrd and host configuration.
%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}
@@ -277,11 +465,12 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/dracut/modules.d/95rootfs-block
%{_datadir}/dracut/modules.d/95dasd
%{_datadir}/dracut/modules.d/95dasd_mod
+%{_datadir}/dracut/modules.d/95fstab-sys
%{_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
@@ -297,10 +486,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
@@ -309,7 +498,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
@@ -319,6 +507,9 @@ 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
More information about the scm-commits
mailing list