SHA256
1
0
forked from pool/grub2

Accepting request 1160526 from home:michael-chang:branches:Base:System

- Fix memdisk becomes the default boot entry, resolving no graphic display
  device error in guest vnc console (bsc#1221779)
  * grub2-xen-pv-firmware.cfg 

- Cleanup spec file to adhere to update-bootloader-rpm-macros definition
  entirely (bsc#1218241)

OBS-URL: https://build.opensuse.org/request/show/1160526
OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=495
This commit is contained in:
Michael Chang 2024-03-22 06:26:29 +00:00 committed by Git OBS Bridge
parent 8aecaf14b6
commit 11e8d5171e
3 changed files with 23 additions and 123 deletions

View File

@ -69,6 +69,9 @@ for c in ${hdcfg_list}; do
btrfs_relative_path=1 btrfs_relative_path=1
if search -s hddev -f "${c}"; then if search -s hddev -f "${c}"; then
btrfs_relative_path=0 btrfs_relative_path=0
if [ "${hddev}" = "memdisk" ]; then
break
fi
menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" { menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" {
set root="${2}" set root="${2}"
set cfg="${3}" set cfg="${3}"
@ -88,6 +91,9 @@ for c in ${hdlst_list}; do
btrfs_relative_path=1 btrfs_relative_path=1
if search -s hddev -f "${c}"; then if search -s hddev -f "${c}"; then
btrfs_relative_path=0 btrfs_relative_path=0
if [ "${hddev}" = "memdisk" ]; then
break
fi
menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" { menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" {
set root="${2}" set root="${2}"
set cfg="${3}" set cfg="${3}"

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Fri Mar 22 06:01:13 UTC 2024 - Michael Chang <mchang@suse.com>
- Fix memdisk becomes the default boot entry, resolving no graphic display
device error in guest vnc console (bsc#1221779)
* grub2-xen-pv-firmware.cfg
-------------------------------------------------------------------
Wed Mar 20 06:16:45 UTC 2024 - Michael Chang <mchang@suse.com>
- Cleanup spec file to adhere to update-bootloader-rpm-macros definition
entirely (bsc#1218241)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Mar 19 07:08:02 UTC 2024 - Gary Ching-Pang Lin <glin@suse.com> Tue Mar 19 07:08:02 UTC 2024 - Gary Ching-Pang Lin <glin@suse.com>

View File

@ -466,12 +466,7 @@ BuildArch: noarch
%endif %endif
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires(post): %{name} = %{version} Requires(post): %{name} = %{version}
%if 0%{?update_bootloader_requires:1} %{?update_bootloader_requires}
%update_bootloader_requires
%else
Requires: perl-Bootloader
Requires(post): perl-Bootloader
%endif
%description %{grubarch} %description %{grubarch}
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable The GRand Unified Bootloader (GRUB) is a highly configurable and customizable
@ -520,12 +515,7 @@ Requires: efibootmgr
Requires(post): efibootmgr Requires(post): efibootmgr
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires(post): %{name} = %{version} Requires(post): %{name} = %{version}
%if 0%{?update_bootloader_requires:1} %{?update_bootloader_requires}
%update_bootloader_requires
%else
Requires: perl-Bootloader >= 0.706
Requires(post): perl-Bootloader >= 0.706
%endif
%{?fde_tpm_update_requires} %{?fde_tpm_update_requires}
Provides: %{name}-efi = %{version}-%{release} Provides: %{name}-efi = %{version}-%{release}
Obsoletes: %{name}-efi < %{version}-%{release} Obsoletes: %{name}-efi < %{version}-%{release}
@ -1130,51 +1120,7 @@ grep -E ${EXTRA_PATTERN} %{grubarch}-mod-all.lst > %{grubarch}-mod-extras.lst
%if ! 0%{?only_efi:1} %if ! 0%{?only_efi:1}
%post %{grubarch} %post %{grubarch}
%if 0%{?update_bootloader_check_type_reinit_post:1} %{?update_bootloader_check_type_reinit_post:%update_bootloader_check_type_reinit_post grub2}
%update_bootloader_check_type_reinit_post grub2
%else
# To check by current loader settings
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
. %{_sysconfdir}/sysconfig/bootloader
fi
# If the grub is the current loader, we'll handle the grub2 testing entry
if [ "x${LOADER_TYPE}" = "xgrub" ]; then
exec >/dev/null 2>&1
# check if entry for grub2's core.img exists in the config
# if yes, we will correct obsoleted path and update grub2 stuff and config to make it work
# if no, do nothing
if [ -f /boot/grub/menu.lst ]; then
# If grub config contains obsolete core.img path, remove and use the new one
if /usr/bin/grep -l "^\s*kernel\s*.*/boot/%{name}/core.img" /boot/grub/menu.lst; then
/sbin/update-bootloader --remove --image /boot/%{name}/core.img || true
/sbin/update-bootloader --add --image /boot/%{name}/i386-pc/core.img --name "GNU GRUB 2" || true
fi
# Install grub2 stuff and config to make the grub2 testing entry to work with updated version
if /usr/bin/grep -l "^\s*kernel\s*.*/boot/%{name}/i386-pc/core.img" /boot/grub/menu.lst; then
# Determine the partition with /boot
BOOT_PARTITION=$(df -h /boot | sed -n '2s/[[:blank:]].*//p')
# Generate core.img, but don't let it be installed in boot sector
%{name}-install --no-bootsector $BOOT_PARTITION || true
# Create a working grub2 config, otherwise that entry is un-bootable
/usr/sbin/grub2-mkconfig -o /boot/%{name}/grub.cfg
fi
fi
elif [ "x${LOADER_TYPE}" = "xgrub2" ]; then
# It's enought to call update-bootloader to install grub2 and update it's config
# Use new --reinit, if not available use --refresh
# --reinit: install and update bootloader config
# --refresh: update bootloader config
/sbin/update-bootloader --reinit 2>&1 | grep -q 'Unknown option: reinit' &&
/sbin/update-bootloader --refresh || true
fi
%endif
%posttrans %{grubarch} %posttrans %{grubarch}
%{?update_bootloader_posttrans} %{?update_bootloader_posttrans}
@ -1188,38 +1134,7 @@ fi
%fde_tpm_update_post grub2-efi %fde_tpm_update_post grub2-efi
%endif %endif
%if 0%{?update_bootloader_check_type_reinit_post:1} %{?update_bootloader_check_type_reinit_post:%update_bootloader_check_type_reinit_post grub2-efi}
%update_bootloader_check_type_reinit_post grub2-efi
%else
# To check by current loader settings
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
. %{_sysconfdir}/sysconfig/bootloader
fi
if [ "x${LOADER_TYPE}" = "xgrub2-efi" ]; then
if [ -d /boot/%{name}-efi ]; then
# Migrate settings to standard prefix /boot/grub2
for i in custom.cfg grubenv; do
[ -f /boot/%{name}-efi/$i ] && cp -a /boot/%{name}-efi/$i /boot/%{name} || :
done
fi
# It's enough to call update-bootloader to install grub2 and update it's config
# Use new --reinit, if not available use --refresh
# --reinit: install and update bootloader config
# --refresh: update bootloader config
/sbin/update-bootloader --reinit 2>&1 | grep -q 'Unknown option: reinit' &&
/sbin/update-bootloader --refresh || true
fi
if [ -d /boot/%{name}-efi ]; then
mv /boot/%{name}-efi /boot/%{name}-efi.rpmsave
fi
exit 0
%endif
%posttrans %{grubefiarch} %posttrans %{grubefiarch}
%{?update_bootloader_posttrans} %{?update_bootloader_posttrans}
@ -1229,40 +1144,6 @@ exit 0
%preun %preun
%service_del_preun grub2-once.service %service_del_preun grub2-once.service
# We did not add core.img to grub1 menu.lst in new update-bootloader macro as what
# the old %%post ever did, then the %%preun counterpart which removed the added core.img
# entry from old %%post can be skipped entirely if having new macro in use.
%if ! 0%{?update_bootloader_posttrans:1}%{?only_efi:1}
if [ $1 = 0 ]; then
# To check by current loader settings
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
. %{_sysconfdir}/sysconfig/bootloader
fi
if [ "x${LOADER_TYPE}" = "xgrub" ]; then
exec >/dev/null 2>&1
if [ -f /boot/grub/menu.lst ]; then
# Remove grub2 testing entry in menu.lst if has any
for i in /boot/%{name}/core.img /boot/%{name}/i386-pc/core.img; do
if /usr/bin/grep -l "^\s*kernel\s*.*$i" /boot/grub/menu.lst; then
/sbin/update-bootloader --remove --image "$i" || true
fi
done
fi
# Cleanup config, to not confuse some tools determining bootloader in use
rm -f /boot/%{name}/grub.cfg
# Cleanup installed files
# Unless grub2 provides grub2-uninstall, we don't remove any file because
# we have no idea what's been installed. (And a blind remove is dangerous
# to remove user's or other package's file accidently ..)
fi
fi
%endif
%postun %postun
%service_del_postun grub2-once.service %service_del_postun grub2-once.service