[dracut] dracut-034-62.git20131205

Harald Hoyer harald at fedoraproject.org
Thu Dec 5 16:38:57 UTC 2013


commit 4734ecf5fb38aeaf2fceaefa64564eecb9cc900e
Author: Harald Hoyer <harald at redhat.com>
Date:   Thu Dec 5 17:38:32 2013 +0100

    dracut-034-62.git20131205
    
    - fixed PATH shortener
    - also install /etc/system-fips in the initramfs
    - nbd, do not fail in hostonly mode
    - add ohci-pci to the list of hardcoded modules
    - lvm: do not run pvscan for lvmetad
    - network fixes
    - skip crypt swaps with password files
    - fixed i18n

 0024-dracut.sh-fixed-PATH-shortener.patch          |   22 ++
 ...racut.modules.7.asc-removed-empty-section.patch |   21 ++
 ...-install-etc-system-fips-in-the-initramfs.patch |   20 +
 ...tions.sh-Avoid-loading-unnecessary-32-bit.patch |   43 +++
 0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch  |   36 ++
 ...not-exit-the-initqueue-if-systemd-asks-a-.patch |   27 ++
 0030-Run-xz-and-lzma-with-multiple-threads.patch   |   35 ++
 ...les-add-ohci-pci-to-the-list-of-forced-mo.patch |   30 ++
 ...-lvm-do-not-run-pvscan-for-lvmetad-update.patch |   36 ++
 0033-fips-fix-RHEV-vmlinuz-check.patch             |   39 ++
 ...ine.7.asc-document-server-ip-of-ip-parame.patch |   28 ++
 ...get_fs_type-if-block-device-exists-return.patch |   31 ++
 ...t-lib.sh-wait_for_if_up-wait-for-state-UP.patch |   23 ++
 0037-network-net-lib.sh-iface_has_link-fixup.patch |   73 ++++
 ...p.sh-before-doing-dhcp-check-if-the-link-.patch |   25 ++
 ...cut-lib.sh-wait_for_dev-relax-requirement.patch |   39 ++
 0040-resume-autoconf-resume.patch                  |   37 ++
 0041-resume-no-more-autoresume.patch               |   98 +++++
 ...t.sh-skip-crypt-swaps-with-password-files.patch |   22 ++
 ...tions.sh-do-not-force-require-modules.bui.patch |   41 +++
 ...e-i18n.sh-fixed-vconsole.conf-locale.conf.patch |   56 +++
 0045-95dasd-Install-kernel-modules-only-once.patch |   34 ++
 ...-install-module-if-normalize_dasd_arg-is-.patch |   25 ++
 0047-95dasd_mod-make-dasd_cio_free-optional.patch  |   38 ++
 0048-95zfcp-Make-installation-optional.patch       |   35 ++
 0049-95znet-Make-installation-optional.patch       |   25 ++
 0050-Add-DASD-configuration-for-SuSE.patch         |  152 ++++++++
 0051-Add-zfcp-scripts-for-SUSE.patch               |  118 ++++++
 0052-Make-logfile-configurable.patch               |   67 ++++
 ...se-Add-SUSE-compability-wrapper-for-dracu.patch |  375 ++++++++++++++++++++
 ...se.8.asc-Add-manpage-for-SUSE-compat-mkin.patch |  136 +++++++
 0055-Fixup-keymap-setting-for-openSUSE.patch       |   26 ++
 0056-Fixup-script-permissions.patch                |   46 +++
 ...emove-shebang-from-shell-completion-files.patch |   34 ++
 ...l-thin-tools-only-when-needed-in-hostonly.patch |   27 ++
 ...uce-i18n_install_all-to-install-everythin.patch |  127 +++++++
 0060-dracut.spec-add-new-modules.patch             |   24 ++
 0061-dracut.spec-remove-suse-man-pages.patch       |   35 ++
 dracut.spec                                        |   61 +++-
 39 files changed, 2163 insertions(+), 4 deletions(-)
