Hello community,

here is the log from the commit of package dracut for openSUSE:Factory checked 
in at 2013-11-29 16:22:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2013-10-21 
19:52:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes       2013-11-29 
16:22:26.000000000 +0100
@@ -1,0 +2,56 @@
+Thu Nov 28 09:56:36 CET 2013 - [email protected]
+
+- Update with patches from git repository:
+   * kernel-modules: add ohci-pci to the list of forced module installs
+   * Run 'xz' and 'lzma' with multiple threads
+   * systemd: do not exit the initqueue, if systemd asks a password
+   * iscsi,nbd: do not fail in hostonly mode
+   * dracut-functions.sh: Avoid loading unnecessary 32-bit libraries
+     for 64-bit initrds
+   * fips: also install /etc/system-fips in the initramfs
+   * dracut.modules.7.asc: removed empty section
+   * dracut.sh: fixed PATH shortener
+   * dracut.spec: move /sbin/dracut to /usr/sbin/dracut
+   * iscsi/nbd: do not try to mount the whole disk, if root= is missing
+   * fips: include crct10dif_generic
+   * Handle crypto modules with and without modaliases
+   * usrmount/module-setup.sh: fixed typo
+   * lvm: always install thin utils for lvm
+   * kernel-modules(ARM): add mmc_block usb_storage to static list of
+     kernel mods
+   * dracut-functions.sh:check_block_and_slaves*() skip LVM internal devs
+   * mkdir basic dirs in /run
+   * network/fcoe: only redirect output to loginit.pipe, if exists
+   * dracut.sh: no need to make subdirs in run
+   * dracut.sh: also mkdir /run/lock, which is copied to
+   * lvm: fix thin recognition
+   * Add lzo, lz4 compression and read INITRD_COMPRESS
+   * remove resume-genrules.sh
+   * resume: fix swap detection in hostonly
+   * base/init.sh: also mkdir /run/lock
+   * dmsquash-live: add /dev/mapper/live-base
+   * Doc: cleanup, extend and split and reuse
+   * dracut.sh: do not bail out, if kernel modules dir is missing
+   * 10i18n/parse-i18n.sh: parse rd.vconsole and rd.locale
+   * */module-setup.sh: add comments for dracut called functions
+   * lvm: install thin utils for non-hostonly
+- Patches for S/390 support
+  * 95dasd: Install kernel modules only once
+  * 95dasd: Only install module if normalize_dasd_arg is present
+  * 95dasd_mod: make dasd_cio_free optional
+  * 95zfcp: Make installation optional
+  * 95znet: Make installation optional
+  * Install /bin/mount
+  * Fixup keymap setting for openSUSE
+  * Add DASD configuration for SuSE
+  * Add zfcp scripts for SUSE
+  * Make logfile configurable
+  * Add SUSE compability wrapper for dracut
+  * Add manpage for SUSE compat mkinitrd
+  * Work around xsltproc bug
+  * Correct paths for openSUSE
+  * Check for plymouth lib directories
+- Drop obsolete patches
+- Install mkinitrd-suse
+
+-------------------------------------------------------------------

Old:
----
  correct-paths-for-opensuse.patch
  mkinitrd-fix-boot-dir-detection.patch
  mkinitrd_update_bootloader.diff
  suse_only_logger.patch
  use_initrd_insteadof_initramfs.patch
  use_sysconfig_values_correctly.patch

New:
----
  0001-95dasd-Install-kernel-modules-only-once.patch
  0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
  0003-95dasd_mod-make-dasd_cio_free-optional.patch
  0004-95zfcp-Make-installation-optional.patch
  0005-95znet-Make-installation-optional.patch
  0006-Install-bin-mount.patch
  0007-Fixup-keymap-setting-for-openSUSE.patch
  0008-Add-DASD-configuration-for-SuSE.patch
  0009-Add-zfcp-scripts-for-SUSE.patch
  0010-Make-logfile-configurable.patch
  0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
  0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
  0013-Correct-paths-for-openSUSE.patch
  0014-Check-for-plymouth-lib-directories.patch
  0015-Fixup-script-permissions.patch
  0016-Remove-shebang-from-shell-completion-files.patch
  dracut-git-update.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.CcQ3xx/_old  2013-11-29 16:22:28.000000000 +0100
