diff --git a/0106-dracut-Enable-converting-of-directory-var-run-var-lo.patch b/0106-dracut-Enable-converting-of-directory-var-run-var-lo.patch new file mode 100644 index 0000000..8fee481 --- /dev/null +++ b/0106-dracut-Enable-converting-of-directory-var-run-var-lo.patch @@ -0,0 +1,163 @@ +From 6cadece6089ef4d4efbfebeb6b23ca3f2429b36c Mon Sep 17 00:00:00 2001 +From: Thomas Renninger +Date: Tue, 8 Jul 2014 17:34:08 +0200 +Subject: dracut: Enable converting of directory /var/run /var/lock to symlinks + to /run + +If /var/run is a directory this module will be added. +After reboot /var/run and /var/lock will be symlinks. +Another initrd re-creation will not include convertfs module anymore. + +bnc#877680 + +Signed-off-by: Thomas Renninger +--- + modules.d/30convertfs/convertfs.sh | 9 ------ + modules.d/30convertfs/convertrunfs.sh | 54 +++++++++++++++++++++++++++++++++++ + modules.d/30convertfs/do-convertfs.sh | 17 +++++++++++ + modules.d/30convertfs/module-setup.sh | 10 +++++-- + 4 files changed, 79 insertions(+), 11 deletions(-) + create mode 100755 modules.d/30convertfs/convertrunfs.sh + +diff --git a/modules.d/30convertfs/convertfs.sh b/modules.d/30convertfs/convertfs.sh +index d717c69..525b1e7 100755 +--- a/modules.d/30convertfs/convertfs.sh ++++ b/modules.d/30convertfs/convertfs.sh +@@ -64,15 +64,6 @@ if [[ ! -e "$testfile" ]]; then + fi + rm -f -- "$testfile" + +-testfile="$ROOT/usr/.usrmovecheck$$" +-rm -f -- "$testfile" +-> "$testfile" +-if [[ ! -e "$testfile" ]]; then +- echo "Cannot write to $ROOT/usr/" +- exit 1 +-fi +-rm -f -- "$testfile" +- + find_mount() { + local dev mnt etc wanted_dev + wanted_dev="$(readlink -e -q $1)" +diff --git a/modules.d/30convertfs/convertrunfs.sh b/modules.d/30convertfs/convertrunfs.sh +new file mode 100755 +index 0000000..52700cd +--- /dev/null ++++ b/modules.d/30convertfs/convertrunfs.sh +@@ -0,0 +1,54 @@ ++#!/bin/bash ++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- ++# ex: ts=8 sw=4 sts=4 et filetype=sh ++ ++ROOT="$1" ++ ++if [[ ! -d "$ROOT" ]]; then ++ echo "Usage: $0 " ++ exit 1 ++fi ++ ++if [[ "$ROOT" -ef / ]]; then ++ echo "Can't convert the running system." ++ echo "Please boot with 'rd.convertfs' on the kernel command line," ++ echo "to update with the help of the initramfs," ++ echo "or run this script from a rescue system." ++ exit 1 ++fi ++ ++while [[ "$ROOT" != "${ROOT%/}" ]]; do ++ ROOT=${ROOT%/} ++done ++ ++if findmnt "$ROOT" -O ro;then ++ WAS_RO=1 ++ mount $ROOT -o remount,rw ++else ++ WAS_RO=0 ++fi ++ ++testfile="$ROOT/.usrmovecheck$$" ++rm -f -- "$testfile" ++> "$testfile" ++if [[ ! -e "$testfile" ]]; then ++ echo "Cannot write to $ROOT/" ++ exit 1 ++fi ++rm -f -- "$testfile" ++ ++if [ ! -L $ROOT/var/run -a -e $ROOT/var/run ]; then ++ echo "Converting /var/run to symlink" ++ mv -f $ROOT/var/run $ROOT/var/run.runmove~ ++ ln -sfn ../run $ROOT/var/run ++fi ++ ++if [ ! -L $ROOT/var/lock -a -e $ROOT/var/lock ]; then ++ echo "Converting /var/lock to symlink" ++ mv -f $ROOT/var/lock $ROOT/var/lock.lockmove~ ++ ln -sfn ../run/lock $ROOT/var/lock ++fi ++ ++if [ $WAR_RO -eq 1 ];then ++ mount $ROOT -o remount,ro ++fi +diff --git a/modules.d/30convertfs/do-convertfs.sh b/modules.d/30convertfs/do-convertfs.sh +index 99738e3..ef05a06 100755 +--- a/modules.d/30convertfs/do-convertfs.sh ++++ b/modules.d/30convertfs/do-convertfs.sh +@@ -2,10 +2,27 @@ + # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- + # ex: ts=8 sw=4 sts=4 et filetype=sh + ++# This converts all, /usr/bin -> /bin, ... and /var/run -> /run ++# Do not enable by default! + if getargbool 0 rd.convertfs; then ++ info "Converting both /var/run to /run tmpfs and /usr/bin -> /bin" + if getargbool 0 rd.debug; then + bash -x convertfs "$NEWROOT" 2>&1 | vinfo ++ exit 0 + else + convertfs "$NEWROOT" 2>&1 | vinfo ++ exit 0 ++ fi ++fi ++ ++# This only converts /var/run -> /run as tmpfs ++if ! test -L "$NEWROOT"/var/run;then ++ info "Converting /var/run to /run tmpfs" ++ if getargbool 0 rd.debug; then ++ bash -x convertrunfs "$NEWROOT" 2>&1 | vinfo ++ exit 0 ++ else ++ convertrunfs "$NEWROOT" 2>&1 | vinfo ++ exit 0 + fi + fi +diff --git a/modules.d/30convertfs/module-setup.sh b/modules.d/30convertfs/module-setup.sh +index 1e73455..5fead45 100755 +--- a/modules.d/30convertfs/module-setup.sh ++++ b/modules.d/30convertfs/module-setup.sh +@@ -4,8 +4,13 @@ + + # called by dracut + check() { +- [[ $mount_needs ]] && return 1 +- return 255 ++ # Only check for /var/run ++ if test -L /var/run;then ++ return 255 ++ else ++ require_binaries bash find ldconfig mv rm cp ln || return 1 ++ return 0 ++ fi + } + + # called by dracut +@@ -18,5 +23,6 @@ install() { + inst_multiple bash find ldconfig mv rm cp ln + inst_hook pre-pivot 99 "$moddir/do-convertfs.sh" + inst_script "$moddir/convertfs.sh" /usr/bin/convertfs ++ inst_script "$moddir/convertrunfs.sh" /usr/bin/convertrunfs + } + +-- +1.8.4.5 + diff --git a/0107-Fixup-typo-firmare-instead-of-firmware.patch b/0107-Fixup-typo-firmare-instead-of-firmware.patch new file mode 100644 index 0000000..e59ad54 --- /dev/null +++ b/0107-Fixup-typo-firmare-instead-of-firmware.patch @@ -0,0 +1,40 @@ +From b723f5fabf7ca5396fbd451e8b2d6ee6b82888c8 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Wed, 9 Jul 2014 09:34:35 +0200 +Subject: Fixup typo 'firmare' instead of 'firmware' + +Signed-off-by: Hannes Reinecke +--- + modules.d/95dasd_rules/parse-dasd.sh | 2 +- + modules.d/95zfcp_rules/parse-zfcp.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh +index 7b6a3d2..bafd053 100755 +--- a/modules.d/95dasd_rules/parse-dasd.sh ++++ b/modules.d/95dasd_rules/parse-dasd.sh +@@ -45,7 +45,7 @@ EOF + } + + if [[ -f /sys/firmware/ipl/ipl_type && +- $( +Date: Thu, 10 Jul 2014 14:55:50 +0200 +Subject: 91zipl: Store commandline correctly + +The 'rd.zipl' command was only printed and never stored in the +initramfs itself. + +Signed-off-by: Hannes Reinecke +--- + modules.d/91zipl/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh +index a8d95c5..84bb41d 100644 +--- a/modules.d/91zipl/module-setup.sh ++++ b/modules.d/91zipl/module-setup.sh +@@ -39,7 +39,7 @@ install() { + if [[ $hostonly_cmdline == "yes" ]] ; then + local _zipl=$(cmdline) + +- [[ $_zipl ]] && printf "%s\n" "$_zipl" ++ [[ $_zipl ]] && printf "%s\n" "$_zipl" > "${initdir}/etc/cmdline.d/91zipl.conf" + fi + dracut_need_initqueue + } +-- +1.8.4.5 + diff --git a/0109-95dasd_rules-Store-all-devices-in-commandline.patch b/0109-95dasd_rules-Store-all-devices-in-commandline.patch new file mode 100644 index 0000000..8394098 --- /dev/null +++ b/0109-95dasd_rules-Store-all-devices-in-commandline.patch @@ -0,0 +1,33 @@ +From 0299c9f31fb0c5794747a6a7f62c32abd9a49754 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Jul 2014 14:56:54 +0200 +Subject: 95dasd_rules: Store all devices in commandline + +'for_each_host_dev_and_slaves' would stop at the first found +device, so the cmdline() call would never list all required +devices. Use 'for_each_host_dev_and_slaves_all' instead and +filter out duplicates. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95dasd_rules/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh +index e4736a2..78a7a66 100755 +--- a/modules.d/95dasd_rules/module-setup.sh ++++ b/modules.d/95dasd_rules/module-setup.sh +@@ -14,8 +14,8 @@ cmdline() { + return 0 + } + [[ $hostonly ]] || [[ $mount_needs ]] && { +- for_each_host_dev_and_slaves is_dasd || return 255 +- } ++ for_each_host_dev_and_slaves_all is_dasd || return 255 ++ } | sort | uniq + } + + # called by dracut +-- +1.8.4.5 + diff --git a/0110-95zfcp_rules-Store-all-devices-in-commandline.patch b/0110-95zfcp_rules-Store-all-devices-in-commandline.patch new file mode 100644 index 0000000..6326196 --- /dev/null +++ b/0110-95zfcp_rules-Store-all-devices-in-commandline.patch @@ -0,0 +1,45 @@ +From 0be3d022964d54e8ab769ebed4006ba8b8d65078 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Jul 2014 14:56:54 +0200 +Subject: 95zfcp_rules: Store all devices in commandline + +'for_each_host_dev_and_slaves' would stop at the first found +device, so the cmdline() call would never list all required +devices. Use 'for_each_host_dev_and_slaves_all' instead and +filter out duplicates. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95zfcp_rules/module-setup.sh | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh +index 3f80754..df13fa1 100755 +--- a/modules.d/95zfcp_rules/module-setup.sh ++++ b/modules.d/95zfcp_rules/module-setup.sh +@@ -16,11 +16,11 @@ cmdline() { + _wwpn=$(cat ${_sdev}/wwpn) + _ccw=$(cat ${_sdev}/hba_id) + echo "rd.zfcp=${_ccw},${_wwpn},${_lun}" +- return 1 ++ return 0 + } + [[ $hostonly ]] || [[ $mount_needs ]] && { +- for_each_host_dev_and_slaves is_zfcp +- } ++ for_each_host_dev_and_slaves_all is_zfcp ++ } | sort | uniq + } + + # called by dracut +@@ -31,6 +31,7 @@ check() { + require_binaries /usr/lib/udev/collect || return 1 + + [[ $hostonly ]] || [[ $mount_needs ]] && { ++ found=0 + for _ccw in /sys/bus/ccw/devices/*/host* ; do + [ -d "$_ccw" ] || continue + found=$(($found+1)); +-- +1.8.4.5 + diff --git a/0111-90mdraid-Remove-line-for-offroot-detection.patch b/0111-90mdraid-Remove-line-for-offroot-detection.patch new file mode 100644 index 0000000..b72a4fb --- /dev/null +++ b/0111-90mdraid-Remove-line-for-offroot-detection.patch @@ -0,0 +1,25 @@ +From 73c11cd35b563f94b65058aa8b4e01ce3ff6ef8a Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Jul 2014 15:52:37 +0200 +Subject: 90mdraid: Remove line for 'offroot' detection + +Feature is not present in SLE12, so remove this line. + +Signed-off-by: Hannes Reinecke +--- + modules.d/90mdraid/parse-md.sh | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh +index dd7bda2..947dbd4 100755 +--- a/modules.d/90mdraid/parse-md.sh ++++ b/modules.d/90mdraid/parse-md.sh +@@ -52,5 +52,3 @@ if ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF -n noddfmd -n nodmraid; then + info "no MD RAID for SNIA ddf raids" + udevproperty rd_NO_MDDDF=1 + fi +- +-strstr "$(mdadm --help-options 2>&1)" offroot && udevproperty rd_MD_OFFROOT=--offroot +-- +1.8.4.5 + diff --git a/0112-99base-warn-on-invalid-command-for-initqueue.patch b/0112-99base-warn-on-invalid-command-for-initqueue.patch new file mode 100644 index 0000000..9bf89f3 --- /dev/null +++ b/0112-99base-warn-on-invalid-command-for-initqueue.patch @@ -0,0 +1,33 @@ +From 6d4c7a328cab1c6cda1aedb4a2149e9227c108f0 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Jul 2014 15:56:53 +0200 +Subject: 99base: warn on invalid command for initqueue + +When 'initqueue' is called with an invalid command it'll generate +invalid job scripts. This will lead to confusing error messages +later on. +So abort in these cases and print out a warning. + +Signed-off-by: Hannes Reinecke +--- + modules.d/99base/initqueue.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules.d/99base/initqueue.sh b/modules.d/99base/initqueue.sh +index 854a36a..cbf6fa2 100755 +--- a/modules.d/99base/initqueue.sh ++++ b/modules.d/99base/initqueue.sh +@@ -44,6 +44,10 @@ exe=$1 + shift + + [ -x "$exe" ] || exe=$(command -v $exe) ++if [ -z "$exe" ] ; then ++ echo "Invalid command" ++ exit 1 ++fi + + { + [ -n "$onetime" ] && echo '[ -e "$job" ] && rm -f -- "$job"' +-- +1.8.4.5 + diff --git a/0113-91zipl-Install-script-as-executable.patch b/0113-91zipl-Install-script-as-executable.patch new file mode 100644 index 0000000..6674116 --- /dev/null +++ b/0113-91zipl-Install-script-as-executable.patch @@ -0,0 +1,59 @@ +From 488cf7ad86eee4cd9138d5e58c1baefeeb5e8c98 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 10 Jul 2014 15:58:24 +0200 +Subject: 91zipl: Install script as executable + +initqueue will only work with executable scripts, so we need to +mark it as such. + +Signed-off-by: Hannes Reinecke +--- + modules.d/91zipl/install_zipl_cmdline.sh | 2 +- + modules.d/91zipl/module-setup.sh | 2 +- + modules.d/91zipl/parse-zipl.sh | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + mode change 100644 => 100755 modules.d/91zipl/install_zipl_cmdline.sh + +diff --git a/modules.d/91zipl/install_zipl_cmdline.sh b/modules.d/91zipl/install_zipl_cmdline.sh +old mode 100644 +new mode 100755 +index 8b454b8..3e939c1 +--- a/modules.d/91zipl/install_zipl_cmdline.sh ++++ b/modules.d/91zipl/install_zipl_cmdline.sh +@@ -1,6 +1,6 @@ + #!/bin/bash + +-DEV=$1 ++DEV="$1" + MNT=/boot/zipl + + if [ -z "$DEV" ] ; then +diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh +index 84bb41d..eda4c32 100644 +--- a/modules.d/91zipl/module-setup.sh ++++ b/modules.d/91zipl/module-setup.sh +@@ -35,7 +35,7 @@ install() { + inst_multiple mount umount + + inst_hook cmdline 91 "$moddir/parse-zipl.sh" +- inst "${moddir}/install_zipl_cmdline.sh" /sbin/install_zipl_cmdline.sh ++ inst_script "${moddir}/install_zipl_cmdline.sh" /sbin/install_zipl_cmdline.sh + if [[ $hostonly_cmdline == "yes" ]] ; then + local _zipl=$(cmdline) + +diff --git a/modules.d/91zipl/parse-zipl.sh b/modules.d/91zipl/parse-zipl.sh +index f8c2ca4..308f228 100644 +--- a/modules.d/91zipl/parse-zipl.sh ++++ b/modules.d/91zipl/parse-zipl.sh +@@ -31,7 +31,7 @@ if [ -n "$zipl_arg" ] ; then + esac + if [ "$zipl_env" ] ; then + { +- printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/install_zipl_cmdline.sh %s"\n' \ ++ printf 'ACTION=="add|change", SUBSYSTEM=="block", %s=="%s", RUN+="/sbin/initqueue --settled --onetime --unique --name install_zipl_cmdline /sbin/install_zipl_cmdline.sh %s"\n' \ + ${zipl_env} ${zipl_val} ${zipl_arg} + echo "[ -f /tmp/install.zipl.cmdline-done ]" >$hookdir/initqueue/finished/wait-zipl-conf.sh + } >> /etc/udev/rules.d/99zipl-conf.rules +-- +1.8.4.5 + diff --git a/0114-91zipl-Translate-ext2-3-into-ext4.patch b/0114-91zipl-Translate-ext2-3-into-ext4.patch new file mode 100644 index 0000000..b1d1c6e --- /dev/null +++ b/0114-91zipl-Translate-ext2-3-into-ext4.patch @@ -0,0 +1,45 @@ +From 12131d99811c9829ed1c19e164f2ef22634ba4e5 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Fri, 11 Jul 2014 12:55:55 +0200 +Subject: 91zipl: Translate 'ext2/3' into ext4 + +91zipl tries to read the filesystem for the /boot/zipl device. +On SLE12, however, the ext2 and ext3 filesystems are handled +by the ext4 module. +And due to bug#886839 no error is registered and booting fails. +So implement a band-aid to translate it into ext4. + +Signed-off-by: Hannes Reinecke +--- + modules.d/91zipl/module-setup.sh | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh +index eda4c32..9fe6acc 100644 +--- a/modules.d/91zipl/module-setup.sh ++++ b/modules.d/91zipl/module-setup.sh +@@ -17,7 +17,20 @@ depends() { + + # called by dracut + installkernel() { +- instmods ext2 ++ local _boot_zipl ++ ++ _boot_zipl=$(sed -n 's/\(.*\)\w*\/boot\/zipl.*/\1/p' /etc/fstab) ++ if [ -n "$_boot_zipl" ] ; then ++ eval $(blkid -s TYPE -o udev ${_boot_zipl}) ++ if [ -n "$ID_FS_TYPE" ] ; then ++ case "$ID_FS_TYPE" in ++ ext?) ++ ID_FS_TYPE=ext4 ++ ;; ++ esac ++ instmods ${ID_FS_TYPE} ++ fi ++ fi + } + + # called by dracut +-- +1.8.4.5 + diff --git a/0115-Handle-module-alias-properly.patch b/0115-Handle-module-alias-properly.patch new file mode 100644 index 0000000..e270134 --- /dev/null +++ b/0115-Handle-module-alias-properly.patch @@ -0,0 +1,38 @@ +From 40556c48da1f7f15ad0eb727013589f6f45596f8 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Sat, 12 Jul 2014 14:53:00 +0200 +Subject: Handle module alias properly + +Some modules (like ext4) provide aliases by which the modules +can be accessed, too. But when using aliases directly dracut +fails to include the correct module. So translate the alias +into the correct module name before checking the module. + +References: bnc#886839 + +Signed-off-by: Hannes Reinecke +--- + dracut-functions.sh | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index b6247f5..22e16ff 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -1666,6 +1666,13 @@ instmods() { + --*) _mpargs+=" $_mod" ;; + *) + _mod=${_mod##*/} ++ # Check for aliased modules ++ _modalias=$(modinfo -k $kernel -F filename $_mod 2> /dev/null) ++ _modalias=${_modalias%.ko} ++ if [ "${_modalias##*/}" != "$_mod" ] ; then ++ _mod=${_modalias##*/} ++ fi ++ + # if we are already installed, skip this module and go on + # to the next one. + if [[ $DRACUT_KERNEL_LAZY_HASHDIR ]] && \ +-- +1.8.4.5 + diff --git a/0116-Mark-scripts-as-executable.patch b/0116-Mark-scripts-as-executable.patch new file mode 100644 index 0000000..bce5f39 --- /dev/null +++ b/0116-Mark-scripts-as-executable.patch @@ -0,0 +1,47 @@ +From 941b55f8d9d50b3ba20ba0a2bb64c7509d38ee72 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Sat, 12 Jul 2014 14:55:35 +0200 +Subject: Mark scripts as executable + +All scripts need to be marked as executable, otherwise dracut +won't be running them. + +References: bnc#887010 + +Signed-off-by: Hannes Reinecke +--- + modules.d/81cio_ignore/module-setup.sh | 0 + modules.d/81cio_ignore/parse-cio_accept.sh | 0 + modules.d/91crypt-loop/module-setup.sh | 0 + modules.d/91zipl/module-setup.sh | 0 + modules.d/91zipl/parse-zipl.sh | 0 + modules.d/95fcoe/lldpad.sh | 0 + 6 files changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 modules.d/81cio_ignore/module-setup.sh + mode change 100644 => 100755 modules.d/81cio_ignore/parse-cio_accept.sh + mode change 100644 => 100755 modules.d/91crypt-loop/module-setup.sh + mode change 100644 => 100755 modules.d/91zipl/module-setup.sh + mode change 100644 => 100755 modules.d/91zipl/parse-zipl.sh + mode change 100644 => 100755 modules.d/95fcoe/lldpad.sh + +diff --git a/modules.d/81cio_ignore/module-setup.sh b/modules.d/81cio_ignore/module-setup.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/81cio_ignore/parse-cio_accept.sh b/modules.d/81cio_ignore/parse-cio_accept.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/91crypt-loop/module-setup.sh b/modules.d/91crypt-loop/module-setup.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/91zipl/module-setup.sh b/modules.d/91zipl/module-setup.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/91zipl/parse-zipl.sh b/modules.d/91zipl/parse-zipl.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/95fcoe/lldpad.sh b/modules.d/95fcoe/lldpad.sh +old mode 100644 +new mode 100755 +-- +1.8.4.5 + diff --git a/0117-95dasd_rules-Enable-the-device-before-checking-devic.patch b/0117-95dasd_rules-Enable-the-device-before-checking-devic.patch new file mode 100644 index 0000000..bb21f5c --- /dev/null +++ b/0117-95dasd_rules-Enable-the-device-before-checking-devic.patch @@ -0,0 +1,54 @@ +From 22c039c79eb496af10fbc811854e07822b063616 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 14 Jul 2014 10:13:53 +0200 +Subject: 95dasd_rules: Enable the device before checking device type + +For creating dynamic udev rules parse-dasd.sh look for the device +type in sysfs, which of course does not exist if cio_ignore is +active. So first enable the device before checking. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95dasd_rules/parse-dasd.sh | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh +index bafd053..0c297e5 100755 +--- a/modules.d/95dasd_rules/parse-dasd.sh ++++ b/modules.d/95dasd_rules/parse-dasd.sh +@@ -7,6 +7,10 @@ create_udev_rule() { + local _drv _cu_type _dev_type + local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules + ++ if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then ++ cio_ignore -r $ccw ++ fi ++ + if [ -e /sys/bus/ccw/devices/${ccw} ] ; then + read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype + read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype +@@ -31,10 +35,6 @@ create_udev_rule() { + esac + [ -z "${_drv}" ] && return 0 + +- if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then +- cio_ignore -r $ccw +- fi +- + [ -e ${_rule} ] && return 0 + + cat > $_rule < 0)); do + case $1 in + autodetect|probeonly) +-- +1.8.4.5 + diff --git a/0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch b/0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch new file mode 100644 index 0000000..eb04f2c --- /dev/null +++ b/0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch @@ -0,0 +1,54 @@ +From d4245680ba1cd00a15b86f5ccecd4b8be124f6e5 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 14 Jul 2014 10:17:07 +0200 +Subject: 95zfcp_rules: Enable the device before checking device type + +For creating dynamic udev rules parse-dasd.sh look for the device +type in sysfs, which of course does not exist if cio_ignore is +active. So first enable the device before checking. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95zfcp_rules/parse-zfcp.sh | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh +index 00f530f..8db3d9a 100755 +--- a/modules.d/95zfcp_rules/parse-zfcp.sh ++++ b/modules.d/95zfcp_rules/parse-zfcp.sh +@@ -9,6 +9,10 @@ create_udev_rule() { + local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules + local _cu_type _dev_type + ++ if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then ++ cio_ignore -r $ccw ++ fi ++ + if [ -e /sys/bus/ccw/devices/${ccw} ] ; then + read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype + read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype +@@ -20,10 +24,6 @@ create_udev_rule() { + return 0; + fi + +- if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then +- cio_ignore -r $ccw +- fi +- + [ -e ${_rule} ] && return 0 + + if [ ! -f "$_rule" ] ; then +@@ -54,8 +54,10 @@ fi + + for zfcp_arg in $(getargs rd.zfcp); do + ( ++ local OLDIFS="$IFS" + local IFS="," + set $zfcp_arg ++ IFS="$OLDIFS" + create_udev_rule $1 $2 $3 + ) + done +-- +1.8.4.5 + diff --git a/0119-Reset-IFS-variable.patch b/0119-Reset-IFS-variable.patch new file mode 100644 index 0000000..93df261 --- /dev/null +++ b/0119-Reset-IFS-variable.patch @@ -0,0 +1,64 @@ +From bcfdc4522d2f04d0a1fd46d80a8ac7ff357b8bc5 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Mon, 14 Jul 2014 10:22:31 +0200 +Subject: Reset IFS variable + +Setting and unsetting the IFS variable is tricky. To be on the +safe side we should always reset the IFS variable to its original +value after parsing. + +Signed-off-by: Hannes Reinecke +--- + modules.d/95dasd/parse-dasd.sh | 2 ++ + modules.d/95fcoe/parse-fcoe.sh | 2 ++ + modules.d/95zfcp/parse-zfcp.sh | 2 ++ + 3 files changed, 6 insertions(+) + +diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh +index aba720b..e0d4a9c 100755 +--- a/modules.d/95dasd/parse-dasd.sh ++++ b/modules.d/95dasd/parse-dasd.sh +@@ -3,8 +3,10 @@ + # ex: ts=8 sw=4 sts=4 et filetype=sh + for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do + ( ++ local OLDIFS="$IFS" + local IFS="," + set -- $dasd_arg ++ IFS="$OLDIFS" + echo "$@" | normalize_dasd_arg >> /etc/dasd.conf + ) + done +diff --git a/modules.d/95fcoe/parse-fcoe.sh b/modules.d/95fcoe/parse-fcoe.sh +index 8e08303..4ee13cb 100755 +--- a/modules.d/95fcoe/parse-fcoe.sh ++++ b/modules.d/95fcoe/parse-fcoe.sh +@@ -28,8 +28,10 @@ modprobe bnx2fc >/dev/null 2>&1 + udevadm settle --timeout=30 + + parse_fcoe_opts() { ++ local OLDIFS="$IFS" + local IFS=: + set $fcoe ++ IFS="$OLDIFS" + + case $# in + 2) +diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh +index 1d21472..df29fb2 100755 +--- a/modules.d/95zfcp/parse-zfcp.sh ++++ b/modules.d/95zfcp/parse-zfcp.sh +@@ -6,8 +6,10 @@ getargbool 1 rd.zfcp.conf -d -n rd_NO_ZFCPCONF || rm /etc/zfcp.conf + + for zfcp_arg in $(getargs rd.zfcp -d 'rd_ZFCP='); do + ( ++ local OLDIFS="$IFS" + local IFS="," + set $zfcp_arg ++ IFS="$OLDIFS" + echo "$@" >> /etc/zfcp.conf + ) + done +-- +1.8.4.5 + diff --git a/0120-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch b/0120-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch new file mode 100644 index 0000000..aa635c2 --- /dev/null +++ b/0120-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch @@ -0,0 +1,70 @@ +From 3c4d4b2c9654e418d422b80e052bdf6d9a02a188 Mon Sep 17 00:00:00 2001 +From: Thomas Renninger +Date: Tue, 15 Jul 2014 15:53:23 +0200 +Subject: mkinitrd-suse.sh: Bail out with exit 1 if initrd cannot be generated + +bnc#886630 + +Signed-off-by: Thomas Renninger +--- + mkinitrd-suse.sh | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh +index bf10a9d..5b32e6c 100755 +--- a/mkinitrd-suse.sh ++++ b/mkinitrd-suse.sh +@@ -282,7 +282,8 @@ done + + [[ $targets && $kernels ]] || default_kernel_images + if [[ ! $targets || ! $kernels ]];then +- error "No kernel found in $boot_dir" ++ error "No kernel found in $boot_dir or bad modules dir in /lib/modules" ++ exit 1 + fi + + # We can have several targets/kernels, transform the list to an array +@@ -303,6 +304,8 @@ fi + [[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}" + shopt -s extglob + ++failed="" ++ + for ((i=0 ; $i<${#targets[@]} ; i++)); do + + if [[ $img_vers ]];then +@@ -331,14 +334,18 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); do + # expansion magics + if [ -n "${modules_all}" ];then + $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" &>/dev/null ++ [ $? -ne 0 ] && failed="$failed $target" + else + $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null ++ [ $? -ne 0 ] && failed="$failed $target" + fi + else + if [ -n "${modules_all}" ];then + $dracut_cmd $dracut_args --force-drivers "${modules_all}" "$target" "$kernel" ++ [ $? -ne 0 ] && failed="$failed $target" + else + $dracut_cmd $dracut_args "$target" "$kernel" ++ [ $? -ne 0 ] && failed="$failed $target" + fi + fi + done +@@ -348,4 +355,12 @@ if [ "$skip_update_bootloader" ] ; then + else + echo "Update bootloader..." + update-bootloader --refresh ++ [ $? -ne 0 ] && echo "Updating bootloader failed" && exit 1 ++fi ++ ++if [ "$failed" != "" ]; then ++ echo "Generating $failed targets failed" ++ exit 1 + fi ++ ++exit 0 +-- +1.8.4.5 + diff --git a/0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch b/0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch new file mode 100644 index 0000000..48feff6 --- /dev/null +++ b/0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch @@ -0,0 +1,44 @@ +From 05bee849390ba39a5a441cbcc921634ddc298232 Mon Sep 17 00:00:00 2001 +From: Thomas Renninger +Date: Wed, 16 Jul 2014 16:37:15 +0200 +Subject: Adjust initramfs-$kernel.img to SUSE default: initrd-$kernel + +In lsinitrd and /usr/bin/dracut + +bnc#882306 + +Signed-off-by: Thomas Renninger +--- + dracut.sh | 2 +- + lsinitrd.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index a166cb6..2d8be59 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -627,7 +627,7 @@ if ! [[ $outfile ]]; then + if [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then + outfile="/boot/${MACHINE_ID}/$kernel/initrd" + else +- outfile="/boot/initramfs-$kernel.img" ++ outfile="/boot/initrd-$kernel" + fi + fi + +diff --git a/lsinitrd.sh b/lsinitrd.sh +index a697bc2..b66a653 100755 +--- a/lsinitrd.sh ++++ b/lsinitrd.sh +@@ -87,7 +87,7 @@ else + && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then + image="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd" + else +- image="/boot/initramfs-${KERNEL_VERSION}.img" ++ image="/boot/initrd-${KERNEL_VERSION}" + fi + fi + +-- +1.8.4.5 + diff --git a/0122-btrfs-btrfs-dump-super-and-btrfs-select-super-do-not.patch b/0122-btrfs-btrfs-dump-super-and-btrfs-select-super-do-not.patch new file mode 100644 index 0000000..9ae2907 --- /dev/null +++ b/0122-btrfs-btrfs-dump-super-and-btrfs-select-super-do-not.patch @@ -0,0 +1,32 @@ +From e71e3590c953a02ee1696141ac2f48aa521e7087 Mon Sep 17 00:00:00 2001 +From: Thomas Renninger +Date: Thu, 17 Jul 2014 11:23:31 +0200 +Subject: btrfs: btrfs-dump-super and btrfs-select-super do not exist + +I could not find these binaries and as they seem to be very specific +btrfs rescue tools only, better remove them again. + +bnc#886883 + +Signed-off-by: Thomas Renninger +--- + modules.d/90btrfs/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh +index d76e767..5598f32 100755 +--- a/modules.d/90btrfs/module-setup.sh ++++ b/modules.d/90btrfs/module-setup.sh +@@ -47,7 +47,7 @@ install() { + fi + + # rescue utilities +- inst_multiple btrfs-zero-log btrfs-image btrfs-dump-super +- inst_multiple btrfs-debug-tree mkfs.btrfs btrfstune btrfs-select-super ++ inst_multiple btrfs-zero-log btrfs-image btrfs-debug-tree \ ++ mkfs.btrfs btrfstune + inst $(command -v btrfs) /sbin/btrfs + } +-- +1.8.4.5 + diff --git a/0123-95zfcp_rules-fix-typo-in-module_setup.patch b/0123-95zfcp_rules-fix-typo-in-module_setup.patch new file mode 100644 index 0000000..078ca1b --- /dev/null +++ b/0123-95zfcp_rules-fix-typo-in-module_setup.patch @@ -0,0 +1,31 @@ +From 9e0bf05cd6e0a0ff50502dbce31a8d5031219fe7 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 17 Jul 2014 14:29:24 +0200 +Subject: 95zfcp_rules: fix typo in module_setup + +module_setup.sh has a typo preventing it from saving the correct +dracut commandline. + +References: bnc#887582 + +Signed-off-by: Hannes Reinecke +--- + modules.d/95zfcp_rules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh +index df13fa1..2e29ee1 100755 +--- a/modules.d/95zfcp_rules/module-setup.sh ++++ b/modules.d/95zfcp_rules/module-setup.sh +@@ -54,7 +54,7 @@ install() { + local _zfcp + + for _zfcp in $(cmdline) ; do +- printf "%s\n" "$zfcp" >> "${initdir}/etc/cmdline.d/94zfcp.conf" ++ printf "%s\n" "$_zfcp" >> "${initdir}/etc/cmdline.d/94zfcp.conf" + done + fi + if [[ $hostonly ]] ; then +-- +1.8.4.5 + diff --git a/0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch b/0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch new file mode 100644 index 0000000..5a100d4 --- /dev/null +++ b/0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch @@ -0,0 +1,93 @@ +From de870b8879974927873264010b6294a70b6c7980 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 17 Jul 2014 14:09:28 +0200 +Subject: 40network: Update iBFT scanning code to handle IPv6 + +IPv6 addresses should be specified in brackets so that the +ip= scanning code doesn't get confused. + +References: bnc#887542 + +Signed-off-by: Hannes Reinecke +--- + modules.d/40network/net-lib.sh | 48 +++++++++++++++++++++++++++++++++++++----- + 1 file changed, 43 insertions(+), 5 deletions(-) + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index a82f1a8..554f723 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -200,20 +200,51 @@ ibft_to_cmdline() { + + [ -e /tmp/net.${dev}.has_ibft_config ] && continue + ++ [ -e ${iface}/flags ] && flags=$(read a < ${iface}/flags; echo $a) ++ # Skip invalid interfaces ++ (( $flags & 1 )) || continue ++ # Skip interfaces not used for booting ++ (( $flags & 2 )) || continue + [ -e ${iface}/dhcp ] && dhcp=$(read a < ${iface}/dhcp; echo $a) +- +- if [ -n "$dhcp" ]; then +- echo "ip=$dev:dhcp" ++ [ -e ${iface}/origin ] && origin=$(read a < ${iface}/origin; echo $a) ++ [ -e ${iface}/ip-addr ] && ip=$(read a < ${iface}/ip-addr; echo $a) ++ ++ if [ -n "$ip" ] ; then ++ case "$ip" in ++ *.*.*.*) ++ family=ipv4 ++ ;; ++ *:*) ++ family=ipv6 ++ ;; ++ esac ++ fi ++ if [ -n "$dhcp" ] || [ "$origin" -eq 3 ]; then ++ if [ "$family" = "ipv6" ] ; then ++ echo "ip=$dev:dhcp6" ++ else ++ echo "ip=$dev:dhcp" ++ fi + elif [ -e ${iface}/ip-addr ]; then +- [ -e ${iface}/ip-addr ] && ip=$(read a < ${iface}/ip-addr; echo $a) + # skip not assigned ip adresses + [ "$ip" = "0.0.0.0" ] && continue + [ -e ${iface}/gateway ] && gw=$(read a < ${iface}/gateway; echo $a) + [ -e ${iface}/subnet-mask ] && mask=$(read a < ${iface}/subnet-mask; echo $a) ++ [ -e ${iface}/prefix-len ] && prefix=$(read a < ${iface}/prefix-len; echo $a) + [ -e ${iface}/primary-dns ] && dns1=$(read a < ${iface}/primary-dns; echo $a) + [ -e ${iface}/secondary-dns ] && dns2=$(read a < ${iface}/secondary-dns; echo $a) + [ -e ${iface}/hostname ] && hostname=$(read a < ${iface}/hostname; echo $a) +- if [ -n "$ip" ] && [ -n "$mask" ]; then ++ if [ "$family" = "ipv6" ] ; then ++ if [ -n "$ip" ] ; then ++ [ -n "$prefix" ] || prefix=64 ++ ip="[${ip}/${prefix}]" ++ mask= ++ fi ++ if [ -n "$gw" ] ; then ++ gw="[${gw}]" ++ fi ++ fi ++ if [ -n "$ip" ] && [ -n "$mask" -o -n "$prefix" ]; then + echo "ip=$ip::$gw:$mask:$hostname:$dev:none${dns1:+:$dns1}${dns2:+:$dns2}" + else + warn "${iface} does not contain a valid iBFT configuration" +@@ -373,6 +404,13 @@ ip_to_var() { + esac + ;; + esac ++ # Extract prefix length from CIDR notation ++ case $ip in ++ */*) ++ mask=${ip##*/} ++ ip=${ip%/*} ++ ;; ++ esac + + # ip= means anaconda-style static config argument cluster: + # ip= gateway= netmask= hostname= mtu= +-- +1.8.4.5 + diff --git a/0125-40network-separate-mask-and-prefix.patch b/0125-40network-separate-mask-and-prefix.patch new file mode 100644 index 0000000..d8dc7c7 --- /dev/null +++ b/0125-40network-separate-mask-and-prefix.patch @@ -0,0 +1,170 @@ +From 50f59d60577283b71da5424e30d0c5981fb74f71 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Fri, 18 Jul 2014 10:28:00 +0200 +Subject: 40network: separate 'mask' and 'prefix' + +The 'mask' parameter is used for both, the (IPv4) netmask and +the prefix length. As both are in different format separate them +out into 'mask' for the netmask and 'prefix' for the prefix length. +And also prefer the use of 'prefix' where possible to ease +calculation and better IPv6 support. + +References: bnc#887542 + +Signed-off-by: Hannes Reinecke +--- + modules.d/40network/ifup.sh | 9 ++++---- + modules.d/40network/net-lib.sh | 42 +++++++++++++++++++++++++++++++++--- + modules.d/40network/parse-ip-opts.sh | 2 +- + 3 files changed, 45 insertions(+), 8 deletions(-) + +diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh +index f3e07a6..e0bf035 100755 +--- a/modules.d/40network/ifup.sh ++++ b/modules.d/40network/ifup.sh +@@ -223,13 +223,14 @@ do_static() { + linkup $netif + [ -n "$macaddr" ] && ip link set address $macaddr dev $netif + [ -n "$mtu" ] && ip link set mtu $mtu dev $netif ++ [ -n "$mask" -a -z "$prefix" ] && prefix=$(mask_to_prefix $mask) + if strglobin $ip '*:*:*'; then + # note no ip addr flush for ipv6 +- ip addr add $ip/$mask ${srv:+peer $srv} dev $netif ++ ip addr add $ip/$prefix ${srv:+peer $srv} dev $netif + wait_for_ipv6_dad $netif + else + ip addr flush dev $netif +- ip addr add $ip/$mask ${srv:+peer $srv} brd + dev $netif ++ ip addr add $ip/$prefix ${srv:+peer $srv} brd + dev $netif + fi + + [ -n "$gw" ] && echo ip route add default via $gw dev $netif > /tmp/net.$netif.gw +@@ -404,7 +405,7 @@ for p in $(getargs ip=); do + # Pull in existing static configuration + . /etc/sysconfig/network/ifcfg-${netif} + ip=${IPADDR} +- mask=${PREFIXLEN} ++ prefix=${PREFIXLEN} + mtu=${MTU} + server=${REMOTE_IPADDR} + gw=${GATEWAY} +@@ -418,7 +419,7 @@ for p in $(getargs ip=); do + done + + # Store config for later use +- for i in ip srv gw mask hostname macaddr dns1 dns2; do ++ for i in ip srv gw mask prefix hostname macaddr dns1 dns2; do + eval '[ "$'$i'" ] && echo '$i'="$'$i'"' + done > /tmp/net.$netif.override + +diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh +index 554f723..a3b5030 100755 +--- a/modules.d/40network/net-lib.sh ++++ b/modules.d/40network/net-lib.sh +@@ -9,6 +9,35 @@ get_ip() { + ip=${ip##* } + } + ++mask_to_prefix() { ++ local mask="$1" ++ local prefix=0 ++ local OLDIFS="$IFS" ++ ++ IFS=: ++ set -- $mask ++ IFS="$OLDIFS" ++ for mask in $@ ; do ++ if [ "$mask" -eq 255 ] ; then ++ prefix=$(($prefix + 8)) ++ elif [ "$mask" -eq 254 ] ; then ++ prefix=$(($prefix + 7)) ++ elif [ "$mask" -eq 252 ] ; then ++ prefix=$(($prefix + 6)) ++ elif [ "$mask" -eq 248 ] ; then ++ prefix=$(($prefix + 5)) ++ elif [ "$mask" -eq 240 ] ; then ++ prefix=$(($prefix + 4)) ++ elif [ "$mask" -eq 224 ] ; then ++ prefix=$(($prefix + 3)) ++ elif [ "$mask" -eq 192 ] ; then ++ prefix=$(($prefix + 2)) ++ elif [ "$mask" -eq 128 ] ; then ++ prefix=$(($prefix + 1)) ++ fi ++ done ++} ++ + iface_for_remote_addr() { + set -- $(ip -o route get to $1) + echo $5 +@@ -191,7 +220,7 @@ ibft_to_cmdline() { + for iface in /sys/firmware/ibft/ethernet*; do + local mac="" dev="" + local dhcp="" ip="" gw="" mask="" hostname="" +- local dns1 dns2 ++ local dns1 dns2 prefix + + [ -e ${iface}/mac ] || continue + mac=$(read a < ${iface}/mac; echo $a) +@@ -236,6 +265,7 @@ ibft_to_cmdline() { + [ -e ${iface}/hostname ] && hostname=$(read a < ${iface}/hostname; echo $a) + if [ "$family" = "ipv6" ] ; then + if [ -n "$ip" ] ; then ++ # Prefix defaults to 64 for IPv6 + [ -n "$prefix" ] || prefix=64 + ip="[${ip}/${prefix}]" + mask= +@@ -243,6 +273,11 @@ ibft_to_cmdline() { + if [ -n "$gw" ] ; then + gw="[${gw}]" + fi ++ else ++ if [ -n "$prefix" ] ; then ++ ip="$ip/$prefix" ++ mask= ++ fi + fi + if [ -n "$ip" ] && [ -n "$mask" -o -n "$prefix" ]; then + echo "ip=$ip::$gw:$mask:$hostname:$dev:none${dns1:+:$dns1}${dns2:+:$dns2}" +@@ -251,6 +286,7 @@ ibft_to_cmdline() { + warn "ip-addr=$ip" + warn "gateway=$gw" + warn "subnet-mask=$mask" ++ warn "prefix-len=$prefix" + warn "hostname=$hostname" + fi + else +@@ -379,7 +415,7 @@ ip_to_var() { + fi + done + +- unset ip srv gw mask hostname dev autoconf macaddr mtu dns1 dns2 ++ unset ip srv gw mask prefix hostname dev autoconf macaddr mtu dns1 dns2 + case $# in + 0) autoconf="error" ;; + 1) autoconf=$1 ;; +@@ -407,7 +443,7 @@ ip_to_var() { + # Extract prefix length from CIDR notation + case $ip in + */*) +- mask=${ip##*/} ++ prefix=${ip##*/} + ip=${ip%/*} + ;; + esac +diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/40network/parse-ip-opts.sh +index e48b0f3..52a1923 100755 +--- a/modules.d/40network/parse-ip-opts.sh ++++ b/modules.d/40network/parse-ip-opts.sh +@@ -74,7 +74,7 @@ for p in $(getargs ip=); do + none|off) + [ -z "$ip" ] && \ + die "For argument 'ip=$p'\nValue '$autoconf' without static configuration does not make sense" +- [ -z "$mask" ] && \ ++ [ -z "$mask" -a -z "$prefix" ] && \ + die "Sorry, automatic calculation of netmask is not yet supported" + ;; + auto6);; +-- +1.8.4.5 + diff --git a/0126-01fips-Add-drbg-module-to-force-loaded-modules.patch b/0126-01fips-Add-drbg-module-to-force-loaded-modules.patch new file mode 100644 index 0000000..14819c1 --- /dev/null +++ b/0126-01fips-Add-drbg-module-to-force-loaded-modules.patch @@ -0,0 +1,28 @@ +From f0c3f53ee00d1934a0df3f86c897a2ca51df86a0 Mon Sep 17 00:00:00 2001 +From: Marcus Meissner +Date: Fri, 18 Jul 2014 15:53:22 +0200 +Subject: 01fips: Add drbg module to force loaded modules + +References: bnc#875855 + +Signed-off-by: Marcus Meissner +--- + 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 d6907a3..8437e56 100755 +--- a/modules.d/01fips/module-setup.sh ++++ b/modules.d/01fips/module-setup.sh +@@ -23,7 +23,7 @@ installkernel() { + _fipsmodules+="sha512-ssse3 sha1-ssse3 sha256-ssse3 " + _fipsmodules+="ghash-clmulni-intel " + +- # once it is in the kernel: _fipsmodules+="drbg " ++ _fipsmodules+="drbg " + + mkdir -m 0755 -p "${initdir}/etc/modprobe.d" + +-- +1.8.4.5 + diff --git a/dracut.changes b/dracut.changes index bd2df07..c4ca62b 100644 --- a/dracut.changes +++ b/dracut.changes @@ -1,3 +1,78 @@ +------------------------------------------------------------------- +Mon Jul 21 10:47:50 CEST 2014 - hare@suse.de + +- mkinitrd-suse.sh: Bail out with exit 1 if initrd cannot be generated + (bnc#886630) + * Add: 0120-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch +- Adjust initramfs-$kernel.img to SUSE default: initrd-$kernel + (bnc#882306) + * Add: 0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch +- btrfs: btrfs-dump-super and btrfs-select-super do not exist + (bnc#886883) + * Add: 0122-btrfs-btrfs-dump-super-and-btrfs-select-super-do-not.patch +- 95zfcp_rules: fix typo in module_setup (bnc#887582) + * Add: 0123-95zfcp_rules-fix-typo-in-module_setup.patch +- 40network: Update iBFT scanning code to handle IPv6 (bnc#887542) + * Add: 0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch +- 40network: separate 'mask' and 'prefix' (bnc#887542) + * Add: 0125-40network-separate-mask-and-prefix.patch +- 01fips: Add drbg module to force loaded modules (bnc#875855) + * Add: 0126-01fips-Add-drbg-module-to-force-loaded-modules.patch + +------------------------------------------------------------------- +Mon Jul 14 16:20:46 UTC 2014 - trenn@suse.de + +- Fixup executable bits of newly patched files manually in spec file + bnc#887117 + +------------------------------------------------------------------- +Mon Jul 14 10:35:51 CEST 2014 - hare@suse.de + +- Mark all scripts as executable (bnc#887010) + * Remove: 0116-81cio_ignore-Mark-scripts-as-executable + * Add: 0116-Mark-scripts-as-executable.patch +- 95dasd_rules: Enable device before checking type + * Add: 0117-95dasd_rules-Enable-the-device-before-checking-devic.patch +- 95zfcp_rules: Enable device before checking type + * Add: 0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch +- Reset IFS variable + * Add: 0119-Reset-IFS-variable.patch + +------------------------------------------------------------------- +Sat Jul 12 15:01:04 CEST 2014 - hare@suse.de + +- Handle module alias properly (bnc#886839) + * Add: 0115-Handle-module-alias-properly.patch +- 81cio_ignore: Mark scripts as executable (bnc#887010) + * Add: 0116-81cio_ignore-Mark-scripts-as-executable.patch + +------------------------------------------------------------------- +Fri Jul 11 13:01:08 CEST 2014 - hare@suse.de + +- 91zipl: Translate 'ext2' into 'ext4' module + * Add: 0114-91zipl-Translate-ext2-3-into-ext4.patch + +------------------------------------------------------------------- +Thu Jul 10 13:30:51 CEST 2014 - hare@suse.de + +- Enable converting of directory /var/run /var/lock to symlinks + (bnc#877680) + * Add: 0106-dracut-Enable-converting-of-directory-var-run-var-lo.patch +- Fixup typo 'firmare' instead of 'firmware' + * Add: 0107-Fixup-typo-firmare-instead-of-firmware.patch +- 91zipl: Store commandline correctly + * Add: 0108-91zipl-Store-commandline-correctly.patch +- 95dasd_rules: Store all devices in commandline + * 0109-95dasd_rules-Store-all-devices-in-commandline.patch +- 95zfcp_rules: Store all devices in commandline + * Add: 0110-95zfcp_rules-Store-all-devices-in-commandline.patch +- 90mdraid: Remove line for 'offroot' detection + * Add: 0111-90mdraid-Remove-line-for-offroot-detection.patch +- 99base: warn on invalid command for initqueue + * Add: 0112-99base-warn-on-invalid-command-for-initqueue.patch +- 91zipl: Install script as executable + * Add: 0113-91zipl-Install-script-as-executable.patch + ------------------------------------------------------------------- Tue Jul 8 13:21:14 CEST 2014 - hare@suse.de @@ -11,8 +86,6 @@ Tue Jul 8 13:21:14 CEST 2014 - hare@suse.de * Add: 0104-Generate-fallback-mount-unit-for-root-filesystem.patch - 95iscsi: parse output from iscsiadm correctly (bnc#886199) * Add: 0105-95iscsi-parse-output-from-iscsiadm-correctly.patch -- Add btrfs rescue utilities: - * Add: 0100-Add-btrfs-rescue-utilities.patch ------------------------------------------------------------------- Thu Jul 3 18:16:11 CEST 2014 - dsterba@suse.cz diff --git a/dracut.spec b/dracut.spec index 410be08..eca34b3 100644 --- a/dracut.spec +++ b/dracut.spec @@ -126,6 +126,27 @@ Patch102: 0102-Align-dev_unit_name-with-systemd-s-function.patch Patch103: 0103-Fixup-missing-separators-in-rootfs-block-cmdline.patch Patch104: 0104-Generate-fallback-mount-unit-for-root-filesystem.patch Patch105: 0105-95iscsi-parse-output-from-iscsiadm-correctly.patch +Patch106: 0106-dracut-Enable-converting-of-directory-var-run-var-lo.patch +Patch107: 0107-Fixup-typo-firmare-instead-of-firmware.patch +Patch108: 0108-91zipl-Store-commandline-correctly.patch +Patch109: 0109-95dasd_rules-Store-all-devices-in-commandline.patch +Patch110: 0110-95zfcp_rules-Store-all-devices-in-commandline.patch +Patch111: 0111-90mdraid-Remove-line-for-offroot-detection.patch +Patch112: 0112-99base-warn-on-invalid-command-for-initqueue.patch +Patch113: 0113-91zipl-Install-script-as-executable.patch +Patch114: 0114-91zipl-Translate-ext2-3-into-ext4.patch +Patch115: 0115-Handle-module-alias-properly.patch +Patch116: 0116-Mark-scripts-as-executable.patch +Patch117: 0117-95dasd_rules-Enable-the-device-before-checking-devic.patch +Patch118: 0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch +Patch119: 0119-Reset-IFS-variable.patch +Patch120: 0120-mkinitrd-suse.sh-Bail-out-with-exit-1-if-initrd-cann.patch +Patch121: 0121-Adjust-initramfs-kernel.img-to-SUSE-default-initrd-k.patch +Patch122: 0122-btrfs-btrfs-dump-super-and-btrfs-select-super-do-not.patch +Patch123: 0123-95zfcp_rules-fix-typo-in-module_setup.patch +Patch124: 0124-40network-Update-iBFT-scanning-code-to-handle-IPv6.patch +Patch125: 0125-40network-separate-mask-and-prefix.patch +Patch126: 0126-01fips-Add-drbg-module-to-force-loaded-modules.patch BuildRequires: asciidoc BuildRequires: bash @@ -272,6 +293,27 @@ and its cryptography during startup. %patch103 -p1 %patch104 -p1 %patch105 -p1 +%patch106 -p1 +%patch107 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 +%patch111 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 +%patch116 -p1 +%patch117 -p1 +%patch118 -p1 +%patch119 -p1 +%patch120 -p1 +%patch121 -p1 +%patch122 -p1 +%patch123 -p1 +%patch124 -p1 +%patch125 -p1 +%patch126 -p1 %build %configure\ @@ -468,6 +510,15 @@ ln -s %{dracutlibdir}/modules.d/45ifcfg/write-ifcfg-redhat.sh %{buildroot}/%{dra %{dracutlibdir}/modules.d/99shutdown %{dracutlibdir}/modules.d/99suse %{dracutlibdir}/modules.d/99uefi-lib + +# executable fixups +%attr(0755,root,root) %{dracutlibdir}/modules.d/95dcssblk/parse-dcssblk.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/95dcssblk/module-setup.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/parse-suse-initrd.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/module-setup.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/30convertfs/convertrunfs.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/00warpclock/warpclock.sh + %config(noreplace) %{_sysconfdir}/logrotate.d/dracut %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log %if %{defined _unitdir}