---
diff --git a/0024-dracut.sh-fixed-PATH-shortener.patch b/0024-dracut.sh-fixed-PATH-shortener.patch
new file mode 100644
index 0000000..b295af4
--- /dev/null
+++ b/0024-dracut.sh-fixed-PATH-shortener.patch
@@ -0,0 +1,22 @@
+From cf3fd99e72745b894a5c787277f90305f2ea1215 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Sat, 2 Nov 2013 13:14:40 +0100
+Subject: [PATCH] dracut.sh: fixed PATH shortener
+
+---
+ dracut.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index ae792c4..03472ba 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -533,7 +533,7 @@ for i in /usr/sbin /sbin /usr/bin /bin; do
+     if [ -L "$i" ]; then
+         rl=$(readlink -f $i)
+     fi
+-    if [[ "$NPATH" != "*:$rl*" ]] ; then
++    if [[ "$NPATH" != *:$rl* ]] ; then
+         NPATH+=":$rl"
+     fi
+ done
diff --git a/0025-dracut.modules.7.asc-removed-empty-section.patch b/0025-dracut.modules.7.asc-removed-empty-section.patch
new file mode 100644
index 0000000..8494e3a
--- /dev/null
+++ b/0025-dracut.modules.7.asc-removed-empty-section.patch
@@ -0,0 +1,21 @@
+From 095fa1559178522029ad854017a0c83d4979e876 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Sat, 2 Nov 2013 13:20:32 +0100
+Subject: [PATCH] dracut.modules.7.asc: removed empty section
+
+---
+ dracut.modules.7.asc | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc
+index 4cb2aa1..17acdb4 100644
+--- a/dracut.modules.7.asc
++++ b/dracut.modules.7.asc
+@@ -10,7 +10,6 @@ dracut.modules - dracut modules
+ 
+ DESCRIPTION
+ -----------
+-== 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_.
diff --git a/0026-fips-also-install-etc-system-fips-in-the-initramfs.patch b/0026-fips-also-install-etc-system-fips-in-the-initramfs.patch
new file mode 100644
index 0000000..4f334c0
--- /dev/null
+++ b/0026-fips-also-install-etc-system-fips-in-the-initramfs.patch
@@ -0,0 +1,20 @@
+From 185e940e27eb8c1658556d17b30ac60a16894502 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 4 Nov 2013 17:29:15 +0100
+Subject: [PATCH] fips: also install /etc/system-fips in the initramfs
+
+---
+ modules.d/01fips/module-setup.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh
+index fb5a5cd..a4081dc 100755
+--- a/modules.d/01fips/module-setup.sh
++++ b/modules.d/01fips/module-setup.sh
+@@ -45,5 +45,6 @@ install() {
+         libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10
+ 
+     inst_multiple -o prelink
++    inst_simple /etc/system-fips
+ }
+ 
diff --git a/0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch b/0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch
new file mode 100644
index 0000000..f03ac35
--- /dev/null
+++ b/0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch
@@ -0,0 +1,43 @@
+From 1d50dfe6025126c38b1d23815360bd48e9e8c24c Mon Sep 17 00:00:00 2001
+From: Colin Guthrie <colin at mageia.org>
+Date: Sat, 2 Nov 2013 11:26:30 +0000
+Subject: [PATCH] dracut-functions.sh: Avoid loading unnecessary 32-bit
+ libraries for 64-bit initrds
+
+Due to the 'inst_libdir_file "libnss_files*"' in the udev-rules module
+this caues the /usr/lib/libnss_files-2.18.so* to be included. This is a
+32-bit library and pulls in a 32-bit version of glibc also even on a
+64-bit system.
+
+This is due to the fact that ldconfig -pN will print [/usr]/lib paths
+from the cache as well as [/usr]/lib64. As we handle these paths
+specifically we should ignore these results from the cache.
+
+Also there was a missing space when appending the ldconfig paths
+onto our list meaning the last builtin and first ldconfig path
+were unusable.
+---
+ dracut-functions.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 38095ba..2872516 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -65,6 +65,7 @@ ldconfig_paths()
+             printf "%s\n" ${d%/*};
+         done
+     ); do
++        [[ "$i" = "/lib" || "$i" = "/usr/lib" || "$i" = "/lib64" || "$i" = "/usr/lib64" ]] && continue
+         a["$i"]=1;
+     done;
+     printf "%s\n" ${!a[@]}
+@@ -81,7 +82,7 @@ if ! [[ $libdirs ]] ; then
+         [[ -d /usr/lib ]] && libdirs+=" /usr/lib"
+     fi
+ 
+-    libdirs+="$(ldconfig_paths)"
++    libdirs+=" $(ldconfig_paths)"
+ 
+     export libdirs
+ fi
diff --git a/0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch b/0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch
new file mode 100644
index 0000000..84f1a44
--- /dev/null
+++ b/0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch
@@ -0,0 +1,36 @@
+From c2ab99093817d4694c0360b77845b8f2a8a10caf Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 11 Nov 2013 16:57:09 +0100
+Subject: [PATCH] iscsi,nbd: do not fail in hostonly mode
+
+---
+ modules.d/95iscsi/module-setup.sh | 2 +-
+ modules.d/95nbd/module-setup.sh   | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
+index c8051bd..8379f4b 100755
+--- a/modules.d/95iscsi/module-setup.sh
++++ b/modules.d/95iscsi/module-setup.sh
+@@ -24,7 +24,7 @@ check() {
+ 
+     [[ $hostonly ]] || [[ $mount_needs ]] && {
+         pushd . >/dev/null
+-        for_each_host_dev_and_slaves is_iscsi || return 1
++        for_each_host_dev_and_slaves is_iscsi || return 255
+         popd >/dev/null
+     }
+     return 0
+diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh
+index ac30823..37ace21 100755
+--- a/modules.d/95nbd/module-setup.sh
++++ b/modules.d/95nbd/module-setup.sh
+@@ -15,7 +15,7 @@ check() {
+ 
+         _rootdev=$(find_root_block_device)
+         [[ -b /dev/block/$_rootdev ]] || return 1
+-        check_block_and_slaves is_nbd "$_rootdev" || return 1
++        check_block_and_slaves is_nbd "$_rootdev" || return 255
+     }
+ 
+     return 0
diff --git a/0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch b/0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch
new file mode 100644
index 0000000..ecd10ac
--- /dev/null
+++ b/0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch
@@ -0,0 +1,27 @@
+From 7e4f74f5040fc3f4e7646695b54c5c11b0b95c62 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 11 Nov 2013 16:57:32 +0100
+Subject: [PATCH] systemd: do not exit the initqueue, if systemd asks a
+ password
+
+this prevents bailing out the initqueue, while passwords are still to be
+asked
+---
+ modules.d/98systemd/dracut-initqueue.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
+index d7ebf2b..64e8154 100755
+--- a/modules.d/98systemd/dracut-initqueue.sh
++++ b/modules.d/98systemd/dracut-initqueue.sh
+@@ -52,6 +52,10 @@ while :; do
+     # no more udev jobs and queues empty.
+     sleep 0.5
+ 
++    for i in /run/systemd/ask-password/ask.*; do
++        [ -e "$i" ] && continue
++    done
++
+     if [ $main_loop -gt $((2*$RDRETRY/3)) ]; then
+         for job in $hookdir/initqueue/timeout/*.sh; do
+             [ -e "$job" ] || break
diff --git a/0030-Run-xz-and-lzma-with-multiple-threads.patch b/0030-Run-xz-and-lzma-with-multiple-threads.patch
new file mode 100644
index 0000000..2cb641f
--- /dev/null
+++ b/0030-Run-xz-and-lzma-with-multiple-threads.patch
@@ -0,0 +1,35 @@
+From a3bfaa191958c4b70d6c674f972c3b911f8b1bfa Mon Sep 17 00:00:00 2001
+From: Vratislav Podzimek <vpodzime at redhat.com>
+Date: Wed, 13 Nov 2013 13:20:39 +0100
+Subject: [PATCH] Run 'xz' and 'lzma' with multiple threads
+
+This speeds up compression a lot on multicore systems.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1029786
+
+[Edited-by: Harald Hoyer: use getconf for cpu_count]
+---
+ dracut.sh | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index 03472ba..bce2662 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -693,12 +693,14 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
+ # eliminate IFS hackery when messing with fw_dir
+ fw_dir=${fw_dir//:/ }
+ 
++cpu_count=$(getconf _NPROCESSORS_ONLN)
++
+ # handle compression options.
+ [[ $compress ]] || compress="gzip"
+ case $compress in
+     bzip2) compress="bzip2 -9";;
+-    lzma)  compress="lzma -9";;
+-    xz)    compress="xz --check=crc32 --lzma2=dict=1MiB";;
++    lzma)  compress="lzma -9 ${cpu_count:+-T$cpu_count}";;
++    xz)    compress="xz --check=crc32 --lzma2=dict=1MiB ${cpu_count:+-T$cpu_count}";;
+     gzip)  compress="gzip -9"; command -v pigz > /dev/null 2>&1 && compress="pigz -9";;
+     lzo)   compress="lzop -9";;
+     lz4)   compress="lz4 -9";;
diff --git a/0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch b/0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch
new file mode 100644
index 0000000..1351e71
--- /dev/null
+++ b/0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch
@@ -0,0 +1,30 @@
+From 28609baf6e9581ea97c4550340e2a6031c1b6fbd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 14 Nov 2013 10:07:04 +0100
+Subject: [PATCH] kernel-modules: add ohci-pci to the list of forced module
+ installs
+
+---
+ modules.d/90kernel-modules/module-setup.sh | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index 2100336..d65e92b 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -36,9 +36,12 @@ installkernel() {
+             return 0
+         }
+ 
+-        hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix \
+-            ehci-hcd ehci-pci ehci-platform ohci-hcd uhci-hcd xhci-hcd hid_generic \
+-            unix
++        hostonly='' instmods \
++            sr_mod sd_mod scsi_dh ata_piix hid_generic unix \
++            ehci-hcd ehci-pci ehci-platform \
++            ohci-hcd ohci-pci \
++            uhci-hcd \
++            xhci-hcd
+ 
+         instmods yenta_socket scsi_dh_rdac scsi_dh_emc \
+             atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \
diff --git a/0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch b/0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch
new file mode 100644
index 0000000..c424b93
--- /dev/null
+++ b/0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch
@@ -0,0 +1,36 @@
+From 297b8edc050715d563d54cfa34e42bf5909b9a7b Mon Sep 17 00:00:00 2001
+From: Peter Rajnoha <prajnoha at redhat.com>
+Date: Mon, 25 Nov 2013 14:38:00 +0100
+Subject: [PATCH] lvm: do not run pvscan for lvmetad update
+
+The lvmetad daemon is not yet running in initramfs so there's no
+need to run pvscan (or instantiate any lvm2-pvscan systemd service).
+If pvscan was called in this case (either directly or via systemd
+instantiated service), it would fail because there's no lvmetad
+daemon to update. This could cause confusion, especially in systemd
+instantiated service which is run only once!
+---
+ modules.d/90lvm/module-setup.sh | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
+index 87374da..a220a55 100755
+--- a/modules.d/90lvm/module-setup.sh
++++ b/modules.d/90lvm/module-setup.sh
+@@ -76,6 +76,16 @@ install() {
+     fi
+ 
+     inst_rules 11-dm-lvm.rules 69-dm-lvm-metad.rules
++
++    # Do not run lvmetad update via pvscan in udev rule  - lvmetad is not running yet in dracut!
++    if grep -q SYSTEMD_WANTS ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules; then
++        sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
++        sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
++        sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
++    else
++        sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules
++    fi
++
+     # Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules
+     # files, but provides the one below:
+     inst_rules 64-device-mapper.rules
diff --git a/0033-fips-fix-RHEV-vmlinuz-check.patch b/0033-fips-fix-RHEV-vmlinuz-check.patch
new file mode 100644
index 0000000..6388de3
--- /dev/null
+++ b/0033-fips-fix-RHEV-vmlinuz-check.patch
@@ -0,0 +1,39 @@
+From 928da5744721842d3e02151323c3a1357baf0032 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 8 Nov 2013 15:06:18 +0100
+Subject: [PATCH] fips: fix RHEV vmlinuz check
+
+---
+ modules.d/01fips/fips.sh | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
+index 98dd1c2..7fa48f1 100755
+--- a/modules.d/01fips/fips.sh
++++ b/modules.d/01fips/fips.sh
+@@ -60,8 +60,8 @@ do_rhevh_check()
+     KERNEL=$(uname -r)
+     kpath=${1}
+ 
+-    # If we're on RHEV-H, the kernel is in /dev/.initramfs/live/vmlinuz0
+-    HMAC_SUM_ORIG=$(cat /boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
++    # If we're on RHEV-H, the kernel is in /run/initramfs/live/vmlinuz0
++    HMAC_SUM_ORIG=$(cat $NEWROOT/boot/.vmlinuz-${KERNEL}.hmac | while read a b; do printf "%s\n" $a; done)
+     HMAC_SUM_CALC=$(sha512hmac $kpath | while read a b; do printf "%s\n" $a; done || return 1)
+     if [ -z "$HMAC_SUM_ORIG" ] || [ -z "$HMAC_SUM_CALC" ] || [ "${HMAC_SUM_ORIG}" != "${HMAC_SUM_CALC}" ]; then
+         warn "HMAC sum mismatch"
+@@ -111,10 +111,10 @@ do_fips()
+     rmmod tcrypt
+ 
+     info "Checking integrity of kernel"
+-    if [ -e "$NEWROOT/dev/.initramfs/live/vmlinuz0" ]; then
+-        do_rhevh_check "$NEWROOT/dev/.initramfs/live/vmlinuz0" || return 1
+-    elif [ -e "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" ]; then
+-        do_rhevh_check "$NEWROOT/dev/.initramfs/live/isolinux/vmlinuz0" || return 1
++    if [ -e "/run/initramfs/live/vmlinuz0" ]; then
++        do_rhevh_check /run/initramfs/live/vmlinuz0 || return 1
++    elif [ -e "/run/initramfs/live/isolinux/vmlinuz0" ]; then
++        do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
+     else
+         sha512hmac -c "/boot/.vmlinuz-${KERNEL}.hmac" || return 1
+     fi
diff --git a/0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch b/0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch
new file mode 100644
index 0000000..ae82d5a
--- /dev/null
+++ b/0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch
@@ -0,0 +1,28 @@
+From e38e73d5a683ce93146c147305278b9175def3a0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:30:52 +0100
+Subject: [PATCH] dracut.cmdline.7.asc: document "server-ip" of "ip=" parameter
+
+---
+ dracut.cmdline.7.asc | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
+index 19bfb93..6a5fc8f 100644
+--- a/dracut.cmdline.7.asc
++++ b/dracut.cmdline.7.asc
+@@ -444,10 +444,12 @@ cannot be used in conjunction with the **ifname** argument for the
+ same <interface>.
+ =====================
+ 
+-**ip=**__<client-IP>__:__<server-IP>__:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__:[:[__<mtu>__][:__<macaddr>__]]::
++**ip=**__<client-IP>__:[__<peer>__]:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__:[:[__<mtu>__][:__<macaddr>__]]::
+     explicit network configuration. If you want do define a IPv6 address, put it
+     in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple
+-    times.
++    times. __<peer>__ is optional and is the address of the remote endpoint
++    for pointopoint interfaces and it may be followed by a slash and a decimal number,
++    encoding the network prefix length.
+ +
+ =====================
+ <macaddr>::: optionally **set** <macaddr> on the <interface>. This
diff --git a/0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch b/0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch
new file mode 100644
index 0000000..02f6431
--- /dev/null
+++ b/0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch
@@ -0,0 +1,31 @@
+From e41f3f902512a91a286e14d6ffa52206c70ea5f6 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:32:00 +0100
+Subject: [PATCH] dracut.sh:_get_fs_type() if block device exists return early
+
+even, if no ID_FS_TYPE was found, return if the block device exists
+---
+ dracut.sh | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/dracut.sh b/dracut.sh
+index bce2662..177b813 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -987,12 +987,12 @@ unset rest
+ 
+ _get_fs_type() {
+     [[ $1 ]] || return
+-    if [[ -b /dev/block/$1 ]] && ID_FS_TYPE=$(get_fs_env "/dev/block/$1"); then
+-        host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
++    if [[ -b /dev/block/$1 ]]; then
++        ID_FS_TYPE=$(get_fs_env "/dev/block/$1") && host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
+         return 1
+     fi
+-    if [[ -b $1 ]] && ID_FS_TYPE=$(get_fs_env "$1"); then
+-        host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
++    if [[ -b $1 ]]; then
++        ID_FS_TYPE=$(get_fs_env "$1") && host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
+         return 1
+     fi
+     if fstype=$(find_dev_fstype "$1"); then
diff --git a/0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch b/0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch
new file mode 100644
index 0000000..2a7df52
--- /dev/null
+++ b/0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch
@@ -0,0 +1,23 @@
+From 56ee31ccfec50f40bade2127eb1fae041a81f16a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:34:18 +0100
+Subject: [PATCH] network/net-lib.sh:wait_for_if_up() wait for "state UP"
+
+really wait for "state UP", otherwise it returns earlier than we want
+---
+ modules.d/40network/net-lib.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index 88e72ec..0aa312a 100644
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -443,7 +443,7 @@ wait_for_if_up() {
+     local li
+     while [ $cnt -lt 200 ]; do
+         li=$(ip -o link show up dev $1)
+-        [ -n "$li" ] && return 0
++        [ -n "$li" ] && [ -z "${li##*state UP*}" ] && return 0
+         sleep 0.1
+         cnt=$(($cnt+1))
+     done
diff --git a/0037-network-net-lib.sh-iface_has_link-fixup.patch b/0037-network-net-lib.sh-iface_has_link-fixup.patch
new file mode 100644
index 0000000..eb69916
--- /dev/null
+++ b/0037-network-net-lib.sh-iface_has_link-fixup.patch
@@ -0,0 +1,73 @@
+From 7c8da72c11b74a1759e0ebbabe003d69a4459114 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:36:42 +0100
+Subject: [PATCH] network/net-lib.sh:iface_has_link() fixup
+
+Just echo'ing the flags IFF_UP|IFF_RUNNING does _not_ reflect the
+carrier state immediately. So wait for it to really show up.
+---
+ modules.d/40network/net-lib.sh | 47 +++++++++++++++++++++---------------------
+ 1 file changed, 23 insertions(+), 24 deletions(-)
+
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+index 0aa312a..7544401 100644
+--- a/modules.d/40network/net-lib.sh
++++ b/modules.d/40network/net-lib.sh
+@@ -28,30 +28,6 @@ iface_for_mac() {
+     done
+ }
+ 
+-iface_has_link() {
+-    local interface="$1" flags=""
+-    [ -n "$interface" ] || return 2
+-    interface="/sys/class/net/$interface"
+-    [ -d "$interface" ] || return 2
+-    flags=$(cat $interface/flags)
+-    echo $(($flags|0x41)) > $interface/flags # 0x41: IFF_UP|IFF_RUNNING
+-    [ "$(cat $interface/carrier)" = 1 ] || return 1
+-    # XXX Do we need to reset the flags here? anaconda never bothered..
+-}
+-
+-find_iface_with_link() {
+-    local iface_path="" iface=""
+-    for iface_path in /sys/class/net/*; do
+-        iface=${iface_path##*/}
+-        str_starts "$iface" "lo" && continue
+-        if iface_has_link $iface; then
+-            echo "$iface"
+-            return 0
+-        fi
+-    done
+-    return 1
+-}
+-
+ # get the iface name for the given identifier - either a MAC, IP, or iface name
+ iface_name() {
+     case $1 in
+@@ -483,3 +459,26 @@ type hostname >/dev/null 2>&1 || \
+ hostname() {
+ 	cat /proc/sys/kernel/hostname
+ }
++
++iface_has_link() {
++    local interface="$1" flags=""
++    [ -n "$interface" ] || return 2
++    interface="/sys/class/net/$interface"
++    [ -d "$interface" ] || return 2
++    linkup "$1"
++    [ "$(cat $interface/carrier)" = 1 ] || return 1
++    # XXX Do we need to reset the flags here? anaconda never bothered..
++}
++
++find_iface_with_link() {
++    local iface_path="" iface=""
++    for iface_path in /sys/class/net/*; do
++        iface=${iface_path##*/}
++        str_starts "$iface" "lo" && continue
++        if iface_has_link $iface; then
++            echo "$iface"
++            return 0
++        fi
++    done
++    return 1
++}
diff --git a/0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch b/0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch
new file mode 100644
index 0000000..c181e4f
--- /dev/null
+++ b/0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch
@@ -0,0 +1,25 @@
+From 271cd19dbe895c24b1f70fa5c6bbecace3b97f4d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:38:21 +0100
+Subject: [PATCH] network/ifup.sh: before doing dhcp, check, if the link has a
+ carrier
+
+---
+ modules.d/40network/ifup.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
+index 9f6f449..2edcfe6 100755
+--- a/modules.d/40network/ifup.sh
++++ b/modules.d/40network/ifup.sh
+@@ -87,6 +87,10 @@ do_dhcp() {
+     # dhclient-script will mark the netif up and generate the online
+     # event for nfsroot
+     # XXX add -V vendor class and option parsing per kernel
++    if ! iface_has_link $netif; then
++        echo "No carrier detected"
++        return 1
++    fi
+     echo "Starting dhcp for interface $netif"
+     dhclient "$@" -1 -q -cf /etc/dhclient.conf -pf /tmp/dhclient.$netif.pid -lf /tmp/dhclient.$netif.lease $netif \
+         || echo "dhcp failed"
diff --git a/0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch b/0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch
new file mode 100644
index 0000000..a9cc2a6
--- /dev/null
+++ b/0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch
@@ -0,0 +1,39 @@
+From b92896ece49d27741f41e915c4673bde2a9bcb1f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:39:36 +0100
+Subject: [PATCH] base/dracut-lib.sh:wait_for_dev() relax requirement
+
+Do not "require" the devices, but "want" them. This might boot more
+systems, where:
+- the UUID changed
+- swap devices do not show up
+---
+ modules.d/99base/dracut-lib.sh | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 0670cf2..970bcfb 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -863,9 +863,9 @@ wait_for_dev()
+ 
+     if [ -n "$DRACUT_SYSTEMD" ]; then
+         _name=$(dev_unit_name "$1")
+-        if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device ]; then
+-            [ -d ${PREFIX}/etc/systemd/system/initrd.target.requires ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.requires
+-            ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
++        if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device ]; then
++            [ -d ${PREFIX}/etc/systemd/system/initrd.target.wants ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.wants
++            ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
+         fi
+ 
+         mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
+@@ -885,7 +885,7 @@ cancel_wait_for_dev()
+     rm -f -- "$hookdir/emergency/80-${_name}.sh"
+     if [ -n "$DRACUT_SYSTEMD" ]; then
+         _name=$(dev_unit_name "$1")
+-        rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
++        rm -f -- ${PREFIX}/etc/systemd/system/initrd.target.wants/${_name}.device
+         rm -f -- ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
+         /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
+     fi
diff --git a/0040-resume-autoconf-resume.patch b/0040-resume-autoconf-resume.patch
new file mode 100644
index 0000000..47ab584
--- /dev/null
+++ b/0040-resume-autoconf-resume.patch
@@ -0,0 +1,37 @@
+From 40da1e5a319a02f30c585e0e963e75e4257d2bf7 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 10:45:17 +0100
+Subject: [PATCH] resume: autoconf resume
+
+---
+ modules.d/95resume/module-setup.sh | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
+index a172c27..ceb7855 100755
+--- a/modules.d/95resume/module-setup.sh
++++ b/modules.d/95resume/module-setup.sh
+@@ -16,8 +16,23 @@ check() {
+ }
+ 
+ # called by dracut
++cmdline() {
++    local _activated
++    declare -A _activated
++
++    for dev in "${!host_fs_types[@]}"; do
++        [[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue
++        printf "resume=%s " "$(shorten_persistent_dev "$(get_persistent_dev "$dev")")"
++    done
++}
++
++# called by dracut
+ install() {
+     local _bin
++
++    cmdline  >> "${initdir}/etc/cmdline.d/95resume.conf"
++    echo  >> "${initdir}/etc/cmdline.d/95resume.conf"
++
+     # Optional uswsusp support
+     for _bin in /usr/sbin/resume /usr/lib/suspend/resume /usr/lib/uswsusp/resume
+     do
diff --git a/0041-resume-no-more-autoresume.patch b/0041-resume-no-more-autoresume.patch
new file mode 100644
index 0000000..998df26
--- /dev/null
+++ b/0041-resume-no-more-autoresume.patch
@@ -0,0 +1,98 @@
+From 8064f68d602b45778afc3f32a703b8376609d019 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 11:02:34 +0100
+Subject: [PATCH] resume: no more autoresume
+
+---
+ modules.d/95resume/parse-resume.sh | 76 +++++++++++++++++++++-----------------
+ 1 file changed, 43 insertions(+), 33 deletions(-)
+
+diff --git a/modules.d/95resume/parse-resume.sh b/modules.d/95resume/parse-resume.sh
+index bd4bcd3..c84dafb 100755
+--- a/modules.d/95resume/parse-resume.sh
++++ b/modules.d/95resume/parse-resume.sh
+@@ -36,41 +36,51 @@ case "$splash" in
+     ;;
+ esac
+ 
+-if [ -n "$resume" ]; then
+-    {
+-        printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+-            ${resume#/dev/};
+-        printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
+-            ${resume#/dev/};
+-    } >> /etc/udev/rules.d/99-resume-link.rules
+ 
+-    {
+-        if [ -x /usr/sbin/resume ]; then
+-            printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+-                ${resume#/dev/} "$a_splash" "$resume";
+-            printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
+-                ${resume#/dev/} "$a_splash" "$resume";
+-        fi
+-        printf "KERNEL==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n" \
+-            ${resume#/dev/};
+-        printf "SYMLINK==\"%s\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m  > /sys/power/resume\"\n" \
+-            ${resume#/dev/};
+-    } >> /etc/udev/rules.d/99-resume.rules
++if ! getarg noresume; then
++    if [ -n "$resume" ]; then
++        {
++            printf "KERNEL==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
++                ${resume#/dev/};
++            printf "SYMLINK==\"%s\", ACTION==\"add|change\", SYMLINK+=\"/dev/resume\"\n" \
++                ${resume#/dev/};
++        } >> /etc/udev/rules.d/99-resume-link.rules
+ 
+-    printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
+-        "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
++        {
++            if [ -x /usr/sbin/resume ]; then
++                printf -- "KERNEL==\"%s\", " "${resume#/dev/}"
++                printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++                printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
++                     "$a_splash" "$resume";
++                printf -- "SYMLINK==\"%s\", " "${resume#/dev/}"
++                printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++                printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \'%s\'\"\n" \
++                    "$a_splash" "$resume";
++            fi
++            printf -- "KERNEL==\"%s\", " ${resume#/dev/};
++            printf -- "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++            printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m > /sys/power/resume\"\n"
++            printf -- "SYMLINK==\"%s\", " ${resume#/dev/};
++            printf -- "%s" "ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++            printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %%M:%%m  > /sys/power/resume\"\n"
++        } >> /etc/udev/rules.d/99-resume.rules
+ 
+-    printf 'warn "Cancelling resume operation. Device not found."; cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
+-        "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
++        printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \
++            "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh
+ 
+-    wait_for_dev "/dev/resume"
+-    mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
+-elif ! getarg noresume; then
+-    {
+-        if [ -x /usr/sbin/resume ]; then
+-            printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\", RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
+-        fi
+-        echo "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\"," \
+-            " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
+-    } >> /etc/udev/rules.d/99-resume.rules
++        printf -- "%s" 'warn "Cancelling resume operation. Device not found.";'
++        printf -- ' cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";' \
++            "$hookdir" >> $hookdir/initqueue/timeout/resume.sh
++
++        mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh
++    else
++        {
++            if [ -x /usr/sbin/resume ]; then
++                printf "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++                printf -- " RUN+=\"/sbin/initqueue --finished --unique --name 00resume /usr/sbin/resume %s \$tempnode\"\n" "$a_splash"
++            fi
++            printf -- "%s" "SUBSYSTEM==\"block\", ACTION==\"add|change\", ENV{ID_FS_TYPE}==\"suspend|swsuspend|swsupend\","
++            printf -- "%s" " RUN+=\"/sbin/initqueue --finished --unique --name 00resume echo %M:%m > /sys/power/resume\"";
++        } >> /etc/udev/rules.d/99-resume.rules
++    fi
+ fi
diff --git a/0042-dracut.sh-skip-crypt-swaps-with-password-files.patch b/0042-dracut.sh-skip-crypt-swaps-with-password-files.patch
new file mode 100644
index 0000000..258578f
--- /dev/null
+++ b/0042-dracut.sh-skip-crypt-swaps-with-password-files.patch
@@ -0,0 +1,22 @@
+From 64ae4e07a4af4db2cdd1009ab484f89b4a6b9cb2 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Mon, 2 Dec 2013 11:05:21 +0100
+Subject: [PATCH] dracut.sh: skip crypt swaps with password files
+
+---
+ dracut.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/dracut.sh b/dracut.sh
+index 177b813..6975d90 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -947,6 +947,8 @@ if [[ $hostonly ]]; then
+                         [[ $_mapper = \#* ]] && continue
+                         [[ "$_d" -ef /dev/mapper/"$_mapper" ]] || continue
+                         [[ "$_o" ]] || _o="$_p"
++                        # skip entries with password files
++                        [[ "$_p" == /* ]] && [[ -f $_p ]] && continue 2
+                         # skip mkswap swap
+                         [[ $_o == *swap* ]] && continue 2
+                     done < /etc/crypttab
diff --git a/0043-dracut-functions.sh-do-not-force-require-modules.bui.patch b/0043-dracut-functions.sh-do-not-force-require-modules.bui.patch
new file mode 100644
index 0000000..9ed900e
--- /dev/null
+++ b/0043-dracut-functions.sh-do-not-force-require-modules.bui.patch
@@ -0,0 +1,41 @@
+From b29cb51654db13706c7356aa827e554456b25b0a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 15:06:06 +0100
+Subject: [PATCH] dracut-functions.sh: do not force require modules.builtin*
+
+---
+ dracut-functions.sh | 7 -------
+ dracut.sh           | 2 +-
+ 2 files changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 2872516..04f4fea 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -1456,13 +1456,6 @@ dracut_kernel_post() {
+         wait $_pid
+     fi
+ 
+-    for _f in modules.builtin.bin modules.builtin; do
+-        [[ $srcmods/$_f ]] && break
+-    done || {
+-        dfatal "No modules.builtin.bin and modules.builtin found!"
+-        return 1
+-    }
+-
+     for _f in modules.builtin.bin modules.builtin modules.order; do
+         [[ $srcmods/$_f ]] && inst_simple "$srcmods/$_f" "/lib/modules/$kernel/$_f"
+     done
+diff --git a/dracut.sh b/dracut.sh
+index 6975d90..5709874 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -501,7 +501,7 @@ if [[ $regenerate_all == "yes" ]]; then
+ 
+     cd /lib/modules
+     for i in *; do
+-        [[ -f $i/modules.builtin ]] || continue
++        [[ -f $i/modules.dep ]] || [[ -f $i/modules.dep.bin ]] || continue
+         dracut --kver="$i" "${dracut_args[@]}"
+         ((ret+=$?))
+     done
diff --git a/0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch b/0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch
new file mode 100644
index 0000000..c743ef4
--- /dev/null
+++ b/0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch
@@ -0,0 +1,56 @@
+From 443fb524877f28fd072f63c4dd98b74926d2513a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 15:06:39 +0100
+Subject: [PATCH] 10i18n/parse-i18n.sh: fixed vconsole.conf/locale.conf
+ generation
+
+---
+ modules.d/10i18n/parse-i18n.sh | 27 +++++++++++++--------------
+ 1 file changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
+index 416a746..135c57b 100755
+--- a/modules.d/10i18n/parse-i18n.sh
++++ b/modules.d/10i18n/parse-i18n.sh
+@@ -6,28 +6,27 @@ inst_key_val() {
+     local _value
+     local _file
+     local _default
+-    _default=$1
+-    shift
+-    _file=$1
+-    shift
+-    _value=$(getarg $@)
++    _file="$1"; shift
++    _key="$1"; shift
++    _default="$1"; shift
++    _value="$(getarg $@)"
+     [ -z "${_value}" ] && _value=$_default
+     if [ -n "${_value}" ]; then
+-        printf '%s="%s"\n' $2 ${_value} >> $_file
++        printf '%s="%s"\n' $key ${_value} >> $_file
+     fi
+     unset _file
+     unset _value
+ }
+ 
+-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap vconsole.keymap      KEYMAP      -d KEYTABLE
+-inst_key_val '' /etc/vconsole.conf rd.vconsole.font vconsole.font        FONT        -d SYSFONT
+-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.map vconsole.font.map    FONT_MAP    -d CONTRANS
+-inst_key_val '' /etc/vconsole.conf rd.vconsole.font.unimap vconsole.font.unimap FONT_UNIMAP -d UNIMAP
+-inst_key_val 1  /etc/vconsole.conf rd.vconsole.font.unicode vconsole.font.unicode UNICODE vconsole.unicode
+-inst_key_val '' /etc/vconsole.conf rd.vconsole.keymap.ext vconsole.keymap.ext  EXT_KEYMAP
++inst_key_val /etc/vconsole.conf KEYMAP      '' rd.vconsole.keymap       KEYMAP      -d KEYTABLE
++inst_key_val /etc/vconsole.conf FONT        '' rd.vconsole.font         FONT        -d SYSFONT
++inst_key_val /etc/vconsole.conf FONT_MAP    '' rd.vconsole.font.map     FONT_MAP    -d CONTRANS
++inst_key_val /etc/vconsole.conf FONT_UNIMAP '' rd.vconsole.font.unimap  FONT_UNIMAP -d UNIMAP
++inst_key_val /etc/vconsole.conf UNICODE      1 rd.vconsole.font.unicode UNICODE vconsole.unicode
++inst_key_val /etc/vconsole.conf EXT_KEYMAP  '' rd.vconsole.keymap.ext   EXT_KEYMAP
+ 
+-inst_key_val '' /etc/locale.conf   rd.locale.LANG locale.LANG   LANG
+-inst_key_val '' /etc/locale.conf   rd.locale.LC_ALL locale.LC_ALL LC_ALL
++inst_key_val /etc/locale.conf   LANG        '' rd.locale.LANG           LANG
++inst_key_val /etc/locale.conf   LC_ALL      '' rd.locale.LC_ALL         LC_ALL
+ 
+ if [ -f /etc/locale.conf ]; then
+     . /etc/locale.conf
diff --git a/0045-95dasd-Install-kernel-modules-only-once.patch b/0045-95dasd-Install-kernel-modules-only-once.patch
new file mode 100644
index 0000000..a76af4c
--- /dev/null
+++ b/0045-95dasd-Install-kernel-modules-only-once.patch
@@ -0,0 +1,34 @@
+From 690905cea07bdf1783c86522927efb5fd9b5a299 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:42 +0100
+Subject: [PATCH] 95dasd: Install kernel modules only once
+
+Move kernel module selection to 95dasd_mod and make 95dasd depend
+on that module.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95dasd/module-setup.sh | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
+index 861df29..16207bc 100755
+--- a/modules.d/95dasd/module-setup.sh
++++ b/modules.d/95dasd/module-setup.sh
+@@ -11,15 +11,11 @@ check() {
+ 
+ # called by dracut
+ depends() {
++    echo "dasd_mod"
+     return 0
+ }
+ 
+ # called by dracut
+-installkernel() {
+-    instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
+-}
+-
+-# called by dracut
+ install() {
+     inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+     inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg
diff --git a/0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch b/0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
new file mode 100644
index 0000000..dc80a3f
--- /dev/null
+++ b/0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
@@ -0,0 +1,25 @@
+From 07cacb245547066c7b6a335509a0ed77ad227372 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:43 +0100
+Subject: [PATCH] 95dasd: Only install module if normalize_dasd_arg is present
+
+normalize_dasd_arg is a RedHat specific script, so no point
+installing this module if the script isn't present.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95dasd/module-setup.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
+index 16207bc..9c93d40 100755
+--- a/modules.d/95dasd/module-setup.sh
++++ b/modules.d/95dasd/module-setup.sh
+@@ -5,6 +5,7 @@
+ # called by dracut
+ check() {
+     local _arch=$(uname -m)
++    [ -x /sbin/normalize_dasd_arg ] || return 1
+     [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+     return 0
+ }
diff --git a/0047-95dasd_mod-make-dasd_cio_free-optional.patch b/0047-95dasd_mod-make-dasd_cio_free-optional.patch
new file mode 100644
index 0000000..76c90a5
--- /dev/null
+++ b/0047-95dasd_mod-make-dasd_cio_free-optional.patch
@@ -0,0 +1,38 @@
+From 8b2b77e460663b3fe45e0eea2f4a5babe4b731bc Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:44 +0100
+Subject: [PATCH] 95dasd_mod: make dasd_cio_free optional
+
+dasd_cio_free is a RedHat-specific tool, so make it optional.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95dasd_mod/module-setup.sh   | 3 ++-
+ modules.d/95dasd_mod/parse-dasd-mod.sh | 4 +++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
+index 011010d..8fde525 100755
+--- a/modules.d/95dasd_mod/module-setup.sh
++++ b/modules.d/95dasd_mod/module-setup.sh
+@@ -23,6 +23,7 @@ installkernel() {
+ # called by dracut
+ install() {
+     inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh"
+-    inst_multiple dasd_cio_free grep sed seq
++    inst_multiple grep sed seq
++    inst_multiple -o dasd_cio_free
+ }
+ 
+diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
+index 87c88ed..0236d12 100755
+--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
++++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
+@@ -15,4 +15,6 @@ if [ -n "$mod_args" ]; then
+ fi
+ 
+ unset dasd_arg
+-dasd_cio_free
++if [ -x /sbin/dasd_cio_free ] ; then
++    dasd_cio_free
++fi
diff --git a/0048-95zfcp-Make-installation-optional.patch b/0048-95zfcp-Make-installation-optional.patch
new file mode 100644
index 0000000..0db3410
--- /dev/null
+++ b/0048-95zfcp-Make-installation-optional.patch
@@ -0,0 +1,35 @@
+From 61c0665dad633fdd2358a1a2ce5d25d282673c1a Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:45 +0100
+Subject: [PATCH] 95zfcp: Make installation optional
+
+zfcp_cio_free is a RedHat-specific tool, so do not install this
+module if the program isn't present.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95zfcp/module-setup.sh | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh
+index 5d9b506..dfbeed5 100755
+--- a/modules.d/95zfcp/module-setup.sh
++++ b/modules.d/95zfcp/module-setup.sh
+@@ -5,6 +5,7 @@
+ # called by dracut
+ check() {
+     arch=$(uname -m)
++    [ -x /sbin/zfcp_cio_free ] || return 1
+     [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
+ 
+     return 0
+@@ -12,9 +13,6 @@ check() {
+ 
+ # called by dracut
+ depends() {
+-    arch=$(uname -m)
+-    [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
+-
+     return 0
+ }
+ 
diff --git a/0049-95znet-Make-installation-optional.patch b/0049-95znet-Make-installation-optional.patch
new file mode 100644
index 0000000..52e74f1
--- /dev/null
+++ b/0049-95znet-Make-installation-optional.patch
@@ -0,0 +1,25 @@
+From dda7ae7dcdde7f9a00bbaebc7df7fbd7ed2f8ff0 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:46 +0100
+Subject: [PATCH] 95znet: Make installation optional
+
+znet_cio_free is a RedHat-specific tool, so do not install this
+module on systems where the program is missing.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95znet/module-setup.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh
+index 4c211a9..5012b77 100755
+--- a/modules.d/95znet/module-setup.sh
++++ b/modules.d/95znet/module-setup.sh
+@@ -5,6 +5,7 @@
+ # called by dracut
+ check() {
+     arch=$(uname -m)
++    [ -z /sbin/znet_cio_free ] || return 1
+     [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
+ 
+     return 0
diff --git a/0050-Add-DASD-configuration-for-SuSE.patch b/0050-Add-DASD-configuration-for-SuSE.patch
new file mode 100644
index 0000000..dbd7f99
--- /dev/null
+++ b/0050-Add-DASD-configuration-for-SuSE.patch
@@ -0,0 +1,152 @@
+From bfa1db78cdcf6aaea09da560b578426fe663a05e Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:47 +0100
+Subject: [PATCH] Add DASD configuration for SuSE
+
+On SuSE the DASD configuration is kept in udev rules, one rule
+file per device. So add a new module for copying and creating
+these rules during boot.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ dracut-functions.sh                    | 28 +++++++++++++++++
+ modules.d/95dasd_rules/module-setup.sh | 27 ++++++++++++++++
+ modules.d/95dasd_rules/parse-dasd.sh   | 56 ++++++++++++++++++++++++++++++++++
+ 3 files changed, 111 insertions(+)
+ create mode 100755 modules.d/95dasd_rules/module-setup.sh
+ create mode 100755 modules.d/95dasd_rules/parse-dasd.sh
+
+diff --git a/dracut-functions.sh b/dracut-functions.sh
+index 04f4fea..7cfa097 100755
+--- a/dracut-functions.sh
++++ b/dracut-functions.sh
+@@ -899,6 +899,34 @@ inst_rules() {
+     done
+ }
+ 
++inst_rules_wildcard() {
++    local _target=/etc/udev/rules.d _rule _found
++
++    inst_dir "${udevdir}/rules.d"
++    inst_dir "$_target"
++    for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do
++        if [[ -e $_rule ]]; then
++            inst_rule_programs "$_rule"
++            inst_rule_group_owner "$_rule"
++            inst_rule_initqueue "$_rule"
++            inst_simple "$_rule"
++            _found=$_rule
++        fi
++    done
++    if [ -n ${hostonly} ] ; then
++        for _rule in ${_target}/$1 ; do
++            if [[ -f $_rule ]]; then
++                inst_rule_programs "$_rule"
++                inst_rule_group_owner "$_rule"
++                inst_rule_initqueue "$_rule"
++                inst_simple "$_rule"
++                _found=$_rule
++            fi
++        done
++    fi
++    [[ $_found ]] || dinfo "Skipping udev rule: $_rule"
++}
++
+ prepare_udev_rules() {
+     [ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version)
+ 
+diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
+new file mode 100755
+index 0000000..d313171
+--- /dev/null
++++ b/modules.d/95dasd_rules/module-setup.sh
+@@ -0,0 +1,27 @@
++#!/bin/bash
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++# called by dracut
++check() {
++    local _arch=$(uname -m)
++    [ -x /sbin/dasd_configure ] || return 1
++    [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
++    return 0
++}
++
++# called by dracut
++depends() {
++    echo 'dasd_mod'
++    return 0
++}
++
++# called by dracut
++install() {
++    inst_multiple /usr/lib/udev/collect
++    inst_hook cmdline 30 "$moddir/parse-dasd.sh"
++    if [[ $hostonly ]] ; then
++        inst_rules_wildcard 51-dasd-*.rules
++    fi
++    inst_rules 59-dasd.rules
++}
+diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh
+new file mode 100755
+index 0000000..9389c44
+--- /dev/null
++++ b/modules.d/95dasd_rules/parse-dasd.sh
+@@ -0,0 +1,56 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++create_udev_rule() {
++    local ccw=$1
++    local _drv _cu_type _dev_type
++    local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules
++
++    if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
++        read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
++        read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
++    fi
++    case "$_cu_type" in
++    3990/*|2105/*|2107/*|1750/*|9343/*)
++            _drv=dasd-eckd
++            ;;
++    6310/*)
++            _drv=dasd-fba
++            ;;
++    3880/*)
++        case "$_dev_type" in
++            3380/*)
++                _drv=dasd_eckd
++                ;;
++            3370/*)
++                _drv=dasd-fba
++                ;;
++        esac
++        ;;
++    esac
++    [ -z "${_drv}" ] && return 0
++
++    [ -e ${_rule} ] && return 0
++
++    cat > $_rule <<EOF
++ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
++ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
++ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
++EOF
++}
++
++for dasd_arg in $(getargs root=) $(getargs resume=); do
++    (
++        case $dasd_arg in
++            /dev/disk/by-path/ccw-*)
++                ccw_arg=${dasd_arg##*/}
++                break;
++        esac
++        if [ -n "$ccw_arg" ] ; then
++            IFS="-"
++            set -- $ccw_arg
++            create_udev_rule $2
++        fi
++    )
++done
diff --git a/0051-Add-zfcp-scripts-for-SUSE.patch b/0051-Add-zfcp-scripts-for-SUSE.patch
new file mode 100644
index 0000000..f46307c
--- /dev/null
+++ b/0051-Add-zfcp-scripts-for-SUSE.patch
@@ -0,0 +1,118 @@
+From d6f0467edf3895143713eab579f48df2be140178 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:48 +0100
+Subject: [PATCH] Add zfcp scripts for SUSE
+
+SuSE is storing the zfcp configuration in udev files, so we should
+be including these.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/95zfcp_rules/module-setup.sh | 25 +++++++++++++
+ modules.d/95zfcp_rules/parse-zfcp.sh   | 65 ++++++++++++++++++++++++++++++++++
+ 2 files changed, 90 insertions(+)
+ create mode 100755 modules.d/95zfcp_rules/module-setup.sh
+ create mode 100755 modules.d/95zfcp_rules/parse-zfcp.sh
+
+diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh
+new file mode 100755
+index 0000000..9a1ab20
+--- /dev/null
++++ b/modules.d/95zfcp_rules/module-setup.sh
+@@ -0,0 +1,25 @@
++#!/bin/bash
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++# called by dracut
++check() {
++    local _arch=$(uname -m)
++    [ -x /sbin/zfcp_disk_configure ] || return 1
++    [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
++    return 0
++}
++
++# called by dracut
++depends() {
++    return 0
++}
++
++# called by dracut
++install() {
++    inst_multiple /usr/lib/udev/collect
++    inst_hook cmdline 30 "$moddir/parse-zfcp.sh"
++    if [[ $hostonly ]] ; then
++        inst_rules_wildcard 51-zfcp-*.rules
++    fi
++}
+diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh
+new file mode 100755
+index 0000000..24dbdd3
+--- /dev/null
++++ b/modules.d/95zfcp_rules/parse-zfcp.sh
+@@ -0,0 +1,65 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++
++create_udev_rule() {
++    local ccw=$1
++    local wwpn=$2
++    local lun=$3
++    local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
++
++    local _cu_type _dev_type
++    local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
++
++    if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
++        read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
++        read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
++    fi
++    if [ "$_cu_type" != "1731/03" ] ; then
++        return 0;
++    fi
++    if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ] ; then
++        return 0;
++    fi
++
++    [ -e ${_rule} ] && return 0
++
++    if [ ! -f "$_rule" ] ; then
++        cat > $_rule <<EOF
++ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
++ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
++ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
++EOF
++    fi
++    m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule)
++    if [ -z "$m" ] ; then
++        cat >> $_rule <<EOF
++ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
++EOF
++    fi
++}
++
++for zfcp_arg in $(getargs rd.zfcp); do
++    (
++        IFS=","
++        set $zfcp_arg
++        create_udev_rule $1 $2 $3
++    )
++done
++
++for zfcp_arg in $(getargs root=) $(getargs resume=); do
++    (
++        case $zfcp_arg in
++            /dev/disk/by-path/ccw-*)
++                ccw_arg=${zfcp_arg##*/}
++                break;
++        esac
++        if [ -n "$ccw_arg" ] ; then
++            IFS="-"
++            set -- $ccw_arg
++            wwpn=${4%:*}
++            lun=${4#*:}
++            create_udev_rule $2 $wwpn $lun
++        fi
++    )
++done
diff --git a/0052-Make-logfile-configurable.patch b/0052-Make-logfile-configurable.patch
new file mode 100644
index 0000000..2139053
--- /dev/null
+++ b/0052-Make-logfile-configurable.patch
@@ -0,0 +1,67 @@
+From ee54b8404c10e29e5bddb633a4c7becb7acb0632 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:49 +0100
+Subject: [PATCH] Make logfile configurable
+
+Add '--logfile' option to make the log file configurable during
+runtime.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ dracut.8.asc | 6 ++++++
+ dracut.sh    | 4 ++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/dracut.8.asc b/dracut.8.asc
+index 2ea6744..d381dcf 100644
+--- a/dracut.8.asc
++++ b/dracut.8.asc
+@@ -275,6 +275,12 @@ Default:
+ 
+ **--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.
+ 
++**--logfile** _<logfile>_:: logfile to use; overrides any setting from
++    the configuration files.
+++
++Default:
++    _/var/log/dracut.log_
++
+ **-l, --local**::
+     activates the local mode. dracut will use modules from the current working
+     directory instead of the system-wide installed modules in
+diff --git a/dracut.sh b/dracut.sh
+index 5709874..11dcd0e 100755
+--- a/dracut.sh
++++ b/dracut.sh
+@@ -183,6 +183,7 @@ Creates initial ramdisk images for preloading modules
+   --keep                Keep the temporary initramfs for debugging purposes
+   --printsize           Print out the module install size
+   --sshkey [SSHKEY]     Add ssh key to initramfs (use with ssh-client module)
++  --logfile [FILE]      Logfile to use (overrides configuration setting)
+ 
+ If [LIST] has multiple arguments, then you have to put these in quotes.
+ 
+@@ -335,6 +336,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
+     --long debug \
+     --long profile \
+     --long sshkey: \
++    --long logfile: \
+     --long verbose \
+     --long quiet \
+     --long local \
+@@ -418,6 +420,7 @@ while :; do
+         --debug)       debug="yes";;
+         --profile)     profile="yes";;
+         --sshkey)      sshkey="$2"; shift;;
++        --logfile)     logfile_l="$2"; shift;;
+         -v|--verbose)  ((verbosity_mod_l++));;
+         -q|--quiet)    ((verbosity_mod_l--));;
+         -l|--local)
+@@ -690,6 +693,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
+ [[ $ro_mnt_l ]] && ro_mnt="yes"
+ [[ $early_microcode_l ]] && early_microcode=$early_microcode_l
+ [[ $early_microcode ]] || early_microcode=no
++[[ $logfile_l ]] && logfile="$logfile_l"
+ # eliminate IFS hackery when messing with fw_dir
+ fw_dir=${fw_dir//:/ }
+ 
diff --git a/0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch b/0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
new file mode 100644
index 0000000..493903b
--- /dev/null
+++ b/0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
@@ -0,0 +1,375 @@
+From 2b3e22d60246e7c8bfa96a6d7504fb0bfa67e641 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:50 +0100
+Subject: [PATCH] mkinitrd-suse: Add SUSE compability wrapper for dracut
+
+SUSE has its own mkinitrd system. As the arguments clash
+with the dracut-provided mkinitrd script I've added a new
+mkinitrd-suse.sh wrapper.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ mkinitrd-suse.sh | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 354 insertions(+)
+ create mode 100755 mkinitrd-suse.sh
+
+diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
+new file mode 100755
+index 0000000..d20270a
+--- /dev/null
++++ b/mkinitrd-suse.sh
+@@ -0,0 +1,354 @@
++#!/bin/bash --norc
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++#
++# mkinitrd compability wrapper for SUSE.
++#
++# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++#
++
++boot_dir="/boot"
++quiet=0
++host_only=1
++force=0
++logfile=/var/log/YaST2/mkinitrd.log
++dracut_cmd=dracut
++
++error() { echo "$@" >&2; }
++
++usage () {
++    [[ $1 = '-n' ]] && cmd=echo || cmd=error
++
++    $cmd "usage: ${0##*/} [options]"
++    $cmd ""
++    $cmd "	Create initial ramdisk images that contain all kernel modules needed"
++    $cmd "	in the early boot process, before the root file system becomes"
++    $cmd "	available."
++    $cmd "	This usually includes SCSI and/or RAID modules, a file system module"
++    $cmd "	for the root file system, or a network interface driver module for dhcp."
++    $cmd ""
++    $cmd "	options:"
++    $cmd "	-f \"feature list\"	Features to be enabled when generating initrd."
++    $cmd "				Available features are:"
++    $cmd "					iscsi, md, multipath, lvm, lvm2,"
++    $cmd "					ifup, fcoe, dcbd"
++    $cmd "	-k \"kernel list\"	List of kernel images for which initrd files are"
++    $cmd "				created. Defaults to all kernels found in /boot."
++    $cmd "	-i \"initrd list\"	List of file names for the initrd; position have"
++    $cmd "				match to \"kernel list\". Defaults to all kernels"
++    $cmd "				found in /boot."
++    $cmd "	-b boot_dir		Boot directory. Defaults to /boot."
++    $cmd "	-t tmp_dir		Temporary directory. Defaults to /var/tmp."
++    $cmd "	-M map			System.map file to use."
++    $cmd "	-A			Create a so called \"monster initrd\" which"
++    $cmd "				includes all features and modules possible."
++    $cmd "	-B			Do not update bootloader configuration."
++    $cmd "	-v			Verbose mode."
++    $cmd "	-L			Disable logging."
++    $cmd "	-h			This help screen."
++    $cmd "	-m \"module list\"	Modules to include in initrd. Defaults to the"
++    $cmd "				INITRD_MODULES variable in /etc/sysconfig/kernel"
++    $cmd "	-u \"DomU module list\"	Modules to include in initrd. Defaults to the"
++    $cmd "				DOMU_INITRD_MODULES variable in"
++    $cmd "				/etc/sysconfig/kernel."
++    $cmd "	-d root_device		Root device. Defaults to the device from"
++    $cmd "				which / is mounted. Overrides the rootdev"
++    $cmd "				enviroment variable if set."
++    $cmd "	-j device		Journal device"
++    $cmd "	-D interface		Run dhcp on the specified interface."
++    $cmd "	-I interface		Configure the specified interface statically."
++    $cmd "	-a acpi_dsdt		Attach compiled ACPI DSDT (Differentiated"
++    $cmd "				System Description Table) to initrd. This"
++    $cmd "				replaces the DSDT of the BIOS. Defaults to"
++    $cmd "				the ACPI_DSDT variable in /etc/sysconfig/kernel."
++    $cmd "	-s size			Add splash animation and bootscreen to initrd."
++
++    [[ $1 = '-n' ]] && exit 0
++    exit 1
++}
++
++# Little helper function for reading args from the commandline.
++# it automatically handles -a b and -a=b variants, and returns 1 if
++# we need to shift $3.
++read_arg() {
++    # $1 = arg name
++    # $2 = arg value
++    # $3 = arg parameter
++    param="$1"
++    local rematch='^[^=]*=(.*)$' result
++    if [[ $2 =~ $rematch ]]; then
++        read "$param" <<< "${BASH_REMATCH[1]}"
++    else
++	for ((i=3; $i <= $#; i++)); do
++            # Only read next arg if it not an arg itself.
++            if [[ ${@:$i:1} = -* ]];then
++		break
++            fi
++            result="$result ${@:$i:1}"
++            # There is no way to shift our callers args, so
++            # return "no of args" to indicate they should do it instead.
++	done
++	read "$1" <<< "$result"
++        return $(($i - 3))
++    fi
++}
++
++# Helper functions to calculate ipconfig command line
++calc_netmask() {
++    local prefix=$1
++
++    [ -z "$prefix" ] && return
++    mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l)
++    byte1=$(( mask >> 24 ))
++    byte2=$(( mask >> 16 ))
++    byte3=$(( mask >> 8 ))
++    byte4=$(( mask & 0xff ))
++    netmask=$(printf "%d.%d.%d.%d" $(( byte1 & 0xff )) $(( byte2 & 0xff )) $(( byte3 & 0xff )) $byte4);
++
++    echo $netmask
++}
++
++ipconfig() {
++    local interface=$1
++    local iplink macaddr broadcast gateway ipaddr prefix netmask
++
++    iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p')
++    macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p')
++    broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p')
++    gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p')
++
++    ipaddr=${iplink%%/*}
++    prefix=${iplink##*/}
++    netmask=$(calc_netmask $prefix)
++
++    echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}"
++}
++
++is_xen_kernel() {
++    local kversion=$1
++    local root_dir=$2
++    local cfg
++
++    for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config
++    do
++        test -r $cfg || continue
++        grep -q "^CONFIG_XEN=y\$" $cfg
++        return
++    done
++    test $kversion != "${kversion%-xen*}"
++    return
++}
++
++
++# Taken over from SUSE mkinitrd
++default_kernel_images() {
++    local regex kernel_image kernel_version version_version initrd_image
++    local qf='%{NAME}-%{VERSION}-%{RELEASE}\n'
++
++    case "$(uname -m)" in
++        s390|s390x)
++            regex='image'
++            ;;
++        ppc|ppc64)
++            regex='vmlinux'
++            ;;
++        i386|x86_64)
++            regex='vmlinuz'
++            ;;
++        arm*)
++            regex='[uz]Image'
++            ;;
++        aarch64)
++            regex='Image'
++            ;;
++        *)  regex='vmlinu.'
++            ;;
++    esac
++
++    kernel_images=""
++    initrd_images=""
++    for kernel_image in $(ls $boot_dir \
++            | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
++            | grep -v kdump$ ) ; do
++
++        # Note that we cannot check the RPM database here -- this
++        # script is itself called from within the binary kernel
++        # packages, and rpm does not allow recursive calls.
++
++        [ -L "$boot_dir/$kernel_image" ] && continue
++        [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
++        kernel_version=$(/usr/bin/get_kernel_version \
++                         $boot_dir/$kernel_image 2> /dev/null)
++        initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
++        if [ "$kernel_image" != "$initrd_image" -a \
++             -n "$kernel_version" -a \
++             -d "/lib/modules/$kernel_version" ]; then
++                kernel_images="$kernel_images $boot_dir/$kernel_image"
++                initrd_images="$initrd_images $boot_dir/$initrd_image"
++        fi
++    done
++    for kernel_image in $kernel_images;do
++	kernels="$kernels ${kernel_image#*-}"
++    done
++    for initrd_image in $initrd_images;do
++	targets="$targets $initrd_image"
++    done
++    host_only=1
++    force=1
++}
++
++while (($# > 0)); do
++    case ${1%%=*} in
++	-f) read_arg feature_list "$@" || shift $?
++	    # Could be several features
++	    ;;
++	-k) # Would be nice to get a list of images here
++	    read_arg kernel_images "$@" || shift $?
++	    for kernel_image in $kernel_images;do
++		kernels="$kernels ${kernel_image#*-}"
++	    done
++	    host_only=1
++	    force=1
++	    ;;
++	-i) read_arg initrd_images "$@" || shift $?
++	    for initrd_image in $initrd_images;do
++		# Check if the initrd_image contains a path.
++		# if not, then add the default boot_dir
++		dname=`dirname $initrd_image`
++		if [ "$dname" == "." ]; then
++                    targets="$targets $boot_dir/$initrd_image";
++		else
++                    targets="$targets $initrd_image";
++		fi
++	    done
++	    ;;
++	-b) read_arg boot_dir "$@" || shift $?
++	    if [ ! -d $boot_dir ];then
++		error "Boot directory $boot_dir does not exist"
++		exit 1
++	    fi
++	    ;;
++	-t) read_arg tmp_dir "$@" || shift $?
++	    dracut_args="${dracut_args} --tmpdir $tmp_dir"
++	    ;;
++	-M) read_arg map_file "$@" || shift $?
++	    ;;
++	-A) host_only=0;;
++	-B) skip_update_bootloader=1;;
++        -v|--verbose) dracut_args="${dracut_args} -v";;
++	-L) logfile=;;
++        -h|--help) usage -n;;
++	-m) read_arg module_list "$@" || shift $? ;;
++	-u) read_arg domu_module_list "$@" || shift $?
++	    echo "mkinitrd: DomU modules not yet supported" ;;
++        -d) read_arg rootfs "$@" || shift $?
++            dracut_args="${dracut_args} --filesystems $rootfs" ;;
++	-D) read_arg dhcp_if "$@" || shift $?
++	    dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp"
++	    ;;
++	-I) read_arg static_if "$@" || shift $?
++	    dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)":
++	    ;;
++	-a) read_arg acpi_dsdt "$@" || shift $?
++	    echo "mkinitrd: custom DSDT not yet supported"
++	    exit 1
++	    ;;
++	-s) read_arg boot_splash "$@" || shift $?
++	    echo "mkinitrd: boot splash not yet supported"
++	    exit 1
++	    ;;
++	-V) echo "mkinitrd: vendor scipts are no longer supported"
++	    exit 1;;
++	--dracut)
++	    read_arg dracut_cmd "$@" || shift $? ;;
++        --version|-R)
++            echo "mkinitrd: dracut compatibility wrapper"
++            exit 0;;
++        --force) force=1;;
++	--quiet|-q) quiet=1;;
++        *)  if [[ ! $targets ]]; then
++            targets=$1
++            elif [[ ! $kernels ]]; then
++            kernels=$1
++            else
++            usage
++            fi;;
++    esac
++    shift
++done
++
++[[ $targets && $kernels ]] || default_kernel_images
++[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage)
++
++# We can have several targets/kernels, transform the list to an array
++targets=( $targets )
++[[ $kernels ]] && kernels=( $kernels )
++
++[[ $logfile ]]        && dracut_args="${dracut_args} --logfile $logfile"
++[[ $host_only == 1 ]] && dracut_args="${dracut_args} --hostonly"
++[[ $force == 1 ]]     && dracut_args="${dracut_args} --force"
++[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}"
++[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1
++
++# Update defaults from /etc/sysconfig/kernel
++if [ -f /etc/sysconfig/kernel ] ; then
++    . /etc/sysconfig/kernel
++fi
++[[ $module_list ]] || module_list="${INITRD_MODULES}"
++basicmodules="$basicmodules ${module_list}"
++[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
++[[ $acpi_dsdt ]] || acpi_dsdt="${ACPI_DSDT}"
++
++echo "Creating: target|kernel|dracut args|basicmodules "
++for ((i=0 ; $i<${#targets[@]} ; i++)); do
++
++    if [[ $img_vers ]];then
++	target="${targets[$i]}-${kernels[$i]}"
++    else
++	target="${targets[$i]}"
++    fi
++    kernel="${kernels[$i]}"
++
++    # Duplicate code: No way found how to redirect output based on $quiet
++    if [[ $quiet == 1 ]];then
++	echo "$target|$kernel|$dracut_args|$basicmodules"
++	if is_xen_kernel $kernel $rootfs ; then
++	    basicmodules="$basicmodules ${domu_module_list}"
++	fi
++	if [[ $basicmodules ]]; then
++            $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
++		"$kernel" &>/dev/null
++	else
++            $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
++	fi
++    else
++	if is_xen_kernel $kernel $rootfs ; then
++	    basicmodules="$basicmodules ${domu_module_list}"
++	fi
++	if [[ $basicmodules ]]; then
++            $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
++		"$kernel"
++	else
++            $dracut_cmd $dracut_args "$target" "$kernel"
++	fi
++    fi
++done
++
++if [ "$skip_update_bootloader" ] ; then
++    echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually."
++else
++    update-bootloader --refresh
++fi
diff --git a/0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch b/0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
new file mode 100644
index 0000000..08be0db
--- /dev/null
+++ b/0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
@@ -0,0 +1,136 @@
+From 463e13fe8144376a95bf437b64c16bec056a9855 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:51 +0100
+Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ Makefile            |   1 +
+ mkinitrd-suse.8.asc | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 107 insertions(+)
+ create mode 100644 mkinitrd-suse.8.asc
+
+diff --git a/Makefile b/Makefile
+index e7da948..ba551cf 100644
+--- a/Makefile
++++ b/Makefile
+@@ -27,6 +27,7 @@ man7pages = dracut.cmdline.7 \
+ man8pages = dracut.8 \
+             dracut-catimages.8 \
+             mkinitrd.8 \
++            mkinitrd-suse.8 \
+             modules.d/98systemd/dracut-cmdline.service.8 \
+             modules.d/98systemd/dracut-initqueue.service.8 \
+             modules.d/98systemd/dracut-mount.service.8 \
+diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
+new file mode 100644
+index 0000000..9eb8fc9
+--- /dev/null
++++ b/mkinitrd-suse.8.asc
+@@ -0,0 +1,106 @@
++MKINITRD(8)
++===========
++:doctype: manpage
++:man source:   dracut
++:man manual:   dracut
++
++NAME
++----
++mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs
++
++SYNOPSIS
++--------
++*mkinitrd* ['OPTION...']
++
++DESCRIPTION
++-----------
++*mkinitrd* creates an initramfs image <initrd-image> for the kernel with
++version <kernel-version> by calling *dracut*.
++
++[IMPORTANT]
++This version of mkinitrd is provided for compability with older
++versions of mkinitrd. If a more fine grained control over the
++resulting image is needed, *dracut* should be called directly.
++
++OPTIONS
++-------
++**-R, --version**::
++    print info about the version
++
++**-k** _<kernel_list>_::
++    List of kernel images for which initrd files are created (relative
++    to _boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x
++    and _vmlinuz_ for everything else.
++
++**-i** _<initrd_list>_::
++    List of file names (relative to _boot_dir_) for the initrd; positions
++    have to match the _kernel_list_. Defaults to _initrd_.
++
++**-m** _<module_list>_::
++    Modules to include in initrd, defaults to _INITRD_MODULES_ variable
++    in */etc/sysconfig/kernel*.
++
++**-f** _<feature_list>_::
++    Features to be enabled for the initrd. In general mkinitrd
++    configures the initrd for the root device it is started from. With
++    this option additional feature can be enabled.
++
++**-b** _<bootdir>_::
++    Boot directory, defaults to */boot*, where the initrd is created.
++
++**-d** _<root_device>_::
++    Root device, defaults to the device from which the root_dir is
++    mounted; overwrites the rootdev enviroment variable if set
++
++**-s** _<size>_::
++    Add splash animation and bootscreen to initrd.
++
++**-D** _<interface>::
++    Run dhcp on the specified interface (for example "eth0").
++
++**-I** _<interface>::
++    Configure the specified interface statically.
++
++**-a** _<acpi_dsdt>::
++    Attach compiled ACPI DSDT (Differentiated System Description Table)
++    to initrd. This replaces the DSDT of the BIOS. Defaults to the
++    _ACPI_DSDT_ variable in */etc/sysconfig/kernel*.
++
++**-M** _<map>::
++    System.map file to use.
++
++**-B**::
++    Don’t run the *update-bootloader(8)* script after the initrd(s) have
++    been created. This is useful if you call mkinitrd(8) for anything
++    else than the running system.
++
++**-A**::
++    Create a so called "monster initrd" which includes all available
++    features and modules.
++
++**-v, --verbose**::
++    increase verbosity level
++
++**-L**::
++    Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for
++    testing if you don’t want to clutter the system log.
++
++**--force**::
++    overwrite existing initramfs file.
++
++**--help**::
++    print a help message and exit.
++
++AVAILABILITY
++------------
++The mkinitrd command is part of the dracut package and is available from
++link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
++
++AUTHORS
++-------
++Harald Hoyer, Hannes Reinecke
++
++SEE ALSO
++--------
++*dracut*(8)
++*update-bootloader*(8)
diff --git a/0055-Fixup-keymap-setting-for-openSUSE.patch b/0055-Fixup-keymap-setting-for-openSUSE.patch
new file mode 100644
index 0000000..ec3953d
--- /dev/null
+++ b/0055-Fixup-keymap-setting-for-openSUSE.patch
@@ -0,0 +1,26 @@
+From 1d3496b4c1ef229a8e6969e530b49dedb865f409 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:52 +0100
+Subject: [PATCH] Fixup keymap setting for openSUSE
+
+openSUSE is using compressed keymaps.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/10i18n/module-setup.sh | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
+index 0741c64..f07b148 100755
+--- a/modules.d/10i18n/module-setup.sh
++++ b/modules.d/10i18n/module-setup.sh
+@@ -161,6 +161,9 @@ install() {
+         # Gentoo user may have KEYMAP set to something like "-u pl2",
+         KEYMAP=${KEYMAP#-* }
+ 
++        # openSUSE user may have KEYMAP set to something like ".gz"
++        KEYMAP=${KEYMAP/.gz/}
++
+         # KEYTABLE is a bit special - it defines base keymap name and UNICODE
+         # determines whether non-UNICODE or UNICODE version is used
+ 
diff --git a/0056-Fixup-script-permissions.patch b/0056-Fixup-script-permissions.patch
new file mode 100644
index 0000000..729e574
--- /dev/null
+++ b/0056-Fixup-script-permissions.patch
@@ -0,0 +1,46 @@
+From 1c89fd148d361a43b1ddb7ec1e8068849244a9b7 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:53 +0100
+Subject: [PATCH] Fixup script permissions
+
+Scripts with a shebang should be marked as executable.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ modules.d/03modsign/load-modsign-keys.sh | 0
+ modules.d/03modsign/module-setup.sh      | 0
+ modules.d/40network/net-lib.sh           | 0
+ modules.d/40network/parse-vlan.sh        | 0
+ modules.d/50drm/module-setup.sh          | 0
+ modules.d/91crypt-loop/crypt-loop-lib.sh | 0
+ modules.d/98pollcdrom/pollcdrom.sh       | 0
+ 7 files changed, 0 insertions(+), 0 deletions(-)
+ mode change 100644 => 100755 modules.d/03modsign/load-modsign-keys.sh
+ mode change 100644 => 100755 modules.d/03modsign/module-setup.sh
+ mode change 100644 => 100755 modules.d/40network/net-lib.sh
+ mode change 100644 => 100755 modules.d/40network/parse-vlan.sh
+ mode change 100644 => 100755 modules.d/50drm/module-setup.sh
+ mode change 100644 => 100755 modules.d/91crypt-loop/crypt-loop-lib.sh
+ mode change 100644 => 100755 modules.d/98pollcdrom/pollcdrom.sh
+
+diff --git a/modules.d/03modsign/load-modsign-keys.sh b/modules.d/03modsign/load-modsign-keys.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh
+old mode 100644
+new mode 100755
+diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
+old mode 100644
+new mode 100755
diff --git a/0057-Remove-shebang-from-shell-completion-files.patch b/0057-Remove-shebang-from-shell-completion-files.patch
new file mode 100644
index 0000000..b59c7e9
--- /dev/null
+++ b/0057-Remove-shebang-from-shell-completion-files.patch
@@ -0,0 +1,34 @@
+From 336bd09d2cf9d3ded4abb828eb54742218a32b04 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare at suse.de>
+Date: Fri, 29 Nov 2013 13:13:54 +0100
+Subject: [PATCH] Remove shebang from shell-completion files
+
+Shell-completion files are meant to be sourced, not executed.
+So they shouldn't have a shebang at the start.
+
+Signed-off-by: Hannes Reinecke <hare at suse.de>
+---
+ dracut-bash-completion.sh   | 2 +-
+ lsinitrd-bash-completion.sh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
+index d796c35..9f359c6 100644
+--- a/dracut-bash-completion.sh
++++ b/dracut-bash-completion.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ #
+diff --git a/lsinitrd-bash-completion.sh b/lsinitrd-bash-completion.sh
+index 78ab165..3df2965 100644
+--- a/lsinitrd-bash-completion.sh
++++ b/lsinitrd-bash-completion.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ #
diff --git a/0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch b/0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch
new file mode 100644
index 0000000..b457909
--- /dev/null
+++ b/0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch
@@ -0,0 +1,27 @@
+From c21c4dc2b469107ac35d8c1157f245965fd55292 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 15:57:42 +0100
+Subject: [PATCH] lvm: install thin tools, only when needed in hostonly
+
+---
+ modules.d/90lvm/module-setup.sh | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
+index a220a55..1206310 100755
+--- a/modules.d/90lvm/module-setup.sh
++++ b/modules.d/90lvm/module-setup.sh
+@@ -97,6 +97,11 @@ install() {
+ 
+     inst_libdir_file "libdevmapper-event-lvm*.so"
+ 
+-    inst_multiple -o thin_dump thin_restore thin_check thin_repair
++    if [[ $hostonly ]] && type -P lvs &>/dev/null; then
++        for dev in "${!host_fs_types[@]}"; do
++            if [[ "$(lvs --noheadings -o segtype "$dev" 2>/dev/null)" == *thin* ]] ; then
++                inst_multiple -o thin_dump thin_restore thin_check thin_repair
++            fi
++        done
++    fi
+ }
+-
diff --git a/0059-i18n-introduce-i18n_install_all-to-install-everythin.patch b/0059-i18n-introduce-i18n_install_all-to-install-everythin.patch
new file mode 100644
index 0000000..bd6562d
--- /dev/null
+++ b/0059-i18n-introduce-i18n_install_all-to-install-everythin.patch
@@ -0,0 +1,127 @@
+From 45845cb6a5f1100fa4163e25c0681afceb838b64 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 16:42:05 +0100
+Subject: [PATCH] i18n: introduce i18n_install_all, to install everything
+
+if i18n_install_all is set to "yes", then install all keyboard layouts
+and fonts regardless of the hostonly setting.
+
+This way, people can switch keyboard layouts, without having to recreate
+the initramfs.
+---
+ dracut.conf.5.asc                 | 14 ++++++++++++--
+ dracut.conf.d/fedora.conf.example |  1 +
+ modules.d/10i18n/module-setup.sh  | 31 +++++++++++++++++--------------
+ 3 files changed, 30 insertions(+), 16 deletions(-)
+
+diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
+index c9c854a..30b7e03 100644
+--- a/dracut.conf.5.asc
++++ b/dracut.conf.5.asc
+@@ -122,10 +122,10 @@ If chrooted to another root other than the real root device, use --fstab and pro
+ *kernel_only=*"__{yes|no}__"::
+     Only install kernel drivers and firmware files. (default=no)
+ 
+-*no_kernel=*"{yes|no}"::
++*no_kernel=*"__{yes|no}__"::
+     Do not install kernel drivers and firmware files (default=no)
+ 
+-*acpi_override=*"{yes|no}"::
++*acpi_override=*"__{yes|no}__"::
+     [WARNING] ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! +
+     Override BIOS provided ACPI tables. For further documentation read
+     Documentation/acpi/initrd_table_override.txt in the kernel sources.
+@@ -158,6 +158,16 @@ If chrooted to another root other than the real root device, use --fstab and pro
+ *show_modules=*"__{yes|no}__"::
+     Print the name of the included modules to standard output during build.
+ 
++*i18n_vars="__<variable mapping>__"::
++    Distribution specific variable mapping.
++    See dracut/modules.d/10i18n/README for a detailed description.
++
++*i18n_default_font=*"__<fontname>__"::
++    The font <fontname> to install, if not specified otherwise. Default is "LatArCyrHeb-16".
++
++*i18n_install_all=*"__{yes|no}__"::
++    Install everything regardless of generic or hostonly mode.
++
+ Files
+ -----
+ _/etc/dracut.conf_::
+diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
+index 1a56a86..495e8fb 100644
+--- a/dracut.conf.d/fedora.conf.example
++++ b/dracut.conf.d/fedora.conf.example
+@@ -3,6 +3,7 @@
+ # i18n
+ i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
+ i18n_default_font="latarcyrheb-sun16"
++i18n_install_all="yes"
+ stdloglvl=3
+ sysloglvl=5
+ install_items+=" vi /etc/virc ps grep cat rm "
+diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
+index f07b148..fcb18d1 100755
+--- a/modules.d/10i18n/module-setup.sh
++++ b/modules.d/10i18n/module-setup.sh
+@@ -21,15 +21,11 @@ depends() {
+ # called by dracut
+ install() {
+     if dracut_module_included "systemd"; then
+-        [[ -f /etc/vconsole.conf ]] || return 0
+         unset FONT
+         unset KEYMAP
+-        . /etc/vconsole.conf
+-        # if vconsole.conf has no settings, do not include anything
+-        [[ $FONT ]] || [[ $KEYMAP ]] || return 0
++        [[ -f /etc/vconsole.conf ]] && . /etc/vconsole.conf
+     fi
+ 
+-    inst_multiple -o $systemdutildir/systemd-vconsole-setup
+     KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
+     DEFAULT_FONT="${i18n_default_font:-LatArCyrHeb-16}"
+     I18N_CONF="/etc/locale.conf"
+@@ -213,10 +209,20 @@ install() {
+             inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni
+         fi
+ 
+-        mksubdirs ${initdir}${I18N_CONF}
+-        mksubdirs ${initdir}${VCONFIG_CONF}
+-        print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
+-        print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
++        if dracut_module_included "systemd" && [[ -f ${I18N_CONF} ]]; then
++            inst_simple ${I18N_CONF}
++        else
++            mksubdirs ${initdir}${I18N_CONF}
++            print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
++        fi
++
++        if dracut_module_included "systemd" && [[ -f ${VCONFIG_CONF} ]]; then
++            inst_simple ${VCONFIG_CONF}
++        else
++            mksubdirs ${initdir}${VCONFIG_CONF}
++            print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
++        fi
++
+         return 0
+     }
+ 
+@@ -240,16 +246,13 @@ install() {
+         return 0
+     }
+ 
+-    if checks
+-    then
++    if checks; then
+         install_base
+ 
+-        if [[ ${hostonly} ]]
+-        then
++        if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} ]]; then
+             install_local_i18n || install_all_kbd
+         else
+             install_all_kbd
+         fi
+     fi
+ }
+-
diff --git a/0060-dracut.spec-add-new-modules.patch b/0060-dracut.spec-add-new-modules.patch
new file mode 100644
index 0000000..0088720
--- /dev/null
+++ b/0060-dracut.spec-add-new-modules.patch
@@ -0,0 +1,24 @@
+From 57575f3c9c5323887b1aec7f04d1467ba1e5fb1b Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 17:27:57 +0100
+Subject: [PATCH] dracut.spec: add new modules
+
+---
+ dracut.spec | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/dracut.spec b/dracut.spec
+index 44171d8..91ec15d 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -350,8 +350,10 @@ rm -rf -- $RPM_BUILD_ROOT
+ %{dracutlibdir}/modules.d/95rootfs-block
+ %{dracutlibdir}/modules.d/95dasd
+ %{dracutlibdir}/modules.d/95dasd_mod
++%{dracutlibdir}/modules.d/95dasd_rules
+ %{dracutlibdir}/modules.d/95fstab-sys
+ %{dracutlibdir}/modules.d/95zfcp
++%{dracutlibdir}/modules.d/95zfcp_rules
+ %{dracutlibdir}/modules.d/95terminfo
+ %{dracutlibdir}/modules.d/95udev-rules
+ %{dracutlibdir}/modules.d/95virtfs
diff --git a/0061-dracut.spec-remove-suse-man-pages.patch b/0061-dracut.spec-remove-suse-man-pages.patch
new file mode 100644
index 0000000..91ece10
--- /dev/null
+++ b/0061-dracut.spec-remove-suse-man-pages.patch
@@ -0,0 +1,35 @@
+From 11ee2ca8d497980c98c3c5a2c3be25b4724c43a0 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 5 Dec 2013 17:31:09 +0100
+Subject: [PATCH] dracut.spec: remove suse man pages
+
+---
+ dracut.spec | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index 91ec15d..bd35aa7 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -246,15 +246,18 @@ 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} || 0%{?suse_version}
++%if 0%{?fedora} || 0%{?rhel}
+ install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
+-install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
++rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
+ %endif
+-
+ %if 0%{?suse_version}
+ install -m 0644 dracut.conf.d/suse.conf.example   $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
+ %endif
+ 
++%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
++install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
++%endif
++
+ %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
+ rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
+ rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
diff --git a/dracut.spec b/dracut.spec
index 15c792b..35eb311 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -10,7 +10,7 @@
 
 Name: dracut
 Version: 034
-Release: 24.git20131030%{?dist}
+Release: 62.git20131205%{?dist}
 
 Summary: Initramfs generator using udev
 %if 0%{?fedora} || 0%{?rhel}
@@ -52,6 +52,44 @@ Patch20: 0020-Handle-crypto-modules-with-and-without-modaliases.patch
 Patch21: 0021-fips-include-crct10dif_generic.patch
 Patch22: 0022-iscsi-nbd-do-not-try-to-mount-the-whole-disk-if-root.patch
 Patch23: 0023-dracut.spec-move-sbin-dracut-to-usr-sbin-dracut.patch
+Patch24: 0024-dracut.sh-fixed-PATH-shortener.patch
+Patch25: 0025-dracut.modules.7.asc-removed-empty-section.patch
+Patch26: 0026-fips-also-install-etc-system-fips-in-the-initramfs.patch
+Patch27: 0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch
+Patch28: 0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch
+Patch29: 0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch
+Patch30: 0030-Run-xz-and-lzma-with-multiple-threads.patch
+Patch31: 0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch
+Patch32: 0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch
+Patch33: 0033-fips-fix-RHEV-vmlinuz-check.patch
+Patch34: 0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch
+Patch35: 0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch
+Patch36: 0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch
+Patch37: 0037-network-net-lib.sh-iface_has_link-fixup.patch
+Patch38: 0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch
+Patch39: 0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch
+Patch40: 0040-resume-autoconf-resume.patch
+Patch41: 0041-resume-no-more-autoresume.patch
+Patch42: 0042-dracut.sh-skip-crypt-swaps-with-password-files.patch
+Patch43: 0043-dracut-functions.sh-do-not-force-require-modules.bui.patch
+Patch44: 0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch
+Patch45: 0045-95dasd-Install-kernel-modules-only-once.patch
+Patch46: 0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
+Patch47: 0047-95dasd_mod-make-dasd_cio_free-optional.patch
+Patch48: 0048-95zfcp-Make-installation-optional.patch
+Patch49: 0049-95znet-Make-installation-optional.patch
+Patch50: 0050-Add-DASD-configuration-for-SuSE.patch
+Patch51: 0051-Add-zfcp-scripts-for-SUSE.patch
+Patch52: 0052-Make-logfile-configurable.patch
+Patch53: 0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
+Patch54: 0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
+Patch55: 0055-Fixup-keymap-setting-for-openSUSE.patch
+Patch56: 0056-Fixup-script-permissions.patch
+Patch57: 0057-Remove-shebang-from-shell-completion-files.patch
+Patch58: 0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch
+Patch59: 0059-i18n-introduce-i18n_install_all-to-install-everythin.patch
+Patch60: 0060-dracut.spec-add-new-modules.patch
+Patch61: 0061-dracut.spec-remove-suse-man-pages.patch
 
 
 BuildRequires: bash git
@@ -270,15 +308,18 @@ 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} || 0%{?suse_version}
+%if 0%{?fedora} || 0%{?rhel}
 install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
-install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse*
 %endif
-
 %if 0%{?suse_version}
 install -m 0644 dracut.conf.d/suse.conf.example   $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf
 %endif
 
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf
+%endif
+
 %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
 rm -f -- $RPM_BUILD_ROOT%{_bindir}/mkinitrd
 rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
@@ -374,8 +415,10 @@ rm -rf -- $RPM_BUILD_ROOT
 %{dracutlibdir}/modules.d/95rootfs-block
 %{dracutlibdir}/modules.d/95dasd
 %{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95dasd_rules
 %{dracutlibdir}/modules.d/95fstab-sys
 %{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95zfcp_rules
 %{dracutlibdir}/modules.d/95terminfo
 %{dracutlibdir}/modules.d/95udev-rules
 %{dracutlibdir}/modules.d/95virtfs
@@ -472,6 +515,16 @@ rm -rf -- $RPM_BUILD_ROOT
 %endif
 
 %changelog
+* Thu Dec 05 2013 Harald Hoyer <harald at redhat.com> 034-62.git20131205
+- fixed PATH shortener
+- also install /etc/system-fips in the initramfs
+- nbd, do not fail in hostonly mode
+- add ohci-pci to the list of hardcoded modules
+- lvm: do not run pvscan for lvmetad
+- network fixes
+- skip crypt swaps with password files
+- fixed i18n
+
 * Wed Oct 30 2013 Harald Hoyer <harald at redhat.com> 034-24.git20131030
 - fixed booting with rd.iscsi.firmware and without root=
 - fips: include crct10dif_generic


More information about the scm-commits mailing list