Hello community,

here is the log from the commit of package kdump for openSUSE:Factory checked 
in at 2019-12-24 14:29:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdump (Old)
 and      /work/SRC/openSUSE:Factory/.kdump.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdump"

Tue Dec 24 14:29:17 2019 rev:108 rq:757546 version:0.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdump/kdump.changes      2019-11-18 
20:03:52.117789383 +0100
+++ /work/SRC/openSUSE:Factory/.kdump.new.6675/kdump.changes    2019-12-24 
14:29:22.638558738 +0100
@@ -1,0 +2,62 @@
+Tue Dec 17 10:00:30 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-calibrate-Update-values.patch: calibrate: Update values
+  (bsc#1130529).
+
+-------------------------------------------------------------------
+Tue Dec 17 09:59:08 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-prefer-by-path-and-device-mapper.patch: Prefer by-path and
+  device-mapper aliases over kernel device names (bsc#1101149,
+  LTC#168532).
+
+-------------------------------------------------------------------
+Fri Dec 13 15:11:32 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-powerpc-no-reload-on-CPU-removal.patch: powerpc: Do not
+  reload on CPU hot removal (bsc#1133407, LTC#176111).
+
+-------------------------------------------------------------------
+Fri Dec 13 14:04:26 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-Add-force-option-to-KDUMP_NETCONFIG.patch: Add ":force"
+  option to KDUMP_NETCONFIG (bsc#1108919).
+- kdump-Add-fence_kdump_send-when-fence-agents-installed.patch: Add
+  fence_kdump_send when fence-agents installed (bsc#1108919).
+- kdump-FENCE_KDUMP_SEND-variable.patch: Use var for path of
+  fence_kdump_send and remove the unnecessary PRESCRIPT check
+  (bsc#1108919).
+- kdump-Document-fence_kdump_send.patch: Document kdump behaviour
+  for fence_kdump_send (bsc#1108919).
+
+-------------------------------------------------------------------
+Mon Dec  9 09:57:37 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-nss-modules.patch: Improve the handling of NSS
+  (bsc#1021846).
+
+-------------------------------------------------------------------
+Mon Dec  9 09:54:01 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-skip-mounts-if-no-proc-vmcore.patch: Skip kdump-related
+  mounts if there is no /proc/vmcore (bsc#1102252, bsc#1125011).
+- kdump-clean-up-kdump-mount-points.patch: Make sure that kdump
+  mount points are cleaned up (bsc#1102252, bsc#1125011).
+
+-------------------------------------------------------------------
+Fri Dec  6 16:50:06 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch:
+  Clean up the use of current vs. boot network interface names
+  (bsc#1094444, bsc#1116463, bsc#1141064).
+- kdump-Use-a-custom-namespace-for-physical-NICs.patch: Use a
+  custom namespace for physical NICs (bsc#1094444, bsc#1116463,
+  bsc#1141064).
+
+-------------------------------------------------------------------
+Fri Dec  6 10:49:48 UTC 2019 - Petr Tesařík <[email protected]>
+
+- kdump-preserve-white-space.patch: Preserve white space when
+  removing kernel command line options (bsc#1117652).
+
+-------------------------------------------------------------------

New:
----
  kdump-Add-fence_kdump_send-when-fence-agents-installed.patch
  kdump-Add-force-option-to-KDUMP_NETCONFIG.patch
  kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch
  kdump-Document-fence_kdump_send.patch
  kdump-FENCE_KDUMP_SEND-variable.patch
  kdump-Use-a-custom-namespace-for-physical-NICs.patch
  kdump-calibrate-Update-values.patch
  kdump-clean-up-kdump-mount-points.patch
  kdump-nss-modules.patch
  kdump-powerpc-no-reload-on-CPU-removal.patch
  kdump-prefer-by-path-and-device-mapper.patch
  kdump-preserve-white-space.patch
  kdump-skip-mounts-if-no-proc-vmcore.patch

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

Other differences:
------------------
++++++ kdump.spec ++++++
--- /var/tmp/diff_new_pack.5c5wCX/_old  2019-12-24 14:29:23.270559044 +0100
+++ /var/tmp/diff_new_pack.5c5wCX/_new  2019-12-24 14:29:23.270559044 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package kdump
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -43,7 +43,7 @@
 Summary:        Script for kdump
 License:        GPL-2.0-or-later
 Group:          System/Kernel
-Url:            https://github.com/openSUSE/kdump
+URL:            https://github.com/openSUSE/kdump
 Source:         %{name}-%{version}.tar.bz2
 Source2:        %{name}-rpmlintrc
 Patch1:         %{name}-fillupdir-fixes.patch
@@ -63,6 +63,19 @@
 Patch15:        %{name}-Add-skip_balance-option-to-BTRFS-mounts.patch
 Patch16:        %{name}-kdumprd-Look-for-boot-image-and-boot-Image.patch
 Patch17:        %{name}-savedump-search-also-for-vmlinux.xz.patch
+Patch18:        %{name}-preserve-white-space.patch
+Patch19:        %{name}-Clean-up-the-use-of-current-vs-boot-network-iface.patch
+Patch20:        %{name}-Use-a-custom-namespace-for-physical-NICs.patch
+Patch21:        %{name}-clean-up-kdump-mount-points.patch
+Patch22:        %{name}-skip-mounts-if-no-proc-vmcore.patch
+Patch23:        %{name}-nss-modules.patch
+Patch24:        %{name}-Add-force-option-to-KDUMP_NETCONFIG.patch
+Patch25:        %{name}-Add-fence_kdump_send-when-fence-agents-installed.patch
+Patch26:        %{name}-FENCE_KDUMP_SEND-variable.patch
+Patch27:        %{name}-Document-fence_kdump_send.patch
+Patch28:        %{name}-powerpc-no-reload-on-CPU-removal.patch
+Patch29:        %{name}-prefer-by-path-and-device-mapper.patch
+Patch30:        %{name}-calibrate-Update-values.patch
 BuildRequires:  asciidoc
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
@@ -137,6 +150,19 @@
 %patch15 -p1
 %patch16 -p1
 %patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
 
 %build
 export CFLAGS="%{optflags}"

++++++ kdump-Add-fence_kdump_send-when-fence-agents-installed.patch ++++++
From: Nick Wang <[email protected]>
Date: Wed, 28 Nov 2018 18:07:56 +0800
Subject: Add fence_kdump_send when fence-agents installed.
References: bsc#1108919
Upstream: merged
Git-commit: 93822c5ee738e186a3a70f6d7a6e59bdea4b46b1

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/module-setup.sh       |    5 +++++
 init/setup-kdump.functions |    7 +++++++
 2 files changed, 12 insertions(+)

--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -25,6 +25,11 @@ kdump_check_net() {
     elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
         # always set up network
         kdump_neednet=y
+    elif [ -f "/usr/lib/fence_kdump_send" ] &&
+         ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] || \
+         [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
+        # setup network when fence_kdump_send included and configured
+        kdump_neednet=y
     else
         kdump_neednet=
         for protocol in "${kdump_Protocol[@]}" ; do
--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -917,6 +917,13 @@ function kdump_modify_config()                             
                   #
        KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS ssh"
     fi
 
+    # copy fence_kdump_send if exists
+    if [ -f "/usr/lib/fence_kdump_send" ] &&
+       ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] ||
+       [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
+        KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS 
/usr/lib/fence_kdump_send"
+    fi
+
     # make sure NSS works somehow
     cp /etc/hosts "${dest}/etc"
     { cat <<-EOF
++++++ kdump-Add-force-option-to-KDUMP_NETCONFIG.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Tue, 20 Nov 2018 10:23:28 +0100
Subject: Add ":force" option to KDUMP_NETCONFIG
References: bsc#1108919
Upstream: merged
Git-commit 4e112a28055a57dbcdf9a72c4bdcf586296ec81a

Make it possible to force network setup in kdump initrd by adding a
":force" suffix to KDUMP_NETCONFIG. This is needed to configure
fence_kdump.

Signed-off-by: Petr Tesarik <[email protected]>

---
 doc/man/kdump.5.txt.in |    6 ++++++
 init/module-setup.sh   |   37 +++++++++++++++++++++----------------
 sysconfig.kdump.in     |    6 +++++-
 3 files changed, 32 insertions(+), 17 deletions(-)

--- a/doc/man/kdump.5.txt.in
+++ b/doc/man/kdump.5.txt.in
@@ -544,6 +544,12 @@ Auto-detection cannot be used to set up
 because of limitations in the implementation of the _ip=_ initrd command line
 option.
 
+Network is configured only if needed, e.g. the dump target is on a remote
+machine, or an email notification should be sent. If network is needed by
+something else, such as a custom script used as KDUMP_PRESCRIPT or
+KDUMP_POSTSCRIPT, add a _:force_ suffix to the network configuration, for
+example "auto:force" or "eth0:dhcp4:force".
+
 Use a _netdevice:mode_ string to force a specific network device to be used. A
 _netdevice_ is for example "eth0". The _mode_ can be:
 
--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -19,20 +19,25 @@ kdump_needed() {
 }
 
 kdump_check_net() {
-    kdump_neednet=
-    for protocol in "${kdump_Protocol[@]}" ; do
-       if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
-           kdump_neednet=y
-       fi
-    done
+    if [ -z "$KDUMP_NETCONFIG" ]; then
+        # network explicitly disabled in configuration
+        kdump_neednet=
+    elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
+        # always set up network
+        kdump_neednet=y
+    else
+        kdump_neednet=
+        for protocol in "${kdump_Protocol[@]}" ; do
+           if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
+               kdump_neednet=y
+           fi
+        done
 
-    # network configuration
-    if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
-       kdump_neednet=y
+        # network configuration
+        if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
+           kdump_neednet=y
+        fi
     fi
-
-    # network explicitly disabled in configuration?
-    [ -z "$KDUMP_NETCONFIG" ] && kdump_neednet=
 }
 
 kdump_get_fs_type() {
@@ -161,13 +166,13 @@ kdump_cmdline_zfcp() {
 kdump_cmdline_ip() {
     [ "$kdump_neednet" = y ] || return 0
 
-    if [ "$KDUMP_NETCONFIG" = "auto" ] ; then
+    local _cfg="${KDUMP_NETCONFIG%:force}"
+    if [ "$_cfg" = "auto" ] ; then
        kdump_host_if=default
        kdump_net_mode=auto
     else
-       set -- ${KDUMP_NETCONFIG//:/ }
-       kdump_host_if=$1
-       kdump_net_mode=$2
+       kdump_host_if="${_cfg%%:*}"
+       kdump_net_mode="${_cfg#*:}"
     fi
 
     if [ "$kdump_host_if" = "default" ] ; then
--- a/sysconfig.kdump.in
+++ b/sysconfig.kdump.in
@@ -294,9 +294,13 @@ KDUMPTOOL_FLAGS=""
 # that contains the network device and the mode (static, dhcp, dhcp6, auto6),
 # separated by a colon. Example: "eth0:static" or "eth1:dhcp".
 #
-# For static configuration, you have to add the configuration to
+# For static configuration, you may have to add the configuration to
 # KDUMP_COMMANDLINE_APPEND.
 #
+# By default, network is set up only if needed. Add ":force" to make sure
+# that network is always available (e.g. for use by a custom pre- or
+# post-script).
+#
 # See also: kdump(5)
 #
 KDUMP_NETCONFIG="auto"
++++++ kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch ++++++
>From e32374a88bb3b1dc0c5f493d6c1966558d996c4f Mon Sep 17 00:00:00 2001
From: Petr Tesarik <[email protected]>
Date: Tue, 27 Nov 2018 14:52:06 +0100
Subject: Clean up the use of current vs. boot network interface names
References: bsc#1094444, bsc#1116463, bsc#1141064
Upstream: merged
Git-commit: e32374a88bb3b1dc0c5f493d6c1966558d996c4f

Strictly differentiate between the interface name as seen during
dracut execution and at boot time (in initrd environment).

Most importantly, it is necessary to store both names for generating
qeth udev rules.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/setup-kdump.functions |   51 +++++++++++++++++++++++----------------------
 1 file changed, 27 insertions(+), 24 deletions(-)

--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -426,9 +426,9 @@ function kdump_hwaddr()                                     
                   # {{{
     local _type=$(<"/sys/class/net/$_iface/addr_assign_type")
     if [ "$_type" -eq 0 ]
     then
-       cat "/sys/class/net/$kdump_iface/address"
+       cat "/sys/class/net/$_iface/address"
     else
-       ethtool -P "$kdump_iface" | sed 's/^[^:]*: *//'
+       ethtool -P "$_iface" | sed 's/^[^:]*: *//'
     fi
 }                                                                         # }}}
 
@@ -440,42 +440,43 @@ function kdump_hwaddr()                                   
                   # {{{
 #   kdump_netif  corresponding ifname= initrd parameter added
 #   kdump_iface  device name in initrd
 #   kdump_kmods  additional kernel modules updated
-#   kdump_hwif   hardware interfaces updated
+#   kdump_ifmap  hardware network interface map updated
 function kdump_ifname_config()                                            # {{{
 {
-    kdump_iface="$1"
-    local ifkind=$(kdump_ifkind "$kdump_iface")
+    local _iface="$1"
+    local _ifkind=$(kdump_ifkind "$_iface")
 
-    if [ -z "$ifkind" ]
+    if [ -z "$_ifkind" ]
     then
-       kdump_hwif="$kdump_hwif $kdump_iface"
-       local _drv=$( readlink "/sys/class/net/$kdump_iface/device/driver" )
+       kdump_iface="$_iface"
+       kdump_ifmap="$kdump_ifmap $_iface:$kdump_iface"
 
+       local _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
        case "$_drv" in
            */qeth)
                ;;
            *)
-               local hwaddr=$(kdump_hwaddr "$kdump_iface")
+               local hwaddr=$(kdump_hwaddr "$_iface")
                [ -n "$hwaddr" ] && kdump_netif="$kdump_netif 
ifname=$kdump_iface:$hwaddr"
                ;;
        esac
 
-       local mod="/sys/class/net/$kdump_iface/device/driver/module"
+       local mod="/sys/class/net/$_iface/device/driver/module"
        if [ -L "$mod" ]
        then
            mod=$(readlink "$mod")
            kdump_kmods="$kdump_kmods ${mod##*/}"
        fi
     else
-       case "$ifkind" in
+       case "$_ifkind" in
            bridge)
-               kdump_bridge_config "$kdump_iface"
+               kdump_bridge_config "$_iface"
                ;;
            bond)
-               kdump_bond_config "$kdump_iface"
+               kdump_bond_config "$_iface"
                ;;
            vlan)
-               kdump_vlan_config "$kdump_iface"
+               kdump_vlan_config "$_iface"
                ;;
            *)
                return 1
@@ -1070,13 +1071,13 @@ function kdump_filter_sysctl()                          
                   #
 # Set up a QETH network interface
 # Parameters:
 #   1) _root:   initrd temporary root
-#   2) _iface:  interface name
-# Input variables:
-#   kdump_hwif   hardware network interfaces
+#   2) _iface:  current interface name
+#   3) _bootif: interface name in initrd
 function kdump_setup_qeth()                                               # {{{
 {
     local _root="$1"
     local _iface="$2"
+    local _bootif="$3"
     local _dev=$( readlink "/sys/class/net/$_iface/device" )
     _dev="${_dev##*/}"
     local _cdev0=$( readlink "/sys/class/net/$_iface/device/cdev0" )
@@ -1113,8 +1114,8 @@ ACTION=="add", SUBSYSTEM=="ccwgroup", KE
 ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{online}="1"
 EOF
 
-    cat >"${_root}/etc/udev/rules.d/70-persistent-net-${_iface}.rules" <<EOF
-SUBSYSTEM=="net", ACTION=="add", DRIVERS=="qeth"$_dev_id_match, 
KERNELS=="$_dev", ATTR{type}=="$_type", NAME="$_iface"
+    cat >"${_root}/etc/udev/rules.d/70-persistent-net-${_bootif}.rules" <<EOF
+SUBSYSTEM=="net", ACTION=="add", DRIVERS=="qeth"$_dev_id_match, 
KERNELS=="$_dev", ATTR{type}=="$_type", NAME="$_bootif"
 EOF
 }                                                                         # }}}
 
@@ -1123,18 +1124,20 @@ EOF
 # Parameters:
 #   1) _root:   initrd temporary root
 # Input variables:
-#   kdump_hwif   hardware network interfaces
+#   kdump_ifmap  hardware network interface map
 function kdump_setup_hwif()                                               # {{{
 {
     local _root="$1"
-    local _iface _drv
+    local _spec _iface _bootif _drv
 
-    for _iface in $kdump_hwif
+    for _spec in $kdump_ifmap
     do
+       _iface="${_spec%:*}"
+       _bootif="${_spec##*:}"
        _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
        case "$_drv" in
            */qeth)
-               kdump_setup_qeth "$_root" "$_iface"
+               kdump_setup_qeth "$_root" "$_iface" "$_bootif"
                ;;
        esac
     done
@@ -1149,7 +1152,7 @@ function kdump_setup_hwif()                               
                   # {{
 # Input variables:
 #   KDUMP_*      see kdump_get_config
 #   kdump_mnt[]  mountpoints in kdump environment
-#   kdump_hwif   hardware network interfaces
+#   kdump_ifmap  hardware network interface map
 # Output variables:
 #   KDUMP_REQUIRED_PROGRAMS updated as necessary
 function kdump_setup_files()                                              # {{{
++++++ kdump-Document-fence_kdump_send.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Fri, 30 Nov 2018 09:29:10 +0100
Subject: Document kdump behaviour for fence_kdump_send
References: bsc#1108919
Upstream: merged
Git-commit: dcbe901dbec7d0b5e70014564da5a34f673e2248

Add an explanation paragraph to the manual page.

Signed-off-by: Petr Tesarik <[email protected]>

---
 doc/man/kdump.5.txt.in |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/doc/man/kdump.5.txt.in
+++ b/doc/man/kdump.5.txt.in
@@ -483,7 +483,11 @@ KDUMP_POSTSCRIPT
 ~~~~~~~~~~~~~~~~
 
 Program that is executed after taking the dump and before the system is
-rebooted. You have to include that program in KDUMP_POSTSCRIPT.
+rebooted. You have to include that program in KDUMP_REQUIRED_PROGRAMS.
+
+As a special case, if KDUMP_POSTSCRIPT contains +/usr/lib/fence_kdump_send+,
+this script is automatically added to the initrd, and network is configured by
+default.
 
 Default: ""
 
++++++ kdump-FENCE_KDUMP_SEND-variable.patch ++++++
From: Nick Wang <[email protected]>
Date: Fri, 30 Nov 2018 10:03:17 +0800
Subject: Use var for path of fence_kdump_send and remove the unnecessary 
PRESCRIPT check
References: bsc#1108919
Upstream: merged
Git-commit: f69533d0d8e974b8c27a2c9a651fb9e98c16194b

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/module-setup.sh       |    5 ++---
 init/setup-kdump.functions |    8 ++++----
 2 files changed, 6 insertions(+), 7 deletions(-)

--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -25,9 +25,8 @@ kdump_check_net() {
     elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
         # always set up network
         kdump_neednet=y
-    elif [ -f "/usr/lib/fence_kdump_send" ] &&
-         ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] || \
-         [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
+    elif [ -f "$FENCE_KDUMP_SEND" ] &&
+         [[ $KDUMP_POSTSCRIPT =~ "$FENCE_KDUMP_SEND" ]] ; then
         # setup network when fence_kdump_send included and configured
         kdump_neednet=y
     else
--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -10,6 +10,7 @@
 #
 
 KDUMP_CONFIG=/etc/sysconfig/kdump
+FENCE_KDUMP_SEND=/usr/lib/fence_kdump_send
 
 #
 # Global variables
@@ -918,10 +919,9 @@ function kdump_modify_config()                             
                   #
     fi
 
     # copy fence_kdump_send if exists
-    if [ -f "/usr/lib/fence_kdump_send" ] &&
-       ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] ||
-       [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
-        KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS 
/usr/lib/fence_kdump_send"
+    if [ -f "$FENCE_KDUMP_SEND" ] &&
+       [[ $KDUMP_POSTSCRIPT =~ "$FENCE_KDUMP_SEND" ]] ; then
+        KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS $FENCE_KDUMP_SEND"
     fi
 
     # make sure NSS works somehow
++++++ kdump-Use-a-custom-namespace-for-physical-NICs.patch ++++++
>From c5a6c610e1b3b4ce34a8769b7772a682fb826bda Mon Sep 17 00:00:00 2001
From: Petr Tesarik <[email protected]>
Date: Thu, 29 Nov 2018 12:54:57 +0100
Subject: Use a custom namespace for physical NICs
References: bsc#1094444, bsc#1116463, bsc#1141064
Upstream: merged
Git-commit: c5a6c610e1b3b4ce34a8769b7772a682fb826bda

To prevent rename conflicts, use kdumpX as the interface name
instead of the current name.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/setup-kdump.functions |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -11,6 +11,13 @@
 
 KDUMP_CONFIG=/etc/sysconfig/kdump
 
+#
+# Global variables
+#
+
+# Next network interface number
+kdump_ifnum=0
+
 # Extract the device name from a route
 #
 # Input:
@@ -448,7 +455,8 @@ function kdump_ifname_config()                              
                   #
 
     if [ -z "$_ifkind" ]
     then
-       kdump_iface="$_iface"
+       kdump_iface="kdump$kdump_ifnum"
+       kdump_ifnum=$(( $kdump_ifnum + 1 ))
        kdump_ifmap="$kdump_ifmap $_iface:$kdump_iface"
 
        local _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
++++++ kdump-calibrate-Update-values.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Tue, 17 Dec 2019 10:49:19 +0100
Subject: calibrate: Update values
References: bsc#1130529
Upstream: merged
Git-commit: 898b9e7fb7f80bd19268678b4abaf74792a3c229

Kernel base image has grown by approx. 20%.
Unpacked initramfs has grown by approx. 50%.

Signed-off-by: Petr Tesarik <[email protected]>

---
 kdumptool/calibrate.cc |   56 ++++++++++++++++++++++++-------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

--- a/kdumptool/calibrate.cc
+++ b/kdumptool/calibrate.cc
@@ -58,10 +58,10 @@
 //
 
 #if defined(__x86_64__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(32)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(38)
 # define KERNEL_INIT_KB                MB(5)
-# define INIT_KB               MB(34)
+# define INIT_KB               MB(51)
 # define INIT_NET_KB           MB(3)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       0
@@ -69,10 +69,10 @@
 # define PERCPU_KB             108
 
 #elif defined(__i386__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(28)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(34)
 # define KERNEL_INIT_KB                MB(4)
-# define INIT_KB               MB(29)
+# define INIT_KB               MB(44)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      36
 # define KDUMP_PHYS_LOAD       0
@@ -80,10 +80,10 @@
 # define PERCPU_KB             56
 
 #elif defined(__powerpc64__)
-# define DEF_RESERVE_KB                MB(256)
-# define KERNEL_KB             MB(32)
+# define DEF_RESERVE_KB                MB(384)
+# define KERNEL_KB             MB(38)
 # define KERNEL_INIT_KB                MB(5)
-# define INIT_KB               MB(58)
+# define INIT_KB               MB(87)
 # define INIT_NET_KB           MB(4)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       MB(128)
@@ -91,10 +91,10 @@
 # define PERCPU_KB             172     // FIXME: is it non-linear?
 
 #elif defined(__powerpc__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(24)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(29)
 # define KERNEL_INIT_KB                MB(5)
-# define INIT_KB               MB(34)
+# define INIT_KB               MB(51)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      36
 # define KDUMP_PHYS_LOAD       MB(128)
@@ -102,10 +102,10 @@
 # define PERCPU_KB             0       // TODO !!!
 
 #elif defined(__s390x__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(26)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(31)
 # define KERNEL_INIT_KB                512
-# define INIT_KB               MB(34)
+# define INIT_KB               MB(51)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       0
@@ -115,10 +115,10 @@
 # define align_memmap          s390x_align_memmap
 
 #elif defined(__s390__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(24)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(29)
 # define KERNEL_INIT_KB                512
-# define INIT_KB               MB(29)
+# define INIT_KB               MB(44)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      36
 # define KDUMP_PHYS_LOAD       0
@@ -128,10 +128,10 @@
 # define align_memmap          s390_align_memmap
 
 #elif defined(__ia64__)
-# define DEF_RESERVE_KB                MB(512)
-# define KERNEL_KB             MB(64)
+# define DEF_RESERVE_KB                MB(768)
+# define KERNEL_KB             MB(77)
 # define KERNEL_INIT_KB                MB(3)
-# define INIT_KB               MB(44)
+# define INIT_KB               MB(66)
 # define INIT_NET_KB           MB(4)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       0
@@ -139,21 +139,21 @@
 # define PERCPU_KB             0       // TODO !!!
 
 #elif defined(__aarch64__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(26)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(31)
 # define KERNEL_INIT_KB                MB(1)
-# define INIT_KB               MB(29)
-# define INIT_NET_KB           MB(2)
+# define INIT_KB               MB(51)
+# define INIT_NET_KB           MB(3)
 # define SIZE_STRUCT_PAGE      64
 # define KDUMP_PHYS_LOAD       0
 # define CAN_REDUCE_CPUS       1
 # define PERCPU_KB             0       // TODO !!!
 
 #elif defined(__arm__)
-# define DEF_RESERVE_KB                MB(128)
-# define KERNEL_KB             MB(24)
+# define DEF_RESERVE_KB                MB(192)
+# define KERNEL_KB             MB(29)
 # define KERNEL_INIT_KB                MB(1)
-# define INIT_KB               MB(29)
+# define INIT_KB               MB(44)
 # define INIT_NET_KB           MB(2)
 # define SIZE_STRUCT_PAGE      36
 # define KDUMP_PHYS_LOAD       0
++++++ kdump-clean-up-kdump-mount-points.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Mon, 2 Sep 2019 10:01:47 +0200
Subject: Make sure that kdump mount points are cleaned up
References: bsc#1102252, bsc#1125011
Upstream: merged
Git-commit 83e48556428339668e6f23e1dccc0196a52d1b68

If the system continues to boot, kdump mount points must be
unmounted before switching to the system root. Otherwise, some
filesystems may remain mounted under the now-unavailable initrd
root, keeping the underlying devices busy during system shutdown.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/module-setup.sh |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -246,7 +246,19 @@ install() {
                gsub(/@KDUMP_MOUNTPOINTS@/, mountpoints)
                print
            }' "$moddir/kdump-save.service.in" > \
-           "$initdir/$systemdsystemunitdir"/kdump-save.service
+               "$initdir/$systemdsystemunitdir"/kdump-save.service
+
+        local _d _mp
+        _d="$initdir/$systemdsystemunitdir"/initrd-switch-root.target.d
+        mkdir -p "$_d"
+        (
+            echo "[Unit]"
+            for _mp in "${kdump_mnt[@]}" ; do
+                echo -n "Conflicts="
+                systemd-escape -p --suffix=mount "$_mp"
+            done
+        ) > "$_d"/kdump.conf
+
        ln_r "$systemdsystemunitdir"/kdump-save.service \
            "$systemdsystemunitdir"/initrd.target.wants/kdump-save.service
     else
++++++ kdump-fix-multipath-user_friendly_names.patch ++++++
--- /var/tmp/diff_new_pack.5c5wCX/_old  2019-12-24 14:29:23.338559077 +0100
+++ /var/tmp/diff_new_pack.5c5wCX/_new  2019-12-24 14:29:23.338559077 +0100
@@ -1,7 +1,7 @@
 From: Petr Tesarik <[email protected]>
 Date: Thu, 25 Oct 2018 10:02:43 +0200
 Subject: Fix multipath configuration with user_friendly_names and/or aliases
-References: bsc#1111207, LTC#171953, bsc#1125218, LTC#175465
+References: bsc#1111207, LTC#171953, bsc#1125218, LTC#175465, bsc#1153601
 Upstream: merged
 Git-commit: 4b4dacfddd456a51c04a878e31d4544223ea9701
 

++++++ kdump-nss-modules.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Thu, 14 Nov 2019 19:13:39 +0100
Subject: Improve the handling of NSS
References: bsc#1021846
Upstream: merged
Git-commit 598d7517ccbbf29dc51e0a9c14146722d2324731

The current code mostly works, but can be improved in two ways:

1. Only the 'hosts' database is really needed in the kdump
   environment, and its settings should be copied from the running
   system. The openSSH client also needs 'passwd' (and maybe
   'group'), but it is not necessary to handle fancy setups (such
   as NIS or AD). The client merely requires that UID 0 can be
   translated to a user name. The 'file' service is more than
   sufficient for that purpose.

2. The NSS configuration file may not contain configuration of all
   categories. If configuration for a given category is missing,
   glibc will use a default setting, but kdump will not install
   the corresponding modules. Fix it by adding the glibc default
   to the configuration file explicitly if needed.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/setup-kdump.functions |   22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -892,8 +892,6 @@ function kdump_modify_config()                              
                   #
             KDUMP_SAVEDIR="${KDUMP_SAVEDIR}file://${kdump_Realpath[i]}"
        elif [ "$protocol" != "srcfile" ] ; then
             KDUMP_SAVEDIR="${KDUMP_SAVEDIR}${kdump_URL[i]}"
-            cp /etc/hosts "${dest}/etc"
-            grep '^hosts:' /etc/nsswitch.conf > "${dest}/etc/nsswitch.conf"
        fi
 
        #
@@ -919,6 +917,26 @@ function kdump_modify_config()                             
                   #
        KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS ssh"
     fi
 
+    # make sure NSS works somehow
+    cp /etc/hosts "${dest}/etc"
+    { cat <<-EOF
+       passwd: files
+       shadow: files
+       group: files
+EOF
+      grep '^[[:space:]]*hosts:' /etc/nsswitch.conf \
+         || echo 'hosts: dns [!UNAVAIL=return] files'
+    } > "${dest}/etc/nsswitch.conf"
+
+    # install necessary NSS modules
+    local _nssmods=$(
+       sed -e 's/#.*//; s/^[^:]*://; s/\[[^]]*\]//' \
+           "${dest}/etc/nsswitch.conf" \
+           | tr -s '[:space:]' '\n' | sort -u | tr '\n' '|' )
+    _nssmods=${_nssmods#|}
+    _nssmods=${_nssmods%|}
+    inst_libdir_file -n "/libnss_($_nssmods)" 'libnss_*.so*'
+
     #
     # dump the configuration file, modifying:
     #   KDUMP_SAVEDIR  -> resolved path
++++++ kdump-powerpc-no-reload-on-CPU-removal.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Fri, 6 Dec 2019 09:54:57 +0100
Subject: powerpc: Do not reload on CPU hot removal
References: bsc#1133407, LTC#176111
Git-commit: d1c4f630f0da0bf43928e3c975f02e832b2df50f

Skipping reload after a CPU goes offline does not have any adverse
impact, as /sys/devices/system/cpu/cpuX nodes are present for all
"possible" CPUs on PPC64.

The udev rule for CPU online operation is still needed. If reload
is skipped and the system crashes on a hot-added CPU, the kdump
kernel fails to get the 'boot_cpuid' after a hot plug and
eventually fails (see early_init_dt_scan_cpus() in
arch/powerpc/kernel/prom.c file).

Signed-off-by: Petr Tesarik <[email protected]>

---
 70-kdump.rules.in |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/70-kdump.rules.in
+++ b/70-kdump.rules.in
@@ -13,7 +13,7 @@
 
 SUBSYSTEM=="memory", ACTION=="add|remove", GOTO="kdump_try_restart"
 @if @ARCH@ ppc ppc64 ppc64le
-SUBSYSTEM=="cpu", ACTION=="online|offline", GOTO="kdump_try_restart"
+SUBSYSTEM=="cpu", ACTION=="online", GOTO="kdump_try_restart"
 @endif
 
 GOTO="kdump_end"
++++++ kdump-prefer-by-path-and-device-mapper.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Mon, 16 Dec 2019 13:33:19 +0100
Subject: Prefer by-path and device-mapper aliases over kernel names
References: bsc#1101149, LTC#168532
Upsream: merged
Git-commit: f153c9ac3f1baf8d1cf66c901b41f7bff19ff528

Mounting by kernel names (e.g. /dev/sda) is generally broken, since
these names are allocated dynamically by the kernel and may change
after a panic kexec. This issue can be usually avoided by using a
more stable tag in /etc/fstab (e.g. UUID=xyz).

However, there are supported ways to mount a filesystem with no
corresponding line in /etc/fstab, and kdump uses /proc/mounts as
fallback. This file shows the block device using the name that was
given as argument to the mount syscall. This name is usually
translated to the kernel name by libblkid(3). As a result, it does
not reflect the original intention, e.g.:

    ezekiel:~ # mount UUID=9A4D-9B2B /mnt/data/
    ezekiel:~ # grep /mnt/data /proc/mounts
    /dev/sda /mnt/data vfat 
rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro
 0 0
    ezekiel:~ # grep /mnt/data /proc/self/mountinfo
    187 94 8:0 / /mnt/data rw,relatime shared:56 - vfat /dev/sda 
rw,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro

As the original intention cannot be recovered, it is probably
better to prefer the by-path alias. The semantic of this alias is
closest to the traditional UNIX use of raw block device names: it's
always the drive attached to a known physical connector, regardless
of which medium is inserted.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/module-setup.sh       |    3 ++-
 init/setup-kdump.functions |   27 +++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -90,7 +90,8 @@ kdump_add_mnt() {
     mkdir -p "$initdir/etc"
     local _passno=2
     [ "${kdump_fstype[_idx]}" = nfs ] && _passno=0
-    echo "${kdump_dev[_idx]} ${kdump_mnt[_idx]} ${kdump_fstype[_idx]} 
${kdump_opts[_idx]} 0 $_passno" >> "$initdir/etc/fstab"
+    _dev=$(kdump_mount_dev "${kdump_dev[_idx]}")
+    echo "$_dev ${kdump_mnt[_idx]} ${kdump_fstype[_idx]} ${kdump_opts[_idx]} 0 
$_passno" >> "$initdir/etc/fstab"
 }
 
 check() {
--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -716,6 +716,33 @@ function kdump_get_targets()                               
                   # {
 }                                                                         # }}}
 
 #
+# Get a block device specification that is suitable for use as the
+# first column in /etc/fstab.
+# Since device node names may change after kexec, more stable symlink
+# are preferred (by-path alias or device mapper name).
+# Parameters:
+#   1) _dev: block device specification
+# Output:
+#   block device specification to be used in /etc/fstab
+function kdump_mount_dev()                                                # {{{
+{
+    local _dev="$1"
+
+    if [ ! -L "$_dev" -a -b "$_dev" ] ; then
+       local _symlink
+       for _symlink in $(udevadm info --root --query=symlink "$_dev")
+       do
+           case "$_symlink" in
+               */by-path/*|*/mapper/*)
+                   _dev="$_symlink"
+                   break
+           esac
+       done
+    fi
+    echo "$_dev"
+}                                                                         # }}}
+
+#
 # Read and normalize /etc/fstab and /proc/mounts (if exists).
 # The following transformations are done:
 #   - initial TABs and SPACEs are removed
++++++ kdump-preserve-white-space.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Tue, Nov 12 2019 14:53:37 +0100
Subject: Preserve white space when removing kernel command line options
References: bsc#1117652
Upstream: merged
Git-commit: 23d593b54a9c97a204ea7412e53c60d3d3852cab

The function was originally designed to remove unwanted options
from the panic kernel command line. It is now also used to check
whether the current command line contains a fadump option or not,
but the check is broken, because remove_from_commandline() may
change the amount (and type) of white space. For example, it
always adds an extra space if the original string ends with a
space.

Modify the function to copy original separators verbatim, except
that any white space preceding the removed option is removed.

Fixes: a4718a2c7b714d0594903fc8dc5ae47252a9b9ba
Signed-off-by: Petr Tesarik <[email protected]>

---
 init/load.sh |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

--- a/init/load.sh
+++ b/init/load.sh
@@ -17,15 +17,13 @@ function remove_from_commandline()
     awk 'BEGIN { ORS="" }
     {
         while(length()) {
-            sub(/^[[:space:]]+/,"");
-            pstart=match($0,/("[^"]*"?|[^"[:space:]])+/);
-            plength=RLENGTH;
-            param=substr($0,pstart,plength);
-            raw=param;
+            match($0,/^([[:space:]]*)(.*)/,w);
+            match(w[2],/(("[^"]*"?|[^"[:space:]])+)(.*)/,p);
+            raw=p[1];
             gsub(/"/,"",raw);
             if (raw !~ /^('"$option"')(=|$)/)
-                print param " ";
-            $0=substr($0,pstart+plength);
+                print w[1] p[1];
+            $0=p[3];
         }
         print "\n";
     }'
++++++ kdump-skip-mounts-if-no-proc-vmcore.patch ++++++
From: Petr Tesarik <[email protected]>
Date: Mon, 2 Sep 2019 15:27:24 +0200
Subject: Skip kdump-related mounts if there is no /proc/vmcore
References: bsc#1102252, bsc#1125011
Upstream: merged
Git-commit b91c1e16d373e5631ce725acf52db097d8248389

With FADUMP, the same initrd is used for saving a dump and for
normal boot. It is not necessary to mount kdump-related filesystems
on a normal boot, so let's add a systemd condition.

Signed-off-by: Petr Tesarik <[email protected]>

---
 init/module-setup.sh |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -249,13 +249,18 @@ install() {
                "$initdir/$systemdsystemunitdir"/kdump-save.service
 
         local _d _mp
+        local _mnt
         _d="$initdir/$systemdsystemunitdir"/initrd-switch-root.target.d
         mkdir -p "$_d"
         (
             echo "[Unit]"
             for _mp in "${kdump_mnt[@]}" ; do
-                echo -n "Conflicts="
-                systemd-escape -p --suffix=mount "$_mp"
+                _mnt=$(systemd-escape -p --suffix=mount "$_mp")
+                _d="$initdir/$systemdsystemunitdir/$_mnt".d
+                mkdir -p "$_d"
+                echo -e "[Unit]\nConditionPathExists=/proc/vmcore" \
+                     > "$_d"/kdump.conf
+                echo "Conflicts=$_mnt"
             done
         ) > "$_d"/kdump.conf
 

Reply via email to