[dracut/f16] dracut-018-55.git20120606

Harald Hoyer harald at fedoraproject.org
Wed Jun 6 09:31:06 UTC 2012


commit c3184574febc975cb054a6dcb9d527576005fe8b
Author: Harald Hoyer <harald at redhat.com>
Date:   Wed Jun 6 11:30:25 2012 +0200

    dracut-018-55.git20120606
    
    - update to F17 version
    - support for /usr mounting in the initramfs
    - better hostonly support
    - faster image creation

 ...live-dmsquash-live-root-include-fs_lib.sh.patch |   24 --
 ...-add-str_ends-to-go-along-with-str_starts.patch |   25 ++
 0002-fix-live-crash-with-livenet-installed.patch   |   24 --
 ...tup_net-at-start-of-initqueue-online-hook.patch |   55 +++
 ...tions-s-emergency-shutdown-shutdown-emerg.patch |   22 --
 ...-save_netinfo-fix-problems-with-nfs-NM-ta.patch |   65 ++++
 ...ep-work-as-documented-with-less-vars-than.patch |   35 ++
 0004-dracut-functions-speed-up-inst_dir.patch      |   41 ---
 ...tions-new-function-inst_any-d-dest-f1-f2-.patch |   49 ---
 ...tdown-use-emergency_shell-from-dracut-lib.patch |  109 ++++++
 ...ctions-fix-inst_dir-for-non-absolute-dirs.patch |   22 --
 ...k-avoid-remount-when-options-don-t-change.patch |   52 +++
 ...-md-incremental-imsm.rules-incremental-ru.patch |   26 --
 0007-Debian-multiarch-support.patch                |  279 +++++++++++++++
 ...ild-initramfs-unclear-_mpargs-in-instmods.patch |   43 ---
 ...og-installed-modules-to-initdir-lib-dracu.patch |   26 ++
 ...-save-and-restore-environment-given-from-.patch |   32 --
 0009-lvm-disable-lvmetad.patch                     |   53 +++
 ...tions-hmac-checksum-files-can-be-symlinks.patch |   32 --
 0010-udev-rules-remove-01-ignore.rules.patch       |   32 ++
 0011-95udev-rules-add-input_id.patch               |   21 --
 0011-lsinitrd-support-symlinks.patch               |   22 ++
 ...acut.cmdline.7.asc-document-resume-option.patch |   31 ++
 ...nst_simple-inst_dir-make-fast-case-faster.patch |   50 ---
 ...-do-not-include-IMA-and-selinux-modules-w.patch |   48 +++
 ...el_modules-is-a-specialized-filter_kernel.patch |   52 ---
 ...un-plymouth-hook-if-the-binary-is-missing.patch |   67 ++++
 ...nstall_kmod_with_fw-make-fast-case-faster.patch |   30 --
 ...et-filenames-from-stdin-if-no-args-use-it.patch |  239 -------------
 0015-man-Fix-add-fstab-option-in-man-page.patch    |   22 ++
 ...base-init.sh-mount-tmpfs-with-strictatime.patch |   37 ++
 0016-instmods-sanity-for-_mpargs.patch             |   38 --
 0017-99shutdown-shutdown.sh-export-PATH.patch      |   26 ++
 ...ctor-out-egrep-of-FATAL-Module-.-not-foun.patch |   67 ----
 ...-do-not-fail-when-importing-the-original-.patch |   23 --
 ...-do-not-install-systemd-service-in-reboot.patch |   26 ++
 0019-dracut-cp-with-sparse.patch                   |   36 --
 ...ule-setup.sh-include-all-kernel-drivers-n.patch |   22 ++
 0020-add-pre-pivot-cleanup-hook.patch              |  105 ++++++
 ...ve-root-use-blkid-to-determine-fstype-of-.patch |   27 --
 ...ve-root-load-filesystem-modules-before-mo.patch |   31 --
 ...cleanup-scripts-to-pre-pivot-cleanup-hook.patch |   86 +++++
 ...9base-init-remove-dev-root-helper-symlink.patch |   24 --
 ...parse-ip-opts.sh-remove-check-for-netroot.patch |   30 ++
 ...o-not-use-run-udev-rules.d-for-udev-rules.patch |   54 ---
 ...te-DNS1-.-for-nameserver-args-RHBZ-815369.patch |   31 ++
 ...-mount-securityfs-with-source-securityfs-.patch |   23 --
 ...on-t-add-existing-handlers-multiple-times.patch |   27 ++
 ...nt-securityfs-in-a-seperate-dracut-module.patch |   81 -----
 ...-t-use-progress-bar-if-TERM-dumb-RHBZ-814.patch |   34 ++
 ...odule-setup.sh-fix-host-only-mount-checks.patch |   43 +++
 ...nt-securityfs-in-a-seperate-dracut-module.patch |   21 --
 0027-90mdraid-adjust-stock-mdadm-udev-rules.patch  |   37 --
 ...odule-setup.sh-fix-host-only-mount-checks.patch |   39 ++
 0028-90mdraid-containers-are-not-runnable.patch    |   91 -----
 ...line-arg-duplicating-bug-with-etc-cmdline.patch |   29 ++
 0029-90mdraid-fix-adjust-mdraid-cleanup.patch      |   66 ----
 0029-ifcfg-fix-resolv.conf.patch                   |   23 ++
 0030-90mdraid-fix-adjust-force-run-script.patch    |  136 -------
 ...FSRAID-add-one-more-partition-to-the-btrf.patch |   55 +++
 0031-90-md-dm-raid-recognize-ddf-container.patch   |  140 --------
 ...-ifcfg.sh-use-PREFIX-for-prefix-netmask-f.patch |   27 ++
 ...ix-adjust-65-md-rules-and-related-scripts.patch |  200 -----------
 0032-Fail-to-boot-if-mediacheck-fails-817419.patch |   23 ++
 ...-relaxed-check-on-ext3-filesystem-options.patch |   58 ---
 ...-ifcfg.sh-add-s390-specific-configuration.patch |  106 ++++++
 ...s-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch |   61 ----
 0034-Makefile-call-git2spec.pl-with-LANG-C.patch   |   22 ++
 ...re-that-we-get-the-storage-modules-into-t.patch |   24 ++
 ...tions-inst_rules-do-not-check-std-dirs-fo.patch |   37 --
 ...he-right-argument-for-dasd-module-options.patch |   42 +++
 0036-str_replace-fix.patch                         |   33 --
 ...e-dasd-arg-contents-into-proper-dasd.conf.patch |   43 +++
 ...er-bail-out-early-if-we-don-t-have-to-log.patch |   37 --
 ...alize-dasd-argument-content-for-dasd.conf.patch |   38 ++
 ...dracut-create-dev-besides-proc-sys-and-so.patch |   24 --
 ...fs-lib-export-FSTAB_FILE-before-fsck-call.patch |   26 --
 ...-ifcfg-write-ifcfg.sh-fixed-IFS-resetting.patch |   34 ++
 ...ules-for-kdump-we-don-t-specify-netroot-i.patch |   42 +++
 0040-dracut-functions-inst_rules-add-missing.patch |   22 --
 ...d-check-precisely-for-supported-contaiers.patch |   46 ---
 ...-lib-url-lib.sh-disable-curl-progress-bar.patch |   26 ++
 ...draid-more-thorough-64-md-raid.rules-edit.patch |   25 --
 ...p.sh-do-not-default-to-dhcp-for-interface.patch |   35 ++
 0043-90mdraid-adjust-dev-md-loops.patch            |   53 ---
 ...do-not-arping-with-qeth-layer3-interfaces.patch |   59 +++
 ...H-Parameter-expansion-occurs-before-comma.patch |   38 --
 ...down.service-do-not-unpack-old-initramfs-.patch |   23 ++
 ...d.luks.allow-discards-and-honor-options-i.patch |  157 +++++++++
 0045-order-mdadm-and-lvm-timeout-operations.patch  |   36 --
 ...raid-mdraid_start.sh-fix-path-to-md-sysfs.patch |   22 --
 ...rse-dasd-mod.sh-fixed-dasd_mod-param-gene.patch |   68 ++++
 ...draid-module-setup.sh-fixed-sed-arguments.patch |   22 --
 ...urn-value-of-some-installkernel-functions.patch |   54 +++
 0048-convert_abs_rel-fixups.patch                  |   54 ---
 ...o-not-rely-on-the-presence-of-lib64-check.patch |   48 +++
 ...Don-t-set-an-already-set-attribute-826357.patch |   39 ++
 ...unctions-conv-normalize-minor-corrections.patch |   63 ----
 0050-add-filesystem-options-to-fsck_single.patch   |  125 +++++++
 ...lib.sh-fix-dropped-backslashes-in-CMDLINE.patch |   31 --
 0051-90livenet-check-for-wget.patch                |   21 --
 ...ange-rd.dasd-to-dasd_mod-kernel-parameter.patch |   85 +++++
 0052-dracut-logger-re-set-debugging.patch          |   75 ----
 ...c-remove-typo-from-BuildRequires-for-suse.patch |   22 ++
 ...nctions-inst_dir-handle-relative-symlinks.patch |   30 --
 0053-move-dracut-back-to-usr-share.patch           |  192 ++++++++++
 ...et-module-setup.sh-silence-check-for-wget.patch |   22 --
 ...ed-setsid-and-util-linux-2.21-requirement.patch |   54 +++
 0055-90livenet-do-not-install-by-default.patch     |   22 --
 ...tions-do-not-install-files-from-current-d.patch |  129 -------
 ...nst_script-should-call-inst_simple-750603.patch |   25 --
 ...cut.spec-fixed-rhel-fedora-version-checks.patch |  111 ------
 0059-dracut.spec-apply-patches-with-git.patch      |   88 -----
 ...kefile-git2spec.pl-use-temporary-builddir.patch |   61 ----
 ...dules-module-setup.sh-include-usb-mass-st.patch |   30 --
 0062-90mdraid-remove-mdadm_auto.sh-completly.patch |   46 ---
 ...sk.sh-use-key-file-if-specified-in-cryptt.patch |   70 ----
 ...draid-wait-for-md-devices-to-become-clean.patch |   56 ---
 ...-only-poll-cdroms-if-the-kernel-does-supp.patch |   63 ----
 ...ase-init-removed-cdrom-polling-reset-code.patch |   29 --
 ...base-init-fix-check-for-in-kernel-polling.patch |   22 --
 0068-dracut-add-install_items-to-dracut.conf.patch |   67 ----
 0069-git2spec.pl-strip-path-from-patches.patch     |   21 --
 ...dules-module-setup.sh-install-modules.ord.patch |   42 ---
 ...draid-wait-for-md-devices-to-become-clean.patch |   55 ---
 0072-add-30convertfs.patch                         |  260 --------------
 0073-90mdraid-add-offroot-support.patch            |  143 --------
 dracut.spec                                        |  370 ++++++++++----------
 128 files changed, 3115 insertions(+), 4155 deletions(-)
