Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package grub2 for openSUSE:Factory checked 
in at 2024-07-09 20:03:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
 and      /work/SRC/openSUSE:Factory/.grub2.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub2"

Tue Jul  9 20:03:20 2024 rev:332 rq:1186154 version:2.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes      2024-06-09 
20:18:58.054877493 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new.2080/grub2.changes    2024-07-09 
20:03:38.599922921 +0200
@@ -1,0 +2,9 @@
+Fri Jul  5 12:23:06 UTC 2024 - Michael Chang <mch...@suse.com>
+
+- Fix error if dash shell script is used (bsc#1226453)
+  * 0007-grub-switch-to-blscfg-adapt-to-openSUSE.patch
+  * 0009-10_linux-Some-refinement-for-BLS.patch
+- Fix input handling in ppc64le grub2 has high latency (bsc#1223535)
+  * 0001-net-drivers-ieee1275-ofnet-Remove-200-ms-timeout-in-.patch
+
+-------------------------------------------------------------------

New:
----
  0001-net-drivers-ieee1275-ofnet-Remove-200-ms-timeout-in-.patch

BETA DEBUG BEGIN:
  New:- Fix input handling in ppc64le grub2 has high latency (bsc#1223535)
  * 0001-net-drivers-ieee1275-ofnet-Remove-200-ms-timeout-in-.patch
BETA DEBUG END:

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

Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.dlOsEJ/_old  2024-07-09 20:03:41.588031662 +0200
+++ /var/tmp/diff_new_pack.dlOsEJ/_new  2024-07-09 20:03:41.592031808 +0200
@@ -404,6 +404,7 @@
 Patch214:       0007-grub-switch-to-blscfg-adapt-to-openSUSE.patch
 Patch215:       0008-blscfg-reading-bls-fragments-if-boot-present.patch
 Patch216:       0009-10_linux-Some-refinement-for-BLS.patch
+Patch217:       0001-net-drivers-ieee1275-ofnet-Remove-200-ms-timeout-in-.patch
 
 Requires:       gettext-runtime
 %if 0%{?suse_version} >= 1140

++++++ 0001-net-drivers-ieee1275-ofnet-Remove-200-ms-timeout-in-.patch ++++++
>From d35ff22516b161f6d472f7f5371a89597b072d04 Mon Sep 17 00:00:00 2001
From: Michael Chang <mch...@suse.com>
Date: Mon, 6 May 2024 10:34:22 +0800
Subject: [PATCH] net/drivers/ieee1275/ofnet: Remove 200 ms timeout in
 get_card_packet() to reduce input latency

When GRUB image is netbooted on ppc64le, the keyboard input exhibits
significant latency, reports even say that characters are processed
about once per second. This issue makes interactively trying to debug
a ppc64le config very difficult.

It seems that the latency is largely caused by a 200 ms timeout in the
idle event loop, during which the network card interface is consistently
polled for incoming packets. Often, no packets arrive during this
period, so the timeout nearly always expires, which blocks the response
to key inputs.

Furthermore, this 200 ms timeout might not need to be enforced at this
basic layer, considering that GRUB performs synchronous reads and its
timeout management is actually handled by higher layers, not directly in
the card instance. Additionally, the idle polling, which reacts to
unsolicited packets like ICMP and SLAAC, would be fine at a less frequent
polling interval, rather than needing a timeout for receiving a response.

For these reasons, we believe the timeout in get_card_packet() should be
effectively removed. According to test results, the delay has disappeared,
and it is now much easier to use interactively.

Signed-Off-by: Michael Chang <mch...@suse.com>
Tested-by: Tony Jones <to...@suse.com>
Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com>
---
 grub-core/net/drivers/ieee1275/ofnet.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/grub-core/net/drivers/ieee1275/ofnet.c 
b/grub-core/net/drivers/ieee1275/ofnet.c
index 78f03df8e..3bf48b3f0 100644
--- a/grub-core/net/drivers/ieee1275/ofnet.c
+++ b/grub-core/net/drivers/ieee1275/ofnet.c
@@ -82,15 +82,11 @@ get_card_packet (struct grub_net_card *dev)
   grub_ssize_t actual;
   int rc;
   struct grub_ofnetcard_data *data = dev->data;
-  grub_uint64_t start_time;
   struct grub_net_buff *nb;
 
-  start_time = grub_get_time_ms ();
-  do
-    rc = grub_ieee1275_read (data->handle, dev->rcvbuf, dev->rcvbufsize, 
&actual);
-  while ((actual <= 0 || rc < 0) && (grub_get_time_ms () - start_time < 200));
+  rc = grub_ieee1275_read (data->handle, dev->rcvbuf, dev->rcvbufsize, 
&actual);
 
-  if (actual <= 0)
+  if (actual <= 0 || rc < 0)
     return NULL;
 
   nb = grub_netbuff_alloc (actual + 2);
-- 
2.45.2


++++++ 0007-grub-switch-to-blscfg-adapt-to-openSUSE.patch ++++++
--- /var/tmp/diff_new_pack.dlOsEJ/_old  2024-07-09 20:03:41.896042871 +0200
+++ /var/tmp/diff_new_pack.dlOsEJ/_new  2024-07-09 20:03:41.900043017 +0200
@@ -1,4 +1,4 @@
-From 855b3e5cd4d672e961a366ff0f53e3a09a1ad0cc Mon Sep 17 00:00:00 2001
+From 96e5a28d120856057fe7fc9b281f11f8933063b7 Mon Sep 17 00:00:00 2001
 From: Michael Chang <mch...@suse.com>
 Date: Fri, 30 Jun 2023 14:37:41 +0800
 Subject: [PATCH 7/9] grub-switch-to-blscfg: adapt to openSUSE
@@ -12,17 +12,26 @@
 - remove RHEL specific $GRUB_LINUX_MAKE_DEBUG and all related code
 - remove ostree specific hack
 - ignore increment.mod
+- fix error in dash shell script
+- fix kernel flavor parsing in openSUSE
 
 Signed-off-by: Michael Chang <mch...@suse.com>
 ---
- util/grub-switch-to-blscfg.in | 144 ++++++++++++++++++++--------------
- 1 file changed, 87 insertions(+), 57 deletions(-)
+ util/grub-switch-to-blscfg.in | 156 ++++++++++++++++++++--------------
+ 1 file changed, 94 insertions(+), 62 deletions(-)
 
 diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in
-index a851424be..66ecc0cae 100644
+index a851424be..145c22add 100644
 --- a/util/grub-switch-to-blscfg.in
 +++ b/util/grub-switch-to-blscfg.in
-@@ -34,21 +34,18 @@ fi
+@@ -28,27 +28,24 @@ PACKAGE_NAME=@PACKAGE_NAME@
+ PACKAGE_VERSION=@PACKAGE_VERSION@
+ datarootdir="@datarootdir@"
+ datadir="@datadir@"
+-if [ ! -v pkgdatadir ]; then
++if [ -z "${pkgdatadir+x}" ]; then
+     pkgdatadir="${datadir}/@PACKAGE@"
+ fi
  
  self=`basename $0`
  
@@ -162,7 +171,7 @@
    gettext_printf "Couldn't find config file\n" 1>&2
    exit 1
  fi
-@@ -190,27 +252,22 @@ fi
+@@ -190,27 +252,24 @@ fi
  mkbls() {
      local kernelver=$1 && shift
      local datetime=$1 && shift
@@ -173,15 +182,21 @@
 -    local debugid=""
      local flavor=""
  
-     if [ "$kernelver" == *\+* ] ; then
-         local flavor=-"${kernelver##*+}"
+-    if [ "$kernelver" == *\+* ] ; then
+-        local flavor=-"${kernelver##*+}"
 -        if [ "${flavor}" == "-debug" ]; then
 -            local debugname=" with debugging"
 -            local debugid="-debug"
 -        fi
-     fi
+-    fi
++    case "$kernelver" in
++      *-*-*)
++      flavor=-"${kernelver##*-}"
++      ;;
++    esac
      (
-         source /etc/os-release
+-        source /etc/os-release
++        . /etc/os-release
  
          cat <<EOF
 -title ${NAME} (${kernelver}) ${VERSION}${debugname}
@@ -189,13 +204,13 @@
 -linux /vmlinuz-${kernelver}
 -initrd /initramfs-${kernelver}.img
 +title ${NAME} (${kernelver}) ${VERSION}
-+version ${kernelver}$
++version ${kernelver}
 +linux ${prefix}/vmlinuz-${kernelver}
 +initrd ${prefix}/initrd-${kernelver}
  options ${kernelopts}
  grub_users \$grub_users
  grub_arg --unrestricted
-@@ -233,42 +290,15 @@ copy_bls() {
+@@ -233,42 +292,15 @@ copy_bls() {
              continue
        fi
  
@@ -239,7 +254,7 @@
  GENERATE=0
  if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \
          | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then
-@@ -297,9 +327,7 @@ if [ "${GENERATE}" -eq 1 ] ; then
+@@ -297,9 +329,7 @@ if [ "${GENERATE}" -eq 1 ] ; then
      fi
  
      if [ -n "${mod_dir}" ]; then
@@ -250,7 +265,7 @@
      fi
  
      cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}"
-@@ -311,6 +339,8 @@ if [ "${GENERATE}" -eq 1 ] ; then
+@@ -311,6 +341,8 @@ if [ "${GENERATE}" -eq 1 ] ; then
          gettext_printf "Updating %s failed\n" "${GRUB_CONFIG_FILE}"
          exit 1
      fi
@@ -260,6 +275,6 @@
  
  # Bye.
 -- 
-2.44.0
+2.45.2
 
 

++++++ 0009-10_linux-Some-refinement-for-BLS.patch ++++++
--- /var/tmp/diff_new_pack.dlOsEJ/_old  2024-07-09 20:03:41.932044181 +0200
+++ /var/tmp/diff_new_pack.dlOsEJ/_new  2024-07-09 20:03:41.932044181 +0200
@@ -1,4 +1,4 @@
-From 72a72facc6cbaf58fda136286af78bbbd48bd88c Mon Sep 17 00:00:00 2001
+From abd8b83cdc6398c52c7d2b71b378938cf51872fd Mon Sep 17 00:00:00 2001
 From: Michael Chang <mch...@suse.com>
 Date: Wed, 13 Mar 2024 15:26:42 +0800
 Subject: [PATCH 9/9] 10_linux: Some refinement for BLS
@@ -8,13 +8,16 @@
 the responsibility of generating kernel options to a functioning BLS
 generator.
 
+Additionally, removing unused dead code, which is often blamed for
+causing errors in the dash shell script.
+
 Signed-off-by: Michael Chang <mch...@suse.com>
 ---
- util/grub.d/10_linux.in | 29 -----------------------------
- 1 file changed, 29 deletions(-)
+ util/grub.d/10_linux.in | 194 ----------------------------------------
+ 1 file changed, 194 deletions(-)
 
 diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index edf0fca55..7cbff7466 100644
+index edf0fca55..666eae995 100644
 --- a/util/grub.d/10_linux.in
 +++ b/util/grub.d/10_linux.in
 @@ -93,11 +93,7 @@ fi
@@ -29,20 +32,138 @@
  cat <<EOF
  
  # This section was generated by a script. Do not modify the generated file - 
all changes
-@@ -200,11 +196,6 @@ populate_menu()
-     printf "$menu"
+@@ -110,102 +106,6 @@ cat <<EOF
+ EOF
  }
  
+-read_config()
+-{
+-    config_file=${1}
+-    title=""
+-    initrd=""
+-    options=""
+-    linux=""
+-    grub_arg=""
+-
+-    while read -r line
+-    do
+-        record=$(echo ${line} | cut -f 1 -d ' ')
+-        value=$(echo ${line} | cut -s -f2- -d ' ')
+-        case "${record}" in
+-            "title")
+-                title=${value}
+-                ;;
+-            "initrd")
+-                initrd=${value}
+-                ;;
+-            "linux")
+-                linux=${value}
+-                ;;
+-            "options")
+-                options=${value}
+-                ;;
+-            "grub_arg")
+-                grub_arg=${value}
+-                ;;
+-        esac
+-    done < ${config_file}
+-}
+-
+-blsdir="/boot/loader/entries"
+-
+-get_sorted_bls()
+-{
+-    if ! [ -d "${blsdir}" ] || [ -f /run/ostree-booted ] || [ -d /ostree/repo 
]; then
+-        return
+-    fi
+-
+-    local IFS=$'\n'
+-
+-    files=($(for bls in ${blsdir}/*.conf; do
+-        if ! [[ -e "${bls}" ]] ; then
+-            continue
+-        fi
+-        bls="${bls%.conf}"
+-        bls="${bls##*/}"
+-        echo "${bls}"
+-    done | ${kernel_sort} 2>/dev/null | tac)) || :
+-
+-    echo "${files[@]}"
+-}
+-
+-update_bls_cmdline()
+-{
+-    local cmdline="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} 
${GRUB_CMDLINE_LINUX_DEFAULT}"
+-    local -a files=($(get_sorted_bls))
+-
+-    for bls in "${files[@]}"; do
+-        local options="${cmdline}"
+-        if [ -z "${bls##*debug*}" ]; then
+-            options="${options} ${GRUB_CMDLINE_LINUX_DEBUG}"
+-        fi
+-        options="$(echo "${options}" | sed -e 's/\//\\\//g')"
+-        sed -i -e "s/^options.*/options ${options}/" "${blsdir}/${bls}.conf"
+-    done
+-}
+-
+-populate_menu()
+-{
+-    local -a files=($(get_sorted_bls))
+-
+-    gettext_printf "Generating boot entries from BLS files...\n" >&2
+-
+-    for bls in "${files[@]}"; do
+-        read_config "${blsdir}/${bls}.conf"
+-
+-        menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n"
+-        menu="${menu}\t linux ${linux} ${options}\n"
+-        if [ -n "${initrd}" ] ; then
+-            menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
+-        fi
+-        menu="${menu}}\n\n"
+-    done
+-    # The printf command seems to be more reliable across shells for special 
character (\n, \t) evaluation
+-    printf "$menu"
+-}
+-
 -# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not 
installed.
 -# FIXME: The test should be aligned to openSUSE, grubby is not our default 
tool  
 -if [ -z "${GRUB_ENABLE_BLSCFG}" ] && ! command -v new-kernel-pkg >/dev/null 
&& false; then
 -        GRUB_ENABLE_BLSCFG="true"
 -fi
- 
+-
  if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
    if [ x$dirname = x/ ]; then
-@@ -252,31 +243,11 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
+     if [ -z "${prepare_root_cache}" ]; then
+@@ -225,111 +125,17 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
+       prepare_grub_to_access_device_with_variable boot ${boot_device}
+   fi
  
+-  arch="$(uname -m)"
+-  if [ "x${arch}" = "xppc64le" ] && [ -d /sys/firmware/opal ]; then
+-
+-      BLS_POPULATE_MENU="true"
+-      
petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot"
+-
+-      if test -e ${petitboot_path}; then
+-          read -r -d '' petitboot_version < ${petitboot_path}
+-          petitboot_version="$(echo ${petitboot_version//v})"
+-
+-        if test -n ${petitboot_version}; then
+-              major_version="$(echo ${petitboot_version} | cut -d . -f1)"
+-              minor_version="$(echo ${petitboot_version} | cut -d . -f2)"
+-
+-              re='^[0-9]+$'
+-              if [[ $major_version =~ $re ]] && [[ $minor_version =~ $re ]] &&
+-                 ([[ ${major_version} -gt 1 ]] ||
+-                  [[ ${major_version} -eq 1 &&
+-                     ${minor_version} -ge 8  ]]); then
+-                  BLS_POPULATE_MENU="false"
+-              fi
+-          fi
+-      fi
+-  fi
+-
    populate_header_warn
  
 -  cat << EOF
@@ -70,10 +191,63 @@
  blscfg
  EOF
 -  fi
+-
+-  if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
+-      blsdir="/boot/loader/entries"
+-      [ -d "${blsdir}" ] && GRUB_BLS_FS="$(${grub_probe} --target=fs 
${blsdir})"
+-      if [ "x${GRUB_BLS_FS}" = "xbtrfs" ] || [ "x${GRUB_BLS_FS}" = "xzfs" ]; 
then
+-          blsdir=$(make_system_path_relative_to_its_root "${blsdir}")
+-          if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != 
"x/boot/loader/entries" ]; then
+-              ${grub_editenv} - set blsdir="${blsdir}"
+-          fi
+-      fi
+-
+-      if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then
+-          ${grub_editenv} - set 
early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}"
+-      fi
+-
+-      if [ -n "${GRUB_DEFAULT_DTB}" ]; then
+-          ${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}"
+-      fi
+-
+-      if [ -n "${GRUB_SAVEDEFAULT}" ]; then
+-           ${grub_editenv} - set save_default="${GRUB_SAVEDEFAULT}"
+-      fi
+-  fi
+ 
+   exit 0
+ fi
+ 
+-mktitle ()
+-{
+-  local title_type
+-  local version
+-  local OS_NAME
+-  local OS_VERS
+-
+-  title_type=$1 && shift
+-  version=$1 && shift
+-
+-  OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})"
+-  OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})"
+-
+-  case $title_type in
+-    recovery)
+-      title=$(printf '%s (%s) %s (recovery mode)' \
+-                     "${OS_NAME}" "${version}" "${OS_VERS}")
+-      ;;
+-    *)
+-      title=$(printf '%s (%s) %s' \
+-                     "${OS_NAME}" "${version}" "${OS_VERS}")
+-      ;;
+-  esac
+-  echo -n ${title}
+-}
+-
+ title_correction_code=
  
-   if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
-       blsdir="/boot/loader/entries"
+ hotkey=1
 -- 
-2.44.0
+2.45.2
 
 

Reply via email to