diff --git a/0039-Add-grub2-tools-update-into-answerfile.patch b/0039-Add-grub2-tools-update-into-answerfile.patch new file mode 100644 index 0000000000000000000000000000000000000000..cc1731542e0a0b60e42dcb044a2478b1bb623c16 --- /dev/null +++ b/0039-Add-grub2-tools-update-into-answerfile.patch @@ -0,0 +1,70 @@ +From 8c3492ffd04840415b2db0fdd8320690ff6cce31 Mon Sep 17 00:00:00 2001 +From: Bitao Hu +Date: Thu, 9 Mar 2023 20:13:55 +0800 +Subject: [PATCH] Add grub2-tools update into answerfile. + +Signed-off-by: Bitao Hu +--- + .../el7toel8/actors/checkpkgforupgrade/actor.py | 28 ++++++++++++++++++++-- + 1 file changed, 26 insertions(+), 2 deletions(-) + +diff --git a/repos/system_upgrade/el7toel8/actors/checkpkgforupgrade/actor.py b/repos/system_upgrade/el7toel8/actors/checkpkgforupgrade/actor.py +index 9e42030..5c7b0a0 100644 +--- a/repos/system_upgrade/el7toel8/actors/checkpkgforupgrade/actor.py ++++ b/repos/system_upgrade/el7toel8/actors/checkpkgforupgrade/actor.py +@@ -5,6 +5,9 @@ from leapp.reporting import Report, create_report + from leapp import reporting + from leapp.tags import ChecksPhaseTag, IPUWorkflowTag + from leapp.libraries.stdlib import run ++from leapp.dialogs import Dialog ++from leapp.dialogs.components import BooleanComponent ++import subprocess + + + class CheckPackagesForUpgrade(Actor): +@@ -17,6 +20,23 @@ class CheckPackagesForUpgrade(Actor): + produces = (Report,) + tags = (ChecksPhaseTag, IPUWorkflowTag) + ++ dialogs = ( ++ Dialog( ++ scope='update_grub2-tools', ++ reason='Confirmation', ++ components=( ++ BooleanComponent( ++ key='confirm', ++ label='Update grub2-tools? ' ++ 'If no, the upgrade process will be interrupted.', ++ description='grub2 version is too low for system upgrade.', ++ reason='grub2 version must be upgrade to version >= 2.02-0.64, ' ++ 'otherwise system upgrade will get failed after reboot.' ++ ), ++ ) ++ ), ++ ) ++ + def get_releasever_of_rpm(self, pkg_name): + rel_ver = run(['rpm', '-q', pkg_name, '--qf', '%{RELEASE}'], split=False)['stdout'] + return rel_ver +@@ -50,7 +70,11 @@ class CheckPackagesForUpgrade(Actor): + def process(self): + if has_package(InstalledRedHatSignedRPM, 'grub2'): + grub2_version = self.get_releasever_of_rpm('grub2') +- if self.compare_version(grub2_version, '0.64') < 0: ++ answer = self.get_answers(self.dialogs[0]) ++ ++ if self.compare_version(grub2_version, '0.64') < 0 and answer.get('confirm') == True: ++ subprocess.call(['yum', 'update', 'grub2', '-y']) ++ elif self.compare_version(grub2_version, '0.64') < 0: + commands = [['yum', '-y', 'update', 'grub2']] + create_report([ + reporting.Title('grub2 version is too low for system upgrade'), +@@ -62,4 +86,4 @@ class CheckPackagesForUpgrade(Actor): + reporting.Flags([reporting.Flags.INHIBITOR]), + reporting.Remediation(commands=commands), + reporting.RelatedResource('package', 'grub2'), +- ]) ++ ]) +-- +1.8.3.1 + diff --git a/leapp-repository.spec b/leapp-repository.spec index 73f535f3b847db876b36a8eec80fc93a2cfabd4f..80e5d032b591183c04568ade70965f1105b6ff92 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -11,7 +11,7 @@ }\ py2_byte_compile "%1" "%2"} -%define anolis_release 17 +%define anolis_release 18 Name: leapp-repository Version: 0.13.0 @@ -64,6 +64,7 @@ Patch35: 0035-GRUB2-EFI-support.patch Patch36: 0036-Perform-system-requirements-check-to-ensure-migratio.patch Patch37: 0037-Add-RPMDownloadOrInstallError-and-its-exit-code.patch Patch38: 0038-Provides-more-information-for-debug-purpose-when-exc.patch +Patch39: 0039-Add-grub2-tools-update-into-answerfile.patch BuildArch: noarch BuildRequires: python-devel @@ -192,6 +193,9 @@ done; # no files here %changelog +* Mon Mar 7 2023 Bitao Hu - 0.13.0-2.18 +- Add grub2-tools update into answerfile. + * Mon Mar 6 2023 Weisson - 0.13.0-2.17 - Provides more information for debug purpose when exception happens in system requirement check.