diff --git a/0045-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch b/0045-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch deleted file mode 100644 index 0d7b94f..0000000 --- a/0045-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 96dd416ac2ea8ea0f5bbbdce2abafbbce84f0ad6 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 22 May 2013 13:56:58 -0700 -Subject: [PATCH 45/45] don't specify "p" as a separator for dmraid arrays - (RHBZ #966162) - -As per RHBZ #966162, parted stopped unconditionally using "p" as a -separator for dmraid device names in version 3.1, so other things need -to fall in line with that convention now. ---- - modules.d/90dmraid/dmraid.sh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh -index 68e0515..3753ddd 100755 ---- a/modules.d/90dmraid/dmraid.sh -+++ b/modules.d/90dmraid/dmraid.sh -@@ -28,7 +28,7 @@ if [ -n "$DM_RAIDS" ] || getargbool 0 rd.auto; then - if [ "${s##$r}" != "$s" ]; then - info "Activating $s" - dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo -- [ -e "/dev/mapper/$s" ] && kpartx -a -p p "/dev/mapper/$s" 2>&1 | vinfo -+ [ -e "/dev/mapper/$s" ] && kpartx -a "/dev/mapper/$s" 2>&1 | vinfo - udevsettle - fi - done -@@ -38,7 +38,7 @@ if [ -n "$DM_RAIDS" ] || getargbool 0 rd.auto; then - for s in $SETS; do - info "Activating $s" - dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo -- [ -e "/dev/mapper/$s" ] && kpartx -a -p p "/dev/mapper/$s" 2>&1 | vinfo -+ [ -e "/dev/mapper/$s" ] && kpartx -a "/dev/mapper/$s" 2>&1 | vinfo - done - fi - --- -1.8.2.1 - diff --git a/0045-usrmount-Fix-miss-detection-of-btrfs-subvolumes.patch b/0045-usrmount-Fix-miss-detection-of-btrfs-subvolumes.patch new file mode 100644 index 0000000..1521d6e --- /dev/null +++ b/0045-usrmount-Fix-miss-detection-of-btrfs-subvolumes.patch @@ -0,0 +1,35 @@ +From d57b8833c43d297004d8393d8e54a2ab2655a899 Mon Sep 17 00:00:00 2001 +From: Colin Guthrie +Date: Fri, 3 May 2013 17:16:05 +0100 +Subject: [PATCH] usrmount: Fix miss-detection of btrfs subvolumes. + +This causes the root FS options to be incorrectly applied to to /usr +In some cases this can cause boot failure e.g. due to and XFS /usr +not supporting the 'acl' option from the ext4 root FS. + +https://bugs.mageia.org/show_bug.cgi?id=9884 +--- + modules.d/98usrmount/mount-usr.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh +index a4a66ae..de7dcc2 100755 +--- a/modules.d/98usrmount/mount-usr.sh ++++ b/modules.d/98usrmount/mount-usr.sh +@@ -61,14 +61,14 @@ mount_usr() + LABEL=*) + _dev="$(echo $_dev | sed 's,/,\\x2f,g')" + _dev="/dev/disk/by-label/${_dev#LABEL=}" +- ;; ++ ;; + UUID=*) + _dev="${_dev#block:}" + _dev="/dev/disk/by-uuid/${_dev#UUID=}" + ;; + esac + if strstr "$_opts" "subvol=" && \ +- [ "${root#block:}" -ef $_dev ] ++ [ "${root#block:}" -ef $_dev ] && \ + [ -n "$rflags" ]; then + # for btrfs subvolumes we have to mount /usr with the same rflags + rflags=$(filtersubvol "$rflags") diff --git a/0046-dracut.sh-degrade-message-about-missing-tools-for-st.patch b/0046-dracut.sh-degrade-message-about-missing-tools-for-st.patch new file mode 100644 index 0000000..63cbb9e --- /dev/null +++ b/0046-dracut.sh-degrade-message-about-missing-tools-for-st.patch @@ -0,0 +1,25 @@ +From fefd3f66f9802f3309c44f45e4959e5fa6683a07 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Mon, 6 May 2013 14:06:29 +0200 +Subject: [PATCH] dracut.sh: degrade message about missing tools for stripping + +warning -> info + +https://bugzilla.redhat.com/show_bug.cgi?id=958519 +--- + dracut.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index 5f0a1b3..88b0645 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1162,7 +1162,7 @@ fi + if [[ $do_strip = yes ]] ; then + for p in strip xargs find; do + if ! type -P $p >/dev/null; then +- dwarn "Could not find '$p'. Not stripping the initramfs." ++ dinfo "Could not find '$p'. Not stripping the initramfs." + do_strip=no + fi + done diff --git a/0047-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch b/0047-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch new file mode 100644 index 0000000..85eeca9 --- /dev/null +++ b/0047-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch @@ -0,0 +1,35 @@ +From 8d7c07f191524f2ac59e3083910db985fa4bbcd5 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Wed, 22 May 2013 13:56:58 -0700 +Subject: [PATCH] don't specify "p" as a separator for dmraid arrays (RHBZ + #966162) + +As per RHBZ #966162, parted stopped unconditionally using "p" as a +separator for dmraid device names in version 3.1, so other things need +to fall in line with that convention now. +--- + modules.d/90dmraid/dmraid.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90dmraid/dmraid.sh b/modules.d/90dmraid/dmraid.sh +index 68e0515..3753ddd 100755 +--- a/modules.d/90dmraid/dmraid.sh ++++ b/modules.d/90dmraid/dmraid.sh +@@ -28,7 +28,7 @@ if [ -n "$DM_RAIDS" ] || getargbool 0 rd.auto; then + if [ "${s##$r}" != "$s" ]; then + info "Activating $s" + dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo +- [ -e "/dev/mapper/$s" ] && kpartx -a -p p "/dev/mapper/$s" 2>&1 | vinfo ++ [ -e "/dev/mapper/$s" ] && kpartx -a "/dev/mapper/$s" 2>&1 | vinfo + udevsettle + fi + done +@@ -38,7 +38,7 @@ if [ -n "$DM_RAIDS" ] || getargbool 0 rd.auto; then + for s in $SETS; do + info "Activating $s" + dmraid -ay -i -p --rm_partitions "$s" 2>&1 | vinfo +- [ -e "/dev/mapper/$s" ] && kpartx -a -p p "/dev/mapper/$s" 2>&1 | vinfo ++ [ -e "/dev/mapper/$s" ] && kpartx -a "/dev/mapper/$s" 2>&1 | vinfo + done + fi + diff --git a/0048-systemd-set-environment-vars-DRACUT_SYSTEMD-NEWROOT-.patch b/0048-systemd-set-environment-vars-DRACUT_SYSTEMD-NEWROOT-.patch new file mode 100644 index 0000000..f42ecba --- /dev/null +++ b/0048-systemd-set-environment-vars-DRACUT_SYSTEMD-NEWROOT-.patch @@ -0,0 +1,163 @@ +From 780cb337416a21b000353d1f2dbb362690265b3b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 12:50:57 +0200 +Subject: [PATCH] systemd: set environment vars DRACUT_SYSTEMD, NEWROOT in + service file + +--- + modules.d/98systemd/dracut-cmdline.service | 2 ++ + modules.d/98systemd/dracut-cmdline.sh | 2 -- + modules.d/98systemd/dracut-emergency.service | 2 ++ + modules.d/98systemd/dracut-initqueue.service | 2 ++ + modules.d/98systemd/dracut-mount.service | 2 ++ + modules.d/98systemd/dracut-pre-mount.service | 2 ++ + modules.d/98systemd/dracut-pre-pivot.service | 2 ++ + modules.d/98systemd/dracut-pre-trigger.service | 2 ++ + modules.d/98systemd/dracut-pre-udev.service | 2 ++ + modules.d/98systemd/emergency.service | 2 ++ + modules.d/98systemd/rescue.service | 2 ++ + 11 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/modules.d/98systemd/dracut-cmdline.service b/modules.d/98systemd/dracut-cmdline.service +index 33a37f9..07f6939 100644 +--- a/modules.d/98systemd/dracut-cmdline.service ++++ b/modules.d/98systemd/dracut-cmdline.service +@@ -23,6 +23,8 @@ ConditionKernelCommandLine=|resume + ConditionKernelCommandLine=|noresume + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-cmdline + StandardInput=null +diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh +index ad51142..a6738bd 100755 +--- a/modules.d/98systemd/dracut-cmdline.sh ++++ b/modules.d/98systemd/dracut-cmdline.sh +@@ -2,8 +2,6 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + +-export DRACUT_SYSTEMD=1 +-export NEWROOT="/sysroot" + [ -d $NEWROOT ] || mkdir -p -m 0755 $NEWROOT + [ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs + [ -d /run/lock ] || mkdir -p -m 0755 /run/lock +diff --git a/modules.d/98systemd/dracut-emergency.service b/modules.d/98systemd/dracut-emergency.service +index 153931b..12eef6c 100644 +--- a/modules.d/98systemd/dracut-emergency.service ++++ b/modules.d/98systemd/dracut-emergency.service +@@ -16,6 +16,8 @@ Conflicts=emergency.service emergency.target + + [Service] + Environment=HOME=/ ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + WorkingDirectory=/ + ExecStart=/bin/dracut-emergency + ExecStopPost=-/bin/rm -f /.console_lock +diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service +index c19cfea..f4c1dd4 100644 +--- a/modules.d/98systemd/dracut-initqueue.service ++++ b/modules.d/98systemd/dracut-initqueue.service +@@ -19,6 +19,8 @@ ConditionPathExistsGlob=|/lib/dracut/hooks/initqueue/*.sh + ConditionKernelCommandLine=|rd.break=pre-mount + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-initqueue + StandardInput=null +diff --git a/modules.d/98systemd/dracut-mount.service b/modules.d/98systemd/dracut-mount.service +index db18f86..20c633d 100644 +--- a/modules.d/98systemd/dracut-mount.service ++++ b/modules.d/98systemd/dracut-mount.service +@@ -17,6 +17,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/mount + ConditionKernelCommandLine=|rd.break=mount + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-mount + StandardInput=null +diff --git a/modules.d/98systemd/dracut-pre-mount.service b/modules.d/98systemd/dracut-pre-mount.service +index bec3c75..d7be48d 100644 +--- a/modules.d/98systemd/dracut-pre-mount.service ++++ b/modules.d/98systemd/dracut-pre-mount.service +@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-mount + ConditionKernelCommandLine=|rd.break=pre-mount + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-mount + StandardInput=null +diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service +index 9d0143c..36394aa 100644 +--- a/modules.d/98systemd/dracut-pre-pivot.service ++++ b/modules.d/98systemd/dracut-pre-pivot.service +@@ -18,6 +18,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-pivot + ConditionKernelCommandLine=|rd.break=pre-pivot + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-pivot + StandardInput=null +diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98systemd/dracut-pre-trigger.service +index e49e405..bb34196 100644 +--- a/modules.d/98systemd/dracut-pre-trigger.service ++++ b/modules.d/98systemd/dracut-pre-trigger.service +@@ -19,6 +19,8 @@ ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-trigger + ConditionKernelCommandLine=|rd.break=pre-trigger + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-trigger + StandardInput=null +diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98systemd/dracut-pre-udev.service +index b372373..d125b37 100644 +--- a/modules.d/98systemd/dracut-pre-udev.service ++++ b/modules.d/98systemd/dracut-pre-udev.service +@@ -22,6 +22,8 @@ ConditionKernelCommandLine=|rd.driver.pre + ConditionKernelCommandLine=|rd.driver.post + + [Service] ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + Type=oneshot + ExecStart=-/bin/dracut-pre-udev + StandardInput=null +diff --git a/modules.d/98systemd/emergency.service b/modules.d/98systemd/emergency.service +index a932739..35d9c31 100644 +--- a/modules.d/98systemd/emergency.service ++++ b/modules.d/98systemd/emergency.service +@@ -15,6 +15,8 @@ Wants=systemd-vconsole-setup.service + + [Service] + Environment=HOME=/ ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + WorkingDirectory=/ + ExecStart=/bin/dracut-emergency + ExecStopPost=-/usr/bin/systemctl --fail --no-block default +diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service +index b5fb663..62f2067 100644 +--- a/modules.d/98systemd/rescue.service ++++ b/modules.d/98systemd/rescue.service +@@ -13,6 +13,8 @@ DefaultDependencies=no + + [Service] + Environment=HOME=/ ++Environment=DRACUT_SYSTEMD=1 ++Environment=NEWROOT=/sysroot + WorkingDirectory=/ + ExecStartPre=-/bin/plymouth quit + ExecStart=-/bin/sh -i -l diff --git a/0049-don-t-add-volatile-swap-partitions-to-host_devs.patch b/0049-don-t-add-volatile-swap-partitions-to-host_devs.patch new file mode 100644 index 0000000..b88dbd5 --- /dev/null +++ b/0049-don-t-add-volatile-swap-partitions-to-host_devs.patch @@ -0,0 +1,68 @@ +From bcfbddefe13d179d553da77cf66ada5e6fd804c8 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 13:26:05 +0200 +Subject: [PATCH] don't add volatile swap partitions to host_devs + +--- + TODO | 1 + + dracut.sh | 17 ++++++++++++----- + 2 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/TODO b/TODO +index 9eeedfa..e275324 100644 +--- a/TODO ++++ b/TODO +@@ -22,6 +22,7 @@ INITRAMFS TODO + + GENERATOR TODO + ++- remove wait for swap devs, if no "resume=" is given on the kernel command line + - add presets (predefined set of modules) + - add interpreter/plugin-scripts to be sourced at the beginning or end (can use dracut-functions) + - add mechanism for module specific command line options +diff --git a/dracut.sh b/dracut.sh +index 88b0645..7481ac0 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -830,7 +830,7 @@ if [[ $hostonly ]]; then + # in hostonly mode, determine all devices, which have to be accessed + # and examine them for filesystem types + +- push host_mp \ ++ for mp in \ + "/" \ + "/etc" \ + "/usr" \ +@@ -838,9 +838,8 @@ if [[ $hostonly ]]; then + "/usr/sbin" \ + "/usr/lib" \ + "/usr/lib64" \ +- "/boot" +- +- for mp in "${host_mp[@]}"; do ++ "/boot"; ++ do + mountpoint "$mp" >/dev/null 2>&1 || continue + push host_devs $(readlink -f "/dev/block/$(find_block_device "$mp")") + done +@@ -856,11 +855,19 @@ if [[ $hostonly ]]; then + [[ "$_d" == UUID\=* ]] && _d="/dev/disk/by-uuid/${_d#UUID=}" + [[ "$_d" == LABEL\=* ]] && _d="/dev/disk/by-label/$_d#LABEL=}" + [[ "$_d" -ef "$dev" ]] || continue ++ ++ while read _mapper _a _p _o; do ++ [[ $_mapper = \#* ]] && continue ++ [[ "$_d" -ef /dev/mapper/"$_mapper" ]] || continue ++ [[ "$_o" ]] || _o="$_p" ++ # skip mkswap swap ++ [[ $_o == *swap* ]] && continue 2 ++ done < /etc/crypttab ++ + push host_devs $(readlink -f $dev) + break + done < /etc/fstab + done < /proc/swaps +- + fi + + _get_fs_type() ( diff --git a/0050-dracut-functions.sh-clarify-instmods-error-message.patch b/0050-dracut-functions.sh-clarify-instmods-error-message.patch new file mode 100644 index 0000000..2ee07dc --- /dev/null +++ b/0050-dracut-functions.sh-clarify-instmods-error-message.patch @@ -0,0 +1,31 @@ +From 19b5c10963e80cc6899ee4131474c1955754f8c6 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 14:25:49 +0200 +Subject: [PATCH] dracut-functions.sh: clarify instmods() error message + +--- + dracut-functions.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 96d3c6e..4a0e81a 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -1608,7 +1608,7 @@ instmods() { + while read _mod; do + inst1mod "${_mod%.ko*}" || { + if [[ "$_check" == "yes" ]]; then +- [[ "$_silent" == "no" ]] && dfatal "Failed to install $_mod" ++ [[ "$_silent" == "no" ]] && dfatal "Failed to install module $_mod" + return 1 + fi + } +@@ -1617,7 +1617,7 @@ instmods() { + while (($# > 0)); do # filenames as arguments + inst1mod ${1%.ko*} || { + if [[ "$_check" == "yes" ]]; then +- [[ "$_silent" == "no" ]] && dfatal "Failed to install $1" ++ [[ "$_silent" == "no" ]] && dfatal "Failed to install module $1" + return 1 + fi + } diff --git a/0051-01fips-module-setup.sh-add-libssl.so.10-to-make-kdum.patch b/0051-01fips-module-setup.sh-add-libssl.so.10-to-make-kdum.patch new file mode 100644 index 0000000..d6bde39 --- /dev/null +++ b/0051-01fips-module-setup.sh-add-libssl.so.10-to-make-kdum.patch @@ -0,0 +1,28 @@ +From 15b93069bba031169eeccb8b16fe0382a4bb2968 Mon Sep 17 00:00:00 2001 +From: Baoquan He +Date: Thu, 9 May 2013 16:38:53 +0800 +Subject: [PATCH] 01fips/module-setup.sh: add libssl.so.10 to make kdump work + with fips mode + +FIPS can work well in 1st kernel, but failed in kdump kernel. the +libssl.so.10 and related hmac file are needed. Now add it and it +works. + +Signed-off-by: Baoquan He +--- + modules.d/01fips/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh +index a7f5be8..6013318 100755 +--- a/modules.d/01fips/module-setup.sh ++++ b/modules.d/01fips/module-setup.sh +@@ -38,7 +38,7 @@ install() { + + inst_libdir_file libsoftokn3.so libsoftokn3.so \ + libsoftokn3.chk libfreebl3.so libfreebl3.chk \ +- libssl.so 'hmaccalc/sha512hmac.hmac' ++ libssl.so 'hmaccalc/sha512hmac.hmac' libssl.so.10 + + dracut_install -o prelink + } diff --git a/0052-Fix-parsing-command-line-arguments.patch b/0052-Fix-parsing-command-line-arguments.patch new file mode 100644 index 0000000..7312b85 --- /dev/null +++ b/0052-Fix-parsing-command-line-arguments.patch @@ -0,0 +1,24 @@ +From 6a736cc129ed29157a4e5460382d17154f8fc381 Mon Sep 17 00:00:00 2001 +From: Kamil Rytarowski +Date: Sat, 11 May 2013 11:39:46 +0200 +Subject: [PATCH] Fix parsing command line arguments + +Adjust correctly the *optstring argument of getopt_long. Add support +for a missing option -v|--verbose and drop unknown options -D, -I and -L. +--- + install/dracut-install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index b4bf681..584a30b 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -619,7 +619,7 @@ static int parse_argv(int argc, char *argv[]) + {NULL, 0, NULL, 0} + }; + +- while ((c = getopt_long(argc, argv, "adhloD:DHILR", options, NULL)) != -1) { ++ while ((c = getopt_long(argc, argv, "adhloD:HR", options, NULL)) != -1) { + switch (c) { + case ARG_VERSION: + puts(PROGRAM_VERSION_STRING); diff --git a/0053-Introduce-stricter-type-correctness.patch b/0053-Introduce-stricter-type-correctness.patch new file mode 100644 index 0000000..0e768a8 --- /dev/null +++ b/0053-Introduce-stricter-type-correctness.patch @@ -0,0 +1,53 @@ +From 599182b10870a826360091246f0a5f26c691f690 Mon Sep 17 00:00:00 2001 +From: Kamil Rytarowski +Date: Sat, 11 May 2013 17:06:45 +0200 +Subject: [PATCH] Introduce stricter type correctness + +--- + install/dracut-install.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 584a30b..33fad4a 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -80,9 +80,9 @@ static char *convert_abs_rel(const char *from, const char *target) + _cleanup_free_ char *realtarget = NULL; + _cleanup_free_ char *target_dir_p = NULL, *realpath_p = NULL; + const char *realfrom = from; +- int level = 0, fromlevel = 0, targetlevel = 0; +- int l, i, rl; +- int dirlen; ++ size_t level = 0, fromlevel = 0, targetlevel = 0; ++ int l; ++ size_t i, rl, dirlen; + + target_dir_p = strdup(target); + if (!target_dir_p) +@@ -215,7 +215,7 @@ static int cp(const char *src, const char *dst) + if (ret == 0) { + struct timeval tv[2]; + if (fchown(dest_desc, sb.st_uid, sb.st_gid) != 0) +- fchown(dest_desc, -1, sb.st_gid); ++ fchown(dest_desc, (__uid_t)-1, sb.st_gid); + tv[0].tv_sec = sb.st_atime; + tv[0].tv_usec = 0; + tv[1].tv_sec = sb.st_mtime; +@@ -297,7 +297,7 @@ static int resolve_deps(const char *src) + log_debug("ldd: '%s'", buf); + + if (strstr(buf, "you do not have execution permission")) { +- log_error(buf); ++ log_error("%s", buf); + ret+=1; + break; + } +@@ -670,7 +670,7 @@ static int parse_argv(int argc, char *argv[]) + static int resolve_lazy(int argc, char **argv) + { + int i; +- int destrootdirlen = strlen(destrootdir); ++ size_t destrootdirlen = strlen(destrootdir); + int ret = 0; + char *item; + for (i = 0; i < argc; i++) { diff --git a/0054-Use-consistiently-termination-code-macros.patch b/0054-Use-consistiently-termination-code-macros.patch new file mode 100644 index 0000000..689e4b6 --- /dev/null +++ b/0054-Use-consistiently-termination-code-macros.patch @@ -0,0 +1,34 @@ +From 8974102f6b4d59a29e01d080262cbbb0a08571d3 Mon Sep 17 00:00:00 2001 +From: Kamil Rytarowski +Date: Sat, 11 May 2013 13:49:00 +0200 +Subject: [PATCH] Use consistiently termination code macros + +Operate in install_all and install_one consequently on EXIT_SUCCESS +and EXIT_FAILURE termination code macros as they are meant to be +returned from these functions. +--- + install/dracut-install.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 33fad4a..0b9502e 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -757,7 +757,7 @@ static char *find_binary(const char *src) + + static int install_one(const char *src, const char *dst) + { +- int r = 0; ++ int r = EXIT_SUCCESS; + int ret; + + if (strchr(src, '/') == NULL) { +@@ -786,7 +786,7 @@ static int install_one(const char *src, const char *dst) + + static int install_all(int argc, char **argv) + { +- int r = 0; ++ int r = EXIT_SUCCESS; + int i; + for (i = 0; i < argc; i++) { + int ret; diff --git a/0055-Always-check-the-return-number-of-asprintf.patch b/0055-Always-check-the-return-number-of-asprintf.patch new file mode 100644 index 0000000..4c06740 --- /dev/null +++ b/0055-Always-check-the-return-number-of-asprintf.patch @@ -0,0 +1,144 @@ +From d9eff33ce203a9010067a15ddf1d279132abf437 Mon Sep 17 00:00:00 2001 +From: Kamil Rytarowski +Date: Sat, 11 May 2013 14:40:19 +0200 +Subject: [PATCH] Always check the return number of asprintf + +asprintf prints to an allocated string. When successful, the +functions return the number of bytes printed. If memory allocation +wasn't possible, or some other error occurs, the function will return +-1. + +Don't check strp as a result of asprintf, it's content may be undefined. + +man 3 asprintf +--- + install/dracut-install.c | 59 +++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 48 insertions(+), 11 deletions(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index 0b9502e..c8328b0 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -83,6 +83,7 @@ static char *convert_abs_rel(const char *from, const char *target) + size_t level = 0, fromlevel = 0, targetlevel = 0; + int l; + size_t i, rl, dirlen; ++ int ret; + + target_dir_p = strdup(target); + if (!target_dir_p) +@@ -103,7 +104,11 @@ static char *convert_abs_rel(const char *from, const char *target) + for (i = dirlen+1; i < rl; ++i) + if (target_dir_p[i] != '/') + break; +- asprintf(&realtarget, "%s/%s", realpath_p, &target_dir_p[i]); ++ ret = asprintf(&realtarget, "%s/%s", realpath_p, &target_dir_p[i]); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } + + /* now calculate the relative path from to and + store it in +@@ -282,8 +287,11 @@ static int resolve_deps(const char *src) + + /* run ldd */ + ret = asprintf(&cmd, "ldd %s 2>&1", src); +- if (ret < 0) +- return ret; ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } ++ + ret = 0; + + fptr = popen(cmd, "r"); +@@ -352,6 +360,7 @@ static int hmac_install(const char *src, const char *dst, const char *hmacpath) + _cleanup_free_ char *dstpath = strdup(dst); + _cleanup_free_ char *srchmacname = NULL; + _cleanup_free_ char *dsthmacname = NULL; ++ int ret; + + if (!(srcpath && dstpath)) + return -ENOMEM; +@@ -371,11 +380,29 @@ static int hmac_install(const char *src, const char *dst, const char *hmacpath) + srcpath[dlen] = '\0'; + dstpath[dir_len(dst)] = '\0'; + if (hmacpath) { +- asprintf(&srchmacname, "%s/%s.hmac", hmacpath, &src[dlen + 1]); +- asprintf(&dsthmacname, "%s/%s.hmac", hmacpath, &src[dlen + 1]); ++ ret = asprintf(&srchmacname, "%s/%s.hmac", hmacpath, &src[dlen + 1]); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } ++ ++ ret = asprintf(&dsthmacname, "%s/%s.hmac", hmacpath, &src[dlen + 1]); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } + } else { +- asprintf(&srchmacname, "%s/.%s.hmac", srcpath, &src[dlen + 1]); +- asprintf(&dsthmacname, "%s/.%s.hmac", dstpath, &src[dlen + 1]); ++ ret = asprintf(&srchmacname, "%s/.%s.hmac", srcpath, &src[dlen + 1]); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } ++ ++ ret = asprintf(&dsthmacname, "%s/.%s.hmac", dstpath, &src[dlen + 1]); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } + } + log_debug("hmac cp '%s' '%s')", srchmacname, dsthmacname); + dracut_install(srchmacname, dsthmacname, false, false, true); +@@ -428,7 +455,11 @@ static int dracut_install(const char *src, const char *dst, bool isdir, bool res + + hashmap_put(items, i, i); + +- asprintf(&fulldstpath, "%s%s", destrootdir, dst); ++ ret = asprintf(&fulldstpath, "%s%s", destrootdir, dst); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } + + ret = stat(fulldstpath, &sb); + +@@ -511,7 +542,11 @@ static int dracut_install(const char *src, const char *dst, bool isdir, bool res + if (lstat(fulldstpath, &sb) != 0) { + _cleanup_free_ char *absdestpath = NULL; + +- asprintf(&absdestpath, "%s%s", destrootdir, abspath); ++ ret = asprintf(&absdestpath, "%s%s", destrootdir, abspath); ++ if (ret < 0) { ++ log_error("Out of memory!"); ++ exit(EXIT_FAILURE); ++ } + + ln_r(absdestpath, fulldstpath); + } +@@ -704,6 +739,8 @@ static char *find_binary(const char *src) + char *p, *q; + bool end = false; + char *newsrc = NULL; ++ int ret; ++ + path = getenv("PATH"); + + if (path == NULL) { +@@ -730,8 +767,8 @@ static char *find_binary(const char *src) + else + *q = '\0'; + +- asprintf(&newsrc, "%s/%s", p, src); +- if (newsrc == NULL) { ++ ret = asprintf(&newsrc, "%s/%s", p, src); ++ if (ret < 0) { + log_error("Out of memory!"); + exit(EXIT_FAILURE); + } diff --git a/0056-Fix-memory-leak.patch b/0056-Fix-memory-leak.patch new file mode 100644 index 0000000..ec01dc6 --- /dev/null +++ b/0056-Fix-memory-leak.patch @@ -0,0 +1,22 @@ +From e0904b27ff821c067ae62c227db8fef45638a827 Mon Sep 17 00:00:00 2001 +From: Kamil Rytarowski +Date: Sat, 11 May 2013 14:54:38 +0200 +Subject: [PATCH] Fix memory leak + +--- + install/dracut-install.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index c8328b0..a1c6461 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -258,7 +258,7 @@ static int resolve_deps(const char *src) + { + int ret = 0; + +- char *buf = malloc(LINE_MAX); ++ _cleanup_free_ char *buf = malloc(LINE_MAX); + size_t linesize = LINE_MAX; + _cleanup_pclose_ FILE *fptr = NULL; + _cleanup_free_ char *cmd = NULL; diff --git a/0057-dracut.spec-put-selinux-for-kdump-crash-file-context.patch b/0057-dracut.spec-put-selinux-for-kdump-crash-file-context.patch new file mode 100644 index 0000000..8aa1494 --- /dev/null +++ b/0057-dracut.spec-put-selinux-for-kdump-crash-file-context.patch @@ -0,0 +1,35 @@ +From 639bd4873bed9b29967b2ff21b90891d00667f92 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 15:40:45 +0200 +Subject: [PATCH] dracut.spec: put selinux for kdump crash file contexts + +--- + dracut.spec | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 3d42af2..a475e08 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -231,7 +231,6 @@ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash + rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs + rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey + rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity +-rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98selinux + %endif + + mkdir -p $RPM_BUILD_ROOT/boot/dracut +@@ -348,12 +347,12 @@ rm -rf $RPM_BUILD_ROOT + %if %{undefined _unitdir} + %{dracutlibdir}/modules.d/96securityfs + %{dracutlibdir}/modules.d/97masterkey +-%{dracutlibdir}/modules.d/98selinux + %{dracutlibdir}/modules.d/98integrity + %endif + %{dracutlibdir}/modules.d/97biosdevname + %{dracutlibdir}/modules.d/98ecryptfs + %{dracutlibdir}/modules.d/98pollcdrom ++%{dracutlibdir}/modules.d/98selinux + %{dracutlibdir}/modules.d/98syslog + %{dracutlibdir}/modules.d/98systemd + %{dracutlibdir}/modules.d/98usrmount diff --git a/0058-url-lib-url-lib.sh-turn-off-curl-globbing.patch b/0058-url-lib-url-lib.sh-turn-off-curl-globbing.patch new file mode 100644 index 0000000..7e0fd22 --- /dev/null +++ b/0058-url-lib-url-lib.sh-turn-off-curl-globbing.patch @@ -0,0 +1,32 @@ +From 1b8616adeec0e397f8485496d80b70c4368a9c4b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 16:15:24 +0200 +Subject: [PATCH] url-lib/url-lib.sh: turn off curl globbing + +https://bugzilla.redhat.com/show_bug.cgi?id=907497 +--- + modules.d/45url-lib/url-lib.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh +index 4a3d56d..c00ca18 100755 +--- a/modules.d/45url-lib/url-lib.sh ++++ b/modules.d/45url-lib/url-lib.sh +@@ -54,7 +54,7 @@ add_url_handler() { + + export CURL_HOME="/run/initramfs/url-lib" + mkdir -p $CURL_HOME +-curl_args="--location --retry 3 --fail --show-error" ++curl_args="--globoff --location --retry 3 --fail --show-error" + getargbool 0 rd.noverifyssl && curl_args="$curl_args --insecure" + + proxy=$(getarg proxy=) +@@ -64,7 +64,7 @@ curl_fetch_url() { + local url="$1" outloc="$2" + echo "$url" > /proc/self/fd/0 + if [ -n "$outloc" ]; then +- curl --globoff $curl_args --output "$outloc" "$url" || return $? ++ curl $curl_args --output "$outloc" "$url" || return $? + else + local outdir="$(mkuniqdir /tmp curl_fetch_url)" + ( cd "$outdir"; curl $curl_args --remote-name "$url" || return $? ) diff --git a/0059-btrfs-include-btrfs-zero-log-in-the-initramfs.patch b/0059-btrfs-include-btrfs-zero-log-in-the-initramfs.patch new file mode 100644 index 0000000..f292928 --- /dev/null +++ b/0059-btrfs-include-btrfs-zero-log-in-the-initramfs.patch @@ -0,0 +1,23 @@ +From c6df70fb4859fba630433586d39d728e60613399 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 16:34:34 +0200 +Subject: [PATCH] btrfs: include btrfs-zero-log in the initramfs + +https://bugzilla.redhat.com/show_bug.cgi?id=963257 +--- + modules.d/90btrfs/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh +index 4a7c01d..e1c8577 100755 +--- a/modules.d/90btrfs/module-setup.sh ++++ b/modules.d/90btrfs/module-setup.sh +@@ -43,7 +43,7 @@ install() { + /usr/lib/dracut/hooks/initqueue/timeout/btrfs_timeout.sh + fi + +- dracut_install btrfsck ++ dracut_install -o btrfsck btrfs-zero-log + inst $(command -v btrfs) /sbin/btrfs + } + diff --git a/0060-ifcfg-write-ifcfg.sh-proper-NAME-the-interfaces.patch b/0060-ifcfg-write-ifcfg.sh-proper-NAME-the-interfaces.patch new file mode 100644 index 0000000..b291a27 --- /dev/null +++ b/0060-ifcfg-write-ifcfg.sh-proper-NAME-the-interfaces.patch @@ -0,0 +1,41 @@ +From 284d62da816a9d3678906e9dbeb796132016b9c9 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Tue, 28 May 2013 16:56:40 +0200 +Subject: [PATCH] ifcfg/write-ifcfg.sh: proper NAME the interfaces + +https://bugzilla.redhat.com/show_bug.cgi?id=965842 +--- + modules.d/45ifcfg/write-ifcfg.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh +index 16da5e4..baa63fa 100755 +--- a/modules.d/45ifcfg/write-ifcfg.sh ++++ b/modules.d/45ifcfg/write-ifcfg.sh +@@ -152,7 +152,7 @@ for netif in $IFACES ; do + fi + print_s390 $netif + echo "TYPE=Ethernet" +- echo "NAME=\"Boot Disk\"" ++ echo "NAME=\"$netif\"" + [ -n "$mtu" ] && echo "MTU=$mtu" + } >> /tmp/ifcfg/ifcfg-$netif + fi +@@ -162,7 +162,7 @@ for netif in $IFACES ; do + { + # This variable is an indicator of a bond interface for initscripts + echo "BONDING_OPTS=\"$bondoptions\"" +- echo "NAME=\"Boot Disk\"" ++ echo "NAME=\"$netif\"" + } >> /tmp/ifcfg/ifcfg-$netif + + for slave in $bondslaves ; do +@@ -186,7 +186,7 @@ for netif in $IFACES ; do + # bridge + { + echo "TYPE=Bridge" +- echo "NAME=\"Boot Disk\"" ++ echo "NAME=\"$netif\"" + } >> /tmp/ifcfg/ifcfg-$netif + if [ "$ethname" = "$bondname" ] ; then + { diff --git a/0061-40network-Provide-a-hostname-fallback-function-in-ca.patch b/0061-40network-Provide-a-hostname-fallback-function-in-ca.patch new file mode 100644 index 0000000..e682aa2 --- /dev/null +++ b/0061-40network-Provide-a-hostname-fallback-function-in-ca.patch @@ -0,0 +1,22 @@ +From cbfe65c2fe599b7b5eb6a144332e84c2290869ea Mon Sep 17 00:00:00 2001 +From: Dennis Schridde +Date: Fri, 17 May 2013 13:54:57 +0200 +Subject: [PATCH] [40network] Provide a hostname fallback function, in case + there is no executable of this name + +--- + modules.d/40network/net-lib.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index f9b461b..d62d5ad 100644 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -366,3 +366,7 @@ linkup() { + && wait_for_if_up $1 2>/dev/null + } + ++type hostname >/dev/null 2>&1 || \ ++hostname() { ++ cat /proc/sys/kernel/hostname ++} diff --git a/0062-dracut-emergency.service-do-not-start-for-action_on_.patch b/0062-dracut-emergency.service-do-not-start-for-action_on_.patch new file mode 100644 index 0000000..f325a02 --- /dev/null +++ b/0062-dracut-emergency.service-do-not-start-for-action_on_.patch @@ -0,0 +1,22 @@ +From b78e6ac2c328c76057b17059a761ab44707f9aa0 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 11:33:25 +0200 +Subject: [PATCH] dracut-emergency.service: do not start for + "action_on_fail=continue" + +--- + modules.d/98systemd/dracut-emergency.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/98systemd/dracut-emergency.service b/modules.d/98systemd/dracut-emergency.service +index 12eef6c..ebf5aac 100644 +--- a/modules.d/98systemd/dracut-emergency.service ++++ b/modules.d/98systemd/dracut-emergency.service +@@ -13,6 +13,7 @@ DefaultDependencies=no + After=systemd-vconsole-setup.service + Wants=systemd-vconsole-setup.service + Conflicts=emergency.service emergency.target ++ConditionKernelCommandLine=!action_on_fail=continue + + [Service] + Environment=HOME=/ diff --git a/0063-i18n-module-setup.sh-install-default-font-latarcyrhe.patch b/0063-i18n-module-setup.sh-install-default-font-latarcyrhe.patch new file mode 100644 index 0000000..1dce9a1 --- /dev/null +++ b/0063-i18n-module-setup.sh-install-default-font-latarcyrhe.patch @@ -0,0 +1,22 @@ +From 0a3e348225336f45a9abe8e74b384fdf17e9053f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 13:20:00 +0200 +Subject: [PATCH] i18n/module-setup.sh: install default font latarcyrheb-sun16 + +--- + modules.d/10i18n/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh +index fcd8282..60a50e7 100755 +--- a/modules.d/10i18n/module-setup.sh ++++ b/modules.d/10i18n/module-setup.sh +@@ -14,7 +14,7 @@ depends() { + install() { + dracut_install -o $systemdutildir/systemd-vconsole-setup + KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps +- DEFAULT_FONT=LatArCyrHeb-16 ++ DEFAULT_FONT=latarcyrheb-sun16 + I18N_CONF="/etc/locale.conf" + VCONFIG_CONF="/etc/vconsole.conf" + diff --git a/0064-crypt-loop-module-setup.sh-install-loop-kernel-modul.patch b/0064-crypt-loop-module-setup.sh-install-loop-kernel-modul.patch new file mode 100644 index 0000000..04c2fc6 --- /dev/null +++ b/0064-crypt-loop-module-setup.sh-install-loop-kernel-modul.patch @@ -0,0 +1,24 @@ +From 8099e7b1ba10eaf7780e6423e97a13a5c62cf5bd Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 13:31:54 +0200 +Subject: [PATCH] crypt-loop/module-setup.sh: install loop kernel module + +--- + modules.d/91crypt-loop/module-setup.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/91crypt-loop/module-setup.sh b/modules.d/91crypt-loop/module-setup.sh +index 5e7bcbd..218d27a 100644 +--- a/modules.d/91crypt-loop/module-setup.sh ++++ b/modules.d/91crypt-loop/module-setup.sh +@@ -8,6 +8,10 @@ depends() { + echo crypt + } + ++installkernel() { ++ instmods loop ++} ++ + install() { + dracut_install losetup + inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh" diff --git a/0065-udev-rules-module-setup.sh-optionally-install-etc-pc.patch b/0065-udev-rules-module-setup.sh-optionally-install-etc-pc.patch new file mode 100644 index 0000000..5e01a5d --- /dev/null +++ b/0065-udev-rules-module-setup.sh-optionally-install-etc-pc.patch @@ -0,0 +1,24 @@ +From af2578562c4a32445c6a9dd91651b9ad89043f0d Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 14:28:25 +0200 +Subject: [PATCH] udev-rules/module-setup.sh: optionally install + /etc/pcmcia/config.opts + +https://bugzilla.redhat.com/show_bug.cgi?id=920076 +--- + modules.d/95udev-rules/module-setup.sh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh +index 1c48202..e952e80 100755 +--- a/modules.d/95udev-rules/module-setup.sh ++++ b/modules.d/95udev-rules/module-setup.sh +@@ -69,6 +69,8 @@ install() { + ${udevdir}/pcmcia-socket-startup \ + ${udevdir}/pcmcia-check-broken-cis + ++ dracut_install -o /etc/pcmcia/config.opts ++ + [ -f /etc/arch-release ] && \ + inst_script "$moddir/load-modules.sh" /lib/udev/load-modules.sh + diff --git a/0066-ifcfg-write-ifcfg.sh.patch b/0066-ifcfg-write-ifcfg.sh.patch new file mode 100644 index 0000000..fe21150 --- /dev/null +++ b/0066-ifcfg-write-ifcfg.sh.patch @@ -0,0 +1,71 @@ +From 6625c085aeee0694f4f53b0454ff3466755d90a8 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 14:38:52 +0200 +Subject: [PATCH] ifcfg/write-ifcfg.sh: + +- fix ONBOOT for slaves +- set TYPE=Bond for bonding + +https://bugzilla.redhat.com/show_bug.cgi?id=919001 +--- + modules.d/45ifcfg/write-ifcfg.sh | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh +index baa63fa..625d00b 100755 +--- a/modules.d/45ifcfg/write-ifcfg.sh ++++ b/modules.d/45ifcfg/write-ifcfg.sh +@@ -163,16 +163,16 @@ for netif in $IFACES ; do + # This variable is an indicator of a bond interface for initscripts + echo "BONDING_OPTS=\"$bondoptions\"" + echo "NAME=\"$netif\"" ++ echo "TYPE=Bond" + } >> /tmp/ifcfg/ifcfg-$netif + + for slave in $bondslaves ; do +- # Set ONBOOT=no to prevent initscripts from trying to setup already bonded physical interface + # write separate ifcfg file for the raw eth interface + { + echo "# Generated by dracut initrd" + echo "DEVICE=$slave" + echo "TYPE=Ethernet" +- echo "ONBOOT=no" ++ echo "ONBOOT=yes" + echo "NETBOOT=yes" + echo "HWADDR=$(cat /sys/class/net/$slave/address)" + echo "SLAVE=yes" +@@ -190,10 +190,9 @@ for netif in $IFACES ; do + } >> /tmp/ifcfg/ifcfg-$netif + if [ "$ethname" = "$bondname" ] ; then + { +- # Set ONBOOT=no to prevent initscripts from trying to setup already bridged bond interface + echo "# Generated by dracut initrd" + echo "DEVICE=$bondname" +- echo "ONBOOT=no" ++ echo "ONBOOT=yes" + echo "NETBOOT=yes" + # This variable is an indicator of a bond interface for initscripts + echo "BONDING_OPTS=\"$bondoptions\"" +@@ -202,12 +201,11 @@ for netif in $IFACES ; do + } >> /tmp/ifcfg/ifcfg-$bondname + for slave in $bondslaves ; do + # write separate ifcfg file for the raw eth interface +- # Set ONBOOT=no to prevent initscripts from trying to setup already bridged physical interface + { + echo "# Generated by dracut initrd" + echo "DEVICE=$slave" + echo "TYPE=Ethernet" +- echo "ONBOOT=no" ++ echo "ONBOOT=yes" + echo "NETBOOT=yes" + echo "HWADDR=$(cat /sys/class/net/$slave/address)" + echo "SLAVE=yes" +@@ -221,7 +219,7 @@ for netif in $IFACES ; do + echo "# Generated by dracut initrd" + echo "DEVICE=$ethname" + echo "TYPE=Ethernet" +- echo "ONBOOT=no" ++ echo "ONBOOT=yes" + echo "NETBOOT=yes" + echo "HWADDR=$(cat /sys/class/net/$ethname/address)" + echo "BRIDGE=$netif" diff --git a/0067-kernel-modules-module-setup.sh-add-nvme-kernel-modul.patch b/0067-kernel-modules-module-setup.sh-add-nvme-kernel-modul.patch new file mode 100644 index 0000000..1349935 --- /dev/null +++ b/0067-kernel-modules-module-setup.sh-add-nvme-kernel-modul.patch @@ -0,0 +1,25 @@ +From af2716626aa0243457c0e00fdd457f97269a50b3 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 14:45:59 +0200 +Subject: [PATCH] kernel-modules/module-setup.sh: add nvme kernel module + +apparently not caught by the block driver regexp + +https://bugzilla.redhat.com/show_bug.cgi?id=910734 +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index a04eba8..4060c80 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -42,7 +42,7 @@ installkernel() { + instmods yenta_socket scsi_dh_rdac scsi_dh_emc \ + atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \ + hid-logitech-dj hid-microsoft firewire-ohci \ +- pcmcia usb_storage ++ pcmcia usb_storage nvme + + if [[ "$(uname -p)" == arm* ]]; then + # arm specific modules diff --git a/0068-fs-lib-module-setup.sh-add-xfs_metadump.patch b/0068-fs-lib-module-setup.sh-add-xfs_metadump.patch new file mode 100644 index 0000000..5f3d23b --- /dev/null +++ b/0068-fs-lib-module-setup.sh-add-xfs_metadump.patch @@ -0,0 +1,31 @@ +From 4f084f3ab50e8cac8ab9cc889a96cce864bd98c8 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Wed, 29 May 2013 17:51:57 +0200 +Subject: [PATCH] fs-lib/module-setup.sh: add xfs_metadump + +--- + modules.d/99fs-lib/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh +index 637737e..df9a04c 100755 +--- a/modules.d/99fs-lib/module-setup.sh ++++ b/modules.d/99fs-lib/module-setup.sh +@@ -15,7 +15,7 @@ echo_fs_helper() { + local dev=$1 fs=$2 + case "$fs" in + xfs) +- echo -n " xfs_db xfs_repair xfs_check " ++ echo -n " xfs_db xfs_repair xfs_check xfs_metadump " + ;; + ext?) + echo -n " e2fsck " +@@ -65,7 +65,7 @@ install() { + if [[ "$fscks" = "${fscks#*[^ ]*}" ]]; then + _helpers="\ + umount mount /sbin/fsck* +- xfs_db xfs_check xfs_repair ++ xfs_db xfs_check xfs_repair xfs_metadump + e2fsck jfs_fsck reiserfsck btrfsck + " + if [[ $hostonly ]]; then diff --git a/0069-99fs-lib-fs-lib.sh-Let-user-specify-the-action-after.patch b/0069-99fs-lib-fs-lib.sh-Let-user-specify-the-action-after.patch new file mode 100644 index 0000000..5055db7 --- /dev/null +++ b/0069-99fs-lib-fs-lib.sh-Let-user-specify-the-action-after.patch @@ -0,0 +1,35 @@ +From 679fa7ed3c0f4c827bfc6885d34f56713fe85c1e Mon Sep 17 00:00:00 2001 +From: Baoquan He +Date: Wed, 29 May 2013 14:33:06 +0800 +Subject: [PATCH] 99fs-lib/fs-lib.sh: Let user specify the action after fail + for fsck + +The fsck is ignored when replace emergency_shell with action_on_fail, +now add it. + +Signed-off-by: Baoquan He +--- + modules.d/99fs-lib/fs-lib.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh +index e1f3074..88e7348 100755 +--- a/modules.d/99fs-lib/fs-lib.sh ++++ b/modules.d/99fs-lib/fs-lib.sh +@@ -7,14 +7,14 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + fsck_ask_reboot() { + info "note - fsck suggests reboot, if you" + info "leave shell, booting will continue normally" +- emergency_shell -n "(reboot ?)" ++ action_on_fail -n "(reboot ?)" + } + + fsck_ask_err() { + warn "*** An error occurred during the file system check." + warn "*** Dropping you to a shell; the system will try" + warn "*** to mount the filesystem(s), when you leave the shell." +- emergency_shell -n "(Repair filesystem)" ++ action_on_fail -n "(Repair filesystem)" + } + + # inherits: _ret _drv _out diff --git a/0070-use-system-provides-udev-rule-and-initialization-scr.patch b/0070-use-system-provides-udev-rule-and-initialization-scr.patch new file mode 100644 index 0000000..b3b8910 --- /dev/null +++ b/0070-use-system-provides-udev-rule-and-initialization-scr.patch @@ -0,0 +1,82 @@ +From bc97e005fa097b9b8111ab0ec19bd4e246c13f9b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= +Date: Wed, 29 May 2013 11:26:56 +0200 +Subject: [PATCH] use system provides udev rule and initialization script + +--- + modules.d/95zfcp/56-zfcp.rules | 1 - + modules.d/95zfcp/zfcpconf.sh | 57 ------------------------------------------ + 2 files changed, 58 deletions(-) + delete mode 100644 modules.d/95zfcp/56-zfcp.rules + delete mode 100755 modules.d/95zfcp/zfcpconf.sh + +diff --git a/modules.d/95zfcp/56-zfcp.rules b/modules.d/95zfcp/56-zfcp.rules +deleted file mode 100644 +index 5558f8b..0000000 +--- a/modules.d/95zfcp/56-zfcp.rules ++++ /dev/null +@@ -1 +0,0 @@ +-KERNEL=="zfcp", RUN+="/sbin/zfcpconf.sh" +diff --git a/modules.d/95zfcp/zfcpconf.sh b/modules.d/95zfcp/zfcpconf.sh +deleted file mode 100755 +index 7127eae..0000000 +--- a/modules.d/95zfcp/zfcpconf.sh ++++ /dev/null +@@ -1,57 +0,0 @@ +-#!/bin/sh +-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +-# ex: ts=8 sw=4 sts=4 et filetype=sh +- +-# config file syntax: +-# deviceno WWPN FCPLUN +-# +-# Example: +-# 0.0.4000 0x5005076300C213e9 0x5022000000000000 +-# 0.0.4001 0x5005076300c213e9 0x5023000000000000 +-# +-# +-# manual setup: +-# modprobe zfcp +-# echo 1 > /sys/bus/ccw/drivers/zfcp/0.0.4000/online +-# echo LUN > /sys/bus/ccw/drivers/zfcp/0.0.4000/WWPN/unit_add +-# +-# Example: +-# modprobe zfcp +-# echo 1 > /sys/bus/ccw/drivers/zfcp/0.0.4000/online +-# echo 0x5022000000000000 > /sys/bus/ccw/drivers/zfcp/0.0.4000/0x5005076300c213e9/unit_add +- +-CONFIG=/etc/zfcp.conf +-PATH=/usr/sbin:/usr/bin:/sbin:/bin +- +-if [ -f "$CONFIG" ]; then +- if [ ! -d /sys/bus/ccw/drivers/zfcp ]; then +- modprobe zfcp +- fi +- if [ ! -d /sys/bus/ccw/drivers/zfcp ]; then +- return +- fi +- sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' < $CONFIG| while read line; do +- case $line in +- \#*) ;; +- *) +- [ -z "$line" ] && continue +- set $line +- if [ $# -eq 5 ]; then +- DEVICE=$1 +- SCSIID=$2 +- WWPN=$3 +- SCSILUN=$4 +- FCPLUN=$5 +- echo "Warning: Deprecated values in /etc/zfcp.conf, ignoring SCSI ID $SCSIID and SCSI LUN $SCSILUN" +- elif [ $# -eq 3 ]; then +- DEVICE=${1##*0x} +- WWPN=$2 +- FCPLUN=$3 +- fi +- echo 1 > /sys/bus/ccw/drivers/zfcp/${DEVICE}/online +- [ ! -d /sys/bus/ccw/drivers/zfcp/${DEVICE}/${WWPN}/${FCPLUN} ] \ +- && echo $FCPLUN > /sys/bus/ccw/drivers/zfcp/${DEVICE}/${WWPN}/unit_add +- ;; +- esac +- done +-fi diff --git a/0071-selinux-load_policy-script-fix.patch b/0071-selinux-load_policy-script-fix.patch new file mode 100644 index 0000000..b6e050f --- /dev/null +++ b/0071-selinux-load_policy-script-fix.patch @@ -0,0 +1,39 @@ +From cf8b1b785366e0a7c2ae1b3781d66b0f99d6f8fe Mon Sep 17 00:00:00 2001 +From: "dyoung@redhat.com" +Date: Thu, 30 May 2013 14:19:00 +0800 +Subject: [PATCH] selinux: load_policy script fix + +chroot load_policy will use selinuxfs which should be mounted +in $NEWROOT/sys/fs/selinux for Fedora 19, but because there's +no $NEWROOT/sys/fs, so later process will fail. + +Fixing this by bind mount /sys to $NEWROOT/sys. + +Signed-off-by: Dave Young +--- + modules.d/98selinux/selinux-loadpolicy.sh | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/modules.d/98selinux/selinux-loadpolicy.sh b/modules.d/98selinux/selinux-loadpolicy.sh +index 7526265..5dddfc2 100755 +--- a/modules.d/98selinux/selinux-loadpolicy.sh ++++ b/modules.d/98selinux/selinux-loadpolicy.sh +@@ -24,7 +24,8 @@ rd_load_policy() + local ret=0 + local out + info "Loading SELinux policy" +- # load_policy does mount /proc and /selinux in ++ mount -o bind /sys $NEWROOT/sys ++ # load_policy does mount /proc and /sys/fs/selinux in + # libselinux,selinux_init_load_policy() + if [ -x "$NEWROOT/sbin/load_policy" ]; then + out=$(LANG=C chroot "$NEWROOT" /sbin/load_policy -i 2>&1) +@@ -35,6 +36,8 @@ rd_load_policy() + ret=$? + info $out + fi ++ umount $NEWROOT/sys/fs/selinux ++ umount $NEWROOT/sys + + if [ "$SELINUX" = "disabled" ]; then + return 0; diff --git a/0072-base-dracut-lib.sh-export-DRACUT_SYSTEMD-and-NEWROOT.patch b/0072-base-dracut-lib.sh-export-DRACUT_SYSTEMD-and-NEWROOT.patch new file mode 100644 index 0000000..b0fe958 --- /dev/null +++ b/0072-base-dracut-lib.sh-export-DRACUT_SYSTEMD-and-NEWROOT.patch @@ -0,0 +1,23 @@ +From 62cb52f4317460f313c18c906737d9e0eddb9081 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 08:32:18 +0200 +Subject: [PATCH] base/dracut-lib.sh: export DRACUT_SYSTEMD and NEWROOT + +--- + modules.d/99base/dracut-lib.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh +index 5cb0add..d20ce67 100755 +--- a/modules.d/99base/dracut-lib.sh ++++ b/modules.d/99base/dracut-lib.sh +@@ -2,6 +2,9 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + ++export DRACUT_SYSTEMD ++export NEWROOT ++ + debug_off() { + set +x + } diff --git a/0073-kernel-modules-module-setup.sh-add-hid-hyperv-and-hv.patch b/0073-kernel-modules-module-setup.sh-add-hid-hyperv-and-hv.patch new file mode 100644 index 0000000..b25c770 --- /dev/null +++ b/0073-kernel-modules-module-setup.sh-add-hid-hyperv-and-hv.patch @@ -0,0 +1,22 @@ +From e64bcf5a9937bb53260af79bc4c93f9eab502d1a Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 08:38:40 +0200 +Subject: [PATCH] kernel-modules/module-setup.sh: add hid-hyperv and hv-vmbus + +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 4060c80..ed7a19e 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -42,7 +42,7 @@ installkernel() { + instmods yenta_socket scsi_dh_rdac scsi_dh_emc \ + atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logitech \ + hid-logitech-dj hid-microsoft firewire-ohci \ +- pcmcia usb_storage nvme ++ pcmcia usb_storage nvme hid-hyperv hv-vmbus + + if [[ "$(uname -p)" == arm* ]]; then + # arm specific modules diff --git a/0074-dmsquash-live-dmsquash-live-root.sh-add-parameter-rd.patch b/0074-dmsquash-live-dmsquash-live-root.sh-add-parameter-rd.patch new file mode 100644 index 0000000..170eb90 --- /dev/null +++ b/0074-dmsquash-live-dmsquash-live-root.sh-add-parameter-rd.patch @@ -0,0 +1,40 @@ +From 32214acb3ae02d28cf72e15040f062fcbd5aa4ab Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 09:26:43 +0200 +Subject: [PATCH] dmsquash-live/dmsquash-live-root.sh: add parameter + rd.live.squashimg + +rd.live.squashimg names the squash image in the rd.live.dir +and defaults to squashfs.img + +https://bugzilla.redhat.com/show_bug.cgi?id=789036 +https://bugzilla.redhat.com/show_bug.cgi?id=782108 +--- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index 07e41f0..f63819c 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -19,6 +19,9 @@ livedev="$1" + # specified as their own things + live_dir=$(getarg rd.live.dir -d live_dir) + [ -z "$live_dir" ] && live_dir="LiveOS" ++squash_image=$(getarg rd.live.squashimg) ++[ -z "squash_image" ] && squash_image="squashfs.img" ++ + getargbool 0 rd.live.ram -d -y live_ram && live_ram="yes" + getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes" + getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay="" +@@ -180,8 +183,8 @@ if [ -n "$FSIMG" ] ; then + fi + + # we might have an embedded fs image on squashfs (compressed live) +-if [ -e /run/initramfs/live/${live_dir}/squashfs.img ]; then +- SQUASHED="/run/initramfs/live/${live_dir}/squashfs.img" ++if [ -e /run/initramfs/live/${live_dir}/${squash_image} ]; then ++ SQUASHED="/run/initramfs/live/${live_dir}/${squash_image}" + fi + + if [ -e "$SQUASHED" ] ; then diff --git a/0075-systemd-emergency.service-do-not-run-for-action_on_f.patch b/0075-systemd-emergency.service-do-not-run-for-action_on_f.patch new file mode 100644 index 0000000..ff160f8 --- /dev/null +++ b/0075-systemd-emergency.service-do-not-run-for-action_on_f.patch @@ -0,0 +1,23 @@ +From dcae873414ff643e1de790f256e414923e2aef8b Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 11:14:39 +0200 +Subject: [PATCH] systemd/emergency.service: do not run for + action_on_fail=continue + +same as for dracut-emergency.service +--- + modules.d/98systemd/emergency.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/98systemd/emergency.service b/modules.d/98systemd/emergency.service +index 35d9c31..c19fe37 100644 +--- a/modules.d/98systemd/emergency.service ++++ b/modules.d/98systemd/emergency.service +@@ -12,6 +12,7 @@ Description=Emergency Shell + DefaultDependencies=no + After=systemd-vconsole-setup.service + Wants=systemd-vconsole-setup.service ++ConditionKernelCommandLine=!action_on_fail=continue + + [Service] + Environment=HOME=/ diff --git a/0076-network-wait-for-all-required-interfaces-if-rd.needn.patch b/0076-network-wait-for-all-required-interfaces-if-rd.needn.patch new file mode 100644 index 0000000..e38bf57 --- /dev/null +++ b/0076-network-wait-for-all-required-interfaces-if-rd.needn.patch @@ -0,0 +1,69 @@ +From feaf30ffaa3365febe06ef3f0086778a6d364f0c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 11:38:23 +0200 +Subject: [PATCH] network: wait for all required interfaces if "rd.neednet=1" + +also set bootdev to the first configured interface, if missing + +https://bugzilla.redhat.com/show_bug.cgi?id=801829 +--- + modules.d/40network/net-genrules.sh | 8 +++++--- + modules.d/40network/parse-ip-opts.sh | 9 ++++++--- + 2 files changed, 11 insertions(+), 6 deletions(-) + +diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh +index 8bf6a89..8f28c93 100755 +--- a/modules.d/40network/net-genrules.sh ++++ b/modules.d/40network/net-genrules.sh +@@ -14,8 +14,10 @@ fix_bootif() { + echo $macaddr | sed 'y/ABCDEF/abcdef/' + } + ++getargbool 0 rd.neednet && NEEDNET=1 ++ + # Don't continue if we don't need network +-if [ -z "$netroot" ] && [ ! -e "/tmp/net.ifaces" ] && ! getargbool 0 rd.neednet >/dev/null; then ++if [ -z "$netroot" ] && [ ! -e "/tmp/net.ifaces" ] && [ "$NEEDNET" != "1" ]; then + return + fi + +@@ -73,13 +75,13 @@ fi + elif [ -n "$IFACES" ] ; then + for iface in $IFACES ; do + printf 'SUBSYSTEM=="net", ENV{INTERFACE}=="%s", RUN+="%s"\n' "$iface" "/sbin/initqueue --onetime $ifup" +- if [ "$bootdev" = "$iface" ]; then ++ if [ "$bootdev" = "$iface" ] || [ "$NEEDNET" = "1" ]; then + echo "[ -f /tmp/setup_net_${iface}.ok ]" >$hookdir/initqueue/finished/wait-$iface.sh + fi + done + + for iface in $MASTER_IFACES; do +- if [ "$bootdev" = "$iface" ]; then ++ if [ "$bootdev" = "$iface" ] || [ "$NEEDNET" = "1" ]; then + echo "[ -f /tmp/setup_net_${iface}.ok ]" >$hookdir/initqueue/finished/wait-$iface.sh + fi + done +diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh +index c7dc3ce..f64c936 100755 +--- a/modules.d/40network/parse-ip-opts.sh ++++ b/modules.d/40network/parse-ip-opts.sh +@@ -54,6 +54,12 @@ fi + for p in $(getargs ip=); do + ip_to_var $p + ++ # make first device specified the BOOTDEV ++ if [ -z "$BOOTDEV" ] && [ -n "$dev" ]; then ++ BOOTDEV="$dev" ++ [ -n "$NEEDBOOTDEV" ] && warn "Setting bootdev to '$BOOTDEV'" ++ fi ++ + # skip ibft since we did it above + [ "$autoconf" = "ibft" ] && continue + +@@ -121,6 +127,3 @@ fi + # Store BOOTDEV and IFACES for later use + [ -n "$BOOTDEV" ] && echo $BOOTDEV > /tmp/net.bootdev + [ -n "$IFACES" ] && echo $IFACES > /tmp/net.ifaces +- +-# We need a ip= line for the configured bootdev= +-[ -n "$NEEDBOOTDEV" ] && [ -z "$BOOTDEVOK" ] && die "Bootdev Argument '$BOOTDEV' not found" diff --git a/0077-lvm-add-tools-for-thin-provisioning.patch b/0077-lvm-add-tools-for-thin-provisioning.patch new file mode 100644 index 0000000..d99d5eb --- /dev/null +++ b/0077-lvm-add-tools-for-thin-provisioning.patch @@ -0,0 +1,53 @@ +From 57937cf480c8e612edae5b00d978dce84fd83be9 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 12:02:59 +0200 +Subject: [PATCH] lvm: add tools for thin provisioning + +https://bugzilla.redhat.com/show_bug.cgi?id=921235 +--- + modules.d/90lvm/module-setup.sh | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh +index 22186f4..e8416ca 100755 +--- a/modules.d/90lvm/module-setup.sh ++++ b/modules.d/90lvm/module-setup.sh +@@ -3,7 +3,6 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + + check() { +- local _rootdev _activated + # No point trying to support lvm if the binaries are missing + type -P lvm >/dev/null || return 1 + +@@ -25,6 +24,8 @@ depends() { + + install() { + local _i ++ local _needthin ++ local _activated + inst lvm + + check_lvm() { +@@ -39,6 +40,10 @@ install() { + fi + push _activated "${DM_VG_NAME}/${DM_LV_NAME}" + fi ++ if ! [[ $_needthin ]]; then ++ [[ $(lvs --noheadings -o segtype $1) == *thin* ]] && _needthin=1 ++ fi ++ + return 0 + } + +@@ -65,5 +70,10 @@ install() { + inst_hook cmdline 30 "$moddir/parse-lvm.sh" + + inst_libdir_file "libdevmapper-event-lvm*.so" ++ ++ if [[ $_needthin ]]; then ++ dracut_install -o thin_dump thin_restore thin_check ++ fi ++ + } + diff --git a/0078-ifcfg-write-ifcfg.sh-fixed-logic.patch b/0078-ifcfg-write-ifcfg.sh-fixed-logic.patch new file mode 100644 index 0000000..4878255 --- /dev/null +++ b/0078-ifcfg-write-ifcfg.sh-fixed-logic.patch @@ -0,0 +1,204 @@ +From caf207afa7c2a65f25be26a735643a873f5c092f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Thu, 30 May 2013 14:37:41 +0200 +Subject: [PATCH] ifcfg/write-ifcfg.sh: fixed logic + +seems like nobody tested this with recent dracut versions. +--- + modules.d/45ifcfg/write-ifcfg.sh | 75 ++++++++++++++++++++++------------------ + 1 file changed, 41 insertions(+), 34 deletions(-) + +diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh +index 625d00b..2e78c49 100755 +--- a/modules.d/45ifcfg/write-ifcfg.sh ++++ b/modules.d/45ifcfg/write-ifcfg.sh +@@ -4,10 +4,6 @@ + + # NFS root might have reached here before /tmp/net.ifaces was written + udevadm settle --timeout=30 +-# Don't write anything if we don't know our bootdev +-[ -f /tmp/net.ifaces ] || return 1 +- +-read IFACES < /tmp/net.ifaces + + if [ -e /tmp/bridge.info ]; then + . /tmp/bridge.info +@@ -79,15 +75,25 @@ print_s390() { + echo "OPTIONS=\"${OPTIONS}\"" + } + ++for netup in /tmp/net.*.did-setup ; do ++ [ -f $netup ] || continue + +-for netif in $IFACES ; do ++ netif=${netup%%.did-setup} ++ netif=${netif##*/net.} + [ -e /tmp/ifcfg/ifcfg-$netif ] && continue +- # bridge? + unset bridge + unset bond + unset bondslaves + unset bondname + unset bondoptions ++ unset uuid ++ unset ip ++ unset gw ++ unset mtu ++ unset mask ++ unset macaddr ++ unset slave ++ unset ethname + [ -e /tmp/bond.${netif}.info ] && . /tmp/bond.${netif}.info + + uuid=$(cat /proc/sys/kernel/random/uuid) +@@ -100,45 +106,46 @@ for netif in $IFACES ; do + cat /sys/class/net/$netif/address > /tmp/net.$netif.hwaddr + { + echo "# Generated by dracut initrd" +- echo "DEVICE=$netif" ++ echo "DEVICE=\"$netif\"" + echo "ONBOOT=yes" + echo "NETBOOT=yes" +- echo "UUID=$uuid" +- [ -n "$mtu" ] && echo "MTU=$mtu" +- if [ -f /tmp/net.$netif.lease ]; then ++ echo "UUID=\"$uuid\"" ++ if [ -f /tmp/dhclient.$netif.lease ]; then ++ [ -f /tmp/dhclient.$netif.dhcpopts ] && . /tmp/dhclient.$netif.dhcpopts + strstr "$ip" '*:*:*' && echo "IPV6INIT=yes" + if [ -f /tmp/net.$netif.has_ibft_config ]; then + echo "BOOTPROTO=ibft" + else + echo "BOOTPROTO=dhcp" + fi +- cp /tmp/net.$netif.lease /tmp/ifcfg-leases/dhclient-$uuid-$netif.lease ++ cp /tmp/dhclient.$netif.lease /tmp/ifcfg-leases/dhclient-$uuid-$netif.lease + else + # If we've booted with static ip= lines, the override file is there + [ -e /tmp/net.$netif.override ] && . /tmp/net.$netif.override + if strstr "$ip" '*:*:*'; then + echo "IPV6INIT=yes" + echo "IPV6_AUTOCONF=no" +- echo "IPV6ADDR=$ip/$mask" ++ echo "IPV6ADDR=\"$ip/$mask\"" + else + if [ -f /tmp/net.$netif.has_ibft_config ]; then + echo "BOOTPROTO=ibft" + else + echo "BOOTPROTO=none" +- echo "IPADDR=$ip" ++ echo "IPADDR=\"$ip\"" + if strstr "$mask" "."; then +- echo "NETMASK=$mask" ++ echo "NETMASK=\"$mask\"" + else +- echo "PREFIX=$mask" ++ echo "PREFIX=\"$mask\"" + fi + fi + fi + if strstr "$gw" '*:*:*'; then +- echo "IPV6_DEFAULTGW=$gw" ++ echo "IPV6_DEFAULTGW=\"$gw\"" + elif [ -n "$gw" ]; then +- echo "GATEWAY=$gw" ++ echo "GATEWAY=\"$gw\"" + fi + fi ++ [ -n "$mtu" ] && echo "MTU=\"$mtu\"" + } > /tmp/ifcfg/ifcfg-$netif + + # bridge needs different things written to ifcfg +@@ -146,14 +153,14 @@ for netif in $IFACES ; do + # standard interface + { + if [ -n "$macaddr" ]; then +- echo "MACADDR=$macaddr" ++ echo "MACADDR=\"$macaddr\"" + else + echo "HWADDR=\"$(cat /sys/class/net/$netif/address)\"" + fi + print_s390 $netif + echo "TYPE=Ethernet" + echo "NAME=\"$netif\"" +- [ -n "$mtu" ] && echo "MTU=$mtu" ++ [ -n "$mtu" ] && echo "MTU=\"$mtu\"" + } >> /tmp/ifcfg/ifcfg-$netif + fi + +@@ -170,14 +177,14 @@ for netif in $IFACES ; do + # write separate ifcfg file for the raw eth interface + { + echo "# Generated by dracut initrd" +- echo "DEVICE=$slave" ++ echo "DEVICE=\"$slave\"" + echo "TYPE=Ethernet" + echo "ONBOOT=yes" + echo "NETBOOT=yes" +- echo "HWADDR=$(cat /sys/class/net/$slave/address)" ++ echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\"" + echo "SLAVE=yes" +- echo "MASTER=$netif" +- echo "NAME=$slave" ++ echo "MASTER=\"$netif\"" ++ echo "NAME=\"$slave\"" + } >> /tmp/ifcfg/ifcfg-$slave + done + fi +@@ -191,45 +198,45 @@ for netif in $IFACES ; do + if [ "$ethname" = "$bondname" ] ; then + { + echo "# Generated by dracut initrd" +- echo "DEVICE=$bondname" ++ echo "DEVICE=\"$bondname\"" + echo "ONBOOT=yes" + echo "NETBOOT=yes" + # This variable is an indicator of a bond interface for initscripts + echo "BONDING_OPTS=\"$bondoptions\"" +- echo "BRIDGE=$netif" ++ echo "BRIDGE=\"$netif\"" + echo "NAME=\"$bondname\"" + } >> /tmp/ifcfg/ifcfg-$bondname + for slave in $bondslaves ; do + # write separate ifcfg file for the raw eth interface + { + echo "# Generated by dracut initrd" +- echo "DEVICE=$slave" ++ echo "DEVICE=\"$slave\"" + echo "TYPE=Ethernet" + echo "ONBOOT=yes" + echo "NETBOOT=yes" +- echo "HWADDR=$(cat /sys/class/net/$slave/address)" ++ echo "HWADDR=\"$(cat /sys/class/net/$slave/address)\"" + echo "SLAVE=yes" +- echo "MASTER=$bondname" +- echo "NAME=$slave" ++ echo "MASTER=\"$bondname\"" ++ echo "NAME=\"$slave\"" + } >> /tmp/ifcfg/ifcfg-$slave + done + else + # write separate ifcfg file for the raw eth interface + { + echo "# Generated by dracut initrd" +- echo "DEVICE=$ethname" ++ echo "DEVICE=\"$ethname\"" + echo "TYPE=Ethernet" + echo "ONBOOT=yes" + echo "NETBOOT=yes" +- echo "HWADDR=$(cat /sys/class/net/$ethname/address)" +- echo "BRIDGE=$netif" +- echo "NAME=$ethname" ++ echo "HWADDR=\"$(cat /sys/class/net/$ethname/address)\"" ++ echo "BRIDGE=\"$netif\"" ++ echo "NAME=\"$ethname\"" + } >> /tmp/ifcfg/ifcfg-$ethname + fi + fi + i=1 + for ns in $(getargs nameserver); do +- echo "DNS${i}=${ns}" >> /tmp/ifcfg/ifcfg-$netif ++ echo "DNS${i}=\"${ns}\"" >> /tmp/ifcfg/ifcfg-$netif + i=$((i+1)) + done + done diff --git a/0079-dracut-functions.sh-get_persistent_dev-fix-case-for-.patch b/0079-dracut-functions.sh-get_persistent_dev-fix-case-for-.patch new file mode 100644 index 0000000..d35ba94 --- /dev/null +++ b/0079-dracut-functions.sh-get_persistent_dev-fix-case-for-.patch @@ -0,0 +1,25 @@ +From 15c5c072f4fe44f39d60f2fa050a6b4ab05ee34f Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 31 May 2013 07:46:08 +0200 +Subject: [PATCH] dracut-functions.sh:get_persistent_dev() fix case for + multipath + +/dev/mapper/mpath* is not a persistent device path + +https://bugzilla.redhat.com/show_bug.cgi?id=969068 +--- + dracut-functions.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 4a0e81a..3d88c9d 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -254,6 +254,7 @@ get_persistent_dev() { + [ -z "$_dev" ] && return + + for i in /dev/mapper/* /dev/disk/by-uuid/* /dev/disk/by-id/*; do ++ [[ $i == /dev/mapper/mpath* ]] && continue + _tmp=$(udevadm info --query=name --name="$i" 2>/dev/null) + if [ "$_tmp" = "$_dev" ]; then + echo $i diff --git a/0080-dmsquash-live-dmsquash-live-root.sh-fixup-32214acb3a.patch b/0080-dmsquash-live-dmsquash-live-root.sh-fixup-32214acb3a.patch new file mode 100644 index 0000000..1b90e3b --- /dev/null +++ b/0080-dmsquash-live-dmsquash-live-root.sh-fixup-32214acb3a.patch @@ -0,0 +1,22 @@ +From d18fd0235bfdbb845eac35c6d45b06168cb37900 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 31 May 2013 09:04:55 +0200 +Subject: [PATCH] dmsquash-live/dmsquash-live-root.sh: fixup 32214acb3ae + +--- + modules.d/90dmsquash-live/dmsquash-live-root.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh +index f63819c..14e84e1 100755 +--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh ++++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh +@@ -20,7 +20,7 @@ livedev="$1" + live_dir=$(getarg rd.live.dir -d live_dir) + [ -z "$live_dir" ] && live_dir="LiveOS" + squash_image=$(getarg rd.live.squashimg) +-[ -z "squash_image" ] && squash_image="squashfs.img" ++[ -z "$squash_image" ] && squash_image="squashfs.img" + + getargbool 0 rd.live.ram -d -y live_ram && live_ram="yes" + getargbool 0 rd.live.overlay.reset -d -y reset_overlay && reset_overlay="yes" diff --git a/dracut.spec b/dracut.spec index 38dd7a7..086e7a3 100644 --- a/dracut.spec +++ b/dracut.spec @@ -10,7 +10,7 @@ Name: dracut Version: 027 -Release: 46.git20130430%{?dist} +Release: 81.git20130531%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -73,10 +73,42 @@ Patch41: 0041-dracut-install-make-use-of-_cleanup_-macros.patch Patch42: 0042-_emergency_shell-Show-current-working-directory-corr.patch Patch43: 0043-test-use-grep-option-F-and-install-etc-os-release.patch Patch44: 0044-zfcp-match-udev-rule-against-KERNEL-zfcp.patch -# Don't specify 'p' as a separator for dmraid; see #966162. Generated in -# sequence with the above patches against dracut HEAD of 2013-05-22, will -# send to harald. -adamw -Patch45: 0045-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch +Patch45: 0045-usrmount-Fix-miss-detection-of-btrfs-subvolumes.patch +Patch46: 0046-dracut.sh-degrade-message-about-missing-tools-for-st.patch +Patch47: 0047-don-t-specify-p-as-a-separator-for-dmraid-arrays-RHB.patch +Patch48: 0048-systemd-set-environment-vars-DRACUT_SYSTEMD-NEWROOT-.patch +Patch49: 0049-don-t-add-volatile-swap-partitions-to-host_devs.patch +Patch50: 0050-dracut-functions.sh-clarify-instmods-error-message.patch +Patch51: 0051-01fips-module-setup.sh-add-libssl.so.10-to-make-kdum.patch +Patch52: 0052-Fix-parsing-command-line-arguments.patch +Patch53: 0053-Introduce-stricter-type-correctness.patch +Patch54: 0054-Use-consistiently-termination-code-macros.patch +Patch55: 0055-Always-check-the-return-number-of-asprintf.patch +Patch56: 0056-Fix-memory-leak.patch +Patch57: 0057-dracut.spec-put-selinux-for-kdump-crash-file-context.patch +Patch58: 0058-url-lib-url-lib.sh-turn-off-curl-globbing.patch +Patch59: 0059-btrfs-include-btrfs-zero-log-in-the-initramfs.patch +Patch60: 0060-ifcfg-write-ifcfg.sh-proper-NAME-the-interfaces.patch +Patch61: 0061-40network-Provide-a-hostname-fallback-function-in-ca.patch +Patch62: 0062-dracut-emergency.service-do-not-start-for-action_on_.patch +Patch63: 0063-i18n-module-setup.sh-install-default-font-latarcyrhe.patch +Patch64: 0064-crypt-loop-module-setup.sh-install-loop-kernel-modul.patch +Patch65: 0065-udev-rules-module-setup.sh-optionally-install-etc-pc.patch +Patch66: 0066-ifcfg-write-ifcfg.sh.patch +Patch67: 0067-kernel-modules-module-setup.sh-add-nvme-kernel-modul.patch +Patch68: 0068-fs-lib-module-setup.sh-add-xfs_metadump.patch +Patch69: 0069-99fs-lib-fs-lib.sh-Let-user-specify-the-action-after.patch +Patch70: 0070-use-system-provides-udev-rule-and-initialization-scr.patch +Patch71: 0071-selinux-load_policy-script-fix.patch +Patch72: 0072-base-dracut-lib.sh-export-DRACUT_SYSTEMD-and-NEWROOT.patch +Patch73: 0073-kernel-modules-module-setup.sh-add-hid-hyperv-and-hv.patch +Patch74: 0074-dmsquash-live-dmsquash-live-root.sh-add-parameter-rd.patch +Patch75: 0075-systemd-emergency.service-do-not-run-for-action_on_f.patch +Patch76: 0076-network-wait-for-all-required-interfaces-if-rd.needn.patch +Patch77: 0077-lvm-add-tools-for-thin-provisioning.patch +Patch78: 0078-ifcfg-write-ifcfg.sh-fixed-logic.patch +Patch79: 0079-dracut-functions.sh-get_persistent_dev-fix-case-for-.patch +Patch80: 0080-dmsquash-live-dmsquash-live-root.sh-fixup-32214acb3a.patch BuildRequires: dash bash git @@ -280,7 +312,6 @@ rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity -rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98selinux %endif mkdir -p $RPM_BUILD_ROOT/boot/dracut @@ -397,12 +428,12 @@ rm -rf $RPM_BUILD_ROOT %if %{undefined _unitdir} %{dracutlibdir}/modules.d/96securityfs %{dracutlibdir}/modules.d/97masterkey -%{dracutlibdir}/modules.d/98selinux %{dracutlibdir}/modules.d/98integrity %endif %{dracutlibdir}/modules.d/97biosdevname %{dracutlibdir}/modules.d/98ecryptfs %{dracutlibdir}/modules.d/98pollcdrom +%{dracutlibdir}/modules.d/98selinux %{dracutlibdir}/modules.d/98syslog %{dracutlibdir}/modules.d/98systemd %{dracutlibdir}/modules.d/98usrmount @@ -485,6 +516,42 @@ rm -rf $RPM_BUILD_ROOT %{dracutlibdir}/dracut.conf.d/02-norescue.conf %changelog +* Fri May 31 2013 Harald Hoyer 027-81.git20130531 +- fix btrfs mount flags for /usr +- degrade message about missing tools for stripping +Resolves: rhbz#958519 +- set environment vars DRACUT_SYSTEMD, NEWROOT in service file +Resolves: rhbz#963159 +- don't add volatile swap partitions to host_devs +- add libssl.so.10 to make kdump work with fips mode +- readd selinux dracut module for kdump +- url-lib/url-lib.sh: turn off curl globbing +Resolves: rhbz#907497 +- include btrfs-zero-log in the initramfs +Resolves: rhbz#963257 +- proper NAME the network interfaces +Resolves: rhbz#965842 +- install default font latarcyrheb-sun16 +Resolves: rhbz#927564 +- optionally install /etc/pcmcia/config.opts +Resolves: rhbz#920076 +- fix ONBOOT for slaves, set TYPE=Bond for bonding +Resolves: rhbz#919001 +- add nvme kernel module +Resolves: rhbz#910734 +- add xfs_metadump +- selinux: load_policy script fix +- add hid-hyperv and hv-vmbus kernel modules +- add parameter rd.live.squashimg +Resolves: rhbz#789036 rhbz#782108 +- wait for all required interfaces if "rd.neednet=1" +Resolves: rhbz#801829 +- lvm: add tools for thin provisioning +Resolves: rhbz#921235 +- ifcfg/write-ifcfg.sh: fixed ifcfg file generation +- do not wait for mpath* devices +Resolves: rhbz#969068 + * Wed May 22 2013 Adam Williamson 027-46.git20130430 - don't specify "p" as a separator for dmraid Resolves: rhbz#966162