diff --git a/grub2-xen-pv-firmware.cfg b/grub2-xen-pv-firmware.cfg index 3041dad..71a3599 100644 --- a/grub2-xen-pv-firmware.cfg +++ b/grub2-xen-pv-firmware.cfg @@ -69,6 +69,9 @@ for c in ${hdcfg_list}; do btrfs_relative_path=1 if search -s hddev -f "${c}"; then btrfs_relative_path=0 + if [ "${hddev}" = "memdisk" ]; then + break + fi menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" { set root="${2}" set cfg="${3}" @@ -88,6 +91,9 @@ for c in ${hdlst_list}; do btrfs_relative_path=1 if search -s hddev -f "${c}"; then btrfs_relative_path=0 + if [ "${hddev}" = "memdisk" ]; then + break + fi menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" { set root="${2}" set cfg="${3}" diff --git a/grub2.changes b/grub2.changes index d8bd6cd..509fba4 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Mar 22 06:01:13 UTC 2024 - Michael Chang + +- 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 + +- 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 diff --git a/grub2.spec b/grub2.spec index 1cf83c3..e58e29f 100644 --- a/grub2.spec +++ b/grub2.spec @@ -466,12 +466,7 @@ BuildArch: noarch %endif Requires: %{name} = %{version} Requires(post): %{name} = %{version} -%if 0%{?update_bootloader_requires:1} -%update_bootloader_requires -%else -Requires: perl-Bootloader -Requires(post): perl-Bootloader -%endif +%{?update_bootloader_requires} %description %{grubarch} The GRand Unified Bootloader (GRUB) is a highly configurable and customizable @@ -520,12 +515,7 @@ Requires: efibootmgr Requires(post): efibootmgr Requires: %{name} = %{version} Requires(post): %{name} = %{version} -%if 0%{?update_bootloader_requires:1} -%update_bootloader_requires -%else -Requires: perl-Bootloader >= 0.706 -Requires(post): perl-Bootloader >= 0.706 -%endif +%{?update_bootloader_requires} %{?fde_tpm_update_requires} Provides: %{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} %post %{grubarch} -%if 0%{?update_bootloader_check_type_reinit_post:1} -%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 +%{?update_bootloader_check_type_reinit_post:%update_bootloader_check_type_reinit_post grub2} %posttrans %{grubarch} %{?update_bootloader_posttrans} @@ -1188,38 +1134,7 @@ fi %fde_tpm_update_post grub2-efi %endif -%if 0%{?update_bootloader_check_type_reinit_post:1} -%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 +%{?update_bootloader_check_type_reinit_post:%update_bootloader_check_type_reinit_post grub2-efi} %posttrans %{grubefiarch} %{?update_bootloader_posttrans} @@ -1229,40 +1144,6 @@ exit 0 %preun %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 %service_del_postun grub2-once.service