+++ /var/tmp/diff_new_pack.CcQ3xx/_new  2013-11-29 16:22:28.000000000 +0100
@@ -28,29 +28,35 @@
 License:        GPL-2.0+ and LGPL-2.1+
 Group:          System/Base
 Url:            https://dracut.wiki.kernel.org/
-# Source can be generated by
-# 
http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz
-Source0:        dracut-%{version}.tar.xz
+Source0:        
http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
 # openSUSE / SLE module to convert initrd command line parameters to dracut one
 # (not to be upstreamed)
 Source1:        module-setup-initrd.sh
 Source2:        parse-suse-initrd.sh
 Source3:        mkinitrd_setup_dummy
-# PATCH-FIX-OPENSUSE correct the paths for openSUSE - [email protected]
-Patch0:         correct-paths-for-opensuse.patch
-# PATCH-FIX-OPENSUSE change the default naming from initramfs to initrd - 
[email protected]
-Patch1:         use_initrd_insteadof_initramfs.patch
-# PATCH-FIX-OPENSUSE Strip the gz extension from the keymap mentioned in 
/etc/sysconfig/keyboard  - [email protected]
-Patch2:         use_sysconfig_values_correctly.patch
-# PATCH-FIX-OPENSUSE Write caller and used parameters to syslog if mkinitrd is 
called - [email protected]
-Patch4:         suse_only_logger.patch
-# PATCH-FIX-OPENSUSE Call the update-bootloader after dracut finished creating 
the initrd - [email protected]
-Patch5:         mkinitrd_update_bootloader.diff
-# PATCH-FIX-OPENSUSE Validate the initrd parameter first, before just blindly 
add the boot_dir parameter in front of it
-Patch6:         mkinitrd-fix-boot-dir-detection.patch
+
+Patch0:         dracut-git-update.patch
+# S/390 fixes, send to upstream
+Patch1:         0001-95dasd-Install-kernel-modules-only-once.patch
+Patch2:         0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
+Patch3:         0003-95dasd_mod-make-dasd_cio_free-optional.patch
+Patch4:         0004-95zfcp-Make-installation-optional.patch
+Patch5:         0005-95znet-Make-installation-optional.patch
+Patch6:         0006-Install-bin-mount.patch
+Patch7:         0007-Fixup-keymap-setting-for-openSUSE.patch
+Patch8:         0008-Add-DASD-configuration-for-SuSE.patch
+Patch9:         0009-Add-zfcp-scripts-for-SUSE.patch
+Patch10:        0010-Make-logfile-configurable.patch
+Patch11:        0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
+Patch12:        0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
+
+# SUSE specific patches
+Patch20:        0013-Correct-paths-for-openSUSE.patch
+Patch21:        0014-Check-for-plymouth-lib-directories.patch
+Patch22:        0015-Fixup-script-permissions.patch
+Patch23:        0016-Remove-shebang-from-shell-completion-files.patch
 
 BuildRequires:  bash
-BuildRequires:  dash
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -78,6 +84,7 @@
 Requires:       util-linux >= 2.21
 Requires:       xz
 Recommends:     binutils
+Recommends:     logrotate
 Requires:       pigz
 
 %{?systemd_requires}
@@ -123,9 +130,20 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
 
 %build
 %configure\
@@ -137,13 +155,13 @@
 %install
 make %{?_smp_mflags} install DESTDIR=%{buildroot}
 