---
diff --git a/0001-dracut-lib-add-str_ends-to-go-along-with-str_starts.patch b/0001-dracut-lib-add-str_ends-to-go-along-with-str_starts.patch
new file mode 100644
index 0000000..21fdb61
--- /dev/null
+++ b/0001-dracut-lib-add-str_ends-to-go-along-with-str_starts.patch
@@ -0,0 +1,25 @@
+From d8f0e320c267af0ce373066f524eab618ce931af Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Thu, 5 Apr 2012 13:01:35 -0400
+Subject: [PATCH] dracut-lib: add str_ends, to go along with str_starts
+
+---
+ modules.d/99base/dracut-lib.sh |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index cb2e4dc..1ecd286 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -12,6 +12,11 @@ str_starts() {
+     [ "${1#$2*}" != "$1" ]
+ }
+ 
++# returns OK if $1 contains $2 at the end
++str_ends() {
++    [ "${1%*$2}" != "$1" ]
++}
++
+ # replaces all occurrences of 'search' in 'str' with 'replacement'
+ #
+ # str_replace str search replacement
diff --git a/0002-run-setup_net-at-start-of-initqueue-online-hook.patch b/0002-run-setup_net-at-start-of-initqueue-online-hook.patch
new file mode 100644
index 0000000..1f0edc6
--- /dev/null
+++ b/0002-run-setup_net-at-start-of-initqueue-online-hook.patch
@@ -0,0 +1,55 @@
+From 1e4a880125ed2d8991d10e8f8a41b37bad898c28 Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Thu, 5 Apr 2012 13:01:36 -0400
+Subject: [PATCH] run setup_net at start of initqueue/online hook
+
+This makes sure the network is active and ready to use during the
+initqueue/online hook.
+
+It also makes it so you can run setup_net repeatedly without causing
+error messages.
+---
+ modules.d/40network/net-genrules.sh |    3 +++
+ modules.d/40network/net-lib.sh      |    3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
+index 84fd3ac..b3d5584 100755
+--- a/modules.d/40network/net-genrules.sh
++++ b/modules.d/40network/net-genrules.sh
+@@ -53,5 +53,8 @@ fix_bootif() {
+ 
+     # Run the "online" hook
+     printf 'SUBSYSTEM=="net", ACTION=="online", RUN+="/sbin/initqueue --onetime --env netif=$env{INTERFACE} source_hook initqueue/online"\n'
++    # And make sure we run setup_net at the start of the hook
++    echo '. /lib/net-lib.sh; setup_net $netif' > \
++            $hookdir/initqueue/online/05-setup_net.sh
+ 
+ } > /etc/udev/rules.d/60-net.rules
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index 467c79f..a7abe81 100644
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -59,12 +59,14 @@ ifdown() {
+     ip link set $netif down
+     ip addr flush dev $netif
+     echo "#empty" > /etc/resolv.conf
++    rm -f /tmp/net.$netif.did-setup
+     # TODO: send "offline" uevent?
+ }
+ 
+ setup_net() {
+     local netif="$1" f="" gw_ip="" netroot_ip="" iface="" IFACES=""
+     [ -e /tmp/net.$netif.up ] || return 1
++    [ -e /tmp/net.$netif.did-setup ] && return
+     [ -e "/tmp/net.ifaces" ] && read IFACES < /tmp/net.ifaces
+     [ -z "$IFACES" ] && IFACES="$netif"
+     for iface in $IFACES ; do
+@@ -100,6 +102,7 @@ setup_net() {
+     if [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
+         info "Resolving $dest via ARP on $netif failed"
+     fi
++    > /tmp/net.$netif.did-setup
+ }
+ 
+ set_ifname() {
diff --git a/0003-network-add-save_netinfo-fix-problems-with-nfs-NM-ta.patch b/0003-network-add-save_netinfo-fix-problems-with-nfs-NM-ta.patch
new file mode 100644
index 0000000..5488f55
--- /dev/null
+++ b/0003-network-add-save_netinfo-fix-problems-with-nfs-NM-ta.patch
@@ -0,0 +1,65 @@
+From e173f0b384f699c2519db879f3f562b1f6676d8d Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Thu, 5 Apr 2012 13:01:37 -0400
+Subject: [PATCH] network: add save_netinfo, fix problems with nfs->NM
+ takeover
+
+For NetworkManager to properly take over a NFS-root system, we need to
+have the interface name(s) in /tmp/net.ifaces and save the dhclient
+lease. This lets the ifcfg module do its magic.
+
+save_netinfo should properly write out /tmp/net.ifaces when needed, and
+copies the dhclient files into place.
+---
+ modules.d/40network/net-lib.sh |   16 ++++++++++++++++
+ modules.d/40network/netroot.sh |   10 ++--------
+ 2 files changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index a7abe81..c0f73da 100644
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -105,6 +105,22 @@ setup_net() {
+     > /tmp/net.$netif.did-setup
+ }
+ 
++save_netinfo() {
++    local netif="$1" IFACES="" f="" i=""
++    [ -e /tmp/net.ifaces ] && read IFACES < /tmp/net.ifaces
++    # Add $netif to the front of IFACES (if it's not there already).
++    set -- "$netif"
++    for i in $IFACES; do [ "$i" != "$netif" ] && set -- "$@" "$i"; done
++    IFACES="$*"
++    for i in $IFACES; do
++        for f in /tmp/dhclient.$i.*; do
++            [ -f $f ] && cp -f $f /tmp/net.${f#/tmp/dhclient.}
++        done
++    done
++    echo $IFACES > /tmp/.net.ifaces.new
++    mv /tmp/.net.ifaces.new /tmp/net.ifaces
++}
++
+ set_ifname() {
+     local name="$1" mac="$2" num=0 n=""
+     # if it's already set, return the existing name
+diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
+index ac1c215..1bb62bb 100755
+--- a/modules.d/40network/netroot.sh
++++ b/modules.d/40network/netroot.sh
+@@ -84,14 +84,8 @@ source_hook netroot
+ # Run the handler; don't store the root, it may change from device to device
+ # XXX other variables to export?
+ if $handler $netif $netroot $NEWROOT; then
+-    # Network rootfs mount successful
+-    for iface in $IFACES ; do
+-        [ -f /tmp/dhclient.$iface.lease ] &&    cp /tmp/dhclient.$iface.lease    /tmp/net.$iface.lease
+-        [ -f /tmp/dhclient.$iface.dhcpopts ] && cp /tmp/dhclient.$iface.dhcpopts /tmp/net.$iface.dhcpopts
+-    done
+-
+-    # Save used netif for later use
+-    [ ! -f /tmp/net.ifaces ] && echo $netif > /tmp/net.ifaces
++    # Network rootfs mount successful - save interface info for ifcfg etc.
++    save_netinfo $netif
+ else
+     warn "Mounting root via '$netif' failed"
+     # If we're trying with multiple interfaces, put that one down.
diff --git a/0004-Make-splitsep-work-as-documented-with-less-vars-than.patch b/0004-Make-splitsep-work-as-documented-with-less-vars-than.patch
new file mode 100644
index 0000000..b6188c0
--- /dev/null
+++ b/0004-Make-splitsep-work-as-documented-with-less-vars-than.patch
@@ -0,0 +1,35 @@
+From f7cadaa843498c4b986f8a030fab39002ad108b6 Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Thu, 5 Apr 2012 13:01:38 -0400
+Subject: [PATCH] Make splitsep work as documented with less vars than fields
+
+According to its comment in dracut-lib.sh:
+
+    splitsep ":" "one:all:the:rest" one two
+
+should set two="all:the:rest". But there's no check to see if the
+current field is the last field, so it just gets "all".
+---
+ modules.d/99base/dracut-lib.sh |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 1ecd286..e10a34d 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -224,13 +224,14 @@ splitsep() {
+     local sep="$1"; local str="$2"; shift 2
+     local tmp
+ 
+-    while [ -n "$str" -a -n "$*" ]; do
++    while [ -n "$str" -a "$#" -gt 1 ]; do
+         tmp="${str%%$sep*}"
+         eval "$1=${tmp}"
+         str="${str#$tmp}"
+         str="${str#$sep}"
+         shift
+     done
++    [ -n "$str" -a -n "$1" ] && eval "$1=$str"
+ 
+     return 0
+ }
diff --git a/0005-shutdown-use-emergency_shell-from-dracut-lib.patch b/0005-shutdown-use-emergency_shell-from-dracut-lib.patch
new file mode 100644
index 0000000..adffe75
--- /dev/null
+++ b/0005-shutdown-use-emergency_shell-from-dracut-lib.patch
@@ -0,0 +1,109 @@
+From bd3bf2ce41379459e79b9f48027d457caecce30a Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Thu, 5 Apr 2012 13:01:39 -0400
+Subject: [PATCH] shutdown: use emergency_shell from dracut-lib
+
+---
+ modules.d/99base/dracut-lib.sh   |   10 ++++----
+ modules.d/99shutdown/shutdown.sh |   47 +++-----------------------------------
+ 2 files changed, 9 insertions(+), 48 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index e10a34d..a29d586 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -767,15 +767,17 @@ emergency_shell()
+ {
+     local _ctty
+     set +e
++    local _rdshell_name="dracut" action="Boot" hook="emergency"
+     if [ "$1" = "-n" ]; then
+         _rdshell_name=$2
+         shift 2
+-    else
+-        _rdshell_name=dracut
++    elif [ "$1" = "--shutdown" ]; then
++        _rdshell_name=$2; action="Shutdown"; hook="shutdown-emergency"
++        shift 2
+     fi
+     echo ; echo
+     warn $@
+-    source_hook emergency
++    source_hook "$hook"
+     echo
+     wait_for_loginit
+     [ -e /run/initramfs/.die ] && exit 1
+@@ -798,7 +800,7 @@ emergency_shell()
+         strstr "$(setsid --help 2>/dev/null)" "ctty" && CTTY="-c"
+         setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1
+     else
+-        warn "Boot has failed. To debug this issue add \"rdshell\" to the kernel command line."
++        warn "$action has failed. To debug this issue add \"rd.shell\" to the kernel command line."
+         # cause a kernel panic
+         exit 1
+     fi
+diff --git a/modules.d/99shutdown/shutdown.sh b/modules.d/99shutdown/shutdown.sh
+index 8817a4c..45345a4 100755
+--- a/modules.d/99shutdown/shutdown.sh
++++ b/modules.d/99shutdown/shutdown.sh
+@@ -12,49 +12,8 @@
+ export TERM=linux
+ PATH=/usr/sbin:/usr/bin:/sbin:/bin
+ 
+-emergency_shell()
+-{
+-    local _ctty
+-    set +e
+-    if [ "$1" = "-n" ]; then
+-        _rdshell_name=$2
+-        shift 2
+-    else
+-        _rdshell_name=dracut
+-    fi
+-    echo ; echo
+-    warn $@
+-    source_hook shutdown-emergency
+-    echo
+-    if getargbool 1 rd.shell -y rdshell || getarg rd.break rdbreak; then
+-        echo "Dropping to debug shell."
+-        echo
+-        export PS1="$_rdshell_name:\${PWD}# "
+-        [ -e /.profile ] || >/.profile
+-
+-        _ctty="$(getarg rd.ctty=)" && _ctty="/dev/${_ctty##*/}"
+-        if [ -z "$_ctty" ]; then
+-            _ctty=console
+-            while [ -f /sys/class/tty/$_ctty/active ]; do
+-                _ctty=$(cat /sys/class/tty/$_ctty/active)
+-                _ctty=${_ctty##* } # last one in the list
+-            done
+-            _ctty=/dev/$_ctty
+-        fi
+-        [ -c "$_ctty" ] || _ctty=/dev/tty1
+-        strstr "$(setsid --help)" "control" && CTTY="-c"
+-        setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1
+-    else
+-        exec /lib/systemd/systemd-shutdown "$@"
+-        warn "Shutdown has failed. To debug this issue add \"rdshell\" to the kernel command line."
+-        # cause a kernel panic
+-        exit 1
+-    fi
+-}
+-
+-trap "emergency_shell Signal caught!" 0
+-
+-getarg 'rd.break=pre-shutdown' && emergency_shell -n cmdline "Break before pre-shutdown"
++trap "emergency_shell --shutdown shutdown Signal caught!" 0
++getarg 'rd.break=pre-shutdown' && emergency_shell --shutdown pre-shutdown "Break before pre-shutdown"
+ 
+ umount_a() {
+     local _did_umount="n"
+@@ -97,7 +56,7 @@ while _check_shutdown; do
+ done
+ _check_shutdown final
+ 
+-getarg 'rd.break=shutdown' && emergency_shell -n cmdline "Break before shutdown"
++getarg 'rd.break=shutdown' && emergency_shell --shutdown shutdown "Break before shutdown"
+ [ "$1" = "reboot" ] && reboot -f -d -n --no-wall
+ [ "$1" = "poweroff" ] && poweroff -f -d -n --no-wall
+ [ "$1" = "halt" ] && halt -f -d -n --no-wall
diff --git a/0006-rootfs-block-avoid-remount-when-options-don-t-change.patch b/0006-rootfs-block-avoid-remount-when-options-don-t-change.patch
new file mode 100644
index 0000000..189a976
--- /dev/null
+++ b/0006-rootfs-block-avoid-remount-when-options-don-t-change.patch
@@ -0,0 +1,52 @@
+From 6625b74e90a0b6918c90c408215e76719e459883 Mon Sep 17 00:00:00 2001
+From: Daniel Drake <dsd at laptop.org>
+Date: Wed, 11 Apr 2012 23:00:43 +0100
+Subject: [PATCH] rootfs-block: avoid remount when options don't change
+
+Mounting, unmounting and then mounting a disk partition takes some
+time.
+
+On embedded systems such as OLPC XO where we disable fsck and fstab
+reading, the root options are not going to change throughout the
+mount_root() function, so remounting is time consuming and without
+change.
+
+Detect and optimize for this case so that the filesystem is only
+mounted once.
+---
+ modules.d/95rootfs-block/mount-root.sh |   12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh
+index 2c89431..aef99ae 100755
+--- a/modules.d/95rootfs-block/mount-root.sh
++++ b/modules.d/95rootfs-block/mount-root.sh
+@@ -98,20 +98,24 @@ mount_root() {
+     # them; rflags is guaranteed to not be empty
+     rflags="${rootopts:+"${rootopts},"}${rflags}"
+ 
+-    umount "$NEWROOT"
+-
+     # backslashes are treated as escape character in fstab
+     # esc_root=$(echo ${root#block:} | sed 's,\\,\\\\,g')
+     # printf '%s %s %s %s 1 1 \n' "$esc_root" "$NEWROOT" "$rootfs" "$rflags" >/etc/fstab
+ 
++    ran_fsck=0
+     if [ -z "$fastboot" -a "$READONLY" != "yes" ] && ! strstr "${rflags},${rootopts}" _netdev; then
++        umount "$NEWROOT"
+         fsck_single "${root#block:}" "$rootfs" "$fsckoptions"
+         _ret=$?
+         [ $_ret -ne 255 ] && echo $_ret >/run/initramfs/root-fsck
++        ran_fsck=1
+     fi
+ 
+-    info "Remounting ${root#block:} with -o ${rflags}"
+-    mount -t "$rootfs" -o "$rflags" "${root#block:}" "$NEWROOT" 2>&1 | vinfo
++    if [ -n "$rootopts" -o "$ran_fsck" = "1" ]; then
++        info "Remounting ${root#block:} with -o ${rflags}"
++        umount "$NEWROOT" &>/dev/null
++        mount -t "$rootfs" -o "$rflags" "${root#block:}" "$NEWROOT" 2>&1 | vinfo
++    fi
+ 
+     [ -f "$NEWROOT"/forcefsck ] && rm -f "$NEWROOT"/forcefsck 2>/dev/null
+     [ -f "$NEWROOT"/.autofsck ] && rm -f "$NEWROOT"/.autofsck 2>/dev/null
diff --git a/0007-Debian-multiarch-support.patch b/0007-Debian-multiarch-support.patch
new file mode 100644
index 0000000..bcc733d
--- /dev/null
+++ b/0007-Debian-multiarch-support.patch
@@ -0,0 +1,279 @@
+From c9143a63fef0d6f2dfd7cc37b09fc68d744d900f Mon Sep 17 00:00:00 2001
+From: Jon Ander Hernandez <jonan.h at gmail.com>
+Date: Tue, 10 Apr 2012 15:14:38 +0200
+Subject: [PATCH] Debian multiarch support
+
+Another solution could be searching in directories found at
+/etc/ld.so.conf.d/*.conf or adding a new parameter. Here is a patch
+which adds a new --libdirs parameter, and also a new inst_libdir_file
+function which will try to expand metacharacters on each lib
+directory:
+
+    inst_libdir_file "libdevmapper-event-lvm*.so"
+---
+ dracut-functions.sh                    |   28 ++++++++++++++++++++++++++++
+ dracut.sh                              |   12 ++++++++++--
+ modules.d/01fips/module-setup.sh       |   11 +++++------
+ modules.d/40network/module-setup.sh    |    9 ++-------
+ modules.d/80cms/module-setup.sh        |    4 +---
+ modules.d/90dm/module-setup.sh         |    4 +---
+ modules.d/90dmraid/module-setup.sh     |    4 +---
+ modules.d/90lvm/module-setup.sh        |    4 +---
+ modules.d/90multipath/module-setup.sh  |    6 ++++--
+ modules.d/95nfs/module-setup.sh        |    6 +-----
+ modules.d/95udev-rules/module-setup.sh |    4 +---
+ modules.d/98syslog/module-setup.sh     |    8 +++-----
+ 12 files changed, 58 insertions(+), 42 deletions(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 910f2d8..f5611dc 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -677,6 +677,34 @@ dracut_install() {
+     done
+ }
+ 
++
++# inst_libdir_file [-n <pattern>] <file> [<file>...]
++# Install a <file> located on a lib directory to the initramfs image
++# -n <pattern> install non-matching files
++inst_libdir_file() {
++    if [[ "$1" == "-n" ]]; then
++        local _pattern=$1
++        shift 2
++        for _dir in $libdirs; do
++            for _i in "$@"; do
++                for _f in "$_dir"/$_i; do
++                    [[ "$_i" =~ $_pattern ]] || continue
++                    [[ -e "$_i" ]] && dracut_install "$_i"
++                done
++            done
++        done
++    else
++        for _dir in $libdirs; do
++            for _i in "$@"; do
++                for _f in "$_dir"/$_i; do
++                    [[ -e "$_f" ]] && dracut_install "$_f"
++                done
++            done
++        done
++    fi
++}
++
++
+ # install function decompressing the target and handling symlinks
+ # $@ = list of compressed (gz or bz2) files or symlinks pointing to such files
+ #
+diff --git a/dracut.sh b/dracut.sh
+index 0418c78..7f61143 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -221,6 +221,7 @@ while (($# > 0)); do
+         --filesystems) push_arg filesystems_l        "$@" || shift;;
+         -I|--install)  push_arg install_items_l      "$@" || shift;;
+         --fwdir)       push_arg fw_dir_l             "$@" || shift;;
++        --libdirs)     push_arg libdirs_l            "$@" || shift;;
+         --fscks)       push_arg fscks_l              "$@" || shift;;
+         --add-fstab)   push_arg add_fstab_l          "$@" || shift;;
+         --mount)       push_arg fstab_lines          "$@" || shift;;
+@@ -400,6 +401,13 @@ if (( ${#fw_dir_l[@]} )); then
+     done
+ fi
+ 
++if (( ${#libdirs_l[@]} )); then
++    libdirs=''
++    while pop libdirs_l val; do
++        libdirs+="$val "
++    done
++fi
++
+ [[ $stdloglvl_l ]] && stdloglvl=$stdloglvl_l
+ [[ ! $stdloglvl ]] && stdloglvl=4
+ stdloglvl=$((stdloglvl + verbosity_mod_l))
+@@ -505,14 +513,14 @@ ddebug "Executing $0 $dracut_args"
+ 
+ # Detect lib paths
+ [[ $libdir ]] || for libdir in /lib64 /lib; do
+-    [[ -d $libdir ]] && break
++    [[ -d $libdir ]] && libdirs+=" $libdir" && break
+ done || {
+     dfatal 'No lib directory?!!!'
+     exit 1
+ }
+ 
+ [[ $usrlibdir ]] || for usrlibdir in /usr/lib64 /usr/lib; do
+-    [[ -d $usrlibdir ]] && break
++    [[ -d $usrlibdir ]] && libdirs+=" $usrlibdir" && break
+ done || dwarn 'No usr/lib directory!'
+ 
+ # This is kinda legacy -- eventually it should go away.
+diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
+index a490827..6bfe31e 100755
+--- a/modules.d/01fips/module-setup.sh
++++ b/modules.d/01fips/module-setup.sh
+@@ -34,12 +34,11 @@ install() {
+ 
+     dracut_install sha512hmac rmmod insmod mount uname umount
+ 
+-    for _dir in "$usrlibdir" "$libdir"; do
+-        [[ -e $_dir/libsoftokn3.so ]] && \
+-            dracut_install $_dir/libsoftokn3.so $_dir/libsoftokn3.chk \
+-            $_dir/libfreebl3.so $_dir/libfreebl3.chk && \
+-            break
+-    done
++    inst_libdir_file libsoftokn3.so
++    inst_libdir_file libsoftokn3.so
++    inst_libdir_file libsoftokn3.chk
++    inst_libdir_file libfreebl3.so
++    inst_libdir_file libfreebl3.chk
+ 
+     dracut_install $usrlibdir/hmaccalc/sha512hmac.hmac
+     if command -v prelink >/dev/null; then
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index c91f164..97fc5cb 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -89,12 +89,7 @@ install() {
+ 
+     _arch=$(uname -m)
+ 
+-    for _dir in "$usrlibdir/tls/$_arch" "$usrlibdir/tls" "$usrlibdir/$_arch" \
+-        "$usrlibdir" "$libdir"; do
+-        for _i in "$_dir"/libnss_dns.so.* "$_dir"/libnss_mdns4_minimal.so.*; do
+-            [ -e "$_i" ] && dracut_install "$_i"
+-        done
+-    done
+-
++    inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*"
++    inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
+ }
+ 
+diff --git a/modules.d/80cms/module-setup.sh b/modules.d/80cms/module-setup.sh
+index 5cb5413..5cce1b4 100755
+--- a/modules.d/80cms/module-setup.sh
++++ b/modules.d/80cms/module-setup.sh
+@@ -31,9 +31,7 @@ install() {
+ 	[[ -f $file ]] && inst $file
+     done
+ 
+-    for file in {"$usrlibdir","$libdir"}/gconv/*; do
+-        [[ -f $file ]] && inst $file
+-    done
++    inst_libdir_file "gconv/*"
+ #inst /usr/lib/locale/locale-archive
+ 
+     dracut_install cmsfs-fuse fusermount ulockmgr_server bash tr insmod rmmod cat
+diff --git a/modules.d/90dm/module-setup.sh b/modules.d/90dm/module-setup.sh
+index a55d591..bac854a 100755
+--- a/modules.d/90dm/module-setup.sh
++++ b/modules.d/90dm/module-setup.sh
+@@ -22,9 +22,7 @@ install() {
+ 
+     type -P dmeventd >/dev/null && dracut_install dmeventd
+ 
+-    for _i in {"$libdir","$usrlibdir"}/libdevmapper-event.so*; do
+-        [ -e "$_i" ] && dracut_install "$_i"
+-    done
++    inst_libdir_file "libdevmapper-event.so*"
+ 
+     inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules
+     # Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules
+diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
+index 786cf25..0a8ed7f 100755
+--- a/modules.d/90dmraid/module-setup.sh
++++ b/modules.d/90dmraid/module-setup.sh
+@@ -62,9 +62,7 @@ install() {
+         inst_rules 64-md-raid.rules
+     fi
+ 
+-    for _i in {"$libdir","$usrlibdir"}/libdmraid-events*.so*; do
+-        [ -e "$_i" ] && dracut_install "$_i"
+-    done
++    inst_libdir_file "libdmraid-events*.so*"
+ 
+     inst_rules "$moddir/61-dmraid-imsm.rules"
+     #inst "$moddir/dmraid-cleanup.sh" /sbin/dmraid-cleanup
+diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
+index cf46372..15c824d 100755
+--- a/modules.d/90lvm/module-setup.sh
++++ b/modules.d/90lvm/module-setup.sh
+@@ -60,8 +60,6 @@ install() {
+     inst "$moddir/lvm_scan.sh" /sbin/lvm_scan
+     inst_hook cmdline 30 "$moddir/parse-lvm.sh"
+ 
+-    for _i in {"$libdir","$usrlibdir"}/libdevmapper-event-lvm*.so; do
+-        [ -e "$_i" ] && dracut_install "$_i"
+-    done
++    inst_libdir_file "libdevmapper-event-lvm*.so"
+ }
+ 
+diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
+index b78c005..8a193c4 100755
+--- a/modules.d/90multipath/module-setup.sh
++++ b/modules.d/90multipath/module-setup.sh
+@@ -62,11 +62,13 @@ install() {
+         /sbin/xdrgetprio \
+         /etc/xdrdevices.conf \
+         /etc/multipath.conf \
+-        /etc/multipath/* \
+-        "$libdir"/libmultipath* "$libdir"/multipath/*; do
++        /etc/multipath/*; do
+         [ -e "$_f" ] && inst "$_f"
+     done
+ 
++    inst_libdir_file "libmultipath*"
++    inst_libdir_file "multipath/*"
++
+     inst_hook pre-trigger 02 "$moddir/multipathd.sh"
+     inst_hook pre-pivot   02 "$moddir/multipathd-stop.sh"
+     inst_rules 40-multipath.rules
+diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
+index 7853783..455f52f 100755
+--- a/modules.d/95nfs/module-setup.sh
++++ b/modules.d/95nfs/module-setup.sh
+@@ -54,11 +54,7 @@ install() {
+     _nsslibs=${_nsslibs#|}
+     _nsslibs=${_nsslibs%|}
+ 
+-    for _i in {/usr,}$libdir/libnss*.so; do
+-        [[ -e $_i ]] || continue
+-        [[ "$_i" =~ $_nsslibs ]] || continue
+-        dracut_install "$_i"
+-    done
++    inst_libdir_file -n "$_nsslibs" "libnss*.so"
+ 
+     inst_hook cmdline 90 "$moddir/parse-nfsroot.sh"
+     inst_hook pre-udev 99 "$moddir/nfs-start-rpc.sh"
+diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
+index 5f8bae8..1c71336 100755
+--- a/modules.d/95udev-rules/module-setup.sh
++++ b/modules.d/95udev-rules/module-setup.sh
+@@ -74,8 +74,6 @@ install() {
+     [ -f /etc/arch-release ] && \
+         inst "$moddir/load-modules.sh" /lib/udev/load-modules.sh
+ 
+-    for _i in {"$libdir","$usrlibdir"}/libnss_files*; do
+-        [ -e "$_i" ] && dracut_install "$_i"
+-    done
++    inst_libdir_file "libnss_files*"
+ }
+ 
+diff --git a/modules.d/98syslog/module-setup.sh b/modules.d/98syslog/module-setup.sh
+index 5579c5a..bd6e92c 100755
+--- a/modules.d/98syslog/module-setup.sh
++++ b/modules.d/98syslog/module-setup.sh
+@@ -16,11 +16,9 @@ install() {
+     local _installs
+     if type -P rsyslogd >/dev/null; then
+         _installs="rsyslogd"
+-        for _i in {"$libdir","$usrlibdir"}/rsyslog/lmnet.so \
+-            {"$libdir","$usrlibdir"}/rsyslog/imklog.so \
+-            {"$libdir","$usrlibdir"}/rsyslog/imuxsock.so ; do
+-            [ -e "$_i" ] && _installs="$_installs $_i"
+-        done
++        inst_libdir_file rsyslog/lmnet.so
++        inst_libdir_file rsyslog/imklog.so
++        inst_libdir_file rsyslog/imuxsock.so
+     elif type -P syslogd >/dev/null; then
+         _installs="syslogd"
+     elif type -P syslog-ng >/dev/null; then
diff --git a/0008-dracut.sh-log-installed-modules-to-initdir-lib-dracu.patch b/0008-dracut.sh-log-installed-modules-to-initdir-lib-dracu.patch
new file mode 100644
index 0000000..b7f7224
--- /dev/null
+++ b/0008-dracut.sh-log-installed-modules-to-initdir-lib-dracu.patch
@@ -0,0 +1,26 @@
+From 0a35a80b934a0a5a34e3c23244aca0caa440e5d4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 16 Apr 2012 13:10:22 +0200
+Subject: [PATCH] dracut.sh: log installed modules to
+ $initdir/lib/dracut/modules.txt
+
+---
+ dracut.sh |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/dracut.sh b/dracut.sh
+index 7f61143..1048e75 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -720,6 +720,11 @@ for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
+     fi
+ done
+ unset moddir
++
++for i in $modules_loaded; do
++    echo "$i" >> $initdir/lib/dracut/modules.txt
++done
++
+ dinfo "*** Including modules done ***"
+ 
+ ## final stuff that has to happen
diff --git a/0009-lvm-disable-lvmetad.patch b/0009-lvm-disable-lvmetad.patch
new file mode 100644
index 0000000..492b151
--- /dev/null
+++ b/0009-lvm-disable-lvmetad.patch
@@ -0,0 +1,53 @@
+From b8a81fb885c981d795a664ae8665e68d7359231a Mon Sep 17 00:00:00 2001
+From: Peter Rajnoha <prajnoha at redhat.com>
+Date: Tue, 10 Apr 2012 04:40:53 -0400
+Subject: [PATCH] lvm: disable lvmetad
+
+Currently dracut uses lvm.conf as found in the system and modifies only
+global/locking_type setting. As there's a new feature introduced - the lvmetad
+daemon, dracut should disable its use as well by setting "global/use_lvmetad=0"
+(patch attached).
+
+Otherwise, there's a warning message issued:
+
+dracut: WARNING: Failed to connect to lvmetad: No such file or directory.
+Falling back to internal scanning.
+
+@@ -, +, @@
+ modules.d/90lvm/lvm_scan.sh     |    2 ++
+ modules.d/90lvm/module-setup.sh |    1 +
+ 2 files changed, 3 insertions(+), 0 deletions(-)
+---
+ modules.d/90lvm/lvm_scan.sh     |    2 ++
+ modules.d/90lvm/module-setup.sh |    1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
+index 104565f..17c29bc 100755
+--- a/modules.d/90lvm/lvm_scan.sh
++++ b/modules.d/90lvm/lvm_scan.sh
+@@ -35,10 +35,12 @@ if [ ! -e /etc/lvm/lvm.conf ]; then
+         if [ -n $SNAPSHOT ]; then
+             echo 'global {';
+             echo '    locking_type = 1';
++            echo '    use_lvmetad = 0';
+             echo '}';
+         else
+             echo 'global {';
+             echo '    locking_type = 4';
++            echo '    use_lvmetad = 0';
+             echo '}';
+         fi
+     } > /etc/lvm/lvm.conf
+diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
+index 15c824d..2ce5c50 100755
+--- a/modules.d/90lvm/module-setup.sh
++++ b/modules.d/90lvm/module-setup.sh
+@@ -49,6 +49,7 @@ install() {
+             # FIXME: near-term hack to establish read-only locking;
+             # use command-line lvm.conf editor once it is available
+             sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 4/' ${initdir}/etc/lvm/lvm.conf
++            sed -i -e 's/\(^[[:space:]]*\)use_lvmetad[[:space:]]*=[[:space:]]*[[:digit:]]/\1use_lvmetad = 0/' ${initdir}/etc/lvm/lvm.conf
+         fi
+     fi
+ 
diff --git a/0010-udev-rules-remove-01-ignore.rules.patch b/0010-udev-rules-remove-01-ignore.rules.patch
new file mode 100644
index 0000000..ee21461
--- /dev/null
+++ b/0010-udev-rules-remove-01-ignore.rules.patch
@@ -0,0 +1,32 @@
+From 324be70f8070105c106c5901dd0575cb116cebc9 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 16 Apr 2012 14:50:35 +0200
+Subject: [PATCH] udev-rules: remove 01-ignore.rules
+
+---
+ modules.d/95udev-rules/01-ignore.rules |    1 -
+ modules.d/95udev-rules/module-setup.sh |    3 ---
+ 2 files changed, 4 deletions(-)
+ delete mode 100644 modules.d/95udev-rules/01-ignore.rules
+
+diff --git a/modules.d/95udev-rules/01-ignore.rules b/modules.d/95udev-rules/01-ignore.rules
+deleted file mode 100644
+index b32f22e..0000000
+--- a/modules.d/95udev-rules/01-ignore.rules
++++ /dev/null
+@@ -1 +0,0 @@
+-KERNEL=="ram[0-9]*", OPTIONS+="ignore_device", OPTIONS+="last_rule"
+diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
+index 1c71336..b17232f 100755
+--- a/modules.d/95udev-rules/module-setup.sh
++++ b/modules.d/95udev-rules/module-setup.sh
+@@ -20,9 +20,6 @@ install() {
+     #Some debian udev rules are named differently
+     inst_rules 50-udev.rules 95-late.rules
+ 
+-    # ignore some devices in the initrd
+-    inst_rules "$moddir/01-ignore.rules"
+-
+     # for firmware loading
+     inst_rules 50-firmware.rules
+     dracut_install cat uname
diff --git a/0011-lsinitrd-support-symlinks.patch b/0011-lsinitrd-support-symlinks.patch
new file mode 100644
index 0000000..683558e
--- /dev/null
+++ b/0011-lsinitrd-support-symlinks.patch
@@ -0,0 +1,22 @@
+From 25ff71b0c756bf2036bec78557398946d45bcbd3 Mon Sep 17 00:00:00 2001
+From: Nikoli <nikoli at lavabit.com>
+Date: Tue, 17 Apr 2012 11:31:27 +0200
+Subject: [PATCH] lsinitrd: support symlinks
+
+---
+ lsinitrd.sh |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lsinitrd.sh b/lsinitrd.sh
+index 1eaa37d..e6767dc 100755
+--- a/lsinitrd.sh
++++ b/lsinitrd.sh
+@@ -34,7 +34,7 @@ image="${1:-/boot/initramfs-$(uname -r).img}"
+ [[ -f "$image" ]]    || { echo "$image does not exist" ; exit 1 ; }
+ 
+ CAT=zcat
+-FILE_T=$(file "$image")
++FILE_T=$(file --dereference "$image")
+ 
+ if echo "test"|xz|xz -dc --single-stream >/dev/null 2>&1; then
+     XZ_SINGLE_STREAM="--single-stream"
diff --git a/0012-dracut.cmdline.7.asc-document-resume-option.patch b/0012-dracut.cmdline.7.asc-document-resume-option.patch
new file mode 100644
index 0000000..b64e907
--- /dev/null
+++ b/0012-dracut.cmdline.7.asc-document-resume-option.patch
@@ -0,0 +1,31 @@
+From 97903dfc476ae0c5ccaa4ddef294e2da43411355 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 17 Apr 2012 12:06:51 +0200
+Subject: [PATCH] dracut.cmdline.7.asc: document "resume=" option
+
+---
+ dracut.cmdline.7.asc |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index a1e06dd..c77fee5 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -64,6 +64,17 @@ rootfstype=ext3
+     do not honor special mount options for the root filesystem found in
+     _/etc/fstab_ of the real root.
+ 
++**resume=**_<path to resume partition>_
+++
++E.g.:
+++
++----
++resume=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1
++resume=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
++resume=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
++----
++
++
+ Misc
+ ~~~~
+ **rd.driver.blacklist=**_<drivername>[,<drivername>,...]_::
diff --git a/0013-dracut.spec-do-not-include-IMA-and-selinux-modules-w.patch b/0013-dracut.spec-do-not-include-IMA-and-selinux-modules-w.patch
new file mode 100644
index 0000000..c142928
--- /dev/null
+++ b/0013-dracut.spec-do-not-include-IMA-and-selinux-modules-w.patch
@@ -0,0 +1,48 @@
+From d7d7822529fef60a1620ea3d6c43865b6cf44e1f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 17 Apr 2012 12:12:56 +0200
+Subject: [PATCH] dracut.spec: do not include IMA and selinux modules with
+ systemd
+
+---
+ dracut.spec |   16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index 074cb10..b5218d9 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -187,6 +187,14 @@ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
+ # remove gentoo specific modules
+ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
+ 
++%if %{defined _unitdir}
++# with systemd IMA and selinux modules do not make sense
++rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs
++rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey
++rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
++rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98selinux
++%endif
++
+ mkdir -p $RPM_BUILD_ROOT/boot/dracut
+ mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay
+ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
+@@ -270,13 +278,15 @@ rm -rf $RPM_BUILD_ROOT
+ %{dracutlibdir}/modules.d/95zfcp
+ %{dracutlibdir}/modules.d/95terminfo
+ %{dracutlibdir}/modules.d/95udev-rules
++%if %{undefined _unitdir}
+ %{dracutlibdir}/modules.d/96securityfs
+-%{dracutlibdir}/modules.d/97biosdevname
+ %{dracutlibdir}/modules.d/97masterkey
+-%{dracutlibdir}/modules.d/98ecryptfs
++%{dracutlibdir}/modules.d/98selinux
+ %{dracutlibdir}/modules.d/98integrity
++%endif
++%{dracutlibdir}/modules.d/97biosdevname
++%{dracutlibdir}/modules.d/98ecryptfs
+ %{dracutlibdir}/modules.d/98pollcdrom
+-%{dracutlibdir}/modules.d/98selinux
+ %{dracutlibdir}/modules.d/98syslog
+ %{dracutlibdir}/modules.d/98usrmount
+ %{dracutlibdir}/modules.d/99base
diff --git a/0014-Do-not-run-plymouth-hook-if-the-binary-is-missing.patch b/0014-Do-not-run-plymouth-hook-if-the-binary-is-missing.patch
new file mode 100644
index 0000000..edcb728
--- /dev/null
+++ b/0014-Do-not-run-plymouth-hook-if-the-binary-is-missing.patch
@@ -0,0 +1,67 @@
+From 8b0e6b11b6456397d602c7f687ec3d9c80bbdd9c Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Sat, 14 Apr 2012 16:03:34 +0100
+Subject: [PATCH] Do not run plymouth hook if the binary is missing.
+
+There is a remove-boot-splash script in Mageia that can
+strip plymouth from an initrd. Make this script a noop
+if that has happened.
+---
+ modules.d/50plymouth/plymouth-pretrigger.sh |   44 ++++++++++++++-------------
+ 1 file changed, 23 insertions(+), 21 deletions(-)
+
+diff --git a/modules.d/50plymouth/plymouth-pretrigger.sh b/modules.d/50plymouth/plymouth-pretrigger.sh
+index 57955e7..50828af 100755
+--- a/modules.d/50plymouth/plymouth-pretrigger.sh
++++ b/modules.d/50plymouth/plymouth-pretrigger.sh
+@@ -2,27 +2,29 @@
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ 
+-if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -n rd_NO_PLYMOUTH; then
+-    [ -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
++if [ -x /bin/plymouthd ]; then
++    if getargbool 1 plymouth.enable && getargbool 1 rd.plymouth -n rd_NO_PLYMOUTH; then
++        [ -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 -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
++        udevadm settle --timeout=30 2>&1 | vinfo
++        [ -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
+ 
+-    info "Starting plymouth daemon"
+-    mkdir -m 0755 /run/plymouth
+-    consoledev=$(getarg console= | sed -e 's/,.*//')
+-    consoledev=${consoledev:-tty0}
+-    [ -x /lib/udev/console_init ] && /lib/udev/console_init "/dev/$consoledev"
+-    [ -x /bin/plymouthd ] && /bin/plymouthd --attach-to-session --pid-file /run/plymouth/pid
+-    /bin/plymouth --show-splash 2>&1 | vinfo
+-    # reset tty after plymouth messed with it
+-    [ -x /lib/udev/console_init ] && /lib/udev/console_init /dev/tty0
++        info "Starting plymouth daemon"
++        mkdir -m 0755 /run/plymouth
++        consoledev=$(getarg console= | sed -e 's/,.*//')
++        consoledev=${consoledev:-tty0}
++        [ -x /lib/udev/console_init ] && /lib/udev/console_init "/dev/$consoledev"
++        [ -x /bin/plymouthd ] && /bin/plymouthd --attach-to-session --pid-file /run/plymouth/pid
++        /bin/plymouth --show-splash 2>&1 | vinfo
++        # reset tty after plymouth messed with it
++        [ -x /lib/udev/console_init ] && /lib/udev/console_init /dev/tty0
++    fi
+ fi
diff --git a/0015-man-Fix-add-fstab-option-in-man-page.patch b/0015-man-Fix-add-fstab-option-in-man-page.patch
new file mode 100644
index 0000000..5fc2460
--- /dev/null
+++ b/0015-man-Fix-add-fstab-option-in-man-page.patch
@@ -0,0 +1,22 @@
+From 4cbb00e93fdc809df130e83041967aa87138d9e5 Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Sat, 14 Apr 2012 18:14:29 +0100
+Subject: [PATCH] man: Fix --add-fstab option in man page
+
+---
+ dracut.8.asc |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut.8.asc b/dracut.8.asc
+index 24b7a8c..cadd740 100644
+--- a/dracut.8.asc
++++ b/dracut.8.asc
+@@ -247,7 +247,7 @@ provide a valid _/etc/fstab_.
+ **--fstab**::
+     Use _/etc/fstab_ instead of _/proc/self/mountinfo_.
+ 
+-**--add_fstab** _<filename>_ ::
++**--add-fstab** _<filename>_ ::
+     Add entries of _<filename>_ to the initramfs /etc/fstab.
+ 
+ **--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ _<filesystem options>_"::
diff --git a/0016-base-init.sh-mount-tmpfs-with-strictatime.patch b/0016-base-init.sh-mount-tmpfs-with-strictatime.patch
new file mode 100644
index 0000000..bd22ed7
--- /dev/null
+++ b/0016-base-init.sh-mount-tmpfs-with-strictatime.patch
@@ -0,0 +1,37 @@
+From c66c2c271fff338ef26ff3ca73d3a9c62e6bc184 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 18 Apr 2012 12:44:00 +0200
+Subject: [PATCH] base/init.sh: mount tmpfs with strictatime
+
+---
+ modules.d/99base/init.sh |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index 2f87a20..b5adcad 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -46,7 +46,7 @@ if [ "$RD_DEBUG" = "yes" ]; then
+ fi
+ 
+ if ! ismounted /dev; then
+-    mount -t devtmpfs -o mode=0755,nosuid devtmpfs /dev >/dev/null 
++    mount -t devtmpfs -o mode=0755,nosuid,strictatime devtmpfs /dev >/dev/null 
+ fi
+ 
+ # prepare the /dev directory
+@@ -62,12 +62,12 @@ fi
+ 
+ if ! ismounted /dev/shm; then
+     mkdir -m 0755 /dev/shm
+-    mount -t tmpfs -o mode=1777,nosuid,nodev tmpfs /dev/shm >/dev/null 
++    mount -t tmpfs -o mode=1777,nosuid,nodev,strictatime tmpfs /dev/shm >/dev/null 
+ fi
+ 
+ if ! ismounted /run; then
+     mkdir -m 0755 /newrun
+-    mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /newrun >/dev/null 
++    mount -t tmpfs -o mode=0755,nosuid,nodev,strictatime tmpfs /newrun >/dev/null 
+     cp -a /run/* /newrun >/dev/null 2>&1
+     mount --move /newrun /run
+     rm -fr /newrun
diff --git a/0017-99shutdown-shutdown.sh-export-PATH.patch b/0017-99shutdown-shutdown.sh-export-PATH.patch
new file mode 100644
index 0000000..c162520
--- /dev/null
+++ b/0017-99shutdown-shutdown.sh-export-PATH.patch
@@ -0,0 +1,26 @@
+From a62a521510d3278aa8794a9d90b09b9325ab1ae1 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 18 Apr 2012 13:08:12 +0200
+Subject: [PATCH] 99shutdown/shutdown.sh: export PATH
+
+---
+ modules.d/99shutdown/shutdown.sh |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/99shutdown/shutdown.sh b/modules.d/99shutdown/shutdown.sh
+index 45345a4..aa0a81f 100755
+--- a/modules.d/99shutdown/shutdown.sh
++++ b/modules.d/99shutdown/shutdown.sh
+@@ -7,10 +7,9 @@
+ # Copyright 2011, Red Hat, Inc.
+ # Harald Hoyer <harald at redhat.com>
+ 
+-#!/bin/sh
+-. /lib/dracut-lib.sh
+ export TERM=linux
+-PATH=/usr/sbin:/usr/bin:/sbin:/bin
++export PATH=/usr/sbin:/usr/bin:/sbin:/bin
++. /lib/dracut-lib.sh
+ 
+ trap "emergency_shell --shutdown shutdown Signal caught!" 0
+ getarg 'rd.break=pre-shutdown' && emergency_shell --shutdown pre-shutdown "Break before pre-shutdown"
diff --git a/0018-Makefile-do-not-install-systemd-service-in-reboot.patch b/0018-Makefile-do-not-install-systemd-service-in-reboot.patch
new file mode 100644
index 0000000..5259d79
--- /dev/null
+++ b/0018-Makefile-do-not-install-systemd-service-in-reboot.patch
@@ -0,0 +1,26 @@
+From 619a2ff48d400dc4fda0034ea30d6d2add903c55 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 18 Apr 2012 13:14:55 +0200
+Subject: [PATCH] Makefile: do not install systemd service in reboot
+
+shutdown is enough. It is pulled in on reboot.
+---
+ Makefile |    3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c62aae1..5ce1778 100644
+--- a/Makefile
++++ b/Makefile
+@@ -57,11 +57,8 @@ install: doc
+ 	if [ -n "$(systemdsystemunitdir)" ]; then \
+ 		mkdir -p $(DESTDIR)$(systemdsystemunitdir); \
+ 		install -m 0644 dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir); \
+-		mkdir -p $(DESTDIR)$(systemdsystemunitdir)/reboot.target.wants; \
+ 		mkdir -p $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants; \
+ 		ln -s ../dracut-shutdown.service \
+-		$(DESTDIR)$(systemdsystemunitdir)/reboot.target.wants/dracut-shutdown.service; \
+-		ln -s ../dracut-shutdown.service \
+ 		$(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \
+ 	fi
+ 
diff --git a/0019-network-module-setup.sh-include-all-kernel-drivers-n.patch b/0019-network-module-setup.sh-include-all-kernel-drivers-n.patch
new file mode 100644
index 0000000..c011821
--- /dev/null
+++ b/0019-network-module-setup.sh-include-all-kernel-drivers-n.patch
@@ -0,0 +1,22 @@
+From 2683d0e4651f3c83c8d3d8636cb573345e32398b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 18 Apr 2012 13:49:48 +0200
+Subject: [PATCH] network/module-setup.sh: include all kernel/drivers/net/phy
+ drivers
+
+---
+ modules.d/40network/module-setup.sh |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index 97fc5cb..253a87e 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -61,6 +61,7 @@ installkernel() {
+     { find_kernel_modules_by_path drivers/net; find_kernel_modules_by_path drivers/s390/net; } \
+         | net_module_filter | instmods
+ 
++    instmods =drivers/net/phy
+     instmods ecb arc4
+     # bridge modules
+     instmods bridge stp llc
diff --git a/0020-add-pre-pivot-cleanup-hook.patch b/0020-add-pre-pivot-cleanup-hook.patch
new file mode 100644
index 0000000..e686e23
--- /dev/null
+++ b/0020-add-pre-pivot-cleanup-hook.patch
@@ -0,0 +1,105 @@
+From 3d474e40662d2d8caed0cef3555bb72dc04d2b35 Mon Sep 17 00:00:00 2001
+From: Dave Young <dyoung at redhat.com>
+Date: Thu, 19 Apr 2012 12:01:36 +0800
+Subject: [PATCH] add pre-pivot-cleanup hook
+
+Sometimes some hook script will need to be before the cleanup hook scripts
+For example dhclient killing, nfs cleanup, etc. must not happen before kdump
+because it will use their fuctionalities.
+
+So here introduce a new hook pre-pivot-cleanup, all cleanup scripts will go there.
+that means pre-pivot hook is splited to two hooks pre-pivot and pre-pivot-cleanup
+
+Signed-off-by: Dave Young <dyoung at redhat.com>
+---
+ README.modules           |    3 +++
+ dracut-functions.sh      |    2 +-
+ dracut.asc               |    7 ++++++-
+ dracut.cmdline.7.asc     |    2 +-
+ modules.d/99base/init.sh |    7 ++++++-
+ 5 files changed, 17 insertions(+), 4 deletions(-)
+
+diff --git a/README.modules b/README.modules
+index 21461de..188d011 100644
+--- a/README.modules
++++ b/README.modules
+@@ -103,6 +103,9 @@ init has the following hook points to inject scripts:
+    a timeout.
+ 
+ /lib/dracut/hooks/pre-pivot/*.sh
++   scripts to run before latter initramfs cleanups
++
++/lib/dracut/hooks/pre-pivot-cleanup/*.sh
+    scripts to run before the real init is executed and the initramfs
+    disappears
+    All processes started before should be killed here.
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index f5611dc..ccf3ba6 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -36,7 +36,7 @@ fi
+ [[ $hookdirs ]] || {
+     hookdirs="cmdline pre-udev pre-trigger netroot "
+     hookdirs+="initqueue initqueue/settled initqueue/online initqueue/finished initqueue/timeout "
+-    hookdirs+="pre-mount pre-pivot mount "
++    hookdirs+="pre-mount pre-pivot pre-pivot-cleanup mount "
+     hookdirs+="emergency shutdown-emergency shutdown cleanup "
+     export hookdirs
+ }
+diff --git a/dracut.asc b/dracut.asc
+index 1a0e3d2..9621db2 100644
+--- a/dracut.asc
++++ b/dracut.asc
+@@ -854,12 +854,17 @@ This hook is mainly to mount the real root device.
+ 
+ === Hook: pre-pivot
+ 
++This hook is called before pre-pivot-cleanup hook, This is a good place for
++actions other than cleanups which need to be called before pivot.
++
++
++=== Hook: pre-pivot-cleanup
++
+ This hook is the last hook and is called before init finally switches root to
+ the real root device. This is a good place to clean up and kill processes not
+ needed anymore.
+ 
+ 
+-
+ === Cleanup and switch_root
+ 
+ Init kills all udev processes, cleans up the environment, sets up the arguments
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index c77fee5..76db651 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -105,7 +105,7 @@ Debug
+ **rd.break**::
+     drop to a shell at the end
+ 
+-**rd.break=**_{cmdline|pre-udev|pre-trigger|initqueue|pre-mount|mount|pre-pivot}_::
++**rd.break=**_{cmdline|pre-udev|pre-trigger|initqueue|pre-mount|mount|pre-pivot|pre-pivot-cleanup}_::
+     drop to a shell on defined breakpoint
+ 
+ **rd.udev.info**::
+diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
+index b5adcad..544bbb0 100755
+--- a/modules.d/99base/init.sh
++++ b/modules.d/99base/init.sh
+@@ -224,10 +224,15 @@ done
+     while read dev mp rest; do [ "$mp" = "$NEWROOT" ] && echo $dev; done < /proc/mounts
+ } | vinfo
+ 
+-# pre pivot scripts are sourced just before we switch over to the new root.
++# pre pivot scripts are sourced just before we doing cleanup and switch over
++# to the new root.
+ getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot"
+ source_hook pre-pivot
+ 
++# pre pivot cleanup scripts are sourced just before we switch over to the new root.
++getarg 'rd.break=pre-pivot-cleanup' 'rdbreak=pre-pivot-cleanup' && emergency_shell -n pre-pivot-cleanup "Break pre-pivot-cleanup"
++source_hook pre-pivot-cleanup
++
+ # By the time we get here, the root filesystem should be mounted.
+ # Try to find init. 
+ for i in "$(getarg real_init=)" "$(getarg init=)" $(getargs rd.distroinit=) /sbin/init; do
diff --git a/0021-move-cleanup-scripts-to-pre-pivot-cleanup-hook.patch b/0021-move-cleanup-scripts-to-pre-pivot-cleanup-hook.patch
new file mode 100644
index 0000000..33c0294
--- /dev/null
+++ b/0021-move-cleanup-scripts-to-pre-pivot-cleanup-hook.patch
@@ -0,0 +1,86 @@
+From 337ae7414751ce995e06321e23bd322c955d0a67 Mon Sep 17 00:00:00 2001
+From: Dave Young <dyoung at redhat.com>
+Date: Thu, 19 Apr 2012 12:01:43 +0800
+Subject: [PATCH] move cleanup scripts to pre-pivot-cleanup hook
+
+below cleanup scripts is moved:
+40network: kill-dhclient.sh
+90crypt: crypt-cleanup.sh
+90multipath: multipathd-stop.sh
+95iscsi: cleanup-iscsi.sh
+95nfs: nfsroot-cleanup.sh
+
+Signed-off-by: Dave Young <dyoung at redhat.com>
+---
+ modules.d/40network/module-setup.sh   |    2 +-
+ modules.d/90crypt/module-setup.sh     |    2 +-
+ modules.d/90multipath/module-setup.sh |    2 +-
+ modules.d/95iscsi/module-setup.sh     |    2 +-
+ modules.d/95nfs/module-setup.sh       |    2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index 253a87e..c2ad815 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -86,7 +86,7 @@ install() {
+     inst_hook cmdline 97 "$moddir/parse-bridge.sh"
+     inst_hook cmdline 98 "$moddir/parse-ip-opts.sh"
+     inst_hook cmdline 99 "$moddir/parse-ifname.sh"
+-    inst_hook pre-pivot 10 "$moddir/kill-dhclient.sh"
++    inst_hook pre-pivot-cleanup 10 "$moddir/kill-dhclient.sh"
+ 
+     _arch=$(uname -m)
+ 
+diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
+index 8fdf32b..4a66516 100755
+--- a/modules.d/90crypt/module-setup.sh
++++ b/modules.d/90crypt/module-setup.sh
+@@ -48,7 +48,7 @@ install() {
+     inst "$moddir"/probe-keydev.sh /sbin/probe-keydev
+     inst_hook cmdline 10 "$moddir/parse-keydev.sh"
+     inst_hook cmdline 30 "$moddir/parse-crypt.sh"
+-    inst_hook pre-pivot 30 "$moddir/crypt-cleanup.sh"
++    inst_hook pre-pivot-cleanup 30 "$moddir/crypt-cleanup.sh"
+     inst_simple /etc/crypttab
+     inst "$moddir/crypt-lib.sh" "/lib/dracut-crypt-lib.sh"
+ }
+diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
+index 8a193c4..f044f33 100755
+--- a/modules.d/90multipath/module-setup.sh
++++ b/modules.d/90multipath/module-setup.sh
+@@ -70,7 +70,7 @@ install() {
+     inst_libdir_file "multipath/*"
+ 
+     inst_hook pre-trigger 02 "$moddir/multipathd.sh"
+-    inst_hook pre-pivot   02 "$moddir/multipathd-stop.sh"
++    inst_hook pre-pivot-cleanup   02 "$moddir/multipathd-stop.sh"
+     inst_rules 40-multipath.rules
+ }
+ 
+diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
+index b6c1c1f..a001a28 100755
+--- a/modules.d/95iscsi/module-setup.sh
++++ b/modules.d/95iscsi/module-setup.sh
+@@ -63,7 +63,7 @@ install() {
+     inst hostname
+     inst iscsi-iname
+     inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh"
+-    inst_hook pre-pivot 90 "$moddir/cleanup-iscsi.sh"
++    inst_hook pre-pivot-cleanup 90 "$moddir/cleanup-iscsi.sh"
+     inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot"
+     inst "$moddir/mount-lun.sh" "/bin/mount-lun.sh"
+ }
+diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
+index 455f52f..3587bdd 100755
+--- a/modules.d/95nfs/module-setup.sh
++++ b/modules.d/95nfs/module-setup.sh
+@@ -58,7 +58,7 @@ install() {
+ 
+     inst_hook cmdline 90 "$moddir/parse-nfsroot.sh"
+     inst_hook pre-udev 99 "$moddir/nfs-start-rpc.sh"
+-    inst_hook pre-pivot 99 "$moddir/nfsroot-cleanup.sh"
++    inst_hook pre-pivot-cleanup 99 "$moddir/nfsroot-cleanup.sh"
+     inst "$moddir/nfsroot.sh" "/sbin/nfsroot"
+     inst "$moddir/nfs-lib.sh" "/lib/nfs-lib.sh"
+     mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs"
diff --git a/0022-network-parse-ip-opts.sh-remove-check-for-netroot.patch b/0022-network-parse-ip-opts.sh-remove-check-for-netroot.patch
new file mode 100644
index 0000000..88aefc3
--- /dev/null
+++ b/0022-network-parse-ip-opts.sh-remove-check-for-netroot.patch
@@ -0,0 +1,30 @@
+From 7af99168387dd3fec3408835b40bd84a9b191271 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 19 Apr 2012 16:41:04 +0200
+Subject: [PATCH] network/parse-ip-opts.sh: remove check for netroot
+
+with anaconda and all other kind of stuff, we might want network, even
+for root not on the network
+---
+ modules.d/40network/parse-ip-opts.sh |    8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh
+index 97702a2..5637a9a 100755
+--- a/modules.d/40network/parse-ip-opts.sh
++++ b/modules.d/40network/parse-ip-opts.sh
+@@ -17,14 +17,6 @@
+ command -v getarg >/dev/null          || . /lib/dracut-lib.sh
+ command -v ibft_to_cmdline >/dev/null || . /lib/net-lib.sh
+ 
+-# Check if ip= lines should be used
+-if getarg ip= >/dev/null ; then
+-    if [ -z "$netroot" ] ; then
+-        echo "Warning: No netboot configured, ignoring ip= lines"
+-        return;
+-    fi
+-fi
+-
+ # Don't mix BOOTIF=macaddr from pxelinux and ip= lines
+ getarg ip= >/dev/null && getarg BOOTIF= >/dev/null && \
+     die "Mixing BOOTIF and ip= lines is dangerous"
diff --git a/0023-ifcfg-write-DNS1-.-for-nameserver-args-RHBZ-815369.patch b/0023-ifcfg-write-DNS1-.-for-nameserver-args-RHBZ-815369.patch
new file mode 100644
index 0000000..e803f06
--- /dev/null
+++ b/0023-ifcfg-write-DNS1-.-for-nameserver-args-RHBZ-815369.patch
@@ -0,0 +1,31 @@
+From 1d506b0319ef69d605d4bce0082b982f8a2f877c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 24 Apr 2012 13:08:57 +0200
+Subject: [PATCH] ifcfg: write DNS1=... for nameserver= args (RHBZ#815369)
+
+If you're using a static network config, you'll want to keep your
+nameservers around when NM starts. Write DNS1 (and DNS2, DNS3, etc..)
+into the ifcfg file.
+
+Thanks to Mark Hamzy <hamzy at us.ibm.com>
+and Will Woods <wwoods at redhat.com> for the patch.
+---
+ modules.d/45ifcfg/write-ifcfg.sh |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index c072a13..b81ac39 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -138,6 +138,11 @@ for netif in $IFACES ; do
+             } >> /tmp/ifcfg/ifcfg-$ethname
+         fi
+     fi
++    i=1
++    for ns in $(getargs nameserver); do
++        echo "DNS${i}=${ns}" >> /tmp/ifcfg/ifcfg-$netif
++        i=$((i+1))
++    done
+ done
+ 
+ # Pass network opts
diff --git a/0024-url-lib-don-t-add-existing-handlers-multiple-times.patch b/0024-url-lib-don-t-add-existing-handlers-multiple-times.patch
new file mode 100644
index 0000000..4bda97a
--- /dev/null
+++ b/0024-url-lib-don-t-add-existing-handlers-multiple-times.patch
@@ -0,0 +1,27 @@
+From 3a64317d8e42892ec1035d0610e95ce77e8c2791 Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Fri, 20 Apr 2012 16:20:24 -0400
+Subject: [PATCH] url-lib: don't add existing handlers multiple times
+
+Every time url-lib gets imported we end up making the list of handlers
+longer with redundant entries. That's silly - we shouldn't add items
+that already exist.
+
+Note that this means you'll have to manipulate the handler list yourself
+if you want to change the position/priority of existing handlers.
+---
+ modules.d/45url-lib/url-lib.sh |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh
+index e305a68..7930146 100755
+--- a/modules.d/45url-lib/url-lib.sh
++++ b/modules.d/45url-lib/url-lib.sh
+@@ -43,6 +43,7 @@ add_url_handler() {
+     local schemes="$@" scheme=""
+     set --
+     for scheme in $schemes; do
++        [ "$(get_url_handler $scheme)" = "$handler" ] && continue
+         set -- "$@" "$scheme:$handler"
+     done
+     set -- $@ $url_handler_map # add new items to *front* of list
diff --git a/0025-url-lib-don-t-use-progress-bar-if-TERM-dumb-RHBZ-814.patch b/0025-url-lib-don-t-use-progress-bar-if-TERM-dumb-RHBZ-814.patch
new file mode 100644
index 0000000..3c5ddef
--- /dev/null
+++ b/0025-url-lib-don-t-use-progress-bar-if-TERM-dumb-RHBZ-814.patch
@@ -0,0 +1,34 @@
+From ad619415d6d14d539fe5268b491e0c2963836d64 Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Fri, 20 Apr 2012 16:20:25 -0400
+Subject: [PATCH] url-lib: don't use --progress-bar if TERM=dumb (RHBZ#814713)
+
+Basically, s390 is the only place I've ever seen TERM=dumb, and it's too
+dumb to handle '\r', so --progress-bar produces waaaaay too much output.
+
+The normal progress meter only prints something once per second, so
+that's reasonable on terminals where '\r' doesn't work.
+
+See also: https://bugzilla.redhat.com/show_bug.cgi?id=814713
+---
+ modules.d/45url-lib/url-lib.sh |    7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh
+index 7930146..5721294 100755
+--- a/modules.d/45url-lib/url-lib.sh
++++ b/modules.d/45url-lib/url-lib.sh
+@@ -54,7 +54,12 @@ add_url_handler() {
+ 
+ export CURL_HOME="/run/initramfs/url-lib"
+ mkdir -p $CURL_HOME
+-curl_args="--location --retry 3 --fail --show-error --progress-bar"
++curl_args="--location --retry 3 --fail --show-error"
++
++# technically "dumb" can handle the progress bar, but the only thing I've ever
++# seen using TERM=dumb is s390 CMS, and it's too dumb for --progress-bar
++[ "$TERM" != "dumb" ] && curl_args="$curl_args --progress-bar"
++
+ curl_fetch_url() {
+     local url="$1" outloc="$2"
+     echo "$url" > /proc/self/fd/0
diff --git a/0026-iscsi-module-setup.sh-fix-host-only-mount-checks.patch b/0026-iscsi-module-setup.sh-fix-host-only-mount-checks.patch
new file mode 100644
index 0000000..e6a67e5
--- /dev/null
+++ b/0026-iscsi-module-setup.sh-fix-host-only-mount-checks.patch
@@ -0,0 +1,43 @@
+From 8c61158c363e22ac19f33286c26d42db774607fd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 25 Apr 2012 11:23:10 +0200
+Subject: [PATCH] iscsi/module-setup.sh: fix host-only/mount checks
+
+---
+ modules.d/95iscsi/module-setup.sh |   16 ++++++----------
+ 1 file changed, 6 insertions(+), 10 deletions(-)
+
+diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
+index a001a28..25a3cfa 100755
+--- a/modules.d/95iscsi/module-setup.sh
++++ b/modules.d/95iscsi/module-setup.sh
+@@ -15,8 +15,11 @@ check() {
+     [[ $debug ]] && set -x
+ 
+     is_iscsi() (
+-        [[ -L /sys/dev/block/$1 ]] || return
+-        cd "$(readlink -f /sys/dev/block/$1)"
++        local _dev
++        _dev=$(get_maj_min $1)
++
++        [[ -L /sys/dev/block/$_dev ]] || return
++        cd "$(readlink -f /sys/dev/block/$_dev)"
+         until [[ -d sys || -d iscsi_session ]]; do
+             cd ..
+         done
+@@ -24,14 +27,7 @@ check() {
+     )
+ 
+     [[ $hostonly ]] || [[ $mount_needs ]] && {
+-        _rootdev=$(find_root_block_device)
+-        if [[ $_rootdev ]]; then
+-            # root lives on a block device, so we can be more precise about
+-            # hostonly checking
+-            check_block_and_slaves is_iscsi "$_rootdev" || return 1
+-        else
+-            return 1
+-        fi
++        for_each_host_dev_fs is_iscsi || return 1
+     }
+     return 0
+ }
diff --git a/0027-multipath-module-setup.sh-fix-host-only-mount-checks.patch b/0027-multipath-module-setup.sh-fix-host-only-mount-checks.patch
new file mode 100644
index 0000000..65962c1
--- /dev/null
+++ b/0027-multipath-module-setup.sh-fix-host-only-mount-checks.patch
@@ -0,0 +1,39 @@
+From c18772705e0d25c8af56c04fa098ec01f56ee4aa Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 25 Apr 2012 11:23:49 +0200
+Subject: [PATCH] multipath/module-setup.sh: fix host-only/mount checks
+
+---
+ modules.d/90multipath/module-setup.sh |   16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
+index f044f33..2f6b416 100755
+--- a/modules.d/90multipath/module-setup.sh
++++ b/modules.d/90multipath/module-setup.sh
+@@ -11,18 +11,16 @@ check() {
+     [[ $debug ]] && set -x
+ 
+     is_mpath() {
+-        [ -e /sys/dev/block/$1/dm/uuid ] || return 1
+-        [[ $(cat /sys/dev/block/$1/dm/uuid) =~ ^mpath- ]] && return 0
++        local _dev
++        _dev=$(get_maj_min $1)
++        [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
++        [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ ^mpath- ]] && return 0
+         return 1
+     }
+ 
+-    if [[ $hostonly ]]; then
+-        _rootdev=$(find_root_block_device)
+-        if [[ $_rootdev ]]; then
+-            check_block_and_slaves is_mpath "$_rootdev" && return 0
+-        fi
+-        return 1
+-    fi
++    [[ $hostonly ]] || [[ $mount_needs ]] && {
++        for_each_host_dev_fs is_mpath || return 1
++    }
+ 
+     return 0
+ }
diff --git a/0028-fix-_getcmdline-arg-duplicating-bug-with-etc-cmdline.patch b/0028-fix-_getcmdline-arg-duplicating-bug-with-etc-cmdline.patch
new file mode 100644
index 0000000..30ffee1
--- /dev/null
+++ b/0028-fix-_getcmdline-arg-duplicating-bug-with-etc-cmdline.patch
@@ -0,0 +1,29 @@
+From c870ae09ec04b5da48c4d2b2802dd6eba468e8ed Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Tue, 1 May 2012 14:08:33 -0400
+Subject: [PATCH] fix _getcmdline arg-duplicating bug with /etc/cmdline*
+
+If you unset CMDLINE to make _getcmdline re-read /etc/cmdline and
+/etc/cmdline.d/*, CMDLINE_ETC and CMDLINE_ETC_D would keep their
+contents.
+
+This is a serious problem if you have (e.g.) "ip=eth0:dhcp" in
+/etc/cmdline.d/net.conf, because getargs ip= will return
+"ip=eth0:dhcp ip=eth0:dhcp" and then parse-ip-opts.sh will die() because
+you have two configurations for eth0.
+---
+ modules.d/99base/dracut-lib.sh |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index a29d586..4f2b8cd 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -40,6 +40,7 @@ _getcmdline() {
+     local _i
+     unset _line
+     if [ -z "$CMDLINE" ]; then
++        unset CMDLINE_ETC CMDLINE_ETC_D
+         if [ -e /etc/cmdline ]; then
+             while read -r _line; do
+                 CMDLINE_ETC="$CMDLINE_ETC $_line";
diff --git a/0029-ifcfg-fix-resolv.conf.patch b/0029-ifcfg-fix-resolv.conf.patch
new file mode 100644
index 0000000..40a9e09
--- /dev/null
+++ b/0029-ifcfg-fix-resolv.conf.patch
@@ -0,0 +1,23 @@
+From 2336f7d9e7ff572d3335bb6c42fa2ac224edd64b Mon Sep 17 00:00:00 2001
+From: Will Woods <wwoods at redhat.com>
+Date: Tue, 1 May 2012 14:08:34 -0400
+Subject: [PATCH] ifcfg: fix resolv.conf
+
+/etc/net.*.resolv.conf is not a useful filename; copy it to resolv.conf
+---
+ modules.d/45ifcfg/write-ifcfg.sh |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index b81ac39..f612762 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -152,7 +152,7 @@ echo "files /etc/sysconfig/network-scripts" >> /run/initramfs/rwtab
+ echo "files /var/lib/dhclient" >> /run/initramfs/rwtab
+ {
+     cp /tmp/net.* /run/initramfs/
+-    cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/
++    cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf
+     cp -a -t /run/initramfs/state/etc/sysconfig/network-scripts/ /tmp/ifcfg/*
+     cp /tmp/ifcfg-leases/* /run/initramfs/state/var/lib/dhclient
+ } > /dev/null 2>&1
diff --git a/0030-TEST-15-BTRFSRAID-add-one-more-partition-to-the-btrf.patch b/0030-TEST-15-BTRFSRAID-add-one-more-partition-to-the-btrf.patch
new file mode 100644
index 0000000..d5ef402
--- /dev/null
+++ b/0030-TEST-15-BTRFSRAID-add-one-more-partition-to-the-btrf.patch
@@ -0,0 +1,55 @@
+From 4fdeb5a7013e502a084dea1b0ac928259bb2e13e Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 25 Apr 2012 14:23:12 +0200
+Subject: [PATCH] TEST-15-BTRFSRAID: add one more partition to the btrfs
+ raid10
+
+---
+ test/TEST-15-BTRFSRAID/create-root.sh |   12 +++++++++---
+ test/TEST-15-BTRFSRAID/test.sh        |    2 +-
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/test/TEST-15-BTRFSRAID/create-root.sh b/test/TEST-15-BTRFSRAID/create-root.sh
+index 60dd319..3debf33 100755
+--- a/test/TEST-15-BTRFSRAID/create-root.sh
++++ b/test/TEST-15-BTRFSRAID/create-root.sh
+@@ -5,17 +5,23 @@ for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ done
+ udevadm control --reload-rules
+ # save a partition at the beginning for future flagging purposes
+-sfdisk -C 524288 -H 2 -S 32 -L /dev/sda <<EOF
++sfdisk -C 655600 -H 2 -S 32 -L /dev/sda <<EOF
+ ,16
++,,E
++;
++;
++,10240
+ ,10240
+ ,10240
+ ,10240
+ EOF
+-mkfs.btrfs -mraid10 -L root /dev/sda2 /dev/sda3 /dev/sda4
++mkfs.btrfs -draid10 -mraid10 -L root /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8
++udevadm settle
+ btrfs device scan
++udevadm settle
+ set -e
+ mkdir -p /sysroot 
+-mount /dev/sda4 /sysroot 
++mount -t btrfs /dev/sda8 /sysroot 
+ cp -a -t /sysroot /source/* 
+ umount /sysroot 
+ echo "dracut-root-block-created" >/dev/sda1
+diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
+index f64b2b2..b65e77a 100755
+--- a/test/TEST-15-BTRFSRAID/test.sh
++++ b/test/TEST-15-BTRFSRAID/test.sh
+@@ -20,7 +20,7 @@ test_setup() {
+     # Create the blank file to use as a root filesystem
+     DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-root.img
+     rm -f $DISKIMAGE
+-    dd if=/dev/null of=$DISKIMAGE bs=1M seek=1024
++    dd if=/dev/null of=$DISKIMAGE bs=2M seek=1024
+ 
+     kernel=$KVERSION
+     # Create what will eventually be our root filesystem onto an overlay
diff --git a/0031-ifcfg-write-ifcfg.sh-use-PREFIX-for-prefix-netmask-f.patch b/0031-ifcfg-write-ifcfg.sh-use-PREFIX-for-prefix-netmask-f.patch
new file mode 100644
index 0000000..76f0b84
--- /dev/null
+++ b/0031-ifcfg-write-ifcfg.sh-use-PREFIX-for-prefix-netmask-f.patch
@@ -0,0 +1,27 @@
+From 4a20cb93475a3c9cc299999eb9e351ee860aab20 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 9 May 2012 14:58:52 +0200
+Subject: [PATCH] ifcfg/write-ifcfg.sh: use PREFIX for prefix netmask form
+
+https://bugzilla.redhat.com/show_bug.cgi?id=820185
+---
+ modules.d/45ifcfg/write-ifcfg.sh |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index f612762..580fbd4 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -50,7 +50,11 @@ for netif in $IFACES ; do
+         # If we've booted with static ip= lines, the override file is there
+             [ -e /tmp/net.$netif.override ] && . /tmp/net.$netif.override
+             echo "IPADDR=$ip"
+-            echo "NETMASK=$mask"
++            if strstr "$mask" "."; then
++                echo "NETMASK=$mask"
++            else
++                echo "PREFIX=$mask"
++            fi
+             [ -n "$gw" ] && echo "GATEWAY=$gw"
+         fi
+     } > /tmp/ifcfg/ifcfg-$netif
diff --git a/0032-Fail-to-boot-if-mediacheck-fails-817419.patch b/0032-Fail-to-boot-if-mediacheck-fails-817419.patch
new file mode 100644
index 0000000..e50e0ba
--- /dev/null
+++ b/0032-Fail-to-boot-if-mediacheck-fails-817419.patch
@@ -0,0 +1,23 @@
+From 8d0a0dca62505343a94c6cef86f85ea6aa7c3ded Mon Sep 17 00:00:00 2001
+From: "Brian C. Lane" <bcl at redhat.com>
+Date: Wed, 9 May 2012 11:15:03 -0700
+Subject: [PATCH] Fail to boot if mediacheck fails (#817419)
+
+The return value of checkisomd5 was being ignored.
+---
+ modules.d/90dmsquash-live/dmsquash-live-root.sh |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+index 2aaec28..fdbd6f5 100755
+--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
+@@ -33,7 +33,7 @@ fi
+ getarg rd.live.check check || check=""
+ if [ -n "$check" ]; then
+     [ -x /bin/plymouth ] && /bin/plymouth --hide-splash
+-    checkisomd5 --verbose $livedev || :
++    checkisomd5 --verbose $livedev
+     if [ $? -ne 0 ]; then
+         die "CD check failed!"
+         exit 1
diff --git a/0033-ifcfg-write-ifcfg.sh-add-s390-specific-configuration.patch b/0033-ifcfg-write-ifcfg.sh-add-s390-specific-configuration.patch
new file mode 100644
index 0000000..b1198ee
--- /dev/null
+++ b/0033-ifcfg-write-ifcfg.sh-add-s390-specific-configuration.patch
@@ -0,0 +1,106 @@
+From ffc23d361fd937487cc817d7b2f4fc456f1b639c Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 10 May 2012 14:31:05 +0200
+Subject: [PATCH] ifcfg/write-ifcfg.sh: add s390 specific configuration
+ options
+
+https://bugzilla.redhat.com/show_bug.cgi?id=811521
+---
+ modules.d/45ifcfg/write-ifcfg.sh |   70 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 68 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index 580fbd4..d1f6fe6 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -20,6 +20,68 @@ fi
+ mkdir -m 0755 -p /tmp/ifcfg/
+ mkdir -m 0755 -p /tmp/ifcfg-leases/
+ 
++get_config_line_by_subchannel()
++{
++    local CHANNEL
++    local line
++
++    CHANNELS="$1"
++    while read line; do
++        if strstr "$line" "$CHANNELS"; then
++            echo $line
++            return 0
++        fi
++    done < /etc/ccw.conf
++    return 1
++}
++
++print_s390() {
++    local _netif
++    local SUBCHANNELS
++    local OPTIONS
++    local NETTYPE
++    local CONFIG_LINE
++    local i
++    local channel
++
++    _netif="$1"
++    # if we find ccw channel, then use those, instead of
++    # of the MAC
++    SUBCHANNELS=$({
++        for i in /sys/class/net/$_netif/device/cdev[0-9]*; do
++            [ -e $i ] || continue
++            channel=$(readlink -f $i)
++            echo -n "${channel##*/},"
++        done
++    })
++    [ -n "$SUBCHANNELS" ] || return 1
++
++    SUBCHANNELS=${SUBCHANNELS%,}
++    echo "SUBCHANNELS=\"${SUBCHANNELS}\""
++    CONFIG_LINE=$(get_config_line_by_subchannel $SUBCHANNELS)
++
++    [ $? -ne 0 -o -z "$CONFIG_LINE" ] && return
++
++    IFS=","
++    set $CONFIG_LINE
++    IFS="$OLD_IFS"
++    NETTYPE=$1
++    shift
++    SUBCHANNELS="$1"
++    OPTIONS=""
++    shift
++    while [ $# -gt 0 ]; do
++        case $1 in
++            *=*) OPTIONS="$OPTIONS $1";;
++        esac
++        shift
++    done
++    OPTIONS=${OPTIONS## }
++    echo "NETTYPE=\"${NETTYPE}\""
++    echo "OPTIONS=\"${OPTIONS}\""
++}
++
++
+ for netif in $IFACES ; do
+     # bridge?
+     unset bridge
+@@ -38,7 +100,6 @@ for netif in $IFACES ; do
+         echo "ONBOOT=yes"
+         echo "NETBOOT=yes"
+         echo "UUID=$uuid"
+-        [ -n "$macaddr" ] && echo "MACADDR=$macaddr"
+         [ -n "$mtu" ] && echo "MTU=$mtu"
+         if [ -f /tmp/net.$netif.lease ]; then
+             strstr "$ip" '*:*:*' &&
+@@ -63,7 +124,12 @@ for netif in $IFACES ; do
+     if [ -z "$bridge" ] && [ -z "$bond" ]; then
+         # standard interface
+         {
+-            echo "HWADDR=$(cat /sys/class/net/$netif/address)"
++            if [ -n "$macaddr" ]; then
++                echo "MACADDR=$macaddr"
++            else
++                echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\""
++            fi
++            print_s390 $netif
+             echo "TYPE=Ethernet"
+             echo "NAME=\"Boot Disk\""
+             [ -n "$mtu" ] && echo "MTU=$mtu"
diff --git a/0034-Makefile-call-git2spec.pl-with-LANG-C.patch b/0034-Makefile-call-git2spec.pl-with-LANG-C.patch
new file mode 100644
index 0000000..ed7d521
--- /dev/null
+++ b/0034-Makefile-call-git2spec.pl-with-LANG-C.patch
@@ -0,0 +1,22 @@
+From 1db3af57db95d3f7459b7cf24e1000786aa336fa Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 10 May 2012 14:30:31 +0200
+Subject: [PATCH] Makefile: call git2spec.pl with LANG=C
+
+---
+ Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 5ce1778..bf51b51 100644
+--- a/Makefile
++++ b/Makefile
+@@ -87,7 +87,7 @@ dracut-$(VERSION).tar.bz2: doc
+ rpm: dracut-$(VERSION).tar.bz2
+ 	rpmbuild=$$(mktemp -d -t rpmbuild-dracut.XXXXXX); src=$$(pwd); \
+ 	cp dracut-$(VERSION).tar.bz2 "$$rpmbuild"; \
+-	$$src/git2spec.pl $(VERSION) "$$rpmbuild" < dracut.spec > $$rpmbuild/dracut.spec; \
++	LANG=C $$src/git2spec.pl $(VERSION) "$$rpmbuild" < dracut.spec > $$rpmbuild/dracut.spec; \
+ 	(cd "$$rpmbuild"; rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \
+ 	        --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
+ 		--define "_rpmdir $$PWD" -ba dracut.spec; ) && \
diff --git a/0035-ARM-make-sure-that-we-get-the-storage-modules-into-t.patch b/0035-ARM-make-sure-that-we-get-the-storage-modules-into-t.patch
new file mode 100644
index 0000000..5199d4a
--- /dev/null
+++ b/0035-ARM-make-sure-that-we-get-the-storage-modules-into-t.patch
@@ -0,0 +1,24 @@
+From 41724edf33fe0d7bc94f82b2dce7d37211610af8 Mon Sep 17 00:00:00 2001
+From: Dennis Gilmore <dennis at ausil.us>
+Date: Thu, 17 May 2012 01:33:17 -0500
+Subject: [PATCH] ARM: make sure that we get the storage modules into the
+ initramfs
+
+---
+ modules.d/90kernel-modules/module-setup.sh |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index 26f4784..fd8b92c 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -35,6 +35,9 @@ installkernel() {
+         hostonly='' instmods pcmcia firewire-ohci
+         hostonly='' instmods usb_storage sdhci sdhci-pci
+ 
++        # arm specific modules
++        hostonly='' instmods sdhci_esdhc_imx mmci sdhci_tegra mvsdio omap sdhci_dove ahci_platform pata_imx sata_mv
++
+         # install keyboard support
+         hostonly='' instmods atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech hid-logitech-dj hid-microsoft ehci-hcd ohci-hcd uhci-hcd
+         # install unix socket support
diff --git a/0036-Use-the-right-argument-for-dasd-module-options.patch b/0036-Use-the-right-argument-for-dasd-module-options.patch
new file mode 100644
index 0000000..efaee90
--- /dev/null
+++ b/0036-Use-the-right-argument-for-dasd-module-options.patch
@@ -0,0 +1,42 @@
+From 3af58e59d32d6770518aee0df40d509624964662 Mon Sep 17 00:00:00 2001
+From: Jesse Keating <jkeating at redhat.com>
+Date: Tue, 15 May 2012 13:42:47 -0700
+Subject: [PATCH] Use the right argument for dasd module options
+
+The legacy argument is DASD=, and the new arguments should be the same
+as the arguments for populating dasd.conf.  If multiple arguments are
+passed we can stack them by inserting a ',' between them.
+---
+ modules.d/95dasd_mod/parse-dasd-mod.sh |   18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
+index b550156..d7e8664 100755
+--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
++++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
+@@ -1,12 +1,20 @@
+ #!/bin/sh
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+-[ -d /etc/modprobe.d ] || mkdir -m 0755 -p /etc/modprobe.d
++mod_args=""
++for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do
++    if [ -z $mod_args ]; then
++        mod_args="$dasd_arg"
++    else
++        # We've already got some thing in mod_args, add to it
++        mod_args="$mod_args,$dasd_arg"
++    fi
++done
+ 
+-dasd_arg=$(getarg rd.dasd_mod.dasd rd_DASD_MOD=)
+-if [ -n "$dasd_arg" ]; then
+-    echo "options dasd_mod dasd=$dasd_arg" >> /etc/modprobe.d/dasd_mod.conf
++if [ ! -z $mod_args ]; then
++    [ -d /etc/modprobe.d ] || mkdir -m 0755 -p /etc/modprobe.d
++    echo "options dasd_mod dasd=$mod_args" >> /etc/modprobe.d/dasd_mod.conf
+ fi
+-unset dasd_arg
+ 
++unset dasd_arg
+ dasd_cio_free
diff --git a/0037-Translate-dasd-arg-contents-into-proper-dasd.conf.patch b/0037-Translate-dasd-arg-contents-into-proper-dasd.conf.patch
new file mode 100644
index 0000000..a18e083
--- /dev/null
+++ b/0037-Translate-dasd-arg-contents-into-proper-dasd.conf.patch
@@ -0,0 +1,43 @@
+From 31aac08efb2f3be4e44d8d242aeb81e34c3c21b1 Mon Sep 17 00:00:00 2001
+From: Jesse Keating <jkeating at redhat.com>
+Date: Fri, 18 May 2012 14:06:54 -0700
+Subject: [PATCH] Translate dasd arg contents into proper dasd.conf
+
+This uses a (new) s390utils utility to normalize the range we might get
+in a dasd argument and generates a properly formatted output for
+dasd.conf.
+---
+ modules.d/95dasd/module-setup.sh |    2 +-
+ modules.d/95dasd/parse-dasd.sh   |    4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
+index 88dfc6d..74efc7b 100755
+--- a/modules.d/95dasd/module-setup.sh
++++ b/modules.d/95dasd/module-setup.sh
+@@ -18,7 +18,7 @@ installkernel() {
+ 
+ install() {
+     inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+-    dracut_install tr dasdinfo dasdconf.sh
++    dracut_install tr dasdinfo dasdconf.sh normalize_dasd_arg
+     if [[ $hostonly ]]; then
+         inst /etc/dasd.conf
+     fi
+diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh
+index 4aeecd5..b3d18fa 100755
+--- a/modules.d/95dasd/parse-dasd.sh
++++ b/modules.d/95dasd/parse-dasd.sh
+@@ -1,10 +1,10 @@
+ #!/bin/sh
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+-for dasd_arg in $(getargs rd.dasd 'rd_DASD='); do
++for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do
+     (
+         IFS=","
+         set $dasd_arg
+-        echo "$@" >> /etc/dasd.conf
++        echo "$@" | normalize_dasd_arg >> /etc/dasd.conf
+     )
+ done
diff --git a/0038-Normalize-dasd-argument-content-for-dasd.conf.patch b/0038-Normalize-dasd-argument-content-for-dasd.conf.patch
new file mode 100644
index 0000000..674cf5a
--- /dev/null
+++ b/0038-Normalize-dasd-argument-content-for-dasd.conf.patch
@@ -0,0 +1,38 @@
+From 8578a381ef5ba6798c40a4666fd5b0763fe4b2ea Mon Sep 17 00:00:00 2001
+From: Jesse Keating <jkeating at redhat.com>
+Date: Fri, 18 May 2012 14:50:20 -0700
+Subject: [PATCH] Normalize dasd argument content for dasd.conf
+
+Also overwrite any existing files, contents from CMSCONFFILE override
+any boot arguments.
+---
+ modules.d/80cms/cmssetup.sh     |    4 ++--
+ modules.d/80cms/module-setup.sh |    2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
+index 6aa456c..995bfa7 100755
+--- a/modules.d/80cms/cmssetup.sh
++++ b/modules.d/80cms/cmssetup.sh
+@@ -169,8 +169,8 @@ processcmsfile()
+     fi
+ 
+     if [[ $DASD ]]; then
+-	echo $DASD >> /etc/dasd.conf
+-	echo "options dasd_mod dasd=$DASD" >> /etc/modprobe.d/dasd_mod.conf
++	echo $DASD | normalize_dasd_arg > /etc/dasd.conf
++	echo "options dasd_mod dasd=$DASD" > /etc/modprobe.d/dasd_mod.conf
+ 	dasd_cio_free
+     fi
+ 
+diff --git a/modules.d/80cms/module-setup.sh b/modules.d/80cms/module-setup.sh
+index 5cce1b4..15dce89 100755
+--- a/modules.d/80cms/module-setup.sh
++++ b/modules.d/80cms/module-setup.sh
+@@ -34,5 +34,5 @@ install() {
+     inst_libdir_file "gconv/*"
+ #inst /usr/lib/locale/locale-archive
+ 
+-    dracut_install cmsfs-fuse fusermount ulockmgr_server bash tr insmod rmmod cat
++    dracut_install cmsfs-fuse fusermount ulockmgr_server bash tr insmod rmmod cat normalize_dasd_arg
+ }
diff --git a/0039-ifcfg-write-ifcfg.sh-fixed-IFS-resetting.patch b/0039-ifcfg-write-ifcfg.sh-fixed-IFS-resetting.patch
new file mode 100644
index 0000000..39e94fe
--- /dev/null
+++ b/0039-ifcfg-write-ifcfg.sh-fixed-IFS-resetting.patch
@@ -0,0 +1,34 @@
+From 9c10fecf248838a6800d0f953c5e3bf54e452223 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 22 May 2012 11:36:41 +0200
+Subject: [PATCH] ifcfg/write-ifcfg.sh: fixed IFS resetting
+
+---
+ modules.d/45ifcfg/write-ifcfg.sh |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
+index d1f6fe6..2b7cb5c 100755
+--- a/modules.d/45ifcfg/write-ifcfg.sh
++++ b/modules.d/45ifcfg/write-ifcfg.sh
+@@ -43,6 +43,7 @@ print_s390() {
+     local CONFIG_LINE
+     local i
+     local channel
++    local OLD_IFS
+ 
+     _netif="$1"
+     # if we find ccw channel, then use those, instead of
+@@ -62,9 +63,10 @@ print_s390() {
+ 
+     [ $? -ne 0 -o -z "$CONFIG_LINE" ] && return
+ 
++    OLD_IFS=$IFS
+     IFS=","
+-    set $CONFIG_LINE
+-    IFS="$OLD_IFS"
++    set -- $CONFIG_LINE
++    IFS=$OLD_IFS
+     NETTYPE=$1
+     shift
+     SUBCHANNELS="$1"
diff --git a/0040-Relax-the-rules-for-kdump-we-don-t-specify-netroot-i.patch b/0040-Relax-the-rules-for-kdump-we-don-t-specify-netroot-i.patch
new file mode 100644
index 0000000..00c56b1
--- /dev/null
+++ b/0040-Relax-the-rules-for-kdump-we-don-t-specify-netroot-i.patch
@@ -0,0 +1,42 @@
+From b6a90dbd0b879d3d9746c82102fc5c4ba09f59b9 Mon Sep 17 00:00:00 2001
+From: Cong Wang <xiyou.wangcong at gmail.com>
+Date: Tue, 29 May 2012 09:17:01 +0200
+Subject: [PATCH] Relax the rules for kdump, we don't specify netroot in
+ kdump.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=822750
+---
+ modules.d/40network/parse-bond.sh   |    5 +----
+ modules.d/40network/parse-bridge.sh |    3 ---
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/modules.d/40network/parse-bond.sh b/modules.d/40network/parse-bond.sh
+index 0a4c006..933ad27 100755
+--- a/modules.d/40network/parse-bond.sh
++++ b/modules.d/40network/parse-bond.sh
+@@ -15,10 +15,7 @@
+ 
+ # Check if bond parameter is valid
+ if getarg bond= >/dev/null ; then
+-    if [ -z "$netroot" ] ; then
+-        die "No netboot configured, bond is invalid"
+-    fi
+-    command -v brctl >/dev/null 2>&1 || die "No 'brctl' installed"
++    :
+ fi
+ 
+ # We translate list of slaves to space-separated here to mwke it easier to loop over them in ifup
+diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/40network/parse-bridge.sh
+index aaa5a54..6e1fee1 100755
+--- a/modules.d/40network/parse-bridge.sh
++++ b/modules.d/40network/parse-bridge.sh
+@@ -13,9 +13,6 @@
+ 
+ # Check if bridge parameter is valid
+ if getarg bridge= >/dev/null ; then
+-    if [ -z "$netroot" ] ; then
+-        die "No netboot configured, bridge is invalid"
+-    fi
+     command -v brctl >/dev/null 2>&1 || die "No 'brctl' installed" 
+ fi
+ 
diff --git a/0041-url-lib-url-lib.sh-disable-curl-progress-bar.patch b/0041-url-lib-url-lib.sh-disable-curl-progress-bar.patch
new file mode 100644
index 0000000..7882507
--- /dev/null
+++ b/0041-url-lib-url-lib.sh-disable-curl-progress-bar.patch
@@ -0,0 +1,26 @@
+From a07fae1ca1a095b4cca4399a42f7c2c975fd2f5d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 29 May 2012 16:10:46 +0200
+Subject: [PATCH] url-lib/url-lib.sh: disable curl progress bar
+
+https://bugzilla.redhat.com/show_bug.cgi?id=817301
+https://bugzilla.redhat.com/show_bug.cgi?id=824883
+---
+ modules.d/45url-lib/url-lib.sh |    4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh
+index 5721294..e9ece70 100755
+--- a/modules.d/45url-lib/url-lib.sh
++++ b/modules.d/45url-lib/url-lib.sh
+@@ -56,10 +56,6 @@ export CURL_HOME="/run/initramfs/url-lib"
+ mkdir -p $CURL_HOME
+ curl_args="--location --retry 3 --fail --show-error"
+ 
+-# technically "dumb" can handle the progress bar, but the only thing I've ever
+-# seen using TERM=dumb is s390 CMS, and it's too dumb for --progress-bar
+-[ "$TERM" != "dumb" ] && curl_args="$curl_args --progress-bar"
+-
+ curl_fetch_url() {
+     local url="$1" outloc="$2"
+     echo "$url" > /proc/self/fd/0
diff --git a/0042-network-ifup.sh-do-not-default-to-dhcp-for-interface.patch b/0042-network-ifup.sh-do-not-default-to-dhcp-for-interface.patch
new file mode 100644
index 0000000..ebb7edb
--- /dev/null
+++ b/0042-network-ifup.sh-do-not-default-to-dhcp-for-interface.patch
@@ -0,0 +1,35 @@
+From 588f0347536f3668708131353b2cb01f21594b59 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 29 May 2012 16:34:58 +0200
+Subject: [PATCH] network/ifup.sh: do not default to dhcp, for interfaces
+ without ip=...
+
+Don't try to be smarter than the admin configuring the machine.
+Does also conflict with other methods trying to setup the interfaces,
+like cmsifup.sh from the cms module.
+---
+ modules.d/40network/ifup.sh |   11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
+index 2111b41..b8f07f4 100755
+--- a/modules.d/40network/ifup.sh
++++ b/modules.d/40network/ifup.sh
+@@ -202,17 +202,6 @@ if [ "$netif" = "$bridgename" ] && [ ! -e /tmp/net.$bridgename.up ]; then
+     brctl addif $bridgename $ethname
+ fi
+ 
+-# No ip lines default to dhcp
+-ip=$(getarg ip)
+-
+-if [ -z "$ip" ]; then
+-    if [ "$netroot" = "dhcp6" ]; then
+-        do_dhcp -6
+-    else
+-        do_dhcp -4
+-    fi
+-fi
+-
+ # Specific configuration, spin through the kernel command line
+ # looking for ip= lines
+ for p in $(getargs ip=); do
diff --git a/0043-network-do-not-arping-with-qeth-layer3-interfaces.patch b/0043-network-do-not-arping-with-qeth-layer3-interfaces.patch
new file mode 100644
index 0000000..9cee18a
--- /dev/null
+++ b/0043-network-do-not-arping-with-qeth-layer3-interfaces.patch
@@ -0,0 +1,59 @@
+From 7d6493ec506832156352a30b8c6a85446d2f6142 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 29 May 2012 17:38:18 +0200
+Subject: [PATCH] network: do not arping with qeth layer3 interfaces
+
+https://bugzilla.redhat.com/show_bug.cgi?id=825783
+---
+ modules.d/40network/dhclient-script.sh |   13 ++++++++++---
+ modules.d/40network/net-lib.sh         |   10 +++++++++-
+ 2 files changed, 19 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/40network/dhclient-script.sh
+index 52e4900..2f05549 100755
+--- a/modules.d/40network/dhclient-script.sh
++++ b/modules.d/40network/dhclient-script.sh
+@@ -66,10 +66,17 @@ case $reason in
+         ;;
+     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
++        unset layer2
++        if [ -f /sys/class/net/$netif/device/layer2 ]; then
++            read layer2 < /sys/class/net/$netif/device/layer2
+         fi
++        if [ "$layer2" != "0" ]; then
++            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
++            fi
++        fi
++        unset layer2
+         setup_interface
+         set | while read line; do
+             [ "${line#new_}" = "$line" ] && continue
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index c0f73da..1acd549 100644
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -99,9 +99,17 @@ setup_net() {
+     else
+         dest="$gw_ip"
+     fi
+-    if [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
++
++    unset layer2
++    if [ -f /sys/class/net/$netif/device/layer2 ]; then
++        read layer2 < /sys/class/net/$netif/device/layer2
++    fi
++
++    if [ "$layer2" != "0" ] && [ -n "$dest" ] && ! arping -q -f -w 60 -I $netif $dest ; then
+         info "Resolving $dest via ARP on $netif failed"
+     fi
++    unset layer2
++
+     > /tmp/net.$netif.did-setup
+ }
+ 
diff --git a/0044-dracut-shutdown.service-do-not-unpack-old-initramfs-.patch b/0044-dracut-shutdown.service-do-not-unpack-old-initramfs-.patch
new file mode 100644
index 0000000..572210d
--- /dev/null
+++ b/0044-dracut-shutdown.service-do-not-unpack-old-initramfs-.patch
@@ -0,0 +1,23 @@
+From f7b641bbe85588f84f6e5722533f7ef9e1433d7f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 31 May 2012 09:56:24 +0200
+Subject: [PATCH] dracut-shutdown.service: do not unpack old initramfs on
+ shutdown
+
+Do not unpack the initramfs, if the old initramfs still exists.
+---
+ dracut-shutdown.service |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/dracut-shutdown.service b/dracut-shutdown.service
+index 4f06e35..6756355 100644
+--- a/dracut-shutdown.service
++++ b/dracut-shutdown.service
+@@ -11,6 +11,7 @@ After=getty at tty1.service prefdm.service
+ Before=reboot.service
+ DefaultDependencies=no
+ ConditionPathExists=/run/initramfs/.need_shutdown
++ConditionPathExists=!/run/initramfs/bin/sh
+ 
+ [Service]
+ ExecStart=/usr/lib/dracut/dracut-initramfs-restore
diff --git a/0045-crypt-add-rd.luks.allow-discards-and-honor-options-i.patch b/0045-crypt-add-rd.luks.allow-discards-and-honor-options-i.patch
new file mode 100644
index 0000000..d254676
--- /dev/null
+++ b/0045-crypt-add-rd.luks.allow-discards-and-honor-options-i.patch
@@ -0,0 +1,157 @@
+From 9ad3b951e238e790cc803cc1e69aa85b0e308188 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 31 May 2012 11:46:10 +0200
+Subject: [PATCH] crypt: add rd.luks.allow-discards and honor options in
+ crypttab
+
+also fixed the retry loop for rd.luks.key
+---
+ dracut.cmdline.7.asc               |   10 +++++
+ modules.d/90crypt/cryptroot-ask.sh |   73 ++++++++++++++++++++++++++++--------
+ 2 files changed, 67 insertions(+), 16 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index 76db651..eda72f1 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -191,6 +191,16 @@ crypto LUKS
+     LUKS UUID, so you don't have to specify the full UUID.
+     This parameter can be specified multiple times.
+ 
++**rd.luks.allow-discards=**_<luks uuid>_::
++    Allow  using  of discards (TRIM) requests for 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.
++
++**rd.luks.allow-discards::
++    Allow  using  of discards (TRIM) requests on all LUKS partitions.
++
+ **rd.luks.crypttab=0**::
+     do not check, if LUKS partition is in _/etc/crypttab_
+ 
+diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
+index aba1331..d373a90 100755
+--- a/modules.d/90crypt/cryptroot-ask.sh
++++ b/modules.d/90crypt/cryptroot-ask.sh
+@@ -32,9 +32,12 @@ else
+     device="$1"
+ fi
+ 
++# number of tries
++numtries=${3:-10}
++
+ # TODO: improve to support what cmdline does
+ if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -n rd_NO_CRYPTTAB; then
+-    while read name dev luksfile rest; do
++    while read name dev luksfile luksoptions; do
+         # ignore blank lines and comments
+         if [ -z "$name" -o "${name#\#}" != "$name" ]; then
+             continue
+@@ -57,17 +60,59 @@ if [ -f /etc/crypttab ] && getargbool 1 rd.luks.crypttab -n rd_NO_CRYPTTAB; then
+             fi
+         fi
+     done < /etc/crypttab
+-    unset name dev rest
++    unset name dev
+ fi
+ 
+ #
+ # Open LUKS device
+ #
+ 
+-info "luksOpen $device $luksname $luksfile"
++info "luksOpen $device $luksname $luksfile $luksoptions"
++
++OLD_IFS="$IFS"
++IFS=,
++set -- $luksoptions
++IFS="$OLD_IFS"
++
++while [ $# -gt 0 ]; do
++    case $1 in
++        noauto)
++            # skip this
++            exit 0
++            ;;
++        swap)
++            # skip this
++            exit 0
++            ;;
++        tmp)
++            # skip this
++            exit 0
++            ;;
++        allow-discards)
++            allowdiscards="--allow-discards"
++    esac
++    shift
++done
++
++# parse for allow-discards
++if strstr "$(cryptsetup --help)" "allow-discards"; then
++    if discarduuids=$(getargs "rd.luks.allow-discards"); then
++        if strstr " $discarduuids " " ${luksdev##luks-}"; then
++            allowdiscards="--allow-discards"
++        fi
++    elif getargbool rd.luks.allow-discards; then
++        allowdiscards="--allow-discards"
++    fi
++fi
++
++if strstr "$(cryptsetup --help)" "allow-discards"; then
++    cryptsetupopts="$cryptsetupopts $allowdiscards"
++fi
++
++unset allowdiscards
+ 
+ if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then
+-    if cryptsetup --key-file "$luksfile" luksOpen "$device" "$luksname"; then
++    if cryptsetup --key-file "$luksfile" $cryptsetupopts luksOpen "$device" "$luksname"; then
+         ask_passphrase=0
+     fi
+ else
+@@ -76,26 +121,22 @@ else
+             keydev="${tmp%%:*}"
+             keypath="${tmp#*:}"
+         else
+-            if [ $# -eq 3 ]; then
+-                if [ $3 -eq 0 ]; then
+-                    info "No key found for $device.  Fallback to passphrase mode."
+-                    break
+-                fi
+-                info "No key found for $device.  Will try $3 time(s) more later."
+-                set -- "$1" "$2" "$(($3 - 1))"
+-            else
+-                info "No key found for $device.  Will try later."
++            if [ $numtries -eq 0 ]; then
++                warn "No key found for $device.  Fallback to passphrase mode."
++                break
+             fi
++            sleep 1
++            info "No key found for $device.  Will try $numtries time(s) more later."
+             initqueue --unique --onetime --settled \
+                 --name cryptroot-ask-$luksname \
+-                $(command -v cryptroot-ask) "$@"
++                $(command -v cryptroot-ask) "$device" "$luksname" "$(($numtries-1))"
+             exit 0
+         fi
+         unset tmp
+ 
+         info "Using '$keypath' on '$keydev'"
+         readkey "$keypath" "$keydev" "$device" \
+-            | cryptsetup -d - luksOpen "$device" "$luksname"
++            | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"
+         unset keypath keydev
+         ask_passphrase=0
+         break
+@@ -103,7 +144,7 @@ else
+ fi
+ 
+ if [ $ask_passphrase -ne 0 ]; then
+-    luks_open="$(command -v cryptsetup) luksOpen"
++    luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen"
+     ask_for_password --ply-tries 5 \
+         --ply-cmd "$luks_open -T1 $device $luksname" \
+         --ply-prompt "Password ($device)" \
diff --git a/0046-dasd_mod-parse-dasd-mod.sh-fixed-dasd_mod-param-gene.patch b/0046-dasd_mod-parse-dasd-mod.sh-fixed-dasd_mod-param-gene.patch
new file mode 100644
index 0000000..caacb4a
--- /dev/null
+++ b/0046-dasd_mod-parse-dasd-mod.sh-fixed-dasd_mod-param-gene.patch
@@ -0,0 +1,68 @@
+From 328c7ae8c4d74bbbc457d7a029ac5ea444a83bb4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 31 May 2012 09:12:51 +0200
+Subject: [PATCH] dasd_mod/parse-dasd-mod.sh: fixed dasd_mod param generation
+
+---
+ modules.d/95dasd_mod/parse-dasd-mod.sh |   44 +++++++++++++++++++++++++++-----
+ 1 file changed, 38 insertions(+), 6 deletions(-)
+
+diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
+index d7e8664..91c3274 100755
+--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
++++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
+@@ -2,16 +2,48 @@
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ mod_args=""
+-for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do
+-    if [ -z $mod_args ]; then
+-        mod_args="$dasd_arg"
++
++convert_dasd_param() {
++    local bus_id params
++    params=""
++    bus_id=$1; shift
++    while [ $# -gt 0 ]; do
++        case "$1" in
++            use_diag\=1)
++                params="$params:diag"
++                ;;
++            readonly\=1)
++                params="$params:ro"
++                ;;
++            erplog\=1)
++                params="$params:erplog"
++                ;;
++            failfast\=1)
++                params="$params:failfast"
++                ;;
++        esac
++        shift
++    done
++    params="${params#*:}"
++    if [ -n "$params" ]; then
++        echo "$bus_id($params)"
+     else
+-        # We've already got some thing in mod_args, add to it
+-        mod_args="$mod_args,$dasd_arg"
++        echo "$bus_id"
+     fi
++}
++
++for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do
++    OLD_IFS=$IFS
++    IFS=","
++    set -- $dasd_arg
++    IFS=$OLD_IFS
++    dasd_arg=$(convert_dasd_param "$@")
++    mod_args="$mod_args,$dasd_arg"
+ done
+ 
+-if [ ! -z $mod_args ]; then
++mod_args="${mod_args#*,}"
++
++if [ -n "$mod_args" ]; then
+     [ -d /etc/modprobe.d ] || mkdir -m 0755 -p /etc/modprobe.d
+     echo "options dasd_mod dasd=$mod_args" >> /etc/modprobe.d/dasd_mod.conf
+ fi
diff --git a/0047-fix-return-value-of-some-installkernel-functions.patch b/0047-fix-return-value-of-some-installkernel-functions.patch
new file mode 100644
index 0000000..4415b03
--- /dev/null
+++ b/0047-fix-return-value-of-some-installkernel-functions.patch
@@ -0,0 +1,54 @@
+From 0a1ddd3fd3754c68bd5256e4b87b6978863efa31 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 1 Jun 2012 17:09:25 +0200
+Subject: [PATCH] fix return value of some installkernel() functions
+
+---
+ modules.d/40network/module-setup.sh   |    3 +++
+ modules.d/90multipath/module-setup.sh |    3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
+index c2ad815..e32eb28 100755
+--- a/modules.d/40network/module-setup.sh
++++ b/modules.d/40network/module-setup.sh
+@@ -27,6 +27,7 @@ installkernel() {
+     net_module_filter() {
+         local _net_drivers='eth_type_trans|register_virtio_device'
+         local _unwanted_drivers='/(wireless|isdn|uwb)/'
++        local _ret
+         # subfunctions inherit following FDs
+         local _merge=8 _side2=9
+         function nmf1() {
+@@ -55,7 +56,9 @@ installkernel() {
+         # Use two parallel streams to filter alternating modules.
+         set +x
+         eval "( ( rotor ) ${_side2}>&1 | nmf1 ) ${_merge}>&1"
++        _ret=$?
+         [[ $debug ]] && set -x
++        return $_ret
+     }
+ 
+     { find_kernel_modules_by_path drivers/net; find_kernel_modules_by_path drivers/s390/net; } \
+diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
+index 2f6b416..43057f3 100755
+--- a/modules.d/90multipath/module-setup.sh
++++ b/modules.d/90multipath/module-setup.sh
+@@ -31,6 +31,7 @@ depends() {
+ }
+ 
+ installkernel() {
++    local _ret
+     set +x
+     mp_mod_filter() {
+         local _mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target'
+@@ -45,7 +46,9 @@ installkernel() {
+ 
+     ( find_kernel_modules_by_path drivers/scsi; find_kernel_modules_by_path drivers/s390/scsi ;
+       find_kernel_modules_by_path drivers/md )  |  mp_mod_filter  |  instmods
++    _ret=$?
+     [[ $debug ]] && set -x
++    return $_ret
+ }
+ 
+ install() {
diff --git a/0048-dracut.sh-do-not-rely-on-the-presence-of-lib64-check.patch b/0048-dracut.sh-do-not-rely-on-the-presence-of-lib64-check.patch
new file mode 100644
index 0000000..7ed6de7
--- /dev/null
+++ b/0048-dracut.sh-do-not-rely-on-the-presence-of-lib64-check.patch
@@ -0,0 +1,48 @@
+From 71909cc72ccd11af9c542b134b112b8d6f8c5211 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 4 Jun 2012 11:33:29 +0200
+Subject: [PATCH] dracut.sh: do not rely on the presence of lib64, check with
+ ldd
+
+---
+ dracut.sh |   27 +++++++++++++++++----------
+ 1 file changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 1048e75..44dcc94 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -512,16 +512,23 @@ ddebug "Executing $0 $dracut_args"
+ }
+ 
+ # Detect lib paths
+-[[ $libdir ]] || for libdir in /lib64 /lib; do
+-    [[ -d $libdir ]] && libdirs+=" $libdir" && break
+-done || {
+-    dfatal 'No lib directory?!!!'
+-    exit 1
+-}
+-
+-[[ $usrlibdir ]] || for usrlibdir in /usr/lib64 /usr/lib; do
+-    [[ -d $usrlibdir ]] && libdirs+=" $usrlibdir" && break
+-done || dwarn 'No usr/lib directory!'
++if ! [[ $libdir ]] || ! [[ $usrlibdir ]] ; then
++    if strstr "$(ldd /bin/sh)" "/lib64/" &>/dev/null \
++        && [[ -d /lib64 ]]; then
++        libdir=/lib64
++        usrlibdir=/usr/lib64
++    else
++        libdir=/lib
++        usrlibdir=/usr/lib
++    fi
++    for i in $libdir $usrlibdir; do
++        if [[ -d $i ]]; then
++            libdirs+=" $i"
++        else
++            dwarn 'No $i directory??!!'
++        fi
++    done
++fi
+ 
+ # This is kinda legacy -- eventually it should go away.
+ case $dracutmodules in
diff --git a/0049-Don-t-set-an-already-set-attribute-826357.patch b/0049-Don-t-set-an-already-set-attribute-826357.patch
new file mode 100644
index 0000000..da10513
--- /dev/null
+++ b/0049-Don-t-set-an-already-set-attribute-826357.patch
@@ -0,0 +1,39 @@
+From dbd9f15d806bc3925991809525ab44faf7ecc5f9 Mon Sep 17 00:00:00 2001
+From: Jesse Keating <jkeating at redhat.com>
+Date: Thu, 31 May 2012 18:41:25 -0700
+Subject: [PATCH] Don't set an already set attribute (#826357)
+
+Depending on how the dasd_mod module was loaded, our device could have
+already been marked as online or offline.  We need to make the sysecho
+sensitive to this and not fail if the attribute we're trying to set has
+already been set.
+---
+ modules.d/80cms/cmssetup.sh |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
+index 995bfa7..41c853c 100755
+--- a/modules.d/80cms/cmssetup.sh
++++ b/modules.d/80cms/cmssetup.sh
+@@ -5,7 +5,7 @@
+ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+ 
+ function sysecho () {
+-    file=$1
++    file="$1"
+     shift
+     local i=1
+     while [ $i -le 10 ] ; do
+@@ -16,7 +16,11 @@ function sysecho () {
+             break
+         fi
+     done
+-    [ -f "$file" ] && echo $* > $file
++    local status
++    read status < "$file"
++    if [[ ! $status == $* ]]; then
++        [ -f "$file" ] && echo $* > "$file"
++    fi
+ }
+ 
+ function dasd_settle() {
diff --git a/0050-add-filesystem-options-to-fsck_single.patch b/0050-add-filesystem-options-to-fsck_single.patch
new file mode 100644
index 0000000..df5c036
--- /dev/null
+++ b/0050-add-filesystem-options-to-fsck_single.patch
@@ -0,0 +1,125 @@
+From d1d8f11ea7a97491c46a8f406ed55bf74a29c460 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 31 May 2012 12:57:23 +0200
+Subject: [PATCH] add filesystem options to fsck_single()
+
+if we have e.g. special btrfs options for "/" and "/usr", we want to use
+those for the test mount to determine if the filesystem is corrupted.
+---
+ modules.d/95fstab-sys/mount-sys.sh     |    2 +-
+ modules.d/95rootfs-block/mount-root.sh |    2 +-
+ modules.d/98usrmount/mount-usr.sh      |    5 +++--
+ modules.d/99base/mount-hook.sh         |    2 +-
+ modules.d/99fs-lib/fs-lib.sh           |    9 +++++----
+ 5 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh
+index 895eb58..a1e5ab1 100755
+--- a/modules.d/95fstab-sys/mount-sys.sh
++++ b/modules.d/95fstab-sys/mount-sys.sh
+@@ -12,7 +12,7 @@ fstab_mount() {
+     while read _dev _mp _fs _opts _dump _pass _rest; do
+         [ -z "${_dev%%#*}" ] && continue # Skip comment lines
+         if [ "$_pass" -gt 0 ] && ! strstr "$_opts" _netdev; then
+-            fsck_single "$_dev" "$_fs"
++            fsck_single "$_dev" "$_fs" "$_opts"
+         fi
+         _fs=$(det_fs "$_dev" "$_fs")
+         info "Mounting $_dev"
+diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh
+index aef99ae..2cae526 100755
+--- a/modules.d/95rootfs-block/mount-root.sh
++++ b/modules.d/95rootfs-block/mount-root.sh
+@@ -105,7 +105,7 @@ mount_root() {
+     ran_fsck=0
+     if [ -z "$fastboot" -a "$READONLY" != "yes" ] && ! strstr "${rflags},${rootopts}" _netdev; then
+         umount "$NEWROOT"
+-        fsck_single "${root#block:}" "$rootfs" "$fsckoptions"
++        fsck_single "${root#block:}" "$rootfs" "$rflags" "$fsckoptions"
+         _ret=$?
+         [ $_ret -ne 255 ] && echo $_ret >/run/initramfs/root-fsck
+         ran_fsck=1
+diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
+index 39f75b9..92638d1 100755
+--- a/modules.d/98usrmount/mount-usr.sh
++++ b/modules.d/98usrmount/mount-usr.sh
+@@ -9,6 +9,7 @@ fsck_usr()
+ {
+     local _dev=$1
+     local _fs=$2
++    local _fsopts=$3
+     local _fsckoptions
+ 
+     if [ -f "$NEWROOT"/fsckoptions ]; then
+@@ -31,7 +32,7 @@ fsck_usr()
+         _fsckoptions="$AUTOFSCK_OPT $_fsckoptions"
+     fi
+ 
+-    fsck_single "$_dev" "$_fs" "$_fsckoptions"
++    fsck_single "$_dev" "$_fs" "$_fsopts" "$_fsckoptions"
+ }
+ 
+ mount_usr()
+@@ -60,7 +61,7 @@ mount_usr()
+     if [ "x$_usr_found" != "x" ]; then
+         # we have to mount /usr
+         if [ "0" != "${_passno:-0}" ]; then
+-            fsck_usr "$_dev" "$_fs"
++            fsck_usr "$_dev" "$_fs" "$_opts"
+         else
+             :
+         fi
+diff --git a/modules.d/99base/mount-hook.sh b/modules.d/99base/mount-hook.sh
+index 99b17dd..dcf1415 100755
+--- a/modules.d/99base/mount-hook.sh
++++ b/modules.d/99base/mount-hook.sh
+@@ -113,7 +113,7 @@ mount_root() {
+     # printf '%s %s %s %s 1 1 \n' "$esc_root" "$NEWROOT" "$rootfs" "$rflags" >/etc/fstab
+ 
+     if [ -z "$fastboot" -a "$READONLY" != "yes" ] && ! strstr "${rflags},${rootopts}" _netdev; then
+-        fsck_single "${root#block:}" "$rootfs" "$fsckoptions"
++        fsck_single "${root#block:}" "$rootfs" "$rflags" "$fsckoptions"
+         _ret=$?
+         [ $_ret -ne 255 ] && echo $_ret >/run/initramfs/root-fsck
+     fi
+diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
+index f9dbbf9..75bee92 100755
+--- a/modules.d/99fs-lib/fs-lib.sh
++++ b/modules.d/99fs-lib/fs-lib.sh
+@@ -89,7 +89,7 @@ fsck_drv_xfs() {
+     mkdir -p /tmp/.xfs
+ 
+     info "trying to mount $_dev"
+-    if mount -t xfs "$_dev" "/tmp/.xfs" >/dev/null 2>&1; then
++    if mount -t xfs ${_fsopts+-o $_fsopts} "$_dev" "/tmp/.xfs" >/dev/null 2>&1; then
+         _ret=0
+         info "xfs: $_dev is clean"
+         umount "$_dev" >/dev/null 2>&1
+@@ -119,7 +119,7 @@ fsck_drv_btrfs() {
+     mkdir -p /tmp/.btrfs
+ 
+     info "trying to mount $_dev"
+-    if mount -t btrfs "$_dev" "/tmp/.btrfs" >/dev/null 2>&1; then
++    if mount -t btrfs ${_fsopts+-o $_fsopts} "$_dev" "/tmp/.btrfs" >/dev/null 2>&1; then
+         _ret=0
+         info "btrfs: $_dev is clean"
+         umount "$_dev" >/dev/null 2>&1
+@@ -177,7 +177,7 @@ fsck_drv_std() {
+ 
+ # checks single filesystem, relying on specific "driver"; we don't rely on
+ # automatic checking based on fstab, so empty one is passed;
+-# takes 3 arguments - device, filesystem, additional fsck options;
++# takes 4 arguments - device, filesystem, filesystem options, additional fsck options;
+ # first 2 arguments are mandatory (fs may be auto or "")
+ # returns 255 if filesystem wasn't checked at all (e.g. due to lack of
+ # necessary tools or insufficient options)
+@@ -185,7 +185,8 @@ fsck_single() {
+     local FSTAB_FILE=/etc/fstab.empty
+     local _dev="$1"
+     local _fs="${2:-auto}"
+-    local _fop="$3"
++    local _fsopts="$3"
++    local _fop="$4"
+     local _drv
+ 
+     [ $# -lt 2 ] && return 255
diff --git a/0051-dasd_mod-change-rd.dasd-to-dasd_mod-kernel-parameter.patch b/0051-dasd_mod-change-rd.dasd-to-dasd_mod-kernel-parameter.patch
new file mode 100644
index 0000000..6060eb8
--- /dev/null
+++ b/0051-dasd_mod-change-rd.dasd-to-dasd_mod-kernel-parameter.patch
@@ -0,0 +1,85 @@
+From a12c7982174ca599904c229d0b12b4cc9ba2a0f5 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 5 Jun 2012 20:23:35 +0200
+Subject: [PATCH] dasd_mod: change rd.dasd to dasd_mod kernel parameter
+
+---
+ dracut.cmdline.7.asc                   |    9 ++-------
+ modules.d/95dasd_mod/parse-dasd-mod.sh |   34 --------------------------------
+ 2 files changed, 2 insertions(+), 41 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index eda72f1..884d194 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -417,14 +417,9 @@ NBD
+ 
+ DASD
+ ~~~~
+-**rd.dasd_mod.dasd=**....::
++**rd.dasd=**....::
+     same syntax as the kernel module parameter (s390 only)
+ 
+-**rd.dasd=**_<dasd_adaptor device bus ID>_[,readonly=_X_][,use_diag=_X_][,erplog=_X_]::
+-    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.
+-
+ ZFCP
+ ~~~~
+ **rd.zfcp=**_<zfcp adaptor device bus ID>_,_<WWPN>_,_<FCPLUN>_::
+@@ -493,7 +488,7 @@ rdbreak:: rd.break
+ 
+ rd_CCW:: rd.ccw
+ 
+-rd_DASD_MOD:: rd.dasd_mod.dasd
++rd_DASD_MOD:: rd.dasd
+ 
+ rd_DASD:: rd.dasd
+ 
+diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
+index 91c3274..c37aca8 100755
+--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
++++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
+@@ -3,41 +3,7 @@
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ mod_args=""
+ 
+-convert_dasd_param() {
+-    local bus_id params
+-    params=""
+-    bus_id=$1; shift
+-    while [ $# -gt 0 ]; do
+-        case "$1" in
+-            use_diag\=1)
+-                params="$params:diag"
+-                ;;
+-            readonly\=1)
+-                params="$params:ro"
+-                ;;
+-            erplog\=1)
+-                params="$params:erplog"
+-                ;;
+-            failfast\=1)
+-                params="$params:failfast"
+-                ;;
+-        esac
+-        shift
+-    done
+-    params="${params#*:}"
+-    if [ -n "$params" ]; then
+-        echo "$bus_id($params)"
+-    else
+-        echo "$bus_id"
+-    fi
+-}
+-
+ for dasd_arg in $(getargs rd.dasd= rd_DASD= DASD=); do
+-    OLD_IFS=$IFS
+-    IFS=","
+-    set -- $dasd_arg
+-    IFS=$OLD_IFS
+-    dasd_arg=$(convert_dasd_param "$@")
+     mod_args="$mod_args,$dasd_arg"
+ done
+ 
diff --git a/0052-dracut.spec-remove-typo-from-BuildRequires-for-suse.patch b/0052-dracut.spec-remove-typo-from-BuildRequires-for-suse.patch
new file mode 100644
index 0000000..4520961
--- /dev/null
+++ b/0052-dracut.spec-remove-typo-from-BuildRequires-for-suse.patch
@@ -0,0 +1,22 @@
+From 9cec52027c0af88b41f4058b50dc25ae47354c99 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 6 Jun 2012 10:24:07 +0200
+Subject: [PATCH] dracut.spec: remove typo from BuildRequires for suse
+
+---
+ dracut.spec |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index b5218d9..38da76d 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -40,7 +40,7 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
+ %endif
+ 
+ %if 0%{?suse_version}
+--BuildRequires: docbook-xsl-stylesheets libxslt
++BuildRequires: docbook-xsl-stylesheets libxslt
+ %endif
+ 
+ BuildRequires: asciidoc
diff --git a/0053-move-dracut-back-to-usr-share.patch b/0053-move-dracut-back-to-usr-share.patch
new file mode 100644
index 0000000..f7f53ac
--- /dev/null
+++ b/0053-move-dracut-back-to-usr-share.patch
@@ -0,0 +1,192 @@
+From a950b4f93b0eea7f19aea0141da76e233409a21b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 6 Jun 2012 10:58:13 +0200
+Subject: [PATCH] move dracut back to /usr/share
+
+---
+ Makefile                |    2 +-
+ dracut-shutdown.service |    2 +-
+ dracut.8.asc            |    4 ++--
+ dracut.asc              |    4 ++--
+ dracut.conf.5.asc       |    2 +-
+ dracut.sh               |    8 ++++----
+ dracut.spec             |   18 ++++++------------
+ 7 files changed, 17 insertions(+), 23 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index bf51b51..c1c096d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@ GITVERSION=$(shell [ -d .git ] && git rev-list  --abbrev-commit  -n 1 HEAD  |cut
+ prefix ?= /usr
+ libdir ?= ${prefix}/lib
+ datadir ?= ${prefix}/share
+-pkglibdir ?= ${libdir}/dracut
++pkglibdir ?= ${datadir}/dracut
+ sysconfdir ?= ${prefix}/etc
+ bindir ?= ${prefix}/bin
+ mandir ?= ${prefix}/share/man
+diff --git a/dracut-shutdown.service b/dracut-shutdown.service
+index 6756355..56e7b94 100644
+--- a/dracut-shutdown.service
++++ b/dracut-shutdown.service
+@@ -14,6 +14,6 @@ ConditionPathExists=/run/initramfs/.need_shutdown
+ ConditionPathExists=!/run/initramfs/bin/sh
+ 
+ [Service]
+-ExecStart=/usr/lib/dracut/dracut-initramfs-restore
++ExecStart=/usr/share/dracut/dracut-initramfs-restore
+ Type=oneshot
+ RemainAfterExit=yes
+diff --git a/dracut.8.asc b/dracut.8.asc
+index cadd740..d538a02 100644
+--- a/dracut.8.asc
++++ b/dracut.8.asc
+@@ -31,7 +31,7 @@ OPTIONS
+ 
+ **-m, --modules** _<list of dracut modules>_::
+     specify a space-separated list of dracut modules to call when building the
+-    initramfs. Modules are located in _/usr/lib/dracut/modules.d_. This
++    initramfs. Modules are located in _/usr/share/dracut/modules.d_. This
+     parameter can be specified multiple times.
+ +
+ [NOTE]
+@@ -228,7 +228,7 @@ Default:
+ **-l, --local**::
+     activates the local mode. dracut will use modules from the current working
+     directory instead of the system-wide installed modules in
+-    _/usr/lib/dracut/modules.d_.
++    _/usr/share/dracut/modules.d_.
+     This is useful when running dracut from a git checkout.
+ 
+ **-H, --hostonly**::
+diff --git a/dracut.asc b/dracut.asc
+index 9621db2..47493bc 100644
+--- a/dracut.asc
++++ b/dracut.asc
+@@ -196,7 +196,7 @@ To see a list of available dracut modules, use the --list-modules option:
+ 
+ or, if you have a dracut version earlier than +008+, issue the command:
+ ----
+-# for mod in /usr/lib/dracut/modules.d/*; do echo ${mod##*/??}; done
++# for mod in /usr/share/dracut/modules.d/*; do echo ${mod##*/??}; done
+ ----
+ 
+ === Omitting dracut Modules
+@@ -716,7 +716,7 @@ For more debugging options, see <<dracutkerneldebug>> in <<dracutcmdline7>>.
+ == dracut Components
+ 
+ dracut uses a modular system to build and extend the initramfs image. All
+-modules are located in _/usr/lib/dracut/modules.d_ or in _<git-src>/modules.d_.
++modules are located in _/usr/share/dracut/modules.d_ or in _<git-src>/modules.d_.
+ The most basic dracut module is _99base_. In _99base_ the initial shell script
+ init is defined, which gets run by the kernel after initramfs loading. Although
+ you can replace init with your own version of _99base_, this is not encouraged.
+diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
+index 017a221..bc1caa6 100644
+--- a/dracut.conf.5.asc
++++ b/dracut.conf.5.asc
+@@ -23,7 +23,7 @@ line are not interpreted.
+ 
+ *dracutmodules+=*" __<dracut modules>__ "::
+     Specify a space-separated list of dracut modules to call when building the
+-    initramfs. Modules are located in _/usr/lib/dracut/modules.d_.
++    initramfs. Modules are located in _/usr/share/dracut/modules.d_.
+ 
+ *omit_dracutmodules+=*" __<dracut modules>__ "::
+     Omit a space-separated list of dracut modules.
+diff --git a/dracut.sh b/dracut.sh
+index 44dcc94..03807b8 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -35,7 +35,7 @@ Creates initial ramdisk images for preloading modules
+   -f, --force           Overwrite existing initramfs file.
+   -m, --modules [LIST]  Specify a space-separated list of dracut modules to
+                          call when building the initramfs. Modules are located
+-                         in /usr/lib/dracut/modules.d.
++                         in /usr/share/dracut/modules.d.
+   -o, --omit [LIST]     Omit a space-separated list of dracut modules.
+   -a, --add [LIST]      Add a space-separated list of dracut modules.
+   -d, --drivers [LIST]  Specify a space-separated list of kernel modules to
+@@ -84,7 +84,7 @@ Creates initial ramdisk images for preloading modules
+                          /var/tmp.
+   -l, --local           Local mode. Use modules from the current working
+                          directory instead of the system-wide installed in
+-                         /usr/lib/dracut/modules.d.
++                         /usr/share/dracut/modules.d.
+                          Useful when running dracut from a git checkout.
+   -H, --hostonly        Host-Only mode: Install only what is needed for
+                          booting the local host instead of a generic host.
+@@ -309,7 +309,7 @@ unset GREP_OPTIONS
+     debug=yes
+ }
+ 
+-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
++[[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut
+ 
+ [[ $allowlocal && -f "$(readlink -f ${0%/*})/dracut-functions.sh" ]] && \
+     dracutbasedir="$(readlink -f ${0%/*})"
+@@ -422,7 +422,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
+ [[ $use_fstab_l ]] && use_fstab=$use_fstab_l
+ [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
+ [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
+-[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
++[[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut
+ [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
+ [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
+ [[ $tmpdir ]] || tmpdir=/var/tmp
+diff --git a/dracut.spec b/dracut.spec
+index 38da76d..e762fdc 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -1,4 +1,4 @@
+-%define dracutlibdir %{_prefix}/lib/dracut
++%define dracutlibdir %{_datadir}/dracut
+ 
+ # Variables must be defined
+ %define with_nbd                1
+@@ -170,8 +170,8 @@ make all
+ rm -rf $RPM_BUILD_ROOT
+ %endif
+ make install DESTDIR=$RPM_BUILD_ROOT \
+-     libdir=%{_prefix}/lib \
+-     bindir=%{_bindir} \
++     libdir=%{_datadir} \
++     bindir=/sbin \
+ %if %{defined _unitdir}
+      systemdsystemunitdir=%{_unitdir} \
+ %endif
+@@ -218,22 +218,16 @@ rm $RPM_BUILD_ROOT%{_bindir}/lsinitrd
+ mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
+ install -m 0644 dracut.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/dracut_log
+ 
+-# create compat symlink
+-mkdir -p $RPM_BUILD_ROOT/sbin
+-ln -s /usr/bin/dracut $RPM_BUILD_ROOT/sbin/dracut
+-
+ %clean
+ rm -rf $RPM_BUILD_ROOT
+ 
+ %files
+ %defattr(-,root,root,0755)
+ %doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
+-%{_bindir}/dracut
+-# compat symlink
+ /sbin/dracut
+ %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
+-%{_bindir}/mkinitrd
+-%{_bindir}/lsinitrd
++/sbin/mkinitrd
++/sbin/lsinitrd
+ %endif
+ %dir %{dracutlibdir}
+ %dir %{dracutlibdir}/modules.d
+@@ -332,7 +326,7 @@ rm -rf $RPM_BUILD_ROOT
+ %files tools
+ %defattr(-,root,root,0755)
+ %{_mandir}/man8/dracut-catimages.8*
+-%{_bindir}/dracut-catimages
++/sbin/dracut-catimages
+ %dir /boot/dracut
+ %dir /var/lib/dracut
+ %dir /var/lib/dracut/overlay
diff --git a/0054-removed-setsid-and-util-linux-2.21-requirement.patch b/0054-removed-setsid-and-util-linux-2.21-requirement.patch
new file mode 100644
index 0000000..7b14e37
--- /dev/null
+++ b/0054-removed-setsid-and-util-linux-2.21-requirement.patch
@@ -0,0 +1,54 @@
+From 84eafb064490c618c920db186e74f1f9927e0380 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Wed, 6 Jun 2012 11:14:48 +0200
+Subject: [PATCH] removed setsid and util-linux >= 2.21 requirement
+
+---
+ dracut.spec                      |    4 ++--
+ modules.d/99base/dracut-lib.sh   |    3 +--
+ modules.d/99base/module-setup.sh |    2 +-
+ 3 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index e762fdc..54e8d99 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -78,9 +78,9 @@ Requires: module-init-tools >= 3.7-9
+ Requires: sed
+ Requires: udev > 166
+ %if 0%{?fedora} || 0%{?rhel} > 6
+-Requires: util-linux >= 2.21
++Requires: util-linux >= 2.20
+ %else
+-Requires: util-linux-ng >= 2.21
++Requires: util-linux-ng >= 2.20
+ %endif
+ 
+ %if 0%{?fedora} || 0%{?rhel} > 6
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 4f2b8cd..3ad5000 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -798,8 +798,7 @@ emergency_shell()
+             _ctty=/dev/$_ctty
+         fi
+         [ -c "$_ctty" ] || _ctty=/dev/tty1
+-        strstr "$(setsid --help 2>/dev/null)" "ctty" && CTTY="-c"
+-        setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1
++        /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1
+     else
+         warn "$action has failed. To debug this issue add \"rd.shell\" to the kernel command line."
+         # cause a kernel panic
+diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
+index 581ba93..98742f5 100755
+--- a/modules.d/99base/module-setup.sh
++++ b/modules.d/99base/module-setup.sh
+@@ -14,7 +14,7 @@ depends() {
+ install() {
+     local _d
+     dracut_install mount mknod mkdir modprobe pidof sleep chroot \
+-        sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid
++        sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink
+     dracut_install -o less
+     if [ ! -e "${initdir}/bin/sh" ]; then
+         dracut_install bash
diff --git a/dracut.spec b/dracut.spec
index b926bba..c477e79 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -1,3 +1,5 @@
+%define dracutlibdir %{_datadir}/dracut
+
 # Variables must be defined
 %define with_nbd                1
 
@@ -7,11 +9,11 @@
 %endif
 
 Name: dracut
-Version: 013
-Release: 22%{?dist}
+Version: 018
+Release: 55.git20120606%{?dist}
 
 Summary: Initramfs generator using udev
-%if 0%{?fedora} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?rhel}
 Group: System Environment/Base
 %endif
 %if 0%{?suse_version}
@@ -22,91 +24,73 @@ URL: https://dracut.wiki.kernel.org/
 # Source can be generated by
 # http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz
 Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2
-Patch1: 0001-90dmsquash-live-dmsquash-live-root-include-fs_lib.sh.patch
-Patch2: 0002-fix-live-crash-with-livenet-installed.patch
-Patch3: 0003-dracut-functions-s-emergency-shutdown-shutdown-emerg.patch
-Patch4: 0004-dracut-functions-speed-up-inst_dir.patch
-Patch5: 0005-dracut-functions-new-function-inst_any-d-dest-f1-f2-.patch
-Patch6: 0006-dracut-functions-fix-inst_dir-for-non-absolute-dirs.patch
-Patch7: 0007-90mdraid-65-md-incremental-imsm.rules-incremental-ru.patch
-Patch8: 0008-build-initramfs-unclear-_mpargs-in-instmods.patch
-Patch9: 0009-99base-init-save-and-restore-environment-given-from-.patch
-Patch10: 0010-dracut-functions-hmac-checksum-files-can-be-symlinks.patch
-Patch11: 0011-95udev-rules-add-input_id.patch
-Patch12: 0012-inst_simple-inst_dir-make-fast-case-faster.patch
-Patch13: 0013-filter_kernel_modules-is-a-specialized-filter_kernel.patch
-Patch14: 0014-install_kmod_with_fw-make-fast-case-faster.patch
-Patch15: 0015-instmods-get-filenames-from-stdin-if-no-args-use-it.patch
-Patch16: 0016-instmods-sanity-for-_mpargs.patch
-Patch17: 0017-instmods-factor-out-egrep-of-FATAL-Module-.-not-foun.patch
-Patch18: 0018-99base-init-do-not-fail-when-importing-the-original-.patch
-Patch19: 0019-dracut-cp-with-sparse.patch
-Patch20: 0020-dmsquash-live-root-use-blkid-to-determine-fstype-of-.patch
-Patch21: 0021-dmsquash-live-root-load-filesystem-modules-before-mo.patch
-Patch22: 0022-99base-init-remove-dev-root-helper-symlink.patch
-Patch23: 0023-Do-not-use-run-udev-rules.d-for-udev-rules.patch
-Patch24: 0024-99base-init-mount-securityfs-with-source-securityfs-.patch
-Patch25: 0025-mount-securityfs-in-a-seperate-dracut-module.patch
-Patch26: 0026-mount-securityfs-in-a-seperate-dracut-module.patch
-Patch27: 0027-90mdraid-adjust-stock-mdadm-udev-rules.patch
-Patch28: 0028-90mdraid-containers-are-not-runnable.patch
-Patch29: 0029-90mdraid-fix-adjust-mdraid-cleanup.patch
-Patch30: 0030-90mdraid-fix-adjust-force-run-script.patch
-Patch31: 0031-90-md-dm-raid-recognize-ddf-container.patch
-Patch32: 0032-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch
-Patch33: 0033-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch
-Patch34: 0034-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch
-Patch35: 0035-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch
-Patch36: 0036-str_replace-fix.patch
-Patch37: 0037-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch
-Patch38: 0038-dracut-create-dev-besides-proc-sys-and-so.patch
-Patch39: 0039-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch
-Patch40: 0040-dracut-functions-inst_rules-add-missing.patch
-Patch41: 0041-90mdraid-check-precisely-for-supported-contaiers.patch
-Patch42: 0042-90mdraid-more-thorough-64-md-raid.rules-edit.patch
-Patch43: 0043-90mdraid-adjust-dev-md-loops.patch
-Patch44: 0044-dracut-PATCH-Parameter-expansion-occurs-before-comma.patch
-Patch45: 0045-order-mdadm-and-lvm-timeout-operations.patch
-Patch46: 0046-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch
-Patch47: 0047-90mdraid-module-setup.sh-fixed-sed-arguments.patch
-Patch48: 0048-convert_abs_rel-fixups.patch
-Patch49: 0049-dracut-functions-conv-normalize-minor-corrections.patch
-Patch50: 0050-dracut-lib.sh-fix-dropped-backslashes-in-CMDLINE.patch
-Patch51: 0051-90livenet-check-for-wget.patch
-Patch52: 0052-dracut-logger-re-set-debugging.patch
-Patch53: 0053-dracut-functions-inst_dir-handle-relative-symlinks.patch
-Patch54: 0054-90livenet-module-setup.sh-silence-check-for-wget.patch
-Patch55: 0055-90livenet-do-not-install-by-default.patch
-Patch56: 0056-dracut-functions-do-not-install-files-from-current-d.patch
-Patch57: 0057-inst_script-should-call-inst_simple-750603.patch
-Patch58: 0058-dracut.spec-fixed-rhel-fedora-version-checks.patch
-Patch59: 0059-dracut.spec-apply-patches-with-git.patch
-Patch60: 0060-Makefile-git2spec.pl-use-temporary-builddir.patch
-Patch61: 0061-90kernel-modules-module-setup.sh-include-usb-mass-st.patch
-Patch62: 0062-90mdraid-remove-mdadm_auto.sh-completly.patch
-Patch63: 0063-cryptroot-ask.sh-use-key-file-if-specified-in-cryptt.patch
-Patch64: 0064-90mdraid-wait-for-md-devices-to-become-clean.patch
-Patch65: 0065-99base-init-only-poll-cdroms-if-the-kernel-does-supp.patch
-Patch66: 0066-99base-init-removed-cdrom-polling-reset-code.patch
-Patch67: 0067-99base-init-fix-check-for-in-kernel-polling.patch
-Patch68: 0068-dracut-add-install_items-to-dracut.conf.patch
-Patch69: 0069-git2spec.pl-strip-path-from-patches.patch
-Patch70: 0070-90kernel-modules-module-setup.sh-install-modules.ord.patch
-Patch71: 0071-Revert-90mdraid-wait-for-md-devices-to-become-clean.patch
-Patch72: 0072-add-30convertfs.patch
-Patch73: 0073-90mdraid-add-offroot-support.patch
+Patch1: 0001-dracut-lib-add-str_ends-to-go-along-with-str_starts.patch
+Patch2: 0002-run-setup_net-at-start-of-initqueue-online-hook.patch
+Patch3: 0003-network-add-save_netinfo-fix-problems-with-nfs-NM-ta.patch
+Patch4: 0004-Make-splitsep-work-as-documented-with-less-vars-than.patch
+Patch5: 0005-shutdown-use-emergency_shell-from-dracut-lib.patch
+Patch6: 0006-rootfs-block-avoid-remount-when-options-don-t-change.patch
+Patch7: 0007-Debian-multiarch-support.patch
+Patch8: 0008-dracut.sh-log-installed-modules-to-initdir-lib-dracu.patch
+Patch9: 0009-lvm-disable-lvmetad.patch
+Patch10: 0010-udev-rules-remove-01-ignore.rules.patch
+Patch11: 0011-lsinitrd-support-symlinks.patch
+Patch12: 0012-dracut.cmdline.7.asc-document-resume-option.patch
+Patch13: 0013-dracut.spec-do-not-include-IMA-and-selinux-modules-w.patch
+Patch14: 0014-Do-not-run-plymouth-hook-if-the-binary-is-missing.patch
+Patch15: 0015-man-Fix-add-fstab-option-in-man-page.patch
+Patch16: 0016-base-init.sh-mount-tmpfs-with-strictatime.patch
+Patch17: 0017-99shutdown-shutdown.sh-export-PATH.patch
+Patch18: 0018-Makefile-do-not-install-systemd-service-in-reboot.patch
+Patch19: 0019-network-module-setup.sh-include-all-kernel-drivers-n.patch
+Patch20: 0020-add-pre-pivot-cleanup-hook.patch
+Patch21: 0021-move-cleanup-scripts-to-pre-pivot-cleanup-hook.patch
+Patch22: 0022-network-parse-ip-opts.sh-remove-check-for-netroot.patch
+Patch23: 0023-ifcfg-write-DNS1-.-for-nameserver-args-RHBZ-815369.patch
+Patch24: 0024-url-lib-don-t-add-existing-handlers-multiple-times.patch
+Patch25: 0025-url-lib-don-t-use-progress-bar-if-TERM-dumb-RHBZ-814.patch
+Patch26: 0026-iscsi-module-setup.sh-fix-host-only-mount-checks.patch
+Patch27: 0027-multipath-module-setup.sh-fix-host-only-mount-checks.patch
+Patch28: 0028-fix-_getcmdline-arg-duplicating-bug-with-etc-cmdline.patch
+Patch29: 0029-ifcfg-fix-resolv.conf.patch
+Patch30: 0030-TEST-15-BTRFSRAID-add-one-more-partition-to-the-btrf.patch
+Patch31: 0031-ifcfg-write-ifcfg.sh-use-PREFIX-for-prefix-netmask-f.patch
+Patch32: 0032-Fail-to-boot-if-mediacheck-fails-817419.patch
+Patch33: 0033-ifcfg-write-ifcfg.sh-add-s390-specific-configuration.patch
+Patch34: 0034-Makefile-call-git2spec.pl-with-LANG-C.patch
+Patch35: 0035-ARM-make-sure-that-we-get-the-storage-modules-into-t.patch
+Patch36: 0036-Use-the-right-argument-for-dasd-module-options.patch
+Patch37: 0037-Translate-dasd-arg-contents-into-proper-dasd.conf.patch
+Patch38: 0038-Normalize-dasd-argument-content-for-dasd.conf.patch
+Patch39: 0039-ifcfg-write-ifcfg.sh-fixed-IFS-resetting.patch
+Patch40: 0040-Relax-the-rules-for-kdump-we-don-t-specify-netroot-i.patch
+Patch41: 0041-url-lib-url-lib.sh-disable-curl-progress-bar.patch
+Patch42: 0042-network-ifup.sh-do-not-default-to-dhcp-for-interface.patch
+Patch43: 0043-network-do-not-arping-with-qeth-layer3-interfaces.patch
+Patch44: 0044-dracut-shutdown.service-do-not-unpack-old-initramfs-.patch
+Patch45: 0045-crypt-add-rd.luks.allow-discards-and-honor-options-i.patch
+Patch46: 0046-dasd_mod-parse-dasd-mod.sh-fixed-dasd_mod-param-gene.patch
+Patch47: 0047-fix-return-value-of-some-installkernel-functions.patch
+Patch48: 0048-dracut.sh-do-not-rely-on-the-presence-of-lib64-check.patch
+Patch49: 0049-Don-t-set-an-already-set-attribute-826357.patch
+Patch50: 0050-add-filesystem-options-to-fsck_single.patch
+Patch51: 0051-dasd_mod-change-rd.dasd-to-dasd_mod-kernel-parameter.patch
+Patch52: 0052-dracut.spec-remove-typo-from-BuildRequires-for-suse.patch
+Patch53: 0053-move-dracut-back-to-usr-share.patch
+Patch54: 0054-removed-setsid-and-util-linux-2.21-requirement.patch
 
 
 BuildArch: noarch
 BuildRequires: dash bash git
-%if 0%{?fedora} || 0%{?rhel} > 6
+
+%if 0%{?fedora} || 0%{?rhel}
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 %endif
 %if 0%{?suse_version}
 BuildRoot: %{_tmppath}/%{name}-%{version}-build
 %endif
 
-%if 0%{?fedora} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?rhel}
 BuildRequires: docbook-style-xsl docbook-dtds libxslt
 %endif
 
@@ -114,7 +98,9 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
 BuildRequires: docbook-xsl-stylesheets libxslt
 %endif
 
-%if 0%{?fedora} > 12 || 0%{?rhel} >= 6
+BuildRequires: asciidoc
+
+%if 0%{?fedora} > 12 || 0%{?rhel}
 # no "provides", because dracut does not offer
 # all functionality of the obsoleted packages
 Obsoletes: mkinitrd <= 6.0.93
@@ -123,6 +109,10 @@ Obsoletes: nash <= 6.0.93
 Obsoletes: libbdevid-python <= 6.0.93
 %endif
 
+%if 0%{?fedora} > 16 || 0%{?rhel} > 6
+BuildRequires: systemd-units
+%endif
+
 %if 0%{?suse_version} > 9999
 Obsoletes: mkinitrd < 2.6.1
 Provides: mkinitrd = 2.6.1
@@ -132,32 +122,27 @@ Obsoletes: dracut-kernel < 005
 Provides:  dracut-kernel = %{version}-%{release}
 
 Requires: bash
-Requires: bzip2
 Requires: coreutils
 Requires: cpio
-Requires: dash
 Requires: filesystem >= 2.1.0
 Requires: findutils
 Requires: grep
-Requires: gzip
-Requires: kbd
-Requires: mktemp >= 1.5-5
+Requires: hardlink
+Requires: gzip xz
 Requires: module-init-tools >= 3.7-9
 Requires: sed
-Requires: tar
-Requires: udev
-
+Requires: udev > 166
 %if 0%{?fedora} || 0%{?rhel} > 6
-Requires: util-linux >= 2.16
-Requires: initscripts >= 8.63-1
-Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
+Requires: util-linux >= 2.20
+%else
+Requires: util-linux-ng >= 2.20
 %endif
 
-%if 0%{?suse_version}
-Requires: util-linux >= 2.16
+%if 0%{?fedora} || 0%{?rhel} > 6
+Conflicts: initscripts < 8.63-1
+Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
 %endif
 
-
 %description
 Dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
 Unlike existing implementations, dracut does hard-code as little as possible
@@ -168,24 +153,6 @@ NFS, iSCSI, NBD, FCoE with the dracut-network package.
 %package network
 Summary: Dracut modules to build a dracut initramfs with network support
 Requires: %{name} = %{version}-%{release}
-Requires: rpcbind
-%if %{with_nbd}
-Requires: nbd
-%endif
-Requires: iproute
-Requires: bridge-utils
-
-%if 0%{?fedora} || 0%{?rhel} > 6
-Requires: iscsi-initiator-utils
-Requires: nfs-utils
-Requires: dhclient
-%endif
-
-%if 0%{?suse_version}
-Requires: dhcp-client
-Requires: nfs-client
-Requires: vlan
-%endif
 Obsoletes: dracut-generic < 008
 Provides:  dracut-generic = %{version}-%{release}
 
@@ -193,7 +160,7 @@ Provides:  dracut-generic = %{version}-%{release}
 This package requires everything which is needed to build a generic
 all purpose initramfs with network support with dracut.
 
-%if 0%{?fedora} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?rhel} >= 6
 %package fips
 Summary: Dracut modules to build a dracut initramfs with an integrity check
 Requires: %{name} = %{version}-%{release}
@@ -211,6 +178,15 @@ This package requires everything which is needed to build an
 all purpose initramfs with dracut, which does an integrity check.
 %endif
 
+%package fips-aesni
+Summary: Dracut modules to build a dracut initramfs with an integrity check with aesni-intel
+Requires: %{name}-fips = %{version}-%{release}
+
+%description fips-aesni
+This package requires everything which is needed to build an
+all purpose initramfs with dracut, which does an integrity check
+and adds the aesni-intel kernel module.
+
 %package caps
 Summary: Dracut modules to build a dracut initramfs which drops capabilities
 Requires: %{name} = %{version}-%{release}
@@ -229,6 +205,8 @@ This package contains tools to assemble the local initrd and host configuration.
 
 %prep
 %setup -q -n %{name}-%{version}
+
+%if %{defined PATCH1}
 git init
 git config user.email "dracut-maint at redhat.com"
 git config user.name "Fedora dracut team"
@@ -237,25 +215,40 @@ git commit -a -q -m "%{version} baseline."
 
 # Apply all the patches.
 git am -p1 %{patches}
+%endif
 
 %build
-make
+make all
 
 %install
-%if 0%{?fedora} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?rhel}
 rm -rf $RPM_BUILD_ROOT
 %endif
-make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \
+make install DESTDIR=$RPM_BUILD_ROOT \
+     libdir=%{_datadir} \
+     bindir=/sbin \
+%if %{defined _unitdir}
+     systemdsystemunitdir=%{_unitdir} \
+%endif
      sysconfdir=/etc mandir=%{_mandir}
 
-echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/10rpmversion/dracut-version
+echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/10rpmversion/dracut-version
 
 %if 0%{?fedora} == 0 && 0%{?rhel} == 0
-rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/01fips
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
 %endif
 
 # remove gentoo specific modules
-rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/50gensplash
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
+
+%if %{defined _unitdir}
+# with systemd IMA and selinux modules do not make sense
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98selinux
+%endif
 
 mkdir -p $RPM_BUILD_ROOT/boot/dracut
 mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay
@@ -263,7 +256,7 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
 touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log
 mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs
 
-%if 0%{?fedora} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?rhel}
 install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/01-dist.conf
 install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/40-fips.conf
 %endif
@@ -273,8 +266,8 @@ install -m 0644 dracut.conf.d/suse.conf.example   $RPM_BUILD_ROOT/etc/dracut.con
 %endif
 
 %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
-rm $RPM_BUILD_ROOT/sbin/mkinitrd
-rm $RPM_BUILD_ROOT/sbin/lsinitrd
+rm $RPM_BUILD_ROOT%{_bindir}/mkinitrd
+rm $RPM_BUILD_ROOT%{_bindir}/lsinitrd
 %endif
 
 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
@@ -291,92 +284,115 @@ rm -rf $RPM_BUILD_ROOT
 /sbin/mkinitrd
 /sbin/lsinitrd
 %endif
-%dir %{_datadir}/dracut
-%dir %{_datadir}/dracut/modules.d
-%{_datadir}/dracut/dracut-functions
-%{_datadir}/dracut/dracut-logger
+%dir %{dracutlibdir}
+%dir %{dracutlibdir}/modules.d
+%{dracutlibdir}/dracut-functions.sh
+%{dracutlibdir}/dracut-functions
+%{dracutlibdir}/dracut-logger.sh
+%{dracutlibdir}/dracut-initramfs-restore
 %config(noreplace) /etc/dracut.conf
-%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} > 6
+%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel}
 %config /etc/dracut.conf.d/01-dist.conf
 %endif
 %dir /etc/dracut.conf.d
 %{_mandir}/man8/dracut.8*
 %{_mandir}/man7/dracut.kernel.7*
+%{_mandir}/man7/dracut.cmdline.7*
 %{_mandir}/man5/dracut.conf.5*
-%{_datadir}/dracut/modules.d/00bootchart
-%{_datadir}/dracut/modules.d/00dash
-%{_datadir}/dracut/modules.d/05busybox
-%{_datadir}/dracut/modules.d/10i18n
-%{_datadir}/dracut/modules.d/10rpmversion
-%{_datadir}/dracut/modules.d/30convertfs
-%{_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
-%{_datadir}/dracut/modules.d/90dmsquash-live
-%{_datadir}/dracut/modules.d/90kernel-modules
-%{_datadir}/dracut/modules.d/90lvm
-%{_datadir}/dracut/modules.d/90mdraid
-%{_datadir}/dracut/modules.d/90multipath
-%{_datadir}/dracut/modules.d/91crypt-gpg
-%{_datadir}/dracut/modules.d/95debug
-%{_datadir}/dracut/modules.d/95resume
-%{_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/95terminfo
-%{_datadir}/dracut/modules.d/95udev-rules
-%{_datadir}/dracut/modules.d/96securityfs
-%{_datadir}/dracut/modules.d/97biosdevname
-%{_datadir}/dracut/modules.d/97masterkey
-%{_datadir}/dracut/modules.d/98ecryptfs
-%{_datadir}/dracut/modules.d/98integrity
-%{_datadir}/dracut/modules.d/98selinux
-%{_datadir}/dracut/modules.d/98syslog
-%{_datadir}/dracut/modules.d/99base
-%{_datadir}/dracut/modules.d/99fs-lib
-%{_datadir}/dracut/modules.d/99shutdown
+%{dracutlibdir}/modules.d/00bootchart
+%{dracutlibdir}/modules.d/00dash
+%{dracutlibdir}/modules.d/05busybox
+%{dracutlibdir}/modules.d/10i18n
+%{dracutlibdir}/modules.d/10rpmversion
+%{dracutlibdir}/modules.d/30convertfs
+%{dracutlibdir}/modules.d/45url-lib
+%{dracutlibdir}/modules.d/50plymouth
+%{dracutlibdir}/modules.d/80cms
+%{dracutlibdir}/modules.d/90btrfs
+%{dracutlibdir}/modules.d/90crypt
+%{dracutlibdir}/modules.d/90dm
+%{dracutlibdir}/modules.d/90dmraid
+%{dracutlibdir}/modules.d/90dmsquash-live
+%{dracutlibdir}/modules.d/90kernel-modules
+%{dracutlibdir}/modules.d/90lvm
+%{dracutlibdir}/modules.d/90mdraid
+%{dracutlibdir}/modules.d/90multipath
+%{dracutlibdir}/modules.d/91crypt-gpg
+%{dracutlibdir}/modules.d/95debug
+%{dracutlibdir}/modules.d/95resume
+%{dracutlibdir}/modules.d/95rootfs-block
+%{dracutlibdir}/modules.d/95dasd
+%{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95fstab-sys
+%{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95terminfo
+%{dracutlibdir}/modules.d/95udev-rules
+%if %{undefined _unitdir}
+%{dracutlibdir}/modules.d/96securityfs
+%{dracutlibdir}/modules.d/97masterkey
+%{dracutlibdir}/modules.d/98selinux
+%{dracutlibdir}/modules.d/98integrity
+%endif
+%{dracutlibdir}/modules.d/97biosdevname
+%{dracutlibdir}/modules.d/98ecryptfs
+%{dracutlibdir}/modules.d/98pollcdrom
+%{dracutlibdir}/modules.d/98syslog
+%{dracutlibdir}/modules.d/98usrmount
+%{dracutlibdir}/modules.d/99base
+%{dracutlibdir}/modules.d/99fs-lib
+%{dracutlibdir}/modules.d/99img-lib
+%{dracutlibdir}/modules.d/99shutdown
 %config(noreplace) /etc/logrotate.d/dracut_log
 %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
 %dir %{_sharedstatedir}/initramfs
+%if %{defined _unitdir}
+%{_unitdir}/*.service
+%{_unitdir}/*/*.service
+%endif
 
 %files network
 %defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/40network
-%{_datadir}/dracut/modules.d/95fcoe
-%{_datadir}/dracut/modules.d/95iscsi
-%{_datadir}/dracut/modules.d/90livenet
-%{_datadir}/dracut/modules.d/95nbd
-%{_datadir}/dracut/modules.d/95nfs
-%{_datadir}/dracut/modules.d/45ifcfg
-%{_datadir}/dracut/modules.d/95znet
-
-%if 0%{?fedora} || 0%{?rhel} > 6
+%{dracutlibdir}/modules.d/40network
+%{dracutlibdir}/modules.d/95fcoe
+%{dracutlibdir}/modules.d/95iscsi
+%{dracutlibdir}/modules.d/90livenet
+%{dracutlibdir}/modules.d/95nbd
+%{dracutlibdir}/modules.d/95nfs
+%{dracutlibdir}/modules.d/95ssh-client
+%{dracutlibdir}/modules.d/45ifcfg
+%{dracutlibdir}/modules.d/95znet
+
+%if 0%{?fedora} || 0%{?rhel}
 %files fips
 %defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/01fips
+%{dracutlibdir}/modules.d/01fips
 %config(noreplace) /etc/dracut.conf.d/40-fips.conf
 %endif
 
+%files fips-aesni
+%defattr(-,root,root,0755)
+%doc COPYING
+%{dracutlibdir}/modules.d/02fips-aesni
+
 %files caps
 %defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/02caps
+%{dracutlibdir}/modules.d/02caps
 
 %files tools
 %defattr(-,root,root,0755)
-%{_mandir}/man8/dracut-gencmdline.8*
 %{_mandir}/man8/dracut-catimages.8*
-/sbin/dracut-gencmdline
 /sbin/dracut-catimages
 %dir /boot/dracut
 %dir /var/lib/dracut
 %dir /var/lib/dracut/overlay
 
 %changelog
+* Wed Jun 06 2012 Harald Hoyer <harald at redhat.com> 018-55.git20120606
+- update to F17 version
+- support for /usr mounting in the initramfs
+- better hostonly support
+- faster image creation
+
 * Mon Mar 26 2012 Harald Hoyer <harald at redhat.com> 013-22
 - added convertfs dracut module
 - added mdraid --offroot support


More information about the scm-commits mailing list