[dracut] update to latest git lots of patch changes
Harald Hoyer
harald at fedoraproject.org
Thu Dec 15 14:46:27 UTC 2011
commit 6adbc8b2385f395f211937b707b0c0c321179e3f
Author: Harald Hoyer <harald at redhat.com>
Date: Thu Dec 15 15:46:20 2011 +0100
update to latest git
lots of patch changes
.gitignore | 1 +
0001-add-x-bit-to-.sh.patch | 28 --
0001-dracut-export-host_fs_types-host_devs.patch | 149 ++++++
...live-dmsquash-live-root-include-fs_lib.sh.patch | 24 -
...dule-setup.sh-use-host_fs_types-host_devs.patch | 480 ++++++++++++++++++++
...siroot-unset-used-variables-before-starti.patch | 29 ++
0003-fix-live-crash-with-livenet-installed.patch | 24 -
...ut-lib.sh-killproc-prefix-local-variables.patch | 36 ++
...parse-the-output-of-dracut-profile-for-pr.patch | 75 ---
0005-add-TEST-16-DMSQUASH.patch | 391 ----------------
...acut.spec-remove-unnecessary-dependencies.patch | 63 +++
0006-TEST-12-RAID-DEG-mkdir-run.patch | 21 +
...tions-s-emergency-shutdown-shutdown-emerg.patch | 22 -
...ut-lib.sh-added-inst_mount_hook-add_mount.patch | 127 +++++
0007-dracut-unset-LD_LIBRARY_PATH.patch | 23 -
0008-build-initramfs-prelink-undo-sbin.patch | 25 -
0008-dracut-add-add-fstab-and-mount-option.patch | 106 +++++
0009-dracut-functions-speed-up-inst_dir.patch | 41 --
...-90crypt-ask_for_password-pings-plymouthd.patch | 24 -
0011-99base-whitespace-fix.patch | 24 -
...tions-new-function-inst_any-d-dest-f1-f2-.patch | 49 --
...e-into-account-other-ca-bundle-paths-use-.patch | 25 -
0014-luks-key-on-ext-dev-wait-for-luks.patch | 95 ----
...ed-cmdline-arg-name-from-rd.luks.tout-to-.patch | 23 -
0016-luks-key-on-ext-dev-wait-for-luks.patch | 39 --
...ctions-fix-inst_dir-for-non-absolute-dirs.patch | 22 -
...-md-incremental-imsm.rules-incremental-ru.patch | 26 -
...cut.spec-fixed-rhel-fedora-version-checks.patch | 111 -----
...add-plymouth.enable-kernel-command-line-o.patch | 46 --
...-only-poll-cdroms-if-the-kernel-does-supp.patch | 63 ---
...ild-initramfs-unclear-_mpargs-in-instmods.patch | 43 --
...se-crypt.sh-also-accept-the-beginning-of-.patch | 25 -
...-save-and-restore-environment-given-from-.patch | 32 --
...-move-switch_root-breakpoint-to-a-later-p.patch | 30 --
...tions-hmac-checksum-files-can-be-symlinks.patch | 32 --
0027-95udev-rules-add-input_id.patch | 21 -
...nst_simple-inst_dir-make-fast-case-faster.patch | 50 --
...el_modules-is-a-specialized-filter_kernel.patch | 52 ---
...nstall_kmod_with_fw-make-fast-case-faster.patch | 30 --
...et-filenames-from-stdin-if-no-args-use-it.patch | 239 ----------
0032-instmods-sanity-for-_mpargs.patch | 38 --
...ctor-out-egrep-of-FATAL-Module-.-not-foun.patch | 67 ---
...-do-not-fail-when-importing-the-original-.patch | 23 -
0035-dracut-cp-with-sparse.patch | 36 --
...ase-init-removed-cdrom-polling-reset-code.patch | 29 --
...ve-root-use-blkid-to-determine-fstype-of-.patch | 27 --
...ve-root-load-filesystem-modules-before-mo.patch | 31 --
...0dmsquash-live-do-not-symlink-to-dev-live.patch | 27 --
...9base-init-remove-dev-root-helper-symlink.patch | 24 -
...o-not-use-run-udev-rules.d-for-udev-rules.patch | 54 ---
...-mount-securityfs-with-source-securityfs-.patch | 23 -
...nt-securityfs-in-a-seperate-dracut-module.patch | 81 ----
...nt-securityfs-in-a-seperate-dracut-module.patch | 21 -
0045-90mdraid-adjust-stock-mdadm-udev-rules.patch | 37 --
0046-90mdraid-containers-are-not-runnable.patch | 91 ----
0047-90mdraid-fix-adjust-mdraid-cleanup.patch | 66 ---
0048-90mdraid-fix-adjust-force-run-script.patch | 136 ------
0049-90-md-dm-raid-recognize-ddf-container.patch | 140 ------
...ix-adjust-65-md-rules-and-related-scripts.patch | 200 --------
...-relaxed-check-on-ext3-filesystem-options.patch | 58 ---
...s-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch | 61 ---
...tions-inst_rules-do-not-check-std-dirs-fo.patch | 37 --
0054-str_replace-fix.patch | 33 --
...er-bail-out-early-if-we-don-t-have-to-log.patch | 37 --
...dracut-create-dev-besides-proc-sys-and-so.patch | 24 -
...fs-lib-export-FSTAB_FILE-before-fsck-call.patch | 26 -
0058-dracut-functions-inst_rules-add-missing.patch | 22 -
...d-check-precisely-for-supported-contaiers.patch | 46 --
...draid-more-thorough-64-md-raid.rules-edit.patch | 25 -
0061-90mdraid-adjust-dev-md-loops.patch | 53 ---
...H-Parameter-expansion-occurs-before-comma.patch | 38 --
...H-es-parallelize-block_module-filter-and-.patch | 100 ----
0064-order-mdadm-and-lvm-timeout-operations.patch | 36 --
...raid-mdraid_start.sh-fix-path-to-md-sysfs.patch | 22 -
...draid-module-setup.sh-fixed-sed-arguments.patch | 22 -
...s-module-setup.sh-also-search-in-lib-udev.patch | 41 --
0068-update-the-documentation-of-no-prefix.patch | 48 --
0069-dracut-check-mktemp-return-value.patch | 29 --
0070-convert_abs_rel-fixups.patch | 54 ---
0071-dracut.8-add-missing-lvmconf-info.patch | 44 --
0072-fs-lib-add-ability-to-choose-fsck-tools.patch | 155 -------
...-add-info-about-fs-lib-fsck-configuration.patch | 82 ----
...unctions-conv-normalize-minor-corrections.patch | 63 ---
0075-dracut.-.xml-s-exisiting-existing-g.patch | 36 --
...s-module-setup.s-fixed-symlink-for-udevd-.patch | 25 -
0077-dracut.conf.5.xml-tag-mismatch-fix.patch | 30 --
0078-bash3-compat-patch.patch | 169 -------
0079-explicitly-verify-bash-version.patch | 30 --
0080-dracut-remove-duplicate-options.patch | 26 -
...lib.sh-fix-dropped-backslashes-in-CMDLINE.patch | 31 --
...-live-fix-log-message-about-root-liveroot.patch | 22 -
0083-check-root-candidates-more-carefully.patch | 61 ---
0084-netroot-do-not-die-if-arping-failed.patch | 22 -
...s-module-setup.sh-correctly-create-udevd-.patch | 29 --
...p.sh-turn-off-debugging-for-module-search.patch | 60 ---
...base-init-fix-check-for-in-kernel-polling.patch | 22 -
...acut-lib.sh-add-etc-cmdline-.conf-parsing.patch | 59 ---
0089-minor-changes.patch | 38 --
0090-90livenet-check-for-wget.patch | 21 -
0091-dracut-logger-re-set-debugging.patch | 75 ---
...nctions-inst_dir-handle-relative-symlinks.patch | 30 --
...et-module-setup.sh-silence-check-for-wget.patch | 22 -
...90dmsquash-live-do-not-install-by-default.patch | 22 -
0095-90livenet-do-not-install-by-default.patch | 22 -
...tions-do-not-install-files-from-current-d.patch | 129 ------
...tions-inst_script-call-inst_binary-with-f.patch | 32 --
0098-dracut.spec-apply-patches-with-git.patch | 88 ----
...-require-new-util-linux-version-with-new-.patch | 35 --
dracut.spec | 284 ++++--------
sources | 2 +-
110 files changed, 1113 insertions(+), 5382 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index f0689d7..ae12248 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/dracut-011-9b30d47.tar.bz2
/dracut-011.tar.bz2
/dracut-013.tar.bz2
+/dracut-014.tar.bz2
diff --git a/0001-dracut-export-host_fs_types-host_devs.patch b/0001-dracut-export-host_fs_types-host_devs.patch
new file mode 100644
index 0000000..1c31676
--- /dev/null
+++ b/0001-dracut-export-host_fs_types-host_devs.patch
@@ -0,0 +1,149 @@
+From 7ae5d9d11d1a0ccd31dced528e2792f1c1d5aeca Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 8 Dec 2011 10:25:58 +0100
+Subject: [PATCH] dracut: export host_fs_types host_devs
+
+Determine devices and filesystems to be included in the host-only
+initramfs image.
+
+To get a minimal initramfs, which can mount
+ /
+ /etc
+ /usr
+ /usr/bin
+ /usr/sbin
+ /usr/lib
+ /usr/lib64
+ /boot
+we look in fstab for the corresponding devices and determine their and
+their slaves' filesystem type and put all that in $host_fs_types
+and $host_devs.
+---
+ dracut | 42 +++++++++++++++++++++++++++++++++++++++++-
+ dracut-functions | 30 ++++++++++++++++++++++++++----
+ 2 files changed, 67 insertions(+), 5 deletions(-)
+
+diff --git a/dracut b/dracut
+index 45ee759..3d08680 100755
+--- a/dracut
++++ b/dracut
+@@ -507,12 +507,52 @@ trap 'exit 1;' SIGINT
+ # Need to be able to have non-root users read stuff (rpcbind etc)
+ chmod 755 "$initdir"
+
++if [[ $hostonly ]]; then
++
++ _get_fs_type() (
++ [[ $1 ]] || return
++ if [[ -b /dev/block/$1 ]] && get_fs_env /dev/block/$1; then
++ echo -n "$ID_FS_TYPE "
++ return 1
++ fi
++ if find_dev_fstype $1; then
++ echo -n " "
++ return 1
++ fi
++ return 1
++ )
++
++ push host_mp \
++ "/" \
++ "/etc" \
++ "/usr" \
++ "/usr/bin" \
++ "/usr/sbin" \
++ "/usr/lib" \
++ "/usr/lib64" \
++ "/boot"
++
++ host_fs_types=""
++ for mp in "${host_mp[@]}"; do
++ mountpoint "$mp" >/dev/null 2>&1 || continue
++ push host_devs $(find_block_device "$mp")
++ done
++ for dev in "${host_devs[@]}"; do
++ unset fs_type
++ for fstype in $(_get_fs_type $dev) \
++ $(check_block_and_slaves _get_fs_type $dev); do
++ strstr " $host_fs_types " "$fstype" || host_fs_types+="$fstype "
++ done
++ done
++fi
++echo "host_fs_types=$host_fs_types"
++
+ export initdir dracutbasedir dracutmodules drivers \
+ fw_dir drivers_dir debug no_kernel kernel_only \
+ add_drivers mdadmconf lvmconf filesystems \
+ use_fstab libdir usrlibdir fscks nofscks \
+ stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
+- debug
++ debug host_fs_types host_devs
+
+ # Create some directory structure first
+ [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
+diff --git a/dracut-functions b/dracut-functions
+index c54cd7c..258d376 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -165,8 +165,11 @@ get_fs_type() (
+ echo "nfs"
+ return
+ fi
+- get_fs_env $1 || return
+- echo $ID_FS_TYPE
++ if get_fs_env $1; then
++ echo $ID_FS_TYPE
++ return
++ fi
++ find_dev_fstype $1
+ )
+
+ get_fs_uuid() (
+@@ -174,11 +177,11 @@ get_fs_uuid() (
+ echo $ID_FS_UUID
+ )
+
+-# finds the major:minor of the block device backing the root filesystem.
+ find_block_device() {
+ local _x _mpt _majmin _dev _fs _maj _min
+ if [[ $use_fstab != yes ]]; then
+ while read _x _x _majmin _x _mpt _x _x _fs _dev _x; do
++ [[ $_mpt = $1 ]] || continue
+ [[ $_fs = nfs ]] && { echo $_dev; return 0;}
+ [[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
+ [[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
+@@ -189,7 +192,7 @@ find_block_device() {
+ echo $_maj:$_min
+ } && return 0
+ }
+- if [[ $_mpt = $1 ]] && [[ ${_majmin#0:} = $_majmin ]]; then
++ if [[ ${_majmin#0:} = $_majmin ]]; then
+ echo $_majmin
+ return 0 # we have a winner!
+ fi
+@@ -215,6 +218,25 @@ find_block_device() {
+ return 1
+ }
+
++find_dev_fstype() {
++ local _x _mpt _majmin _dev _fs _maj _min
++ while read _x _x _majmin _x _mpt _x _x _fs _dev _x; do
++ [[ $_dev = $1 ]] || continue
++ echo -n $_fs;
++ return 0;
++ done < /proc/self/mountinfo
++
++ # fall back to /etc/fstab
++ while read _dev _mpt _fs _x; do
++ [[ $_dev = $1 ]] || continue
++ echo -n $_fs;
++ return 0;
++ done < /etc/fstab
++
++ return 1
++}
++
++# finds the major:minor of the block device backing the root filesystem.
+ find_root_block_device() { find_block_device /; }
+
+ # Walk all the slave relationships for a given block device.
diff --git a/0002-module-setup.sh-use-host_fs_types-host_devs.patch b/0002-module-setup.sh-use-host_fs_types-host_devs.patch
new file mode 100644
index 0000000..e99d8b7
--- /dev/null
+++ b/0002-module-setup.sh-use-host_fs_types-host_devs.patch
@@ -0,0 +1,480 @@
+From 480d772f22a2f690928c59c7c0ebfa7dc00332ea Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 8 Dec 2011 10:43:29 +0100
+Subject: [PATCH] */module-setup.sh: use host_fs_types host_devs
+
+For the $hostonly case, use $host_fs_types and $host_devs to determine,
+if a module has to be included in the initramfs.
+---
+ dracut | 16 +++++---
+ dracut-functions | 31 +++++++++++++---
+ modules.d/90btrfs/module-setup.sh | 16 ++++----
+ modules.d/90crypt/module-setup.sh | 26 ++++++++-----
+ modules.d/90dmraid/module-setup.sh | 40 +++++++++++++++------
+ modules.d/90kernel-modules/module-setup.sh | 6 +++-
+ modules.d/90lvm/module-setup.sh | 25 ++++++++-----
+ modules.d/90mdraid/module-setup.sh | 40 +++++++++++++++-----
+ modules.d/95fstab-sys/module-setup.sh | 2 +-
+ modules.d/95nfs/module-setup.sh | 14 +++++--
+ modules.d/99base/module-setup.sh | 1 +
+ modules.d/99fs-lib/module-setup.sh | 55 ++++++++++++++--------------
+ 12 files changed, 179 insertions(+), 93 deletions(-)
+
+diff --git a/dracut b/dracut
+index 3d08680..46694f8 100755
+--- a/dracut
++++ b/dracut
+@@ -508,15 +508,19 @@ trap 'exit 1;' SIGINT
+ chmod 755 "$initdir"
+
+ if [[ $hostonly ]]; then
++ # in hostonly mode, determine all devices, which have to be accessed
++ # and examine them for filesystem types
++
++ unset host_fs_types
+
+ _get_fs_type() (
+ [[ $1 ]] || return
+ if [[ -b /dev/block/$1 ]] && get_fs_env /dev/block/$1; then
+- echo -n "$ID_FS_TYPE "
++ echo "$1|$ID_FS_TYPE"
+ return 1
+ fi
+- if find_dev_fstype $1; then
+- echo -n " "
++ if fstype=$(find_dev_fstype $1); then
++ echo "$1|$fstype"
+ return 1
+ fi
+ return 1
+@@ -532,7 +536,6 @@ if [[ $hostonly ]]; then
+ "/usr/lib64" \
+ "/boot"
+
+- host_fs_types=""
+ for mp in "${host_mp[@]}"; do
+ mountpoint "$mp" >/dev/null 2>&1 || continue
+ push host_devs $(find_block_device "$mp")
+@@ -541,11 +544,12 @@ if [[ $hostonly ]]; then
+ unset fs_type
+ for fstype in $(_get_fs_type $dev) \
+ $(check_block_and_slaves _get_fs_type $dev); do
+- strstr " $host_fs_types " "$fstype" || host_fs_types+="$fstype "
++ if ! strstr " ${host_fs_types[*]} " " $fstype ";then
++ push host_fs_types "$fstype"
++ fi
+ done
+ done
+ fi
+-echo "host_fs_types=$host_fs_types"
+
+ export initdir dracutbasedir dracutmodules drivers \
+ fw_dir drivers_dir debug no_kernel kernel_only \
+diff --git a/dracut-functions b/dracut-functions
+index 258d376..d95df14 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -177,6 +177,14 @@ get_fs_uuid() (
+ echo $ID_FS_UUID
+ )
+
++
++get_maj_min() {
++ local _dev
++ _dev=$(stat -c '$((0x%T)):$((0x%t))' "$1" 2>/dev/null)
++ _dev=$(eval "echo $_dev")
++ echo $_dev
++}
++
+ find_block_device() {
+ local _x _mpt _majmin _dev _fs _maj _min
+ if [[ $use_fstab != yes ]]; then
+@@ -186,11 +194,8 @@ find_block_device() {
+ [[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
+ [[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
+ [[ $_fs = btrfs ]] && {
+- ls -nLl "$_dev" | {
+- read _x _x _x _x _maj _min _x
+- _maj=${_maj//,/}
+- echo $_maj:$_min
+- } && return 0
++ get_maj_min $_dev
++ return 0;
+ }
+ if [[ ${_majmin#0:} = $_majmin ]]; then
+ echo $_majmin
+@@ -239,6 +244,22 @@ find_dev_fstype() {
+ # finds the major:minor of the block device backing the root filesystem.
+ find_root_block_device() { find_block_device /; }
+
++for_each_host_dev_fs()
++{
++ local _func="$1"
++ for f in ${host_fs_types[@]}; do
++ OLDIFS="$IFS"
++ IFS="|"
++ set -- $f
++ IFS="$OLDIFS"
++ dev=$1
++ [[ -b /dev/block/$dev ]] && dev="/dev/block/$dev"
++ [[ -b $dev ]] || continue
++ fs="$2"
++ $_func $dev $fs
++ done
++}
++
+ # Walk all the slave relationships for a given block device.
+ # Stop when our helper function returns success
+ # $1 = function to call on every found block device
+diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
+index 7b0b424..f89713f 100755
+--- a/modules.d/90btrfs/module-setup.sh
++++ b/modules.d/90btrfs/module-setup.sh
+@@ -11,14 +11,14 @@ check() {
+ . $dracutfunctions
+ [[ $debug ]] && set -x
+
+- is_btrfs() { get_fs_type /dev/block/$1 | grep -q btrfs; }
+-
+- if [[ $hostonly ]]; then
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- is_btrfs "$_rootdev" || return 1
+- fi
+- fi
++ [[ $hostonly ]] && {
++ local _found
++ for fs in $host_fs_types; do
++ [[ "$fs" = "|btrfs" ]] && _found="1"
++ done
++ [[ $_found ]] || return 1
++ unset _found
++ }
+
+ return 0
+ }
+diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
+index 2a8268f..42c6b48 100755
+--- a/modules.d/90crypt/module-setup.sh
++++ b/modules.d/90crypt/module-setup.sh
+@@ -9,18 +9,24 @@ check() {
+
+ . $dracutfunctions
+
+- is_crypt() { [[ $(get_fs_type /dev/block/$1) = crypto_LUKS ]]; }
++ check_crypt() {
++ local dev=$1 fs=$2
++ [[ $fs = "crypto_LUKS" ]] || continue
++ ID_FS_UUID=$(udevadm info --query=property --name=$dev \
++ | while read line; do
++ [[ ${line#ID_FS_UUID} = $line ]] && continue
++ eval "$line"
++ echo $ID_FS_UUID
++ break
++ done)
++ [[ ${ID_FS_UUID} ]] || continue
++ echo " rd.luks.uuid=${ID_FS_UUID} " >> "${initdir}/etc/cmdline.d/90crypt.conf"
++ }
+
+ [[ $hostonly ]] && {
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- # root lives on a block device, so we can be more precise about
+- # hostonly checking
+- check_block_and_slaves is_crypt "$_rootdev" || return 1
+- else
+- # root is not on a block device, use the shotgun approach
+- blkid | grep -q crypto\?_LUKS || return 1
+- fi
++ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
++ for_each_host_dev_fs check_crypt
++ [ -f "${initdir}/etc/cmdline.d/90crypt.conf" ] || return 1
+ }
+
+ return 0
+diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
+index 87a4d1e..9de6c63 100755
+--- a/modules.d/90dmraid/module-setup.sh
++++ b/modules.d/90dmraid/module-setup.sh
+@@ -11,19 +11,37 @@ check() {
+ . $dracutfunctions
+ [[ $debug ]] && set -x
+
+- is_dmraid() { get_fs_type /dev/block/$1 |grep -v linux_raid_member | \
+- grep -q _raid_member; }
++ check_dmraid() {
++ local dev=$1 fs=$2 holder DEVPATH DM_NAME
++ [[ "$fs" = "linux_raid_member" ]] && continue
++ [[ "$fs" = "${fs%%_raid_member}" ]] && continue
++
++ DEVPATH=$(udevadm info --query=property --name=$dev \
++ | while read line; do
++ [[ ${line#DEVPATH} = $line ]] && continue
++ eval "$line"
++ echo $DEVPATH
++ break
++ done)
++ for holder in /sys/$DEVPATH/holders/*; do
++ [[ -e $holder ]] || continue
++ DM_NAME=$(udevadm info --query=property --path=$holder \
++ | while read line; do
++ [[ ${line#DM_NAME} = $line ]] && continue
++ eval "$line"
++ echo $DM_NAME
++ break
++ done)
++ done
++
++ [[ ${DM_NAME} ]] || continue
++ echo " rd.dm.uuid=${DM_NAME} " >> "${initdir}/etc/cmdline.d/90dmraid.conf"
++ }
+
+ [[ $hostonly ]] && {
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- # root lives on a block device, so we can be more precise about
+- # hostonly checking
+- check_block_and_slaves is_dmraid "$_rootdev" || return 1
+- else
+- # root is not on a block device, use the shotgun approach
+- dmraid -r | grep -q ok || return 1
+- fi
++ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
++ for_each_host_dev_fs check_dmraid
++ [ -f "${initdir}/etc/cmdline.d/90dmraid.conf" ] || return 1
+ }
+
+ return 0
+diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
+index d7aadd8..8d2ab91 100755
+--- a/modules.d/90kernel-modules/module-setup.sh
++++ b/modules.d/90kernel-modules/module-setup.sh
+@@ -50,7 +50,11 @@ installkernel() {
+ rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
+ fi
+ else
+- hostonly='' instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
++ inst_fs() {
++ [[ $2 ]] || return 1
++ hostonly='' instmods $2
++ }
++ for_each_host_dev_fs inst_fs
+ fi
+ else
+ hostonly='' instmods $drivers
+diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
+index 40dc350..87751cb 100755
+--- a/modules.d/90lvm/module-setup.sh
++++ b/modules.d/90lvm/module-setup.sh
+@@ -10,18 +10,23 @@ check() {
+ . $dracutfunctions
+ [[ $debug ]] && set -x
+
+- is_lvm() { [[ $(get_fs_type /dev/block/$1) = LVM2_member ]]; }
++ check_lvm() {
++ local dev=$1
++ DM_LV_NAME=$(udevadm info --query=property --name=$dev \
++ | while read line; do
++ [[ ${line#DM_LV_NAME} = $line ]] && continue
++ eval "$line"
++ echo $DM_LV_NAME
++ break
++ done)
++ [[ ${DM_LV_NAME} ]] || continue
++ echo " rd.lvm.lv=${DM_LV_NAME} " >> "${initdir}/etc/cmdline.d/90lvm.conf"
++ }
+
+ [[ $hostonly ]] && {
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- # root lives on a block device, so we can be more precise about
+- # hostonly checking
+- check_block_and_slaves is_lvm "$_rootdev" || return 1
+- else
+- # root is not on a block device, use the shotgun approach
+- blkid | grep -q LVM2_member || return 1
+- fi
++ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
++ for_each_host_dev_fs check_lvm
++ [ -f "${initdir}/etc/cmdline.d/90lvm.conf" ] || return 1
+ }
+
+ return 0
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 029d667..05e0127 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -10,18 +10,38 @@ check() {
+ . $dracutfunctions
+ [[ $debug ]] && set -x
+
+- is_mdraid() { [[ -d "/sys/dev/block/$1/md" ]]; }
++ check_mdraid() {
++ local dev=$1 fs=$2 holder DEVPATH MD_UUID
++ [[ "$fs" = "linux_raid_member" ]] && continue
++ [[ "$fs" = "${fs%%_raid_member}" ]] && continue
++
++ DEVPATH=$(udevadm info --query=property --name=$dev \
++ | while read line; do
++ [[ ${line#DEVPATH} = $line ]] && continue
++ eval "$line"
++ echo $DEVPATH
++ break
++ done)
++
++ for holder in /sys/$DEVPATH/holders/*; do
++ [[ -e $holder ]] || continue
++ MD_UUID=$(udevadm info --query=property --path=$holder \
++ | while read line; do
++ [[ ${line#MD_UUID} = $line ]] && continue
++ eval "$line"
++ echo $MD_UUID
++ break
++ done)
++ done
++
++ [[ ${MD_UUID} ]] || continue
++ echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf"
++ }
+
+ [[ $hostonly ]] && {
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- # root lives on a block device, so we can be more precise about
+- # hostonly checking
+- check_block_and_slaves is_mdraid "$_rootdev" || return 1
+- else
+- # root is not on a block device, use the shotgun approach
+- blkid | egrep -q '(linux|isw|ddf)_raid' || return 1
+- fi
++ [[ -d "${initdir}/etc/cmdline.d" ]] || mkdir -p "${initdir}/etc/cmdline.d"
++ for_each_host_dev_fs check_mdraid
++ [[ -f "${initdir}/etc/cmdline.d/90mdraid.conf" ]] || return 1
+ }
+
+ return 0
+diff --git a/modules.d/95fstab-sys/module-setup.sh b/modules.d/95fstab-sys/module-setup.sh
+index c22b047..ea9db83 100755
+--- a/modules.d/95fstab-sys/module-setup.sh
++++ b/modules.d/95fstab-sys/module-setup.sh
+@@ -11,6 +11,6 @@ depends() {
+ }
+
+ install() {
+- dracut_install /etc/fstab.sys
++ inst /etc/fstab.sys /etc/fstab
+ inst_hook pre-pivot 00 "$moddir/mount-sys.sh"
+ }
+diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
+index c5f97c9..bb3b793 100755
+--- a/modules.d/95nfs/module-setup.sh
++++ b/modules.d/95nfs/module-setup.sh
+@@ -3,13 +3,19 @@
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+
+ check() {
+- # If hostonly was requested, fail the check if we are not actually
+- # booting from root.
+- [ $hostonly ] && ! egrep -q '/ nfs[34 ]' /proc/mounts && return 1
+-
+ # If our prerequisites are not met, fail anyways.
+ type -P rpcbind >/dev/null || type -P portmap >/dev/null || return 1
+ type -P rpc.statd mount.nfs mount.nfs4 umount >/dev/null || return 1
++
++ [[ $hostonly ]] && {
++ for fs in ${host_fs_types[@]}; do
++ strstr "$fs" "|nfs" && return 0
++ strstr "$fs" "|nfs3" && return 0
++ strstr "$fs" "|nfs4" && return 0
++ done
++ return 255
++ }
++
+ return 0
+ }
+
+diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
+index f6dc920..5297a9d 100755
+--- a/modules.d/99base/module-setup.sh
++++ b/modules.d/99base/module-setup.sh
+@@ -38,6 +38,7 @@ install() {
+ dracut_install switch_root || dfatal "Failed to install switch_root"
+
+ inst "$moddir/dracut-lib.sh" "/lib/dracut-lib.sh"
++ inst "$moddir/mount-hook.sh" "/usr/bin/mount-hook"
+ inst_hook cmdline 10 "$moddir/parse-root-opts.sh"
+ mkdir -p "${initdir}/var"
+ [ -x /lib/systemd/systemd-timestamp ] && inst /lib/systemd/systemd-timestamp
+diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh
+index 04b63f1..9c900cc 100755
+--- a/modules.d/99fs-lib/module-setup.sh
++++ b/modules.d/99fs-lib/module-setup.sh
+@@ -10,6 +10,32 @@ depends() {
+ return 0
+ }
+
++
++echo_fs_helper() {
++ local dev=$1 fs=$2
++ case "$fs" in
++ xfs)
++ echo -n " xfs_db xfs_repair xfs_check "
++ ;;
++ ext?)
++ echo -n " e2fsck "
++ ;;
++ jfs)
++ echo -n " jfs_fsck "
++ ;;
++ reiserfs)
++ echo -n " reiserfsck "
++ ;;
++ btrfs)
++ echo -n " btrfsck "
++ ;;
++ *)
++ [[ -x fsck.$fs ]] && echo -n " fsck.$fs "
++ ;;
++ esac
++}
++
++
+ install() {
+ local _helpers
+
+@@ -25,33 +51,8 @@ install() {
+ e2fsck jfs_fsck reiserfsck btrfsck
+ "
+ if [[ $hostonly ]]; then
+- print_fs_type() { get_fs_type /dev/block/$1; }
+- _rootdev=$(find_root_block_device)
+- if [[ $_rootdev ]]; then
+- _helpers="umount mount "
+- for fs in $(check_block_and_slaves print_fs_type "$_rootdev"); do
+- case "$fs" in
+- xfs)
+- _helpers+=" xfs_db xfs_repair xfs_check "
+- ;;
+- ext?)
+- _helpers+=" e2fsck "
+- ;;
+- jfs)
+- _helpers+=" jfs_fsck "
+- ;;
+- reiserfs)
+- _helpers+=" reiserfsck "
+- ;;
+- btrfs)
+- _helpers+=" btrfsck "
+- ;;
+- *)
+- [[ -x fsck.$fs ]] && _helpers+= " fsck.$fs "
+- ;;
+- esac
+- done
+- fi
++ _helpers="umount mount "
++ _helpers+=$(for_each_host_dev_fs echo_fs_helper)
+ fi
+ else
+ _helpers="$fscks"
diff --git a/0003-95iscsi-iscsiroot-unset-used-variables-before-starti.patch b/0003-95iscsi-iscsiroot-unset-used-variables-before-starti.patch
new file mode 100644
index 0000000..7e110f2
--- /dev/null
+++ b/0003-95iscsi-iscsiroot-unset-used-variables-before-starti.patch
@@ -0,0 +1,29 @@
+From 43f218522128b7864346bb11f7aad234410db745 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 8 Dec 2011 15:04:04 +0100
+Subject: [PATCH] 95iscsi/iscsiroot: unset used variables before starting
+
+If iscsiroot is called multiple times, then some variables can hold the
+values of a previous call, so unset all variables before using them.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=752066
+---
+ modules.d/95iscsi/iscsiroot | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/95iscsi/iscsiroot b/modules.d/95iscsi/iscsiroot
+index bcdc046..e7bac74 100755
+--- a/modules.d/95iscsi/iscsiroot
++++ b/modules.d/95iscsi/iscsiroot
+@@ -51,6 +51,11 @@ if getargbool 0 rd.iscsi.firmware -y iscsi_firmware ; then
+ exit 0
+ fi
+
++unset iscsi_initiator iscsi_target_name iscsi_target_ip iscsi_target_port
++unset iscsi_target_group iscsi_protocol iscsirw iscsi_lun
++unset iscsi_username iscsi_password
++unset iscsi_in_username iscsi_in_password
++
+ # override conf settings by command line options
+ arg=$(getargs rd.iscsi.initiator iscsi_initiator=)
+ [ -n "$arg" ] && iscsi_initiator=$arg
diff --git a/0004-99base-dracut-lib.sh-killproc-prefix-local-variables.patch b/0004-99base-dracut-lib.sh-killproc-prefix-local-variables.patch
new file mode 100644
index 0000000..9334b0d
--- /dev/null
+++ b/0004-99base-dracut-lib.sh-killproc-prefix-local-variables.patch
@@ -0,0 +1,36 @@
+From 4d63882615543b19b779607563ab2a098d54b403 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 9 Dec 2011 10:12:05 +0100
+Subject: [PATCH] 99base/dracut-lib.sh: killproc, prefix local variables
+
+---
+ modules.d/99base/dracut-lib.sh | 16 ++++++++--------
+ 1 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index e86d209..c881869 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -627,14 +627,14 @@ wait_for_dev()
+ }
+
+ killproc() {
+- local exe="$(command -v $1)"
+- local sig=$2
+- local i
+- [ -x "$exe" ] || return 1
+- for i in /proc/[0-9]*; do
+- [ "$i" = "/proc/1" ] && continue
+- if [ -e "$i"/exe ] && [ "$i/exe" -ef "$exe" ] ; then
+- kill $sig ${i##*/}
++ local _exe="$(command -v $1)"
++ local _sig=$2
++ local _i
++ [ -x "$_exe" ] || return 1
++ for _i in /proc/[0-9]*; do
++ [ "$_i" = "/proc/1" ] && continue
++ if [ -e "$_i"/_exe ] && [ "$_i/_exe" -ef "$_exe" ] ; then
++ kill $_sig ${_i##*/}
+ fi
+ done
+ }
diff --git a/0005-dracut.spec-remove-unnecessary-dependencies.patch b/0005-dracut.spec-remove-unnecessary-dependencies.patch
new file mode 100644
index 0000000..16e6783
--- /dev/null
+++ b/0005-dracut.spec-remove-unnecessary-dependencies.patch
@@ -0,0 +1,63 @@
+From 828feae4f1814a915b2f7f362a5920322e0d6fcc Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Fri, 9 Dec 2011 10:28:40 +0100
+Subject: [PATCH] dracut.spec: remove unnecessary dependencies
+
+Since the initramfs generation is done in %postrans of the kernel rpm,
+we can drop all hard requirements.
+
+Also make some requirements a conflict to express the version
+dependency.
+---
+ dracut.spec | 24 ++----------------------
+ 1 files changed, 2 insertions(+), 22 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index 91b62ee..1c50f37 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -68,17 +68,15 @@ Requires: filesystem >= 2.1.0
+ Requires: findutils
+ Requires: grep
+ Requires: gzip
+-Requires: kbd
+ Requires: mktemp >= 1.5-5
+ Requires: module-init-tools >= 3.7-9
+ Requires: sed
+-Requires: tar
+ Requires: udev
+ Requires: util-linux >= 2.20
+
+ %if 0%{?fedora} || 0%{?rhel} > 6
+-Requires: initscripts >= 8.63-1
+-Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
++Conflicts: initscripts < 8.63-1
++Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
+ %endif
+
+ %description
+@@ -91,24 +89,6 @@ NFS, iSCSI, NBD, FCoE with the dracut-network package.
+ %package network
+ Summary: Dracut modules to build a dracut initramfs with network support
+ Requires: %{name} = %{version}-%{release}
+-Requires: rpcbind
+-%if %{with_nbd}
+-Requires: nbd
+-%endif
+-Requires: iproute
+-Requires: bridge-utils
+-
+-%if 0%{?fedora} || 0%{?rhel} > 6
+-Requires: iscsi-initiator-utils
+-Requires: nfs-utils
+-Requires: dhclient
+-%endif
+-
+-%if 0%{?suse_version}
+-Requires: dhcp-client
+-Requires: nfs-client
+-Requires: vlan
+-%endif
+ Obsoletes: dracut-generic < 008
+ Provides: dracut-generic = %{version}-%{release}
+
diff --git a/0006-TEST-12-RAID-DEG-mkdir-run.patch b/0006-TEST-12-RAID-DEG-mkdir-run.patch
new file mode 100644
index 0000000..00dac18
--- /dev/null
+++ b/0006-TEST-12-RAID-DEG-mkdir-run.patch
@@ -0,0 +1,21 @@
+From 5112bfc8ccd01dee3ef97c6e6ce2e78d709e201f Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 15 Dec 2011 13:42:16 +0100
+Subject: [PATCH] TEST-12-RAID-DEG: mkdir /run
+
+---
+ test/TEST-12-RAID-DEG/create-root.sh | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
+index 47eb961..7be4a32 100755
+--- a/test/TEST-12-RAID-DEG/create-root.sh
++++ b/test/TEST-12-RAID-DEG/create-root.sh
+@@ -28,6 +28,7 @@ mke2fs -L root /dev/dracut/root && \
+ mkdir -p /sysroot && \
+ mount /dev/dracut/root /sysroot && \
+ cp -a -t /sysroot /source/* && \
++mkdir /sysroot/run && \
+ umount /sysroot && \
+ lvm lvchange -a n /dev/dracut/root && \
+ cryptsetup luksClose /dev/mapper/dracut_crypt_test && \
diff --git a/0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch b/0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch
new file mode 100644
index 0000000..439ee69
--- /dev/null
+++ b/0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch
@@ -0,0 +1,127 @@
+From bb61d657c1ff11c4339a777e1fcf57173783bf7d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 15 Dec 2011 14:37:34 +0100
+Subject: [PATCH] 99base/dracut-lib.sh: added inst_mount_hook add_mount_point
+
+inst_mount_hook <mountpoint> <prio> <name> <script>
+
+Install a mount hook with priority <prio>,
+which executes <script> as soon as <mountpoint> is mounted.
+
+add_mount_point <dev> <mountpoint> <filesystem> <fsopts>
+
+Mount <dev> on <mountpoint> with <filesystem> and <fsopts>
+and call any mount hooks, as soon, as it is mounted
+---
+ modules.d/99base/dracut-lib.sh | 91 ++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 91 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index c881869..9eae4d9 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -602,6 +602,92 @@ usable_root() {
+ return 0
+ }
+
++inst_hook() {
++ local _hookname _unique _name _job _exe
++ while [ $# -gt 0 ]; do
++ case "$1" in
++ --hook)
++ _hookname="/$2";shift;;
++ --unique)
++ _unique="yes";;
++ --name)
++ _name="$2";shift;;
++ *)
++ break;;
++ esac
++ shift
++ done
++
++ if [ -z "$_unique" ]; then
++ _job="${_name}$$"
++ else
++ _job="${_name:-$1}"
++ _job=${_job##*/}
++ fi
++
++ _exe=$1
++ shift
++
++ [ -x "$_exe" ] || _exe=$(command -v $_exe)
++
++ if [ -n "$onetime" ]; then
++ {
++ echo '[ -e "$_job" ] && rm "$_job"'
++ echo "$_exe $@"
++ } > "/tmp/$$-${_job}.sh"
++ else
++ echo "$_exe $@" > "/tmp/$$-${_job}.sh"
++ fi
++
++ mv -f "/tmp/$$-${_job}.sh" "$hookdir/${_hookname}/${_job}.sh"
++}
++
++# inst_mount_hook <mountpoint> <prio> <name> <script>
++#
++# Install a mount hook with priority <prio>,
++# which executes <script> as soon as <mountpoint> is mounted.
++inst_mount_hook() {
++ local _prio="$2" _jobname="$3" _script="$4"
++ local _hookname="mount-$(str_replace "$1" '/' '\\x2f')"
++ [ -d "$hookdir/${_hookname}" ] || mkdir -p "$hookdir/${_hookname}"
++ inst_hook --hook "$_hookname" --unique --name "${_prio}-${_jobname}" "$_script"
++}
++
++# add_mount_point <dev> <mountpoint> <filesystem> <fsopts>
++#
++# Mount <dev> on <mountpoint> with <filesystem> and <fsopts>
++# and call any mount hooks, as soon, as it is mounted
++add_mount_point() {
++ local _dev="$1" _mp="$2" _fs="$3" _fsopts="$4"
++ local _hookname="mount-$(str_replace "$2" '/' '\\x2f')"
++ local _devname="dev-$(str_replace "$1" '/' '\\x2f')"
++ echo "$_dev $_mp $_fs $_fsopts 0 0" >> /etc/fstab
++
++ exec 7>/etc/udev/rules.d/99-mount-${_devname}.rules
++ echo 'SUBSYSTEM!="block", GOTO="mount_end"' >&7
++ echo 'ACTION!="add|change", GOTO="mount_end"' >&7
++ if [ -n "$_dev" ]; then
++ udevmatch "$_dev" >&7 || {
++ warn "add_mount_point dev=$_dev incorrect!"
++ continue
++ }
++ printf ', ' >&7
++ fi
++
++ {
++ printf -- 'RUN+="%s --unique --onetime ' $(command -v initqueue)
++ printf -- '--name mount-%%k '
++ printf -- '%s %s"\n' "$(command -v mount_hook)" "${_mp}"
++ } >&7
++ echo 'LABEL="mount_end"' >&7
++ exec 7>&-
++}
++
++# wait_for_mount <mountpoint>
++#
++# Installs a initqueue-finished script,
++# which will cause the main loop only to exit,
++# if <mountpoint> is mounted.
+ wait_for_mount()
+ {
+ local _name
+@@ -614,6 +700,11 @@ wait_for_mount()
+ } >> "$hookdir/emergency/90-${_name}.sh"
+ }
+
++# wait_for_dev <dev>
++#
++# Installs a initqueue-finished script,
++# which will cause the main loop only to exit,
++# if the device <dev> is recognized by the system.
+ wait_for_dev()
+ {
+ local _name
diff --git a/0008-dracut-add-add-fstab-and-mount-option.patch b/0008-dracut-add-add-fstab-and-mount-option.patch
new file mode 100644
index 0000000..42fe2ef
--- /dev/null
+++ b/0008-dracut-add-add-fstab-and-mount-option.patch
@@ -0,0 +1,106 @@
+From 70cb8a686f710b237c6f7c7524b47d2649f6751a Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 15 Dec 2011 14:36:37 +0100
+Subject: [PATCH] dracut: add --add-fstab and --mount option
+
+--add-fstab [FILE] Add file to the initramfs fstab
+--mount "[DEV] [MP] [FSTYPE] [FSOPTS]"
+ Mount device [DEV] on mountpoint [MP] with filesystem
+ [FSTYPE] and options [FSOPTS] in the initramfs
+---
+ dracut | 40 ++++++++++++++++++++++++++++++++++++
+ modules.d/95fstab-sys/mount-sys.sh | 4 +-
+ 2 files changed, 42 insertions(+), 2 deletions(-)
+
+diff --git a/dracut b/dracut
+index 46694f8..8449fc1 100755
+--- a/dracut
++++ b/dracut
+@@ -85,6 +85,10 @@ Creates initial ramdisk images for preloading modules
+ -H, --hostonly Host-Only mode: Install only what is needed for
+ booting the local host instead of a generic host.
+ --fstab Use /etc/fstab to determine the root device.
++ --add-fstab [FILE] Add file to the initramfs fstab
++ --mount "[DEV] [MP] [FSTYPE] [FSOPTS]"
++ Mount device [DEV] on mountpoint [MP] with filesystem
++ [FSTYPE] and options [FSOPTS] in the initramfs
+ -i, --include [SOURCE] [TARGET]
+ Include the files in the SOURCE directory into the
+ Target directory in the final initramfs.
+@@ -207,6 +211,8 @@ while (($# > 0)); do
+ -I|--install) push_arg install_items_l "$@" || shift;;
+ --fwdir) push_arg fw_dir_l "$@" || shift;;
+ --fscks) push_arg fscks_l "$@" || shift;;
++ --add-fstab) push_arg add_fstab_l "$@" || shift;;
++ --mount) push_arg fstab_lines "$@" || shift;;
+ --nofscks) nofscks_l="yes";;
+ -k|--kmoddir) read_arg drivers_dir_l "$@" || shift;;
+ -c|--conf) read_arg conffile "$@" || shift;;
+@@ -332,6 +338,18 @@ if (( ${#fscks_l[@]} )); then
+ done
+ fi
+
++if (( ${#add_fstab_l[@]} )); then
++ while pop add_fstab_l val; do
++ add_fstab+=" $val "
++ done
++fi
++
++if (( ${#fstab_lines_l[@]} )); then
++ while pop fstab_lines_l val; do
++ push fstab_lines $val
++ done
++fi
++
+ if (( ${#install_items_l[@]} )); then
+ while pop install_items_l val; do
+ push install_items $val
+@@ -526,6 +544,21 @@ if [[ $hostonly ]]; then
+ return 1
+ )
+
++ for line in "${fstab_lines[@]}"; do
++ set -- $line
++ #dev mp fs fsopts
++ dev="$(get_maj_min $1)"
++ push host_devs "${dev:-$1}"
++ push host_fs_types "$dev|$3"
++ done
++
++ for f in $add_fstab; do
++ [ -e $f ] || continue
++ while read dev rest; do
++ push host_devs $dev
++ done < $f
++ done
++
+ push host_mp \
+ "/" \
+ "/etc" \
+@@ -668,6 +701,13 @@ while pop install_items items; do
+ done
+ unset item
+
++while pop fstab_lines line; do
++ echo "$line 0 0" >> "${initdir}/etc/fstab"
++done
++
++for f in $add_fstab; do
++ cat $f >> "${initdir}/etc/fstab"
++done
+
+ if [[ $kernel_only != yes ]]; then
+ # make sure that library links are correct and up to date
+diff --git a/modules.d/95fstab-sys/mount-sys.sh b/modules.d/95fstab-sys/mount-sys.sh
+index f44351d..a8fbd50 100755
+--- a/modules.d/95fstab-sys/mount-sys.sh
++++ b/modules.d/95fstab-sys/mount-sys.sh
+@@ -25,6 +25,6 @@ fstab_mount() {
+ return 0
+ }
+
+-for r in $NEWROOT /; do
+- fstab_mount "$r/etc/fstab.sys" && break
++for r in $NEWROOT/etc/fstab.sys /etc/fstab; do
++ fstab_mount $r && break
+ done
diff --git a/dracut.spec b/dracut.spec
index a2c2299..b47f89d 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -1,3 +1,5 @@
+%define dracutlibdir %{_prefix}/lib/dracut
+
# Variables must be defined
%define with_nbd 1
@@ -7,8 +9,8 @@
%endif
Name: dracut
-Version: 013
-Release: 100.git20111021%{?dist}
+Version: 014
+Release: 9.git20111215%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora} || 0%{?rhel} > 6
@@ -22,105 +24,14 @@ URL: https://dracut.wiki.kernel.org/
# Source can be generated by
# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2
-Patch1: 0001-add-x-bit-to-.sh.patch
-Patch2: 0002-90dmsquash-live-dmsquash-live-root-include-fs_lib.sh.patch
-Patch3: 0003-fix-live-crash-with-livenet-installed.patch
-Patch4: 0004-profile.py-parse-the-output-of-dracut-profile-for-pr.patch
-Patch5: 0005-add-TEST-16-DMSQUASH.patch
-Patch6: 0006-dracut-functions-s-emergency-shutdown-shutdown-emerg.patch
-Patch7: 0007-dracut-unset-LD_LIBRARY_PATH.patch
-Patch8: 0008-build-initramfs-prelink-undo-sbin.patch
-Patch9: 0009-dracut-functions-speed-up-inst_dir.patch
-Patch10: 0010-90crypt-ask_for_password-pings-plymouthd.patch
-Patch11: 0011-99base-whitespace-fix.patch
-Patch12: 0012-dracut-functions-new-function-inst_any-d-dest-f1-f2-.patch
-Patch13: 0013-livenet-take-into-account-other-ca-bundle-paths-use-.patch
-Patch14: 0014-luks-key-on-ext-dev-wait-for-luks.patch
-Patch15: 0015-crypt-changed-cmdline-arg-name-from-rd.luks.tout-to-.patch
-Patch16: 0016-luks-key-on-ext-dev-wait-for-luks.patch
-Patch17: 0017-dracut-functions-fix-inst_dir-for-non-absolute-dirs.patch
-Patch18: 0018-90mdraid-65-md-incremental-imsm.rules-incremental-ru.patch
-Patch19: 0019-dracut.spec-fixed-rhel-fedora-version-checks.patch
-Patch20: 0020-50plymouth-add-plymouth.enable-kernel-command-line-o.patch
-Patch21: 0021-99base-init-only-poll-cdroms-if-the-kernel-does-supp.patch
-Patch22: 0022-build-initramfs-unclear-_mpargs-in-instmods.patch
-Patch23: 0023-90crypt-parse-crypt.sh-also-accept-the-beginning-of-.patch
-Patch24: 0024-99base-init-save-and-restore-environment-given-from-.patch
-Patch25: 0025-99base-init-move-switch_root-breakpoint-to-a-later-p.patch
-Patch26: 0026-dracut-functions-hmac-checksum-files-can-be-symlinks.patch
-Patch27: 0027-95udev-rules-add-input_id.patch
-Patch28: 0028-inst_simple-inst_dir-make-fast-case-faster.patch
-Patch29: 0029-filter_kernel_modules-is-a-specialized-filter_kernel.patch
-Patch30: 0030-install_kmod_with_fw-make-fast-case-faster.patch
-Patch31: 0031-instmods-get-filenames-from-stdin-if-no-args-use-it.patch
-Patch32: 0032-instmods-sanity-for-_mpargs.patch
-Patch33: 0033-instmods-factor-out-egrep-of-FATAL-Module-.-not-foun.patch
-Patch34: 0034-99base-init-do-not-fail-when-importing-the-original-.patch
-Patch35: 0035-dracut-cp-with-sparse.patch
-Patch36: 0036-99base-init-removed-cdrom-polling-reset-code.patch
-Patch37: 0037-dmsquash-live-root-use-blkid-to-determine-fstype-of-.patch
-Patch38: 0038-dmsquash-live-root-load-filesystem-modules-before-mo.patch
-Patch39: 0039-90dmsquash-live-do-not-symlink-to-dev-live.patch
-Patch40: 0040-99base-init-remove-dev-root-helper-symlink.patch
-Patch41: 0041-Do-not-use-run-udev-rules.d-for-udev-rules.patch
-Patch42: 0042-99base-init-mount-securityfs-with-source-securityfs-.patch
-Patch43: 0043-mount-securityfs-in-a-seperate-dracut-module.patch
-Patch44: 0044-mount-securityfs-in-a-seperate-dracut-module.patch
-Patch45: 0045-90mdraid-adjust-stock-mdadm-udev-rules.patch
-Patch46: 0046-90mdraid-containers-are-not-runnable.patch
-Patch47: 0047-90mdraid-fix-adjust-mdraid-cleanup.patch
-Patch48: 0048-90mdraid-fix-adjust-force-run-script.patch
-Patch49: 0049-90-md-dm-raid-recognize-ddf-container.patch
-Patch50: 0050-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch
-Patch51: 0051-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch
-Patch52: 0052-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch
-Patch53: 0053-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch
-Patch54: 0054-str_replace-fix.patch
-Patch55: 0055-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch
-Patch56: 0056-dracut-create-dev-besides-proc-sys-and-so.patch
-Patch57: 0057-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch
-Patch58: 0058-dracut-functions-inst_rules-add-missing.patch
-Patch59: 0059-90mdraid-check-precisely-for-supported-contaiers.patch
-Patch60: 0060-90mdraid-more-thorough-64-md-raid.rules-edit.patch
-Patch61: 0061-90mdraid-adjust-dev-md-loops.patch
-Patch62: 0062-dracut-PATCH-Parameter-expansion-occurs-before-comma.patch
-Patch63: 0063-dracut-PATCH-es-parallelize-block_module-filter-and-.patch
-Patch64: 0064-order-mdadm-and-lvm-timeout-operations.patch
-Patch65: 0065-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch
-Patch66: 0066-90mdraid-module-setup.sh-fixed-sed-arguments.patch
-Patch67: 0067-95udev-rules-module-setup.sh-also-search-in-lib-udev.patch
-Patch68: 0068-update-the-documentation-of-no-prefix.patch
-Patch69: 0069-dracut-check-mktemp-return-value.patch
-Patch70: 0070-convert_abs_rel-fixups.patch
-Patch71: 0071-dracut.8-add-missing-lvmconf-info.patch
-Patch72: 0072-fs-lib-add-ability-to-choose-fsck-tools.patch
-Patch73: 0073-manuals-add-info-about-fs-lib-fsck-configuration.patch
-Patch74: 0074-dracut-functions-conv-normalize-minor-corrections.patch
-Patch75: 0075-dracut.-.xml-s-exisiting-existing-g.patch
-Patch76: 0076-95udev-rules-module-setup.s-fixed-symlink-for-udevd-.patch
-Patch77: 0077-dracut.conf.5.xml-tag-mismatch-fix.patch
-Patch78: 0078-bash3-compat-patch.patch
-Patch79: 0079-explicitly-verify-bash-version.patch
-Patch80: 0080-dracut-remove-duplicate-options.patch
-Patch81: 0081-dracut-lib.sh-fix-dropped-backslashes-in-CMDLINE.patch
-Patch82: 0082-dmsquash-live-fix-log-message-about-root-liveroot.patch
-Patch83: 0083-check-root-candidates-more-carefully.patch
-Patch84: 0084-netroot-do-not-die-if-arping-failed.patch
-Patch85: 0085-95udev-rules-module-setup.sh-correctly-create-udevd-.patch
-Patch86: 0086-module-setup.sh-turn-off-debugging-for-module-search.patch
-Patch87: 0087-99base-init-fix-check-for-in-kernel-polling.patch
-Patch88: 0088-99base-dracut-lib.sh-add-etc-cmdline-.conf-parsing.patch
-Patch89: 0089-minor-changes.patch
-Patch90: 0090-90livenet-check-for-wget.patch
-Patch91: 0091-dracut-logger-re-set-debugging.patch
-Patch92: 0092-dracut-functions-inst_dir-handle-relative-symlinks.patch
-Patch93: 0093-90livenet-module-setup.sh-silence-check-for-wget.patch
-Patch94: 0094-90dmsquash-live-do-not-install-by-default.patch
-Patch95: 0095-90livenet-do-not-install-by-default.patch
-Patch96: 0096-dracut-functions-do-not-install-files-from-current-d.patch
-Patch97: 0097-dracut-functions-inst_script-call-inst_binary-with-f.patch
-Patch98: 0098-dracut.spec-apply-patches-with-git.patch
-Patch99: 0099-dracut.spec-require-new-util-linux-version-with-new-.patch
+Patch1: 0001-dracut-export-host_fs_types-host_devs.patch
+Patch2: 0002-module-setup.sh-use-host_fs_types-host_devs.patch
+Patch3: 0003-95iscsi-iscsiroot-unset-used-variables-before-starti.patch
+Patch4: 0004-99base-dracut-lib.sh-killproc-prefix-local-variables.patch
+Patch5: 0005-dracut.spec-remove-unnecessary-dependencies.patch
+Patch6: 0006-TEST-12-RAID-DEG-mkdir-run.patch
+Patch7: 0007-99base-dracut-lib.sh-added-inst_mount_hook-add_mount.patch
+Patch8: 0008-dracut-add-add-fstab-and-mount-option.patch
BuildArch: noarch
@@ -166,17 +77,15 @@ Requires: filesystem >= 2.1.0
Requires: findutils
Requires: grep
Requires: gzip
-Requires: kbd
Requires: mktemp >= 1.5-5
Requires: module-init-tools >= 3.7-9
Requires: sed
-Requires: tar
Requires: udev
Requires: util-linux >= 2.20
%if 0%{?fedora} || 0%{?rhel} > 6
-Requires: initscripts >= 8.63-1
-Requires: plymouth >= 0.8.0-0.2009.29.09.19.1
+Conflicts: initscripts < 8.63-1
+Conflicts: plymouth < 0.8.0-0.2009.29.09.19.1
%endif
%description
@@ -189,24 +98,6 @@ NFS, iSCSI, NBD, FCoE with the dracut-network package.
%package network
Summary: Dracut modules to build a dracut initramfs with network support
Requires: %{name} = %{version}-%{release}
-Requires: rpcbind
-%if %{with_nbd}
-Requires: nbd
-%endif
-Requires: iproute
-Requires: bridge-utils
-
-%if 0%{?fedora} || 0%{?rhel} > 6
-Requires: iscsi-initiator-utils
-Requires: nfs-utils
-Requires: dhclient
-%endif
-
-%if 0%{?suse_version}
-Requires: dhcp-client
-Requires: nfs-client
-Requires: vlan
-%endif
Obsoletes: dracut-generic < 008
Provides: dracut-generic = %{version}-%{release}
@@ -232,6 +123,15 @@ This package requires everything which is needed to build an
all purpose initramfs with dracut, which does an integrity check.
%endif
+%package fips-aesni
+Summary: Dracut modules to build a dracut initramfs with an integrity check with aesni-intel
+Requires: %{name}-fips = %{version}-%{release}
+
+%description fips-aesni
+This package requires everything which is needed to build an
+all purpose initramfs with dracut, which does an integrity check
+and adds the aesni-intel kernel module.
+
%package caps
Summary: Dracut modules to build a dracut initramfs which drops capabilities
Requires: %{name} = %{version}-%{release}
@@ -250,6 +150,8 @@ This package contains tools to assemble the local initrd and host configuration.
%prep
%setup -q -n %{name}-%{version}
+
+%if %{defined PATCH1}
git init
git config user.email "dracut-maint at redhat.com"
git config user.name "Fedora dracut team"
@@ -258,6 +160,7 @@ git commit -a -q -m "%{version} baseline."
# Apply all the patches.
git am -p1 %{patches}
+%endif
%build
make
@@ -266,17 +169,20 @@ make
%if 0%{?fedora} || 0%{?rhel} > 6
rm -rf $RPM_BUILD_ROOT
%endif
-make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \
+make install DESTDIR=$RPM_BUILD_ROOT \
+ libdir=%{_prefix}/lib \
+ bindir=%{_bindir} \
sysconfdir=/etc mandir=%{_mandir}
-echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/10rpmversion/dracut-version
+echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/10rpmversion/dracut-version
%if 0%{?fedora} == 0 && 0%{?rhel} == 0
-rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/01fips
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni
%endif
# remove gentoo specific modules
-rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/50gensplash
+rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash
mkdir -p $RPM_BUILD_ROOT/boot/dracut
mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay
@@ -294,8 +200,8 @@ install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT/etc/dracut.con
%endif
%if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999
-rm $RPM_BUILD_ROOT/sbin/mkinitrd
-rm $RPM_BUILD_ROOT/sbin/lsinitrd
+rm $RPM_BUILD_ROOT%{_bindir}/mkinitrd
+rm $RPM_BUILD_ROOT%{_bindir}/lsinitrd
%endif
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
@@ -307,15 +213,15 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,0755)
%doc README HACKING TODO COPYING AUTHORS NEWS dracut.html dracut.png dracut.svg
-/sbin/dracut
+%{_bindir}/dracut
%if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999
-/sbin/mkinitrd
-/sbin/lsinitrd
+%{_bindir}/mkinitrd
+%{_bindir}/lsinitrd
%endif
-%dir %{_datadir}/dracut
-%dir %{_datadir}/dracut/modules.d
-%{_datadir}/dracut/dracut-functions
-%{_datadir}/dracut/dracut-logger
+%dir %{dracutlibdir}
+%dir %{dracutlibdir}/modules.d
+%{dracutlibdir}/dracut-functions
+%{dracutlibdir}/dracut-logger
%config(noreplace) /etc/dracut.conf
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} > 6
%config /etc/dracut.conf.d/01-dist.conf
@@ -323,80 +229,90 @@ rm -rf $RPM_BUILD_ROOT
%dir /etc/dracut.conf.d
%{_mandir}/man8/dracut.8*
%{_mandir}/man7/dracut.kernel.7*
+%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man5/dracut.conf.5*
-%{_datadir}/dracut/modules.d/00bootchart
-%{_datadir}/dracut/modules.d/00dash
-%{_datadir}/dracut/modules.d/05busybox
-%{_datadir}/dracut/modules.d/10i18n
-%{_datadir}/dracut/modules.d/10rpmversion
-%{_datadir}/dracut/modules.d/50plymouth
-%{_datadir}/dracut/modules.d/60xen
-%{_datadir}/dracut/modules.d/90btrfs
-%{_datadir}/dracut/modules.d/90crypt
-%{_datadir}/dracut/modules.d/90dm
-%{_datadir}/dracut/modules.d/90dmraid
-%{_datadir}/dracut/modules.d/90dmsquash-live
-%{_datadir}/dracut/modules.d/90kernel-modules
-%{_datadir}/dracut/modules.d/90lvm
-%{_datadir}/dracut/modules.d/90mdraid
-%{_datadir}/dracut/modules.d/90multipath
-%{_datadir}/dracut/modules.d/91crypt-gpg
-%{_datadir}/dracut/modules.d/95debug
-%{_datadir}/dracut/modules.d/95resume
-%{_datadir}/dracut/modules.d/95rootfs-block
-%{_datadir}/dracut/modules.d/95dasd
-%{_datadir}/dracut/modules.d/95dasd_mod
-%{_datadir}/dracut/modules.d/95fstab-sys
-%{_datadir}/dracut/modules.d/95zfcp
-%{_datadir}/dracut/modules.d/95terminfo
-%{_datadir}/dracut/modules.d/95udev-rules
-%{_datadir}/dracut/modules.d/96securityfs
-%{_datadir}/dracut/modules.d/97biosdevname
-%{_datadir}/dracut/modules.d/97masterkey
-%{_datadir}/dracut/modules.d/98ecryptfs
-%{_datadir}/dracut/modules.d/98integrity
-%{_datadir}/dracut/modules.d/98selinux
-%{_datadir}/dracut/modules.d/98syslog
-%{_datadir}/dracut/modules.d/99base
-%{_datadir}/dracut/modules.d/99fs-lib
-%{_datadir}/dracut/modules.d/99shutdown
+%{dracutlibdir}/modules.d/00bootchart
+%{dracutlibdir}/modules.d/00dash
+%{dracutlibdir}/modules.d/05busybox
+%{dracutlibdir}/modules.d/10i18n
+%{dracutlibdir}/modules.d/10rpmversion
+%{dracutlibdir}/modules.d/50plymouth
+%{dracutlibdir}/modules.d/90btrfs
+%{dracutlibdir}/modules.d/90crypt
+%{dracutlibdir}/modules.d/90dm
+%{dracutlibdir}/modules.d/90dmraid
+%{dracutlibdir}/modules.d/90dmsquash-live
+%{dracutlibdir}/modules.d/90kernel-modules
+%{dracutlibdir}/modules.d/90lvm
+%{dracutlibdir}/modules.d/90mdraid
+%{dracutlibdir}/modules.d/90multipath
+%{dracutlibdir}/modules.d/91crypt-gpg
+%{dracutlibdir}/modules.d/95debug
+%{dracutlibdir}/modules.d/95resume
+%{dracutlibdir}/modules.d/95rootfs-block
+%{dracutlibdir}/modules.d/95dasd
+%{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95fstab-sys
+%{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95terminfo
+%{dracutlibdir}/modules.d/95udev-rules
+%{dracutlibdir}/modules.d/96securityfs
+%{dracutlibdir}/modules.d/97biosdevname
+%{dracutlibdir}/modules.d/97masterkey
+%{dracutlibdir}/modules.d/98ecryptfs
+%{dracutlibdir}/modules.d/98integrity
+%{dracutlibdir}/modules.d/98selinux
+%{dracutlibdir}/modules.d/98syslog
+%{dracutlibdir}/modules.d/98usrmount
+%{dracutlibdir}/modules.d/99base
+%{dracutlibdir}/modules.d/99fs-lib
+%{dracutlibdir}/modules.d/99shutdown
%config(noreplace) /etc/logrotate.d/dracut_log
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
%dir %{_sharedstatedir}/initramfs
%files network
%defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/40network
-%{_datadir}/dracut/modules.d/95fcoe
-%{_datadir}/dracut/modules.d/95iscsi
-%{_datadir}/dracut/modules.d/90livenet
-%{_datadir}/dracut/modules.d/95nbd
-%{_datadir}/dracut/modules.d/95nfs
-%{_datadir}/dracut/modules.d/45ifcfg
-%{_datadir}/dracut/modules.d/95znet
+%{dracutlibdir}/modules.d/40network
+%{dracutlibdir}/modules.d/95fcoe
+%{dracutlibdir}/modules.d/95iscsi
+%{dracutlibdir}/modules.d/90livenet
+%{dracutlibdir}/modules.d/95nbd
+%{dracutlibdir}/modules.d/95nfs
+%{dracutlibdir}/modules.d/45ifcfg
+%{dracutlibdir}/modules.d/95znet
%if 0%{?fedora} || 0%{?rhel} > 6
%files fips
%defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/01fips
+%{dracutlibdir}/modules.d/01fips
%config(noreplace) /etc/dracut.conf.d/40-fips.conf
%endif
+%files fips-aesni
+%defattr(-,root,root,0755)
+%doc COPYING
+%{dracutlibdir}/modules.d/02fips-aesni
+
%files caps
%defattr(-,root,root,0755)
-%{_datadir}/dracut/modules.d/02caps
+%{dracutlibdir}/modules.d/02caps
%files tools
%defattr(-,root,root,0755)
%{_mandir}/man8/dracut-gencmdline.8*
%{_mandir}/man8/dracut-catimages.8*
-/sbin/dracut-gencmdline
-/sbin/dracut-catimages
+%{_bindir}/dracut-gencmdline
+%{_bindir}/dracut-catimages
%dir /boot/dracut
%dir /var/lib/dracut
%dir /var/lib/dracut/overlay
%changelog
+* Thu Dec 15 2011 Harald Hoyer <harald at redhat.com> 014-9.git20111215
+- update to latest git
+- lots of patch changes
+
* Fri Oct 21 2011 Harald Hoyer <harald at redhat.com> 013-100.git20111021
- update to latest git
diff --git a/sources b/sources
index 38787e2..974a7af 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-9dc9a2799aa8ac2fe8c4844706de2783 dracut-013.tar.bz2
+aa17c17e2af7a19a232e05a59831eab5 dracut-014.tar.bz2
More information about the scm-commits
mailing list