-echo "DRACUT_VERSION=%{version}-%{release}" > 
%{buildroot}/%{dracutlibdir}/dracut-version.sh
+echo -e "#!/bin/bash\nDRACUT_VERSION=%{version}-%{release}" > 
%{buildroot}/%{dracutlibdir}/dracut-version.sh
 
 rm -fr %{buildroot}%{dracutlibdir}/modules.d/01fips
 rm -fr %{buildroot}%{dracutlibdir}/modules.d/02fips-aesni
 
 # we do not support dash in the initramfs
-# rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash
+rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash
 
 # add suse cmline conversion
 mkdir -p %{buildroot}%{dracutlibdir}/modules.d/99suse
@@ -165,7 +183,6 @@
 mkdir -p %{buildroot}%{_localstatedir}/lib/dracut/overlay
 mkdir -p %{buildroot}%{_localstatedir}/log
 touch %{buildroot}%{_localstatedir}/log/dracut.log
-#mkdir -p %{buildroot}%{_localstatedir}/initramfs
 
 install -m 0644 dracut.conf.d/suse.conf.example   
%{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf
 echo 'add_drivers+="autofs4"' >> 
%{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf
@@ -173,16 +190,17 @@
 %ifarch %ix86 x86_64
 echo 'early_microcode="yes"' > 
%{buildroot}%{_sysconfdir}/dracut.conf.d/02-early-microcode.conf
 %endif
+rm %{buildroot}%{_bindir}/mkinitrd
 %if !%{replace_mkinitrd}
 rm %{buildroot}/etc/bash_completion.d/lsinitrd
-rm %{buildroot}%{_bindir}/mkinitrd
 rm %{buildroot}%{_bindir}/lsinitrd
 rm %{buildroot}%{_mandir}/man8/mkinitrd*
 rm %{buildroot}%{_mandir}/man1/lsinitrd*
 %else
 # moved to /sbin
 mkdir -p %{buildroot}/sbin
-mv %{buildroot}%{_bindir}/mkinitrd %{buildroot}/sbin/mkinitrd
+install -m 0755 mkinitrd-suse.sh %{buildroot}/sbin/mkinitrd
+mv %{buildroot}%{_mandir}/man8/mkinitrd-suse.8 
%{buildroot}%{_mandir}/man8/mkinitrd.8
 install -m 0755 %{S:3} %{buildroot}/sbin/mkinitrd_setup
 %endif
 
@@ -200,7 +218,7 @@
 /sbin/mkinitrd
 /sbin/mkinitrd_setup
 %{_bindir}/lsinitrd
-/etc/bash_completion.d/lsinitrd
+%config /etc/bash_completion.d/lsinitrd
 %endif
 %dir %{dracutlibdir}
 %dir %{dracutlibdir}/modules.d
@@ -226,6 +244,7 @@
 %{_mandir}/man7/dracut.kernel.7*
 %{_mandir}/man7/dracut.cmdline.7*
 %{_mandir}/man7/dracut.bootup.7*
+%{_mandir}/man7/dracut.modules.7*
 %{_mandir}/man8/dracut-cmdline.service.8*
 %{_mandir}/man8/dracut-initqueue.service.8*
 %{_mandir}/man8/dracut-pre-pivot.service.8*
@@ -244,7 +263,6 @@
 %{dracutlibdir}/modules.d/00systemd-bootchart/module-setup.sh
 %{dracutlibdir}/modules.d/03rescue/module-setup.sh
 %{dracutlibdir}/modules.d/00bootchart
-%{dracutlibdir}/modules.d/00dash
 %{dracutlibdir}/modules.d/04watchdog
 %{dracutlibdir}/modules.d/05busybox
 %{dracutlibdir}/modules.d/10i18n
@@ -271,8 +289,10 @@
 %{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
@@ -305,7 +325,7 @@
 %{_unitdir}/*.service
 %{_unitdir}/*/*.service
 %endif
-%{_sysconfdir}/bash_completion.d/dracut
+%config %{_sysconfdir}/bash_completion.d/dracut
 
 %files network
 %defattr(-,root,root,0755)

++++++ 0001-95dasd-Install-kernel-modules-only-once.patch ++++++
>From 0c3400336c7916819fd24b8081e24098880ef244 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 11:51:30 +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 <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch ++++++
>From 3d10724ecd78a62ec8c987c97f9b5f4236c681a4 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 11:53:09 +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 <[email protected]>
---
 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
 }
-- 
1.8.1.4

++++++ 0003-95dasd_mod-make-dasd_cio_free-optional.patch ++++++
>From 7d00da419fcbdb8736cbbe7caf13209589b43d9c Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 12:33:57 +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 <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0004-95zfcp-Make-installation-optional.patch ++++++
>From f0c233bc4396d3e47a8e660d2d27d78bd32762d7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 11:58:31 +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 <[email protected]>
---
 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
 }
 
-- 
1.8.1.4

++++++ 0005-95znet-Make-installation-optional.patch ++++++
>From 8a7276ae8aae5694c40d977580c7db6c5c47a81a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 12:00:14 +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 <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0006-Install-bin-mount.patch ++++++
>From 9e87dcb25f82122be3ee16ca8f3c198dd3d02d77 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Wed, 27 Nov 2013 14:35:19 +0100
Subject: [PATCH] Install /bin/mount

systemd relies on /bin/mount to be present, so install it.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 modules.d/99fs-lib/module-setup.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/modules.d/99fs-lib/module-setup.sh 
b/modules.d/99fs-lib/module-setup.sh
index 7979bab..b24207d 100755
--- a/modules.d/99fs-lib/module-setup.sh
+++ b/modules.d/99fs-lib/module-setup.sh
@@ -85,4 +85,5 @@ install() {
     fi
 
     inst_multiple -o $_helpers fsck
+    inst /usr/bin/mount /bin/mount
 }
-- 
1.8.1.4

++++++ 0007-Fixup-keymap-setting-for-openSUSE.patch ++++++
>From 4b40f3a3361d5267d9987c57945ef006e90e964d Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Wed, 27 Nov 2013 14:42:24 +0100
Subject: [PATCH] Fixup keymap setting for openSUSE

openSUSE is using compressed keymaps.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 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
 
-- 
1.8.1.4

++++++ 0008-Add-DASD-configuration-for-SuSE.patch ++++++
>From 60265e04911e2cfb980d048e378fb2e510b8370d Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 12:23:44 +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 <[email protected]>
---
 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 2872516..0337c13 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
-- 
1.8.1.4

++++++ 0009-Add-zfcp-scripts-for-SUSE.patch ++++++
>From f6ed21cbdd3f5a34ed094c38a81faad1e8f6fdbb Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 21 Nov 2013 13:47:17 +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 <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0010-Make-logfile-configurable.patch ++++++
>From bd9556ea50348e21d59e022433df05fe35ddfc14 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 28 Nov 2013 13:21:30 +0100
Subject: [PATCH] Make logfile configurable

Add '--logfile' option to make the log file configurable during
runtime.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 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 bce2662..5f63d94 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//:/ }
 
-- 
1.8.1.4

++++++ 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch ++++++
>From 48b0614371e7fabee84a45132771b9427091efa9 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 28 Nov 2013 10:53:57 +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 <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch ++++++
>From ed220c000020db2d883e798cbfa51e80e289b218 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Fri, 29 Nov 2013 08:01:34 +0100
Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd

Signed-off-by: Hannes Reinecke <[email protected]>
---
 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)
