File 0009-10_linux-Some-refinement-for-BLS.patch of Package grub2

From abd8b83cdc6398c52c7d2b71b378938cf51872fd Mon Sep 17 00:00:00 2001
From: Michael Chang <mchang@suse.com>
Date: Wed, 13 Mar 2024 15:26:42 +0800
Subject: [PATCH 9/9] 10_linux: Some refinement for BLS

Remove BLS_POPULATE_MENU as it is not being used currently and removing
kernelopts assignment in the grub boot config itself to fully delegate
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 <mchang@suse.com>
---
 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..666eae995 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -93,11 +93,7 @@ fi
 
 populate_header_warn()
 {
-if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then
-  bls_parser="10_linux script"
-else
   bls_parser="blscfg command"
-fi
 cat <<EOF
 
 # This section was generated by a script. Do not modify the generated file - all changes
@@ -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
     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
-# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
-# entries populated from BootLoaderSpec files that use this variable work correctly even
-# without a grubenv file, define a fallback kernelopts variable if this has not been set.
-#
-# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
-# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
-# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
-# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
-if [ -z "\${kernelopts}" ]; then
-  set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-fi
-EOF
-
-  update_bls_cmdline
-
-  if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then
-      populate_menu
-  else
       cat << EOF
 
 insmod blscfg
 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=
 
 hotkey=1
-- 
2.45.2

openSUSE Build Service is sponsored by