diff --git a/0026-force_to_add_and_load_kernel_modules_other_than_via_boot_param.patch b/0026-force_to_add_and_load_kernel_modules_other_than_via_boot_param.patch index d124a6a..e844297 100644 --- a/0026-force_to_add_and_load_kernel_modules_other_than_via_boot_param.patch +++ b/0026-force_to_add_and_load_kernel_modules_other_than_via_boot_param.patch @@ -39,7 +39,7 @@ Index: dracut-037/dracut.sh --omit-drivers) push omit_drivers_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;; -m|--modules) push dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;; -o|--omit) push omit_dracutmodules_l "$2"; PARMS_TO_STORE+=" '$2'"; shift;; -@@ -880,6 +886,13 @@ if (( ${#add_drivers_l[@]} )); then +@@ -887,6 +893,13 @@ if (( ${#add_drivers_l[@]} )); then fi add_drivers=${add_drivers/-/_} @@ -53,7 +53,7 @@ Index: dracut-037/dracut.sh if (( ${#omit_drivers_l[@]} )); then while pop omit_drivers_l val; do omit_drivers+=" $val " -@@ -896,6 +909,7 @@ fi +@@ -903,6 +916,7 @@ fi omit_drivers_corrected="" for d in $omit_drivers; do [[ " $drivers $add_drivers " == *\ $d\ * ]] && continue @@ -61,7 +61,7 @@ Index: dracut-037/dracut.sh omit_drivers_corrected+="$d|" done omit_drivers="${omit_drivers_corrected%|}" -@@ -1287,6 +1301,13 @@ if [[ $no_kernel != yes ]]; then +@@ -1295,6 +1309,13 @@ if [[ $no_kernel != yes ]]; then if [[ $add_drivers ]]; then hostonly='' instmods -c $add_drivers fi diff --git a/0030-dracut-mkinitd_cleanup_force_host_only_var.patch b/0030-dracut-mkinitd_cleanup_force_host_only_var.patch index a78543e..1a6f6b3 100644 --- a/0030-dracut-mkinitd_cleanup_force_host_only_var.patch +++ b/0030-dracut-mkinitd_cleanup_force_host_only_var.patch @@ -1,3 +1,9 @@ +dracut: Cleanup mkinitrd-suse.sh - We always pass --force + +and no-hostonly is only passed if -A mkinitrd param has been passed. + +Signed-off-by: Thomas Renninger + --- a/mkinitrd-suse.sh 2014-05-15 15:54:28.000000000 +0200 +++ b/mkinitrd-suse.sh 2014-05-15 15:57:38.609899222 +0200 @@ -23,7 +23,6 @@ diff --git a/0032-98systemd-fixup-rootfs-generator-installation-path.patch b/0032-98systemd-fixup-rootfs-generator-installation-path.patch deleted file mode 100644 index 466edbb..0000000 --- a/0032-98systemd-fixup-rootfs-generator-installation-path.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 967db9acce1546753d47aff0815f2961291134f1 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 20 May 2014 10:18:12 +0200 -Subject: [PATCH] 98systemd: fixup rootfs-generator installation path - -The rootfs-generator was installed in the wrong path -in the initrd, cause it never to be run. - -References: bnc#878714 - -Signed-off-by: Hannes Reinecke ---- - modules.d/98systemd/module-setup.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh -index e14ce39..4516b9a 100755 ---- a/modules.d/98systemd/module-setup.sh -+++ b/modules.d/98systemd/module-setup.sh -@@ -192,7 +192,7 @@ install() { - inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount - inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot - -- inst_script "$moddir/rootfs-generator.sh" /lib/systemd/system-generators/dracut-rootfs-generator -+ inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator - - inst_binary true - ln_r $(type -P true) "/usr/bin/loginctl" --- -1.8.5.2 - diff --git a/0033-dracut_hostonly_hostonly_cmdline_default.patch b/0033-dracut_hostonly_hostonly_cmdline_default.patch new file mode 100644 index 0000000..f47708c --- /dev/null +++ b/0033-dracut_hostonly_hostonly_cmdline_default.patch @@ -0,0 +1,65 @@ +--- 0033-dracut_hostonly_hostonly_cmdline_default.patch/mkinitrd-suse.sh 2014-05-20 12:49:39.000000000 +0200 ++++ mkinitrd-suse.sh 2014-05-20 17:23:04.000000000 +0200 +@@ -22,7 +22,6 @@ + + boot_dir="/boot" + quiet=0 +-host_only=1 + logfile=/var/log/YaST2/mkinitrd.log + dracut_cmd=dracut + +@@ -255,7 +254,7 @@ + dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)": + ;; + -a) read_arg acpi_dsdt "$@" || shift $? +- echo "mkinitrd: custom DSDT not yet supported" ++ echo "Obsolete -a param, use acpi_table_dir= and acpi_override= variables in /etc/dracut.conf.d/" + exit 1 + ;; + -s) read_arg boot_splash "$@" || shift $? +@@ -291,11 +290,6 @@ + [[ $kernels ]] && kernels=( $kernels ) + + [[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile" +-if [[ $host_only == 1 ]];then +- dracut_args="${dracut_args} --hostonly --hostonly-cmdline" +-else +- dracut_args="${dracut_args} --no-hostonly --no-hostonly-cmdline" +-fi + dracut_args="${dracut_args} --force" + + [[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}" +@@ -309,7 +303,6 @@ + [[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}" + shopt -s extglob + +-echo "Creating: target|kernel|dracut args " + for ((i=0 ; $i<${#targets[@]} ; i++)); do + + if [[ $img_vers ]];then +@@ -329,20 +322,21 @@ + modules_all=${modules_all%%+([[:space:]])} + modules_all=${modules_all##+([[:space:]])} + ++ echo "Creating initrd: $target" ++ + # Duplicate code: No way found how to redirect output based on $quiet + if [[ $quiet == 1 ]];then +- echo "$target|$kernel|$dracut_args_all" +- # Duplicate code: --add-drivers must not be called with empty string ++ # Duplicate code: --force-drivers must not be called with empty string + # -> dracut bug workarounded ugly, because of complex whitespace + # expansion magics + if [ -n "${modules_all}" ];then +- $dracut_cmd $dracut_args --add-drivers "${modules_all}" "$target" "$kernel" &>/dev/null ++ $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" &>/dev/null + else + $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null + fi + else + if [ -n "${modules_all}" ];then +- $dracut_cmd $dracut_args --add-drivers "${modules_all}" "$target" "$kernel" ++ $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" + else + $dracut_cmd $dracut_args "$target" "$kernel" + fi diff --git a/0034-suse.conf.example_extend.patch b/0034-suse.conf.example_extend.patch new file mode 100644 index 0000000..12ea484 --- /dev/null +++ b/0034-suse.conf.example_extend.patch @@ -0,0 +1,23 @@ +dracut: Enhance suse.conf.example SUSE dist specific dracut configuration file + +Signed-off-by: Thomas Renninger + +Index: dracut-037/dracut.conf.d/suse.conf.example +=================================================================== +--- dracut-037.orig/dracut.conf.d/suse.conf.example ++++ dracut-037/dracut.conf.d/suse.conf.example +@@ -1,3 +1,14 @@ ++# SUSE specifc dracut settings ++# ++# SUSE by default always builds a as small as possible initrd for performance ++# and resource reasons. ++# If you like to build a generic initrd which works on other platforms than ++# on the one dracut/mkinitrd got called comment out below setting(s). ++hostonly="yes" ++hostonly_cmdline="yes" ++ ++compress="pixz -6" ++ + i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-FONT_UNIMAP,CONSOLE_FONT-FONT,CONSOLE_SCREENMAP-FONT_MAP /etc/sysconfig/keyboard:KEYTABLE-KEYMAP" + omit_drivers+=" i2o_scsi" + diff --git a/0035-always_add_network.patch b/0035-always_add_network.patch new file mode 100644 index 0000000..6b85493 --- /dev/null +++ b/0035-always_add_network.patch @@ -0,0 +1,17 @@ +dracut: Always add the network module + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/40network/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/40network/module-setup.sh ++++ dracut-037/modules.d/40network/module-setup.sh +@@ -11,7 +11,7 @@ check() { + + require_binaries ip arping $WICKEDD_DHCP_PATH/wickedd-dhcp4 $WICKEDD_DHCP_PATH/wickedd-dhcp6 || return 1 + +- return 255 ++ return 0 + } + + # called by dracut diff --git a/0036-add_extra_debug_binaries.patch b/0036-add_extra_debug_binaries.patch new file mode 100644 index 0000000..97fd4db --- /dev/null +++ b/0036-add_extra_debug_binaries.patch @@ -0,0 +1,18 @@ +dracut: Add find to debug binaries + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/95debug/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/95debug/module-setup.sh ++++ dracut-037/modules.d/95debug/module-setup.sh +@@ -16,8 +16,7 @@ depends() { + # called by dracut + install() { + inst_multiple -o ps grep more cat rm strace free showmount \ +- ping netstat rpcinfo vi scp ping6 ssh \ ++ ping netstat rpcinfo vi scp ping6 ssh find \ + fsck fsck.ext2 fsck.ext4 fsck.ext3 fsck.ext4dev fsck.vfat e2fsck +- + } + diff --git a/0037-fix_s390_network_modules_install.patch b/0037-fix_s390_network_modules_install.patch new file mode 100644 index 0000000..523e036 --- /dev/null +++ b/0037-fix_s390_network_modules_install.patch @@ -0,0 +1,16 @@ +dracut: Fix missing _arch variable declaration in 40network modules-setup.sh + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/40network/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/40network/module-setup.sh ++++ dracut-037/modules.d/40network/module-setup.sh +@@ -22,6 +22,7 @@ depends() { + # called by dracut + installkernel() { + # Include wired net drivers, excluding wireless ++ local _arch=$(uname -m) + + net_module_filter() { + local _net_drivers='eth_type_trans|register_virtio_device|usbnet_open' diff --git a/0038-remove_waiting_for_swap_dev.patch b/0038-remove_waiting_for_swap_dev.patch new file mode 100644 index 0000000..6be9472 --- /dev/null +++ b/0038-remove_waiting_for_swap_dev.patch @@ -0,0 +1,51 @@ +dracut: Do not wait for swap device + +also not in hostonly mode. +There should be no difference between hostonly and no-hostonly mode. +Systemd should take care to bring up the swap device whenever it is +accessable. + +Signed-off-by: Thomas Renninger + +Index: dracut-037/dracut.sh +=================================================================== +--- dracut-037.orig/dracut.sh ++++ dracut-037/dracut.sh +@@ -1044,37 +1044,6 @@ if [[ $hostonly ]]; then + push host_devs "$_dev" + done + +- if [[ -f /proc/swaps ]] && [[ -f /etc/fstab ]]; then +- while read dev type rest; do +- [[ -b $dev ]] || continue +- [[ "$type" == "partition" ]] || continue +- +- while read _d _m _t _o _r; do +- [[ "$_d" == \#* ]] && continue +- [[ $_d ]] || continue +- [[ $_t != "swap" ]] && continue +- [[ $_m != "swap" ]] && [[ $_m != "none" ]] && continue +- [[ "$_o" == *noauto* ]] && continue +- _d=$(expand_persistent_dev "$_d") +- [[ "$_d" -ef "$dev" ]] || continue +- +- if [[ -f /etc/crypttab ]]; then +- while read _mapper _a _p _o; do +- [[ $_mapper = \#* ]] && continue +- [[ "$_d" -ef /dev/mapper/"$_mapper" ]] || continue +- [[ "$_o" ]] || _o="$_p" +- # skip entries with password files +- [[ "$_p" == /* ]] && [[ -f $_p ]] && continue 2 +- # skip mkswap swap +- [[ $_o == *swap* ]] && continue 2 +- done < /etc/crypttab +- fi +- +- push host_devs "$(readlink -f "$dev")" +- break +- done < /etc/fstab +- done < /proc/swaps +- fi + # record all host modaliases + declare -A host_modalias + find /sys/devices/ -name uevent -print > "$initdir/.modalias" diff --git a/0039-s390_no_resume_module.patch b/0039-s390_no_resume_module.patch new file mode 100644 index 0000000..077b0ca --- /dev/null +++ b/0039-s390_no_resume_module.patch @@ -0,0 +1,21 @@ +dracut: Do not add resume module on s390(x) arch + +s390(x) kernels do not support suspend, no need to add this module. + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/95resume/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/95resume/module-setup.sh ++++ dracut-037/modules.d/95resume/module-setup.sh +@@ -4,6 +4,10 @@ + + # called by dracut + check() { ++ local _arch=$(uname -m) ++ # No suspend support on s390(x) ++ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] && return 1 ++ + # No point trying to support resume, if no swap partition exist + [[ $hostonly ]] || [[ $mount_needs ]] && { + for fs in "${host_fs_types[@]}"; do diff --git a/0040-fcoe_fix_check_function.patch b/0040-fcoe_fix_check_function.patch new file mode 100644 index 0000000..b4fcb3b --- /dev/null +++ b/0040-fcoe_fix_check_function.patch @@ -0,0 +1,26 @@ +dracut: Only add fcoe module in hostonly mode if there are active fcoe devices + +This also avoids unnecessary warnings from require_binary checks. +In hostonly mode fcoe is not needed at all if there are no active fcoe +devices. So silently omit this module in this case. + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/95fcoe/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/95fcoe/module-setup.sh ++++ dracut-037/modules.d/95fcoe/module-setup.sh +@@ -43,6 +43,13 @@ cmdline() { + + # called by dracut + check() { ++ # Only add in hostonly mode if fcoe devices exist ++ if [[ $hostonly ]]; then ++ ls /sys/bus/fcoe/devices/ctlr_* >/dev/null 2>&1 ++ if [ $? -ne 0 ];then ++ return 255 ++ fi ++ fi + require_binaries dcbtool fipvlan lldpad ip readlink || return 1 + return 0 + } diff --git a/0041-only_enable_network_if_explicitly_requested.patch b/0041-only_enable_network_if_explicitly_requested.patch new file mode 100644 index 0000000..4d13d0b --- /dev/null +++ b/0041-only_enable_network_if_explicitly_requested.patch @@ -0,0 +1,29 @@ +commit bb15f5443c3e3bf4d27f68a28aed54f4112ee5d2 +Author: Pawel Wieczorkiewicz +Date: Tue May 27 11:48:43 2014 +0200 + + 40network: Only enable network interfaces if explicitly requested + + Currently all available network interfaces are started whenever + 40network is pulled in. This causes massive delays during bootup. + This patch modifies the behaviour to start interfaces only if + rd.neednet is specified. + + References: bnc#879038 + + Signed-off-by: Pawel Wieczorkiewicz + +diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh +index 6ec9239..2fd8c6b 100755 +--- a/modules.d/40network/net-genrules.sh ++++ b/modules.d/40network/net-genrules.sh +@@ -97,8 +97,8 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh + else + cond='ACTION=="add", SUBSYSTEM=="net"' + # if you change the name of "91-default-net.rules", also change modules.d/80cms/cmssetup.sh +- echo "$cond, $runcmd" > /etc/udev/rules.d/91-default-net.rules + if [ "$NEEDNET" = "1" ]; then ++ echo "$cond, $runcmd" > /etc/udev/rules.d/91-default-net.rules + echo "[ -f /tmp/net.*.did-setup ]" >$hookdir/initqueue/finished/wait-network.sh + fi + fi diff --git a/0042-ibft_autoconfig_param.patch b/0042-ibft_autoconfig_param.patch new file mode 100644 index 0000000..714ec76 --- /dev/null +++ b/0042-ibft_autoconfig_param.patch @@ -0,0 +1,35 @@ +commit 9e62c7dda6ed5a0a40aed6c228c9b88c61431586 +Author: Hannes Reinecke +Date: Tue May 27 12:07:35 2014 +0200 + + 95iscsi: Use 'ip=ibft' for ibft autoconfiguration + + For iBFT autoconfiguration we should be setting 'ip=ibft' + instead of rd.neednet. This should instruct dracut to only + enable the iBFT interfaces and leave the rest alone. + + References: bnc#879038 + + Signed-off-by: Hannes Reinecke + +diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh +index 97e6e81..634c72e 100755 +--- a/modules.d/95iscsi/module-setup.sh ++++ b/modules.d/95iscsi/module-setup.sh +@@ -41,12 +41,14 @@ installkernel() { + + install_ibft() { + # When iBFT / iscsi_boot is detected: +- # - mark network as mandatory ++ # - Use 'ip=ibft' to set up iBFT network interface + # - specify firmware booting cmdline parameter + + for d in /sys/firmware/* ; do + if [ -d ${d}/initiator ] ; then +- echo "rd.neednet=1" >> "${initdir}/etc/cmdline.d/95iscsi.conf" ++ if [ ${d##*/} = "ibft" ] ; then ++ echo "ip=ibft" >> "${initdir}/etc/cmdline.d/95iscsi.conf" ++ fi + echo "rd.iscsi.firmware=1" >> "${initdir}/etc/cmdline.d/95iscsi.conf" + fi + done diff --git a/0043-fcoe_strip_quotes.patch b/0043-fcoe_strip_quotes.patch new file mode 100644 index 0000000..e5e1b19 --- /dev/null +++ b/0043-fcoe_strip_quotes.patch @@ -0,0 +1,39 @@ +commit 7d3142ce831420b957841ebe045f7b0018759d5b +Author: Hannes Reinecke +Date: Tue May 27 13:30:17 2014 +0200 + + 95iscsi: strip one set of quotes when calling initqueue + + initqueue will process the arguments, assuming the first non-option + argument to be the program to be executed. Putting the entire + commandline into this argument confuses both, initqueue and the + program in question. + + References: bnc#879038 + + Signed-off-by: Hannes Reinecke + +Index: dracut-037/modules.d/95iscsi/parse-iscsiroot.sh +=================================================================== +--- dracut-037.orig/modules.d/95iscsi/parse-iscsiroot.sh ++++ dracut-037/modules.d/95iscsi/parse-iscsiroot.sh +@@ -69,8 +69,8 @@ fi + + # iscsi_firmware does not need argument checking + if [ -n "$iscsi_firmware" ] ; then +- netroot=${netroot:-iscsi:} +- initqueue --onetime --timeout "/sbin/iscsiroot dummy '$netroot' '$NEWROOT'" ++ [ -z "$netroot" ] && netroot=iscsi: ++ initqueue --onetime --timeout /sbin/iscsiroot dummy "$netroot" "$NEWROOT" + fi + + # If it's not iscsi we don't continue +@@ -94,7 +94,7 @@ fi + + if [ -n "$netroot" ] && [ "$root" != "/dev/root" ] && [ "$root" != "dhcp" ]; then + if ! getargbool 1 rd.neednet >/dev/null || ! getarg "ip="; then +- initqueue --onetime --settled "/sbin/iscsiroot dummy '$netroot' '$NEWROOT'" ++ initqueue --onetime --settled /sbin/iscsiroot dummy "$netroot" "$NEWROOT" + fi + fi + diff --git a/0044-Add_update_bootloader_msg.patch b/0044-Add_update_bootloader_msg.patch new file mode 100644 index 0000000..61f3566 --- /dev/null +++ b/0044-Add_update_bootloader_msg.patch @@ -0,0 +1,11 @@ +Index: dracut-037/mkinitrd-suse.sh +=================================================================== +--- dracut-037.orig/mkinitrd-suse.sh ++++ dracut-037/mkinitrd-suse.sh +@@ -346,5 +346,6 @@ done + if [ "$skip_update_bootloader" ] ; then + echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually." + else ++ echo "Update bootloader..." + update-bootloader --refresh + fi diff --git a/0045-add-chown_binary.patch b/0045-add-chown_binary.patch new file mode 100644 index 0000000..3a48727 --- /dev/null +++ b/0045-add-chown_binary.patch @@ -0,0 +1,23 @@ +dracut: Always add chgrp to initrd + +nvidia driver needs this via modprobe script. +Needs to do change the group after a device node got created. +Add chown instead of chgrp which can also change the owner of a file. + +Ask Stefand Dirsch for details. + +Signed-off-by: Thomas Renninger + +Index: dracut-037/modules.d/99base/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/99base/module-setup.sh ++++ dracut-037/modules.d/99base/module-setup.sh +@@ -17,7 +17,7 @@ depends() { + install() { + local _d + +- inst_multiple mount mknod mkdir sleep chroot \ ++ inst_multiple mount mknod mkdir sleep chroot chgrp \ + sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid + inst $(command -v modprobe) /sbin/modprobe + diff --git a/dracut-install-persistent-rule.patch b/dracut-install-persistent-rule.patch index bbfffc2..b5494a1 100644 --- a/dracut-install-persistent-rule.patch +++ b/dracut-install-persistent-rule.patch @@ -12,18 +12,15 @@ Signed-off-by: Hannes Reinecke modules.d/95udev-rules/module-setup.sh | 1 + 1 file changed, 1 insertion(+) -diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh -index 2d36712..f02b59e 100755 ---- a/modules.d/95udev-rules/module-setup.sh -+++ b/modules.d/95udev-rules/module-setup.sh +Index: dracut-037/modules.d/95udev-rules/module-setup.sh +=================================================================== +--- dracut-037.orig/modules.d/95udev-rules/module-setup.sh ++++ dracut-037/modules.d/95udev-rules/module-setup.sh @@ -32,6 +32,7 @@ install() { 60-pcmcia.rules \ 50-udev.rules 95-late.rules \ 50-firmware.rules \ + 70-persistent-net.rules \ + 59-scsi-sg3_utils.rules \ 75-net-description.rules \ 80-net-name-slot.rules 80-net-setup-link.rules \ - "$moddir/59-persistent-storage.rules" \ --- -1.8.1.4 - diff --git a/dracut.changes b/dracut.changes index 3a9d1ae..552ca30 100644 --- a/dracut.changes +++ b/dracut.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Wed May 28 15:54:26 UTC 2014 - trenn@suse.de + +- Update to latest git HEAD: commit 0fa5dbedc5b222435f51f7460a81232ee120c4e1 + Tue May 20 13:23 + Modified dracut_v37_to_HEAD.patch + Modified mdraid-setup.patch + Modified dracut-install-persistent-rule.patch +- Add /etc/dracut.d.conf/01-dist modifications to file instead of writing + to it via rpm build section + Add 0033-dracut_hostonly_hostonly_cmdline_default.patch + Add 0034-suse.conf.example_extend.patch +- Cleanup mkinitrd-suse.sh: + * Remove hostonly and hostonly-cmdline -> this is done via 01-dist config + file now +- Always add network module based on modules_setup.sh check() function and not + via 01-dist config file + Add 0035-always_add_network.patch +- Add find to debug binaries - Useful and harmless + Add 0036-add_extra_debug_binaries.patch +- Fix adding of network modules for s390 (bnc#879302) + Add 0037-fix_s390_network_modules_install.patch +- Omit resume module on s390(x) - There is no suspend on s390 + Add 0039-s390_no_resume_module.patch +- Do not wait for swap - This causes trouble with Rudi's autobuild images: + Add 0038-remove_waiting_for_swap_dev.patch +- Fcoe and ibft fixes (bnc#879038): + Add 0041-only_enable_network_if_explicitly_requested.patch + Add 0042-ibft_autoconfig_param.patch + Add 0043-fcoe_strip_quotes.patch +- Print message when starting to update bootloader + Add 0044-Add_update_bootloader_msg.patch +- ToDo: Pass hostonly variable earlier so that is always avail in check() + function. Still already add: + Add 0040-fcoe_fix_check_function.patch +- Add chown to initrd (bnc#879767) + Add 0045-add-chown_binary.patch +- Use parallel pixz instead of xz binary to compress the initrd + ------------------------------------------------------------------- Tue May 20 08:59:51 UTC 2014 - trenn@suse.de diff --git a/dracut.spec b/dracut.spec index 656dcfd..5ba6dae 100644 --- a/dracut.spec +++ b/dracut.spec @@ -66,7 +66,18 @@ Patch41: 0028-95fcoe-update-fcoe-interface-check.patch Patch42: 0029-95fcoe-start-lldpad-separately.patch Patch43: 0030-dracut-mkinitd_cleanup_force_host_only_var.patch Patch44: 0031-95fcoe-skip-VLAN-devices-in-fcoe-up.patch -Patch45: 0032-98systemd-fixup-rootfs-generator-installation-path.patch +Patch46: 0033-dracut_hostonly_hostonly_cmdline_default.patch +Patch47: 0034-suse.conf.example_extend.patch +Patch48: 0035-always_add_network.patch +Patch49: 0036-add_extra_debug_binaries.patch +Patch50: 0037-fix_s390_network_modules_install.patch +Patch51: 0038-remove_waiting_for_swap_dev.patch +Patch52: 0039-s390_no_resume_module.patch +Patch54: 0041-only_enable_network_if_explicitly_requested.patch +Patch55: 0042-ibft_autoconfig_param.patch +Patch56: 0043-fcoe_strip_quotes.patch +Patch57: 0044-Add_update_bootloader_msg.patch +Patch58: 0045-add-chown_binary.patch BuildRequires: asciidoc BuildRequires: bash @@ -89,7 +100,7 @@ Requires: systemd >= 200 Requires: systemd-sysvinit Requires: udev > 166 Requires: util-linux >= 2.21 -Requires: xz +Requires: pixz Recommends: binutils Recommends: logrotate Obsoletes: mkinitrd < 2.8.2 @@ -148,7 +159,18 @@ and its cryptography during startup. %patch42 -p1 %patch43 -p1 %patch44 -p1 -%patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch54 -p1 +%patch55 -p1 +%patch56 -p1 +%patch57 -p1 +%patch58 -p1 %build %configure\ @@ -186,11 +208,6 @@ mkdir -p %{buildroot}%{_localstatedir}/log touch %{buildroot}%{_localstatedir}/log/dracut.log install -m 0644 dracut.conf.d/suse.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf -echo '### Generated File - Please do not edit, create a new config file instead ###' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf -echo 'add_dracutmodules+=" network "' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf -echo 'compress="xz --check=crc32 -6"' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf -echo 'hostonly="yes"' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf -echo 'hostonly_cmdline="yes"' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf install -m 0644 dracut.conf.d/fips.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/40-fips.conf diff --git a/dracut_v37_to_HEAD.patch b/dracut_v37_to_HEAD.patch index 0d2c110..9a4bb25 100644 --- a/dracut_v37_to_HEAD.patch +++ b/dracut_v37_to_HEAD.patch @@ -1,5 +1,10 @@ +HEAD is: +commit 0fa5dbedc5b222435f51f7460a81232ee120c4e1 +Date: Tue May 20 13:23:43 2014 +0200 + + diff --git a/dracut-functions.sh b/dracut-functions.sh -index 391b549..c758029 100755 +index 391b549..ac22b7e 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -33,7 +33,11 @@ if [[ $initdir ]] && ! [[ -d $initdir ]]; then @@ -15,6 +20,24 @@ index 391b549..c758029 100755 # helper function for check() in module-setup.sh # to check for required installed binaries +@@ -49,7 +53,7 @@ require_binaries() { + + for cmd in "$@"; do + if ! find_binary "$cmd" &>/dev/null; then +- dinfo "$_module_name: Could not find command '$cmd'!" ++ dinfo "dracut module '${_module_name#[0-9][0-9]}' will not be installed, because command '$cmd' could not be found!" + ((_ret++)) + fi + done +@@ -221,7 +225,7 @@ print_vars() { + + for _var in "$@" + do +- eval printf -v _value "%s" "\$$_var" ++ eval printf -v _value "%s" \""\$$_var"\" + [[ ${_value} ]] && printf '%s="%s"\n' "$_var" "$_value" + done + } diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh index f29c814..0dd1938 100644 --- a/dracut-initramfs-restore.sh @@ -45,6 +68,32 @@ index f29c814..0dd1938 100644 rm -f -- .need_shutdown else # something failed, so we clean up +diff --git a/dracut.sh b/dracut.sh +index c1ef474..c4163bc 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -834,6 +834,13 @@ trap 'exit 1;' SIGINT + export DRACUT_KERNEL_LAZY="1" + export DRACUT_RESOLVE_LAZY="1" + ++if [[ $print_cmdline ]]; then ++ stdloglvl=0 ++ sysloglvl=0 ++ fileloglvl=0 ++ kmsgloglvl=0 ++fi ++ + if [[ -f $dracutbasedir/dracut-functions.sh ]]; then + . $dracutbasedir/dracut-functions.sh + else +@@ -907,6 +914,7 @@ for ((i=0; i < ${#dracut_args[@]}; i++)); do + dracut_args[$i]="\"${dracut_args[$i]}\"" + #" keep vim happy + done ++ + dinfo "Executing: $0 ${dracut_args[@]}" + + [[ $do_list = yes ]] && { diff --git a/lsinitrd.sh b/lsinitrd.sh index 8dc9032..a697bc2 100755 --- a/lsinitrd.sh @@ -219,10 +268,19 @@ index 7430e4c..a82f1a8 100755 + return 0 +} diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh -index e2fa485..5de2e90 100755 +index e2fa485..6756c3f 100755 --- a/modules.d/45ifcfg/write-ifcfg.sh +++ b/modules.d/45ifcfg/write-ifcfg.sh -@@ -85,7 +85,7 @@ for netup in /tmp/net.*.did-setup ; do +@@ -3,6 +3,8 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + + # NFS root might have reached here before /tmp/net.ifaces was written ++type is_persistent_ethernet_name >/dev/null 2>&1 || . /lib/net-lib.sh ++ + udevadm settle --timeout=30 + + if [ -e /tmp/bridge.info ]; then +@@ -85,7 +87,7 @@ for netup in /tmp/net.*.did-setup ; do netif=${netup%%.did-setup} netif=${netif##*/net.} @@ -231,16 +289,18 @@ index e2fa485..5de2e90 100755 [ -e /tmp/ifcfg/ifcfg-$netif ] && continue unset bridge unset bond -@@ -122,7 +122,7 @@ for netup in /tmp/net.*.did-setup ; do +@@ -120,9 +122,9 @@ for netup in /tmp/net.*.did-setup ; do + echo "ONBOOT=yes" + echo "NETBOOT=yes" echo "UUID=\"$uuid\"" ++ strstr "$(ip -6 addr show dev $netif)" 'inet6' && echo "IPV6INIT=yes" if [ -f /tmp/dhclient.$netif.lease ]; then [ -f /tmp/dhclient.$netif.dhcpopts ] && . /tmp/dhclient.$netif.dhcpopts - strstr "$ip" '*:*:*' && echo "IPV6INIT=yes" -+ strstr "$(ip -6 addr show dev $netif)" 'inet6' && echo "IPV6INIT=yes" if [ -f /tmp/net.$netif.has_ibft_config ]; then echo "BOOTPROTO=ibft" else -@@ -132,7 +132,7 @@ for netup in /tmp/net.*.did-setup ; do +@@ -132,7 +134,7 @@ for netup in /tmp/net.*.did-setup ; do else # If we've booted with static ip= lines, the override file is there [ -e /tmp/net.$netif.override ] && . /tmp/net.$netif.override @@ -249,7 +309,7 @@ index e2fa485..5de2e90 100755 echo "IPV6INIT=yes" echo "IPV6_AUTOCONF=no" echo "IPV6ADDR=\"$ip/$mask\"" -@@ -149,7 +149,7 @@ for netup in /tmp/net.*.did-setup ; do +@@ -149,7 +151,7 @@ for netup in /tmp/net.*.did-setup ; do fi fi fi @@ -258,7 +318,7 @@ index e2fa485..5de2e90 100755 echo "IPV6_DEFAULTGW=\"$gw\"" elif [ -n "$gw" ]; then echo "GATEWAY=\"$gw\"" -@@ -164,7 +164,13 @@ for netup in /tmp/net.*.did-setup ; do +@@ -164,7 +166,13 @@ for netup in /tmp/net.*.did-setup ; do { [ -n "$macaddr" ] && echo "MACADDR=\"$macaddr\"" if ! print_s390 $netif; then @@ -299,6 +359,18 @@ index b361650..926340e 100755 if [ "$ipv6" ] && ! str_starts "$IPADDR" "["; then IPADDR="[$IPADDR]" +diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh +index 36955bc..c9e1331 100755 +--- a/modules.d/80cms/cmssetup.sh ++++ b/modules.d/80cms/cmssetup.sh +@@ -144,6 +144,7 @@ function dasd_settle_all() { + processcmsfile() + { + source /tmp/cms.conf ++ SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')" + + if [[ $NETTYPE ]]; then + ( diff --git a/modules.d/90dm/module-setup.sh b/modules.d/90dm/module-setup.sh index 829c24b..2367588 100755 --- a/modules.d/90dm/module-setup.sh @@ -326,6 +398,32 @@ index 93a452e..5b810b9 100755 sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules sed -i -e 's/^ENV{ID_MODEL}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules sed -i -e 's/^ENV{SYSTEMD_WANTS}=.*//' ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules +diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh +index ac745d1..81c94f2 100755 +--- a/modules.d/90mdraid/module-setup.sh ++++ b/modules.d/90mdraid/module-setup.sh +@@ -54,6 +54,8 @@ cmdline() { + done + ) + ++ [[ -z "$UUID" ]] && continue ++ + if ! [[ ${_activated[${UUID}]} ]]; then + printf "%s" " rd.md.uuid=${UUID}" + _activated["${UUID}"]=1 +diff --git a/modules.d/95fcoe-uefi/parse-uefifcoe.sh b/modules.d/95fcoe-uefi/parse-uefifcoe.sh +index 0799cdd..7b8f1a6 100755 +--- a/modules.d/95fcoe-uefi/parse-uefifcoe.sh ++++ b/modules.d/95fcoe-uefi/parse-uefifcoe.sh +@@ -26,7 +26,7 @@ print_fcoe_uefi_conf() + esac + fi + # fcoe=eth0:nodcb +- printf "%s\n" "$dev:nodcb" ++ printf "fcoe=%s\n" "$dev:nodcb" + return 0 + } + diff --git a/modules.d/95fcoe/fcoe-genrules.sh b/modules.d/95fcoe/fcoe-genrules.sh index 80894ed..fa3af6d 100755 --- a/modules.d/95fcoe/fcoe-genrules.sh @@ -411,6 +509,21 @@ index 12711a0..a237810 100755 # prefer $NEWROOT/etc/fstab.sys over local /etc/fstab.sys if [ -f $NEWROOT/etc/fstab.sys ]; then +diff --git a/modules.d/95nbd/nbdroot.sh b/modules.d/95nbd/nbdroot.sh +index 32f346d..8bfbebc 100755 +--- a/modules.d/95nbd/nbdroot.sh ++++ b/modules.d/95nbd/nbdroot.sh +@@ -111,6 +111,10 @@ if [ "$root" = "block:/dev/root" -o "$root" = "dhcp" ]; then + fi + fi + ++if strstr "$(nbd-client --help 2>&1)" "systemd-mark"; then ++ preopts="--systemd-mark $preopts" ++fi ++ + nbd-client $preopts "$nbdserver" $nbdport /dev/nbd0 $opts || exit 1 + + # NBD doesn't emit uevents when it gets connected, so kick it diff --git a/modules.d/95nfs/nfs-lib.sh b/modules.d/95nfs/nfs-lib.sh index 9ced2e6..d5377fe 100755 --- a/modules.d/95nfs/nfs-lib.sh @@ -424,6 +537,56 @@ index 9ced2e6..d5377fe 100755 server="${arg%%:/*}" arg="/${arg##*:/}" fi +diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh +index ceb7855..b1b4684 100755 +--- a/modules.d/95resume/module-setup.sh ++++ b/modules.d/95resume/module-setup.sh +@@ -17,12 +17,12 @@ check() { + + # called by dracut + cmdline() { +- local _activated +- declare -A _activated ++ local _resume + + for dev in "${!host_fs_types[@]}"; do + [[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue +- printf "resume=%s " "$(shorten_persistent_dev "$(get_persistent_dev "$dev")")" ++ _resume=$(shorten_persistent_dev "$(get_persistent_dev "$dev")") ++ [[ -n ${_resume} ]] && printf " resume=%s" "${_resume}" + done + } + +diff --git a/modules.d/95resume/parse-resume.sh b/modules.d/95resume/parse-resume.sh +index d7b2d7f..6ab59c3 100755 +--- a/modules.d/95resume/parse-resume.sh ++++ b/modules.d/95resume/parse-resume.sh +@@ -70,9 +70,10 @@ if ! getarg noresume; then + printf '[ -e "%s" ] && { ln -s "%s" /dev/resume; rm -f -- "$job" "%s/initqueue/timeout/resume.sh"; }\n' \ + "$resume" "$resume" "$hookdir" >> $hookdir/initqueue/settled/resume.sh + +- printf -- "%s" 'warn "Cancelling resume operation. Device not found.";' +- printf -- ' cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";\n' \ +- "$hookdir" >> $hookdir/initqueue/timeout/resume.sh ++ { ++ printf -- "%s" 'warn "Cancelling resume operation. Device not found.";' ++ printf -- ' cancel_wait_for_dev /dev/resume; rm -f -- "$job" "%s/initqueue/settled/resume.sh";\n' "$hookdir" ++ } >> $hookdir/initqueue/timeout/resume.sh + + mv /lib/dracut/resume.sh /lib/dracut/hooks/pre-mount/10-resume.sh + else +diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh +index 2d36712..fab4ffc 100755 +--- a/modules.d/95udev-rules/module-setup.sh ++++ b/modules.d/95udev-rules/module-setup.sh +@@ -32,6 +32,7 @@ install() { + 60-pcmcia.rules \ + 50-udev.rules 95-late.rules \ + 50-firmware.rules \ ++ 59-scsi-sg3_utils.rules \ + 75-net-description.rules \ + 80-net-name-slot.rules 80-net-setup-link.rules \ + "$moddir/59-persistent-storage.rules" \ diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98systemd/dracut-initqueue.service index 03dcc4e..1b9e701 100644 --- a/modules.d/98systemd/dracut-initqueue.service @@ -437,8 +600,21 @@ index 03dcc4e..1b9e701 100644 After=systemd-udev-trigger.service Wants=systemd-udev-trigger.service ConditionPathExists=/etc/initrd-release +diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service +index 6db1f2c..d7c7b1d 100644 +--- a/modules.d/98systemd/dracut-pre-pivot.service ++++ b/modules.d/98systemd/dracut-pre-pivot.service +@@ -13,6 +13,8 @@ Documentation=man:dracut-pre-pivot.service(8) + After=initrd.target initrd-parse-etc.service sysroot.mount + After=dracut-initqueue.service dracut-pre-mount.service dracut-mount.service + Before=initrd-cleanup.service ++Wants=remote-fs.target ++After=remote-fs.target + ConditionPathExists=/etc/initrd-release + ConditionDirectoryNotEmpty=|/lib/dracut/hooks/pre-pivot + ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cleanup diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh -index c72aad4..e7bf73b 100755 +index c72aad4..cf1b2e7 100755 --- a/modules.d/98systemd/module-setup.sh +++ b/modules.d/98systemd/module-setup.sh @@ -44,6 +44,7 @@ install() { @@ -449,8 +625,17 @@ index c72aad4..e7bf73b 100755 \ $systemdsystemunitdir/cryptsetup.target \ $systemdsystemunitdir/emergency.target \ +@@ -191,7 +192,7 @@ install() { + inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount + inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot + +- inst_script "$moddir/rootfs-generator.sh" /lib/systemd/system-generators/dracut-rootfs-generator ++ inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator + + inst_binary true + ln_r $(type -P true) "/usr/bin/loginctl" diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh -index e4d7da8..127287c 100755 +index e4d7da8..33f7678 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -20,19 +20,33 @@ debug_on() { @@ -514,6 +699,25 @@ index e4d7da8..127287c 100755 server="${arg%%:/*}" arg="/${arg##*:/}" fi +@@ -969,6 +983,7 @@ if ! command -v pidof >/dev/null 2>/dev/null; then + local _cmd + local _exe + local _rl ++ local _ret=1 + local i + _cmd="$1" + [ -z "$_cmd" ] && return 1 +@@ -983,8 +998,9 @@ if ! command -v pidof >/dev/null 2>/dev/null; then + fi + i=${i%/exe} + echo ${i##/proc/} ++ _ret=0 + done +- return 0 ++ return $_ret + } + fi + diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh index 2364f4f..a1232eb 100755 --- a/modules.d/99base/init.sh diff --git a/mdraid-setup.patch b/mdraid-setup.patch index 985705a..c34303b 100644 --- a/mdraid-setup.patch +++ b/mdraid-setup.patch @@ -17,7 +17,7 @@ Index: dracut-037/modules.d/90mdraid/module-setup.sh =================================================================== --- dracut-037.orig/modules.d/90mdraid/module-setup.sh +++ dracut-037/modules.d/90mdraid/module-setup.sh -@@ -86,7 +86,7 @@ install() { +@@ -88,7 +88,7 @@ install() { for rule in 64-md-raid.rules 64-md-raid-assembly.rules; do rule_path="${initdir}${udevdir}/rules.d/${rule}" [ -f "${rule_path}" ] && sed -i -r \