-- 
1.8.1.4

++++++ 0013-Correct-paths-for-openSUSE.patch ++++++
>From 16b73ffc6f9c67800811f39641c484123d2a159a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Thu, 28 Nov 2013 10:07:59 +0100
Subject: [PATCH] Correct paths for openSUSE

openSUSE has things stored in different places, so fixup the
paths here.

Signed-off-by: Christian Rodrigues <[email protected]>
Signed-off-by: Hannes Reinecke <[email protected]>
---
 dracut.sh                          | 2 +-
 modules.d/10i18n/module-setup.sh   | 2 ++
 modules.d/98systemd/rescue.service | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dracut.sh b/dracut.sh
index 5f63d94..8680874 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -683,7 +683,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
 [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
 [[ $lvmconf_l ]] && lvmconf=$lvmconf_l
 [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
-[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
+[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware 
/lib/firmware/$kernel"
 [[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
 [[ $tmpdir ]] || tmpdir=/var/tmp
 [[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index f07b148..3854a38 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -102,6 +102,8 @@ install() {
 
     install_base() {
         inst_multiple setfont loadkeys kbd_mode stty
+        inst /usr/bin/setfont /bin/setfont
+        inst /usr/bin/loadkeys /bin/loadkeys
 
         if ! dracut_module_included "systemd"; then
             inst ${moddir}/console_init.sh /lib/udev/console_init
diff --git a/modules.d/98systemd/rescue.service 
b/modules.d/98systemd/rescue.service
index edc2461..d80900f 100644
--- a/modules.d/98systemd/rescue.service
+++ b/modules.d/98systemd/rescue.service
@@ -16,7 +16,7 @@ Environment=HOME=/
 Environment=DRACUT_SYSTEMD=1
 Environment=NEWROOT=/sysroot
 WorkingDirectory=/
-ExecStartPre=-/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth quit
 ExecStart=-/bin/sh -i -l
 ExecStopPost=-/bin/rm -f -- /.console_lock
 ExecStopPost=-/usr/bin/systemctl --fail --no-block default
-- 
1.8.1.4

++++++ 0014-Check-for-plymouth-lib-directories.patch ++++++
>From cc0ec0cdcef806efe2315931ba4705fb35b82c6a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Wed, 27 Nov 2013 15:54:00 +0100
Subject: [PATCH] Check for plymouth lib directories

SUSE installs plymount files in /usr/lib, not /usr/libexec.
So check for both when including plymouth support.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 modules.d/50plymouth/module-setup.sh | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/modules.d/50plymouth/module-setup.sh 
b/modules.d/50plymouth/module-setup.sh
index 1360924..7ccf9e4 100755
--- a/modules.d/50plymouth/module-setup.sh
+++ b/modules.d/50plymouth/module-setup.sh
@@ -15,12 +15,19 @@ depends() {
 
 # called by dracut
 install() {
-    if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \
-        || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
+    if [ -d /usr/libexec/plymouth ] ; then
+        _plymouth=/usr/libexec/plymouth;
+    elif [ -d /usr/lib/plymouth ] ; then
+        _plymouth=/usr/lib/plymouth
+    fi
+    if [ -n "$_plymouth" ] ; then
+        if grep -q nash ${_plymouth}/plymouth-populate-initrd \
+        || [ ! -x ${_plymouth}/plymouth-populate-initrd ]; then
         . "$moddir"/plymouth-populate-initrd.sh
-    else
-        PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
-            /usr/libexec/plymouth/plymouth-populate-initrd -t "$initdir"
+        else
+            PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
+                ${_plymouth}/plymouth-populate-initrd -t "$initdir"
+        fi
     fi
 
     inst_hook emergency 50 "$moddir"/plymouth-emergency.sh
-- 
1.8.1.4

++++++ 0015-Fixup-script-permissions.patch ++++++
>From 96a44d8e982838a01e3d8f2a62941a9af0952b95 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Fri, 29 Nov 2013 11:36:02 +0100
Subject: [PATCH] Fixup script permissions

Scripts with a shebang should be marked as executable.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 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
-- 
1.8.1.4

++++++ 0016-Remove-shebang-from-shell-completion-files.patch ++++++
>From d29f993d5a4205f918c5fefb7e03dabc1062e11b Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <[email protected]>
Date: Fri, 29 Nov 2013 12:46:24 +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 <[email protected]>
---
 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
 #
-- 
1.8.1.4

++++++ dracut-git-update.patch ++++++
++++ 5557 lines (skipped)

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to