summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Hoyer <harald@redhat.com>2013-12-05 17:38:32 +0100
committerHarald Hoyer <harald@redhat.com>2013-12-05 17:38:32 +0100
commit4734ecf5fb38aeaf2fceaefa64564eecb9cc900e (patch)
treebd0c4d117624e4cedd707e0ed0c92310faf3870c
parent55473f736f925ea2c16f1e55760cee3e8b4e8544 (diff)
downloaddracut-4734ecf5fb38aeaf2fceaefa64564eecb9cc900e.tar.gz
dracut-4734ecf5fb38aeaf2fceaefa64564eecb9cc900e.tar.xz
dracut-4734ecf5fb38aeaf2fceaefa64564eecb9cc900e.zip
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
-rw-r--r--0024-dracut.sh-fixed-PATH-shortener.patch22
-rw-r--r--0025-dracut.modules.7.asc-removed-empty-section.patch21
-rw-r--r--0026-fips-also-install-etc-system-fips-in-the-initramfs.patch20
-rw-r--r--0027-dracut-functions.sh-Avoid-loading-unnecessary-32-bit.patch43
-rw-r--r--0028-iscsi-nbd-do-not-fail-in-hostonly-mode.patch36
-rw-r--r--0029-systemd-do-not-exit-the-initqueue-if-systemd-asks-a-.patch27
-rw-r--r--0030-Run-xz-and-lzma-with-multiple-threads.patch35
-rw-r--r--0031-kernel-modules-add-ohci-pci-to-the-list-of-forced-mo.patch30
-rw-r--r--0032-lvm-do-not-run-pvscan-for-lvmetad-update.patch36
-rw-r--r--0033-fips-fix-RHEV-vmlinuz-check.patch39
-rw-r--r--0034-dracut.cmdline.7.asc-document-server-ip-of-ip-parame.patch28
-rw-r--r--0035-dracut.sh-_get_fs_type-if-block-device-exists-return.patch31
-rw-r--r--0036-network-net-lib.sh-wait_for_if_up-wait-for-state-UP.patch23
-rw-r--r--0037-network-net-lib.sh-iface_has_link-fixup.patch73
-rw-r--r--0038-network-ifup.sh-before-doing-dhcp-check-if-the-link-.patch25
-rw-r--r--0039-base-dracut-lib.sh-wait_for_dev-relax-requirement.patch39
-rw-r--r--0040-resume-autoconf-resume.patch37
-rw-r--r--0041-resume-no-more-autoresume.patch98
-rw-r--r--0042-dracut.sh-skip-crypt-swaps-with-password-files.patch22
-rw-r--r--0043-dracut-functions.sh-do-not-force-require-modules.bui.patch41
-rw-r--r--0044-10i18n-parse-i18n.sh-fixed-vconsole.conf-locale.conf.patch56
-rw-r--r--0045-95dasd-Install-kernel-modules-only-once.patch34
-rw-r--r--0046-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch25
-rw-r--r--0047-95dasd_mod-make-dasd_cio_free-optional.patch38
-rw-r--r--0048-95zfcp-Make-installation-optional.patch35
-rw-r--r--0049-95znet-Make-installation-optional.patch25
-rw-r--r--0050-Add-DASD-configuration-for-SuSE.patch152
-rw-r--r--0051-Add-zfcp-scripts-for-SUSE.patch118
-rw-r--r--0052-Make-logfile-configurable.patch67
-rw-r--r--0053-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch375
-rw-r--r--0054-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch136
-rw-r--r--0055-Fixup-keymap-setting-for-openSUSE.patch26
-rw-r--r--0056-Fixup-script-permissions.patch46
-rw-r--r--0057-Remove-shebang-from-shell-completion-files.patch34
-rw-r--r--0058-lvm-install-thin-tools-only-when-needed-in-hostonly.patch27
-rw-r--r--0059-i18n-introduce-i18n_install_all-to-install-everythin.patch127
-rw-r--r--0060-dracut.spec-add-new-modules.patch24
-rw-r--r--0061-dracut.spec-remove-suse-man-pages.patch35
-rw-r--r--dracut.spec61
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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@redhat.com> 034-24.git20131030
- fixed booting with rd.iscsi.firmware and without root=
- fips: include crct10dif_generic