From b4aed63dad35f1b95204e65d08b70fbc16ac94f0 Mon Sep 17 00:00:00 2001 From: Petr Stodulka Date: Thu, 30 May 2024 15:19:01 +0200 Subject: [PATCH] CTC1 candidate 2 (Release for 8.10/9.5) - Enable new upgrade path RHEL 8.10 -> 9.5 - Minor updates in reports - Add information about leapp invocation to leapp.db - Resolves: RHEL-27847 --- ...e-redhat-plumbers-in-action-differen.patch | 25 ++ ...update-actions-checkout-action-to-v4.patch | 76 ++++ ...deps-update-dependency-ubuntu-to-v22.patch | 25 ++ ...-Fix-E0606-errors-reported-by-pylint.patch | 119 ++++++ 0039-Fix-W0135-reported-by-pylint.patch | 78 ++++ ...e-peter-evans-create-or-update-comme.patch | 35 ++ ...ly-indent-the-list-of-supported-OSes.patch | 56 +++ ...-release-was-detected-as-unsupported.patch | 47 +++ 0043-Fix-typo-in-.packit.yaml.patch | 25 ++ ...-packager-field-from-distro-metadata.patch | 55 +++ ...d-environment-information-to-leappdb.patch | 39 ++ ...e-actions-github-script-action-to-v7.patch | 34 ++ ...-fix-some-typos-spotted-by-codespell.patch | 69 ++++ ...-remove-Tomcat-during-Satellite-7to8.patch | 47 +++ ...Add-product-certs-and-target-for-9.5.patch | 373 ++++++++++++++++++ leapp-repository.spec | 39 +- 16 files changed, 1141 insertions(+), 1 deletion(-) create mode 100644 0035-chore-deps-update-redhat-plumbers-in-action-differen.patch create mode 100644 0036-chore-deps-update-actions-checkout-action-to-v4.patch create mode 100644 0037-chore-deps-update-dependency-ubuntu-to-v22.patch create mode 100644 0038-Fix-E0606-errors-reported-by-pylint.patch create mode 100644 0039-Fix-W0135-reported-by-pylint.patch create mode 100644 0040-chore-deps-update-peter-evans-create-or-update-comme.patch create mode 100644 0041-properly-indent-the-list-of-supported-OSes.patch create mode 100644 0042-report-which-OS-release-was-detected-as-unsupported.patch create mode 100644 0043-Fix-typo-in-.packit.yaml.patch create mode 100644 0044-drop-unused-packager-field-from-distro-metadata.patch create mode 100644 0045-Add-environment-information-to-leappdb.patch create mode 100644 0046-chore-deps-update-actions-github-script-action-to-v7.patch create mode 100644 0047-fix-some-typos-spotted-by-codespell.patch create mode 100644 0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch create mode 100644 0049-Add-product-certs-and-target-for-9.5.patch diff --git a/0035-chore-deps-update-redhat-plumbers-in-action-differen.patch b/0035-chore-deps-update-redhat-plumbers-in-action-differen.patch new file mode 100644 index 0000000..3871f15 --- /dev/null +++ b/0035-chore-deps-update-redhat-plumbers-in-action-differen.patch @@ -0,0 +1,25 @@ +From 82b20e29da6c05bfb385c44eed2dc9af72c36148 Mon Sep 17 00:00:00 2001 +From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> +Date: Sat, 11 May 2024 14:59:13 +0000 +Subject: [PATCH 35/49] chore(deps): update + redhat-plumbers-in-action/differential-shellcheck action to v5 + +--- + .github/workflows/differential-shellcheck.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml +index 4af99f8d..f643f054 100644 +--- a/.github/workflows/differential-shellcheck.yml ++++ b/.github/workflows/differential-shellcheck.yml +@@ -24,6 +24,6 @@ jobs: + fetch-depth: 0 + + - name: Differential ShellCheck +- uses: redhat-plumbers-in-action/differential-shellcheck@v3 ++ uses: redhat-plumbers-in-action/differential-shellcheck@v5 + with: + token: ${{ secrets.GITHUB_TOKEN }} +-- +2.44.0 + diff --git a/0036-chore-deps-update-actions-checkout-action-to-v4.patch b/0036-chore-deps-update-actions-checkout-action-to-v4.patch new file mode 100644 index 0000000..01b19b0 --- /dev/null +++ b/0036-chore-deps-update-actions-checkout-action-to-v4.patch @@ -0,0 +1,76 @@ +From 821a387628e935e1aa9a74af153cd7598c8038c1 Mon Sep 17 00:00:00 2001 +From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> +Date: Wed, 8 May 2024 12:45:11 +0000 +Subject: [PATCH 36/49] chore(deps): update actions/checkout action to v4 + +--- + .github/workflows/codespell.yml | 2 +- + .github/workflows/differential-shellcheck.yml | 2 +- + .github/workflows/reuse-copr-build.yml | 4 ++-- + .github/workflows/unit-tests.yml | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index 4921bc90..c0ec20d6 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -14,7 +14,7 @@ jobs: + runs-on: ubuntu-latest + + steps: +- - uses: actions/checkout@v3 ++ - uses: actions/checkout@v4 + - uses: codespell-project/actions-codespell@master + with: + ignore_words_list: ro,fo,couldn,repositor +diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml +index f643f054..f1ed5f6a 100644 +--- a/.github/workflows/differential-shellcheck.yml ++++ b/.github/workflows/differential-shellcheck.yml +@@ -19,7 +19,7 @@ jobs: + + steps: + - name: Repository checkout +- uses: actions/checkout@v3 ++ uses: actions/checkout@v4 + with: + fetch-depth: 0 + +diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml +index 093e0c1a..c742db50 100644 +--- a/.github/workflows/reuse-copr-build.yml ++++ b/.github/workflows/reuse-copr-build.yml +@@ -42,7 +42,7 @@ jobs: + # TODO: The correct way to checkout would be to use similar approach as in get_commit_by_timestamp function of + # the github gluetool module (i.e. do not use HEAD but the last commit before comment). + id: checkout +- uses: actions/checkout@v2 ++ uses: actions/checkout@v4 + with: + ref: "refs/pull/${{ steps.pr_nr.outputs.pr_nr }}/head" + +@@ -105,7 +105,7 @@ jobs: + - name: Checkout leapp + id: checkout_leapp + if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }} +- uses: actions/checkout@v2 ++ uses: actions/checkout@v4 + with: + repository: "oamg/leapp" + ref: "refs/pull/${{ steps.leapp_pr.outputs.leapp_pr }}/head" +diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml +index 107a1fc0..e4b4d173 100644 +--- a/.github/workflows/unit-tests.yml ++++ b/.github/workflows/unit-tests.yml +@@ -34,7 +34,7 @@ jobs: + + steps: + - name: Checkout code +- uses: actions/checkout@v2 ++ uses: actions/checkout@v4 + with: + # NOTE(ivasilev) fetch-depth 0 is critical here as leapp deps discovery depends on specific substring in + # commit message and default 1 option will get us just merge commit which has an unrelevant message. +-- +2.44.0 + diff --git a/0037-chore-deps-update-dependency-ubuntu-to-v22.patch b/0037-chore-deps-update-dependency-ubuntu-to-v22.patch new file mode 100644 index 0000000..2f4e8c1 --- /dev/null +++ b/0037-chore-deps-update-dependency-ubuntu-to-v22.patch @@ -0,0 +1,25 @@ +From d7ad5d7da691f1425a3eba59e1f74392948a98e3 Mon Sep 17 00:00:00 2001 +From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> +Date: Fri, 10 May 2024 05:33:55 +0000 +Subject: [PATCH 37/49] chore(deps): update dependency ubuntu to v22 + +--- + .github/workflows/reuse-copr-build.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml +index c742db50..6bf71226 100644 +--- a/.github/workflows/reuse-copr-build.yml ++++ b/.github/workflows/reuse-copr-build.yml +@@ -16,7 +16,7 @@ jobs: + reusable_workflow_copr_build_job: + # This job only runs for '/rerun' pull request comments by owner, member, or collaborator of the repo/organization. + name: Build copr builds for tft tests +- runs-on: ubuntu-20.04 ++ runs-on: ubuntu-22.04 + outputs: + artifacts: ${{ steps.gen_artifacts.outputs.artifacts }} + if: | +-- +2.44.0 + diff --git a/0038-Fix-E0606-errors-reported-by-pylint.patch b/0038-Fix-E0606-errors-reported-by-pylint.patch new file mode 100644 index 0000000..7b67646 --- /dev/null +++ b/0038-Fix-E0606-errors-reported-by-pylint.patch @@ -0,0 +1,119 @@ +From 96346a5400a6e9741566e5070024a7918a6a9323 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Tue, 14 May 2024 15:24:43 +0200 +Subject: [PATCH 38/49] Fix E0606 errors reported by pylint + +E0606 -> possibly-used-before-assignement + +Note that in case of checktargetrepos actor we are introducing + https://red.ht/upgrading-rhel9-to-rhel10-main-official-doc +for IPU 9 -> 10. However, this shortened URL must be defined yet later. +--- + .../actors/checktargetrepos/libraries/checktargetrepos.py | 2 ++ + .../tests/unit_test_upgradeinitramfsgenerator.py | 1 + + .../common/actors/scantargetiso/tests/test_scan_target_iso.py | 1 + + .../tests/unit_test_selinuxcontentscanner.py | 2 ++ + .../selinux/selinuxprepare/tests/unit_test_selinuxprepare.py | 1 + + repos/system_upgrade/common/libraries/tests/test_grub.py | 3 +++ + repos/system_upgrade/common/libraries/tests/test_mdraid.py | 2 ++ + 7 files changed, 12 insertions(+) + +diff --git a/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py b/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py +index 6d5a2f65..c286ed4f 100644 +--- a/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py ++++ b/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py +@@ -33,6 +33,8 @@ def process(): + ipu_doc_url = 'https://red.ht/upgrading-rhel7-to-rhel8-main-official-doc' + elif target_major_version == '9': + ipu_doc_url = 'https://red.ht/upgrading-rhel8-to-rhel9-main-official-doc' ++ else: ++ ipu_doc_url = 'https://red.ht/upgrading-rhel9-to-rhel10-main-official-doc' + + rhui_info = next(api.consume(RHUIInfo), None) + +diff --git a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/tests/unit_test_upgradeinitramfsgenerator.py b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/tests/unit_test_upgradeinitramfsgenerator.py +index 8068e177..7397b82b 100644 +--- a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/tests/unit_test_upgradeinitramfsgenerator.py ++++ b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/tests/unit_test_upgradeinitramfsgenerator.py +@@ -354,6 +354,7 @@ def test_copy_modules_fail(monkeypatch, kind): + + module_class = None + copy_fn = None ++ dst_path = None + if kind == 'dracut': + module_class = DracutModule + copy_fn = upgradeinitramfsgenerator.copy_dracut_modules +diff --git a/repos/system_upgrade/common/actors/scantargetiso/tests/test_scan_target_iso.py b/repos/system_upgrade/common/actors/scantargetiso/tests/test_scan_target_iso.py +index 4dd0a125..8e235c6d 100644 +--- a/repos/system_upgrade/common/actors/scantargetiso/tests/test_scan_target_iso.py ++++ b/repos/system_upgrade/common/actors/scantargetiso/tests/test_scan_target_iso.py +@@ -201,6 +201,7 @@ def test_iso_repository_detection(monkeypatch, repodirs_in_iso, expected_repoids + + produced_custom_repo_msgs = [] + target_iso_msg = None ++ target_iso = None + for produced_msg in produced_msgs: + if isinstance(produced_msg, CustomTargetRepository): + produced_custom_repo_msgs.append(produced_msg) +diff --git a/repos/system_upgrade/common/actors/selinux/selinuxcontentscanner/tests/unit_test_selinuxcontentscanner.py b/repos/system_upgrade/common/actors/selinux/selinuxcontentscanner/tests/unit_test_selinuxcontentscanner.py +index 1837c245..830eeac5 100644 +--- a/repos/system_upgrade/common/actors/selinux/selinuxcontentscanner/tests/unit_test_selinuxcontentscanner.py ++++ b/repos/system_upgrade/common/actors/selinux/selinuxcontentscanner/tests/unit_test_selinuxcontentscanner.py +@@ -33,6 +33,8 @@ class run_mocked(object): + "port -a -t http_port_t -p udp 81", + "fcontext -a -f a -t httpd_sys_content_t '/web(/.*)?'", + "fcontext -a -f a -t cgdcbxd_exec_t '/ganesha(/.*)?'"] ++ else: ++ assert False, 'run_mocked: Called unexpected cmd not covered by test: {}'.format(self.args) + + return {'stdout': stdout} + +diff --git a/repos/system_upgrade/common/actors/selinux/selinuxprepare/tests/unit_test_selinuxprepare.py b/repos/system_upgrade/common/actors/selinux/selinuxprepare/tests/unit_test_selinuxprepare.py +index 7d975dda..c1ad06c5 100644 +--- a/repos/system_upgrade/common/actors/selinux/selinuxprepare/tests/unit_test_selinuxprepare.py ++++ b/repos/system_upgrade/common/actors/selinux/selinuxprepare/tests/unit_test_selinuxprepare.py +@@ -24,6 +24,7 @@ class run_mocked(object): + self.removed_modules.add(self.args[idx + 1]) + else: + self.non_semodule_calls += 1 ++ stdout = [] + + return {'stdout': stdout} + +diff --git a/repos/system_upgrade/common/libraries/tests/test_grub.py b/repos/system_upgrade/common/libraries/tests/test_grub.py +index 5a4f3f63..6f13538c 100644 +--- a/repos/system_upgrade/common/libraries/tests/test_grub.py ++++ b/repos/system_upgrade/common/libraries/tests/test_grub.py +@@ -40,6 +40,7 @@ class RunMocked(object): + def __call__(self, args, encoding=None): + self.called += 1 + self.args = args ++ stdout = '' + if self.raise_err: + raise_call_error(args) + +@@ -50,6 +51,8 @@ class RunMocked(object): + stdout = BOOT_DEVICE + elif self.args[:-1] == ['lsblk', '-spnlo', 'name']: + stdout = self.args[-1][:-1] ++ else: ++ assert False, 'RunMockedError: Called unexpected cmd not covered by test: {}'.format(self.args) + + return {'stdout': stdout} + +diff --git a/repos/system_upgrade/common/libraries/tests/test_mdraid.py b/repos/system_upgrade/common/libraries/tests/test_mdraid.py +index cb7c1059..d536beec 100644 +--- a/repos/system_upgrade/common/libraries/tests/test_mdraid.py ++++ b/repos/system_upgrade/common/libraries/tests/test_mdraid.py +@@ -42,6 +42,8 @@ class RunMocked(object): + stdout = 'ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=localhost.localdomain:0 UUID=c4acea6e:d56e1598:91822e3f:fb26832c\n devices=/dev/sda1,/dev/sdb1' # noqa: E501; pylint: disable=line-too-long + elif self.args == ['mdadm', '--detail', '--verbose', '--brief', NOT_MD_DEVICE]: + stdout = 'mdadm: /dev/sda does not appear to be an md device' ++ else: ++ assert False, 'RunMockedError: Called unexpected cmd not covered by test: {}'.format(self.args) + + return {'stdout': stdout} + +-- +2.44.0 + diff --git a/0039-Fix-W0135-reported-by-pylint.patch b/0039-Fix-W0135-reported-by-pylint.patch new file mode 100644 index 0000000..9d81674 --- /dev/null +++ b/0039-Fix-W0135-reported-by-pylint.patch @@ -0,0 +1,78 @@ +From 35e667c33dc186292a27efe2dceb2f71a20a5e13 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Tue, 14 May 2024 16:14:20 +0200 +Subject: [PATCH 39/49] Fix W0135 reported by pylint + +W0135 -> contextmanager-generator-missing-cleanup + +Expects try-finally around `yield`. Checked reported functions, +usually it's FP. In one case I changed the code to make it clear. +--- + repos/system_upgrade/common/libraries/dnfplugin.py | 3 +++ + .../system_upgrade/common/libraries/overlaygen.py | 14 ++++++++++---- + 2 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/repos/system_upgrade/common/libraries/dnfplugin.py b/repos/system_upgrade/common/libraries/dnfplugin.py +index fbd58246..e59168ef 100644 +--- a/repos/system_upgrade/common/libraries/dnfplugin.py ++++ b/repos/system_upgrade/common/libraries/dnfplugin.py +@@ -460,6 +460,9 @@ def perform_transaction_install(target_userspace_info, storage_info, used_repos, + + @contextlib.contextmanager + def _prepare_perform(used_repos, target_userspace_info, xfs_info, storage_info, target_iso=None): ++ # noqa: W0135; pylint: disable=contextmanager-generator-missing-cleanup ++ # NOTE(pstodulk): the pylint check is not valid in this case - finally is covered ++ # implicitly + reserve_space = overlaygen.get_recommended_leapp_free_space(target_userspace_info.path) + with _prepare_transaction(used_repos=used_repos, + target_userspace_info=target_userspace_info +diff --git a/repos/system_upgrade/common/libraries/overlaygen.py b/repos/system_upgrade/common/libraries/overlaygen.py +index 6b0ff97d..4bcbf32b 100644 +--- a/repos/system_upgrade/common/libraries/overlaygen.py ++++ b/repos/system_upgrade/common/libraries/overlaygen.py +@@ -296,6 +296,9 @@ def _prepare_required_mounts(scratch_dir, mounts_dir, storage_info, scratch_rese + + @contextlib.contextmanager + def _build_overlay_mount(root_mount, mounts): ++ # noqa: W0135; pylint: disable=contextmanager-generator-missing-cleanup ++ # NOTE(pstodulk): the pylint check is not valid in this case - finally is covered ++ # implicitly + if not root_mount: + raise StopActorExecutionError('Root mount point has not been prepared for overlayfs.') + if not mounts: +@@ -519,6 +522,9 @@ def _mount_dnf_cache(overlay_target): + """ + Convenience context manager to ensure bind mounted /var/cache/dnf and removal of the mount. + """ ++ # noqa: W0135; pylint: disable=contextmanager-generator-missing-cleanup ++ # NOTE(pstodulk): the pylint check is not valid in this case - finally is covered ++ # implicitly + with mounting.BindMount( + source='/var/cache/dnf', + target=os.path.join(overlay_target, 'var', 'cache', 'dnf')) as cache_mount: +@@ -570,6 +576,9 @@ def create_source_overlay(mounts_dir, scratch_dir, xfs_info, storage_info, mount + :type scratch_reserve: Optional[int] + :rtype: mounting.BindMount or mounting.NullMount + """ ++ # noqa: W0135; pylint: disable=contextmanager-generator-missing-cleanup ++ # NOTE(pstodulk): the pylint check is not valid in this case - finally is covered ++ # implicitly + api.current_logger().debug('Creating source overlay in {scratch_dir} with mounts in {mounts_dir}'.format( + scratch_dir=scratch_dir, mounts_dir=mounts_dir)) + try: +@@ -589,11 +598,8 @@ def create_source_overlay(mounts_dir, scratch_dir, xfs_info, storage_info, mount + with _build_overlay_mount(root_overlay, mounts) as overlay: + with _mount_dnf_cache(overlay.target): + yield overlay +- except Exception: ++ finally: + cleanup_scratch(scratch_dir, mounts_dir) +- raise +- # cleanup always now +- cleanup_scratch(scratch_dir, mounts_dir) + + + # ############################################################################# +-- +2.44.0 + diff --git a/0040-chore-deps-update-peter-evans-create-or-update-comme.patch b/0040-chore-deps-update-peter-evans-create-or-update-comme.patch new file mode 100644 index 0000000..d1a9845 --- /dev/null +++ b/0040-chore-deps-update-peter-evans-create-or-update-comme.patch @@ -0,0 +1,35 @@ +From d14423e2de7f6aeec921fd9cf0aad85101f6a65d Mon Sep 17 00:00:00 2001 +From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> +Date: Thu, 16 May 2024 08:11:44 +0200 +Subject: [PATCH 40/49] chore(deps): update + peter-evans/create-or-update-comment digest to v4 (#1222) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Update peter-evans/create-or-update-comment digest to v4 to use versioned (released) content instead of updating it per each new commit change. + +--------- + +Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> +Co-authored-by: Petr Stodůlka +--- + .github/workflows/pr-welcome-msg.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml +index e23c9bbb..c6527da4 100644 +--- a/.github/workflows/pr-welcome-msg.yml ++++ b/.github/workflows/pr-welcome-msg.yml +@@ -14,7 +14,7 @@ jobs: + runs-on: ubuntu-latest + steps: + - name: Create comment +- uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae ++ uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.pull_request.number }} + body: | +-- +2.44.0 + diff --git a/0041-properly-indent-the-list-of-supported-OSes.patch b/0041-properly-indent-the-list-of-supported-OSes.patch new file mode 100644 index 0000000..96d83c9 --- /dev/null +++ b/0041-properly-indent-the-list-of-supported-OSes.patch @@ -0,0 +1,56 @@ +From c68bc5ef0f277a5878802566dc5517a1f98feac6 Mon Sep 17 00:00:00 2001 +From: Evgeni Golov +Date: Thu, 16 May 2024 11:08:47 +0200 +Subject: [PATCH 41/49] properly indent the list of supported OSes + +before: +``` +Risk Factor: high (inhibitor) +Title: The installed OS version is not supported for the in-place upgrade to the target RHEL version +Summary: The supported OS releases for the upgrade process: + RHEL 8.8 +RHEL 8.10 +RHEL-SAPHANA 8.8 +RHEL-SAPHANA 8.10 +``` + +after: +``` +Risk Factor: high (inhibitor) +Title: The installed OS version is not supported for the in-place upgrade to the target RHEL version +Summary: The supported OS releases for the upgrade process: + - RHEL 8.8 + - RHEL 8.10 + - RHEL-SAPHANA 8.8 + - RHEL-SAPHANA 8.10 +``` +--- + .../common/actors/checkosrelease/libraries/checkosrelease.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py b/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py +index e57ba1a7..bbc6b5ae 100644 +--- a/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py ++++ b/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py +@@ -4,6 +4,7 @@ from leapp import reporting + from leapp.libraries.common.config import version + + COMMON_REPORT_TAGS = [reporting.Groups.SANITY] ++FMT_LIST_SEPARATOR = '\n - ' + + related = [reporting.RelatedResource('file', '/etc/os-release')] + +@@ -34,8 +35,8 @@ def check_os_version(): + 'The installed OS version is not supported for the in-place upgrade to the target RHEL version' + ), + reporting.Summary( +- 'The supported OS releases for the upgrade process:\n' +- ' {}'.format('\n'.join(supported_releases)) ++ 'The supported OS releases for the upgrade process:' ++ '{}{}'.format(FMT_LIST_SEPARATOR, FMT_LIST_SEPARATOR.join(supported_releases)) + ), + reporting.Severity(reporting.Severity.HIGH), + reporting.Groups(COMMON_REPORT_TAGS), +-- +2.44.0 + diff --git a/0042-report-which-OS-release-was-detected-as-unsupported.patch b/0042-report-which-OS-release-was-detected-as-unsupported.patch new file mode 100644 index 0000000..f54644e --- /dev/null +++ b/0042-report-which-OS-release-was-detected-as-unsupported.patch @@ -0,0 +1,47 @@ +From 8ad024515ed4b9e3df05157c67938d700eee5fa8 Mon Sep 17 00:00:00 2001 +From: Evgeni Golov +Date: Thu, 16 May 2024 11:54:17 +0200 +Subject: [PATCH 42/49] report which OS release was detected as unsupported + +--- + .../common/actors/checkosrelease/libraries/checkosrelease.py | 5 ++++- + .../actors/checkosrelease/tests/test_checkosrelease.py | 1 + + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py b/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py +index bbc6b5ae..1ee6e6ab 100644 +--- a/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py ++++ b/repos/system_upgrade/common/actors/checkosrelease/libraries/checkosrelease.py +@@ -30,13 +30,16 @@ def check_os_version(): + for rel in version.SUPPORTED_VERSIONS: + for ver in version.SUPPORTED_VERSIONS[rel]: + supported_releases.append(rel.upper() + ' ' + ver) ++ current_release = ' '.join(version.current_version()).upper() + reporting.create_report([ + reporting.Title( + 'The installed OS version is not supported for the in-place upgrade to the target RHEL version' + ), + reporting.Summary( + 'The supported OS releases for the upgrade process:' +- '{}{}'.format(FMT_LIST_SEPARATOR, FMT_LIST_SEPARATOR.join(supported_releases)) ++ '{}{}\n\nThe detected OS release is: {}'.format(FMT_LIST_SEPARATOR, ++ FMT_LIST_SEPARATOR.join(supported_releases), ++ current_release) + ), + reporting.Severity(reporting.Severity.HIGH), + reporting.Groups(COMMON_REPORT_TAGS), +diff --git a/repos/system_upgrade/common/actors/checkosrelease/tests/test_checkosrelease.py b/repos/system_upgrade/common/actors/checkosrelease/tests/test_checkosrelease.py +index 99d19832..aa0fd636 100644 +--- a/repos/system_upgrade/common/actors/checkosrelease/tests/test_checkosrelease.py ++++ b/repos/system_upgrade/common/actors/checkosrelease/tests/test_checkosrelease.py +@@ -28,6 +28,7 @@ def test_no_skip_check(monkeypatch): + def test_not_supported_release(monkeypatch): + monkeypatch.setattr(version, "is_supported_version", lambda: False) + monkeypatch.setattr(version, "get_source_major_version", lambda: '7') ++ monkeypatch.setattr(version, "current_version", lambda: ('bad', '7')) + monkeypatch.setattr(reporting, "create_report", create_report_mocked()) + + checkosrelease.check_os_version() +-- +2.44.0 + diff --git a/0043-Fix-typo-in-.packit.yaml.patch b/0043-Fix-typo-in-.packit.yaml.patch new file mode 100644 index 0000000..f6ca7a3 --- /dev/null +++ b/0043-Fix-typo-in-.packit.yaml.patch @@ -0,0 +1,25 @@ +From 8c22562662078459abe3e0690d2f7a3120e62809 Mon Sep 17 00:00:00 2001 +From: Martin Kluson +Date: Mon, 20 May 2024 16:33:03 +0200 +Subject: [PATCH 43/49] Fix typo in .packit.yaml + +--- + .packit.yaml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.packit.yaml b/.packit.yaml +index ed6412dc..dc9b9431 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -292,7 +292,7 @@ jobs: + + + # ###################################################################### # +-# ############################## 8 TO 10 ############################### # ++# ############################## 8 TO 9 ################################ # + # ###################################################################### # + + # ###################################################################### # +-- +2.44.0 + diff --git a/0044-drop-unused-packager-field-from-distro-metadata.patch b/0044-drop-unused-packager-field-from-distro-metadata.patch new file mode 100644 index 0000000..8854b0c --- /dev/null +++ b/0044-drop-unused-packager-field-from-distro-metadata.patch @@ -0,0 +1,55 @@ +From a7893092361d93a34c57b3cb2f05cc4e1db418b9 Mon Sep 17 00:00:00 2001 +From: Evgeni Golov +Date: Thu, 16 May 2024 10:24:30 +0200 +Subject: [PATCH 44/49] drop unused packager field from distro metadata + +The actor was refactored to accept any `gpg-key` package, regardless of +the value in the packager field, but the data was never drop from the +JSON files. + +Fixes: 4968bec73947fb83aeb2d89fe7e919fba2ca2776 +--- + .../libraries/distributionsignedrpmscanner.py | 1 - + .../common/files/distro/centos/gpg-signatures.json | 3 +-- + .../common/files/distro/rhel/gpg-signatures.json | 3 +-- + 3 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py b/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py +index 0bc71bfa..7898453b 100644 +--- a/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py ++++ b/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py +@@ -16,7 +16,6 @@ def get_distribution_data(distribution): + with open(distribution_config) as distro_config_file: + distro_config_json = json.load(distro_config_file) + distro_keys = distro_config_json.get('keys', []) +- # distro_packager = distro_config_json.get('packager', 'not-available') + else: + raise StopActorExecutionError( + 'Cannot find distribution signature configuration.', +diff --git a/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json b/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json +index 30e329ee..cf7f819d 100644 +--- a/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json ++++ b/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json +@@ -3,6 +3,5 @@ + "24c6a8a7f4a80eb5", + "05b555b38483c65d", + "4eb84e71f2ee9d55" +- ], +- "packager": "CentOS" ++ ] + } +diff --git a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json +index eccf0106..64d9ed12 100644 +--- a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json ++++ b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json +@@ -5,6 +5,5 @@ + "938a80caf21541eb", + "fd372689897da07a", + "45689c882fa658e0" +- ], +- "packager": "Red Hat, Inc." ++ ] + } +-- +2.44.0 + diff --git a/0045-Add-environment-information-to-leappdb.patch b/0045-Add-environment-information-to-leappdb.patch new file mode 100644 index 0000000..6f5007a --- /dev/null +++ b/0045-Add-environment-information-to-leappdb.patch @@ -0,0 +1,39 @@ +From ae387bc31826e76c220f0b5fdd1f8fab4b36a5a3 Mon Sep 17 00:00:00 2001 +From: David Kubek +Date: Tue, 21 Nov 2023 13:54:41 +0100 +Subject: [PATCH 45/49] Add environment information to leappdb + +Related to changes extending the information stored in the leapp db. +After this comment, the command line arguments as well as the +environment variables modifying the leapp execution (env vars starting +with `LEAPP_`) will be stored in the database. + +Works on: OAMG-8402 +--- + commands/upgrade/util.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/commands/upgrade/util.py b/commands/upgrade/util.py +index 9eff0ad1..b20c316d 100644 +--- a/commands/upgrade/util.py ++++ b/commands/upgrade/util.py +@@ -3,6 +3,7 @@ import itertools + import json + import os + import shutil ++import sys + import tarfile + from datetime import datetime + +@@ -235,6 +236,8 @@ def prepare_configuration(args): + 'debug': os.getenv('LEAPP_DEBUG', '0'), + 'verbose': os.getenv('LEAPP_VERBOSE', '0'), + 'whitelist_experimental': args.whitelist_experimental or (), ++ 'environment': {env: os.getenv(env) for env in os.environ if env.startswith('LEAPP_')}, ++ 'cmd': sys.argv, + } + return configuration + +-- +2.44.0 + diff --git a/0046-chore-deps-update-actions-github-script-action-to-v7.patch b/0046-chore-deps-update-actions-github-script-action-to-v7.patch new file mode 100644 index 0000000..5659616 --- /dev/null +++ b/0046-chore-deps-update-actions-github-script-action-to-v7.patch @@ -0,0 +1,34 @@ +From 3173d1a43eaf7d5353cd3cc753c4ba904a6f50d1 Mon Sep 17 00:00:00 2001 +From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> +Date: Fri, 10 May 2024 05:33:51 +0000 +Subject: [PATCH 46/49] chore(deps): update actions/github-script action to v7 + +--- + .github/workflows/reuse-copr-build.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml +index 6bf71226..3cf06254 100644 +--- a/.github/workflows/reuse-copr-build.yml ++++ b/.github/workflows/reuse-copr-build.yml +@@ -78,7 +78,7 @@ jobs: + - name: Add comment with copr build url + # TODO: Create comment when copr build fails. + id: link_copr +- uses: actions/github-script@v4 ++ uses: actions/github-script@v7 + with: + script: | + github.issues.createComment({ +@@ -145,7 +145,7 @@ jobs: + # TODO: Create comment when copr build fails. + id: link_copr_leapp + if: ${{ steps.leapp_pr_regex_match.outputs.match != '' }} +- uses: actions/github-script@v4 ++ uses: actions/github-script@v7 + with: + script: | + github.issues.createComment({ +-- +2.44.0 + diff --git a/0047-fix-some-typos-spotted-by-codespell.patch b/0047-fix-some-typos-spotted-by-codespell.patch new file mode 100644 index 0000000..477158f --- /dev/null +++ b/0047-fix-some-typos-spotted-by-codespell.patch @@ -0,0 +1,69 @@ +From 1fab8273744b3dba9c2acf927e6b87417d25f77b Mon Sep 17 00:00:00 2001 +From: Evgeni Golov +Date: Mon, 27 May 2024 11:51:43 +0200 +Subject: [PATCH 47/49] fix some typos spotted by codespell + +also add `zeor` to the ignore list as that's part of an email address at +`zeor.simegen.com` +--- + .github/workflows/codespell.yml | 2 +- + .../common/actors/selinux/selinuxapplycustom/actor.py | 2 +- + repos/system_upgrade/common/libraries/overlaygen.py | 2 +- + .../checkcustomnetworkscripts/libraries/customnetworkscripts.py | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index c0ec20d6..002d3774 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -17,7 +17,7 @@ jobs: + - uses: actions/checkout@v4 + - uses: codespell-project/actions-codespell@master + with: +- ignore_words_list: ro,fo,couldn,repositor ++ ignore_words_list: ro,fo,couldn,repositor,zeor + skip: "./repos/system_upgrade/common/actors/storagescanner/tests/files/mounts,\ + ./repos/system_upgrade/el7toel8/actors/networkmanagerreadconfig/tests/files/nm_cfg_file_error,\ + ./repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-intel,\ +diff --git a/repos/system_upgrade/common/actors/selinux/selinuxapplycustom/actor.py b/repos/system_upgrade/common/actors/selinux/selinuxapplycustom/actor.py +index b7f8376f..55c64c3e 100644 +--- a/repos/system_upgrade/common/actors/selinux/selinuxapplycustom/actor.py ++++ b/repos/system_upgrade/common/actors/selinux/selinuxapplycustom/actor.py +@@ -26,7 +26,7 @@ class SELinuxApplyCustom(Actor): + tags = (ApplicationsPhaseTag, IPUWorkflowTag) + + def process(self): +- # save progress for repoting purposes ++ # save progress for reporting purposes + failed_modules = [] + failed_custom = [] + +diff --git a/repos/system_upgrade/common/libraries/overlaygen.py b/repos/system_upgrade/common/libraries/overlaygen.py +index 4bcbf32b..1132cde1 100644 +--- a/repos/system_upgrade/common/libraries/overlaygen.py ++++ b/repos/system_upgrade/common/libraries/overlaygen.py +@@ -274,7 +274,7 @@ def _prepare_required_mounts(scratch_dir, mounts_dir, storage_info, scratch_rese + space_needed = scratch_reserve + _MAGICAL_CONSTANT_OVL_SIZE * len(mount_points) + _ensure_enough_diskimage_space(space_needed, scratch_dir) + +- # free space required on this partition should not be affected by durin the ++ # free space required on this partition should not be affected by during the + # upgrade transaction execution by space consumed on creation of disk images + # as disk images are cleaned in the end of this functions, + # but we want to reserve some space in advance. +diff --git a/repos/system_upgrade/el8toel9/actors/checkcustomnetworkscripts/libraries/customnetworkscripts.py b/repos/system_upgrade/el8toel9/actors/checkcustomnetworkscripts/libraries/customnetworkscripts.py +index c3a6ffd1..2947aa27 100644 +--- a/repos/system_upgrade/el8toel9/actors/checkcustomnetworkscripts/libraries/customnetworkscripts.py ++++ b/repos/system_upgrade/el8toel9/actors/checkcustomnetworkscripts/libraries/customnetworkscripts.py +@@ -28,7 +28,7 @@ def generate_report(existing_custom_network_scripts): + reporting.Remediation( + hint=( + "Migrate the custom network-scripts to NetworkManager dispatcher" +- " scripts manually before the ugprade. Follow instructions in the" ++ " scripts manually before the upgrade. Follow instructions in the" + " official documentation." + ) + ), +-- +2.44.0 + diff --git a/0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch b/0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch new file mode 100644 index 0000000..ef4e1a7 --- /dev/null +++ b/0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch @@ -0,0 +1,47 @@ +From 8b1fd71d209f37005d7858768d211ee1cb07a30c Mon Sep 17 00:00:00 2001 +From: Evgeni Golov +Date: Mon, 27 May 2024 12:49:04 +0200 +Subject: [PATCH 48/49] BZ#2283067 - don't remove Tomcat during Satellite 7to8 + upgrade + +This was previously added to workaround issues with the packages in RHEL +8.8/8.9, but now that 8.10 is released it's not required anymore and +actually breaks the upgrade. +--- + .../actors/satellite_upgrade_facts/actor.py | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py +index 3cd9d9da..cfba0503 100644 +--- a/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py ++++ b/repos/system_upgrade/el7toel8/actors/satellite_upgrade_facts/actor.py +@@ -1,7 +1,7 @@ + import os + + from leapp.actors import Actor +-from leapp.libraries.common.config import architecture ++from leapp.libraries.common.config import architecture, version + from leapp.libraries.common.rpms import has_package + from leapp.libraries.stdlib import run + from leapp.models import ( +@@ -55,11 +55,12 @@ class SatelliteUpgradeFacts(Actor): + # enable modules that are needed for Pulpcore + modules_to_enable.append(Module(name='python38', stream='3.8')) + to_install.append('katello') +- # Force removal of tomcat +- # PES data indicates tomcat.el7 can be upgraded to tomcat.el8 since EL 8.8, +- # but we need pki-servlet-engine from the module instead which will be pulled in via normal +- # package dependencies +- to_remove.extend(['tomcat', 'tomcat-lib']) ++ if version.matches_target_version('8.8', '8.9'): ++ # Force removal of tomcat ++ # PES data indicates tomcat.el7 can be upgraded to tomcat.el8 since EL 8.8, ++ # but we need pki-servlet-engine from the module instead which will be pulled in via normal ++ # package dependencies ++ to_remove.extend(['tomcat', 'tomcat-lib']) + + if has_package(InstalledRPM, 'rh-redis5-redis'): + modules_to_enable.append(Module(name='redis', stream='5')) +-- +2.44.0 + diff --git a/0049-Add-product-certs-and-target-for-9.5.patch b/0049-Add-product-certs-and-target-for-9.5.patch new file mode 100644 index 0000000..14ea612 --- /dev/null +++ b/0049-Add-product-certs-and-target-for-9.5.patch @@ -0,0 +1,373 @@ +From 061504d4b7748e11a8d6258021b6ac9d281cc63c Mon Sep 17 00:00:00 2001 +From: Matej Matuska +Date: Tue, 28 May 2024 14:23:44 +0200 +Subject: [PATCH 49/49] Add product certs and target for 9.5 + +--- + .../common/files/prod-certs/9.5/279.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/362.pem | 36 +++++++++++++++++++ + .../common/files/prod-certs/9.5/363.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/419.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/433.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/479.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/486.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.5/72.pem | 35 ++++++++++++++++++ + .../common/files/upgrade_paths.json | 4 +-- + 9 files changed, 283 insertions(+), 2 deletions(-) + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/279.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/362.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/363.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/419.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/433.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/479.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/486.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.5/72.pem + +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/279.pem b/repos/system_upgrade/common/files/prod-certs/9.5/279.pem +new file mode 100644 +index 00000000..2257a543 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/279.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJTCCBA2gAwIBAgIJALDxRLt/tVPfMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1MzAyMFoXDTQ0MDEx ++NjE1MzAyMFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs1OWY4YmIz ++My0wZjU2LTQ2N2UtYTE1ZC1hZmQxMjUzMTYzN2NdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBrjCBqzAJBgNVHRMEAjAAMEMGDCsGAQQBkggJAYIXAQQzDDFSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuMBUGDCsG ++AQQBkggJAYIXAgQFDAM5LjUwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM ++KwYBBAGSCAkBghcEBBcMFXJoZWwtOSxyaGVsLTktcHBjNjRsZTANBgkqhkiG9w0B ++AQsFAAOCAgEAii9ffFWGZCeIaaI6EXmBK6s4uCryT72DsqL9xPUj6J1lm/9Xf4Nq ++h0I+4zEEaPqI4XzUmw+LuVLpZAC79daKRiZRRPoIrR74Ca0KfvCPY72ZCIXYUmHZ ++wgjrw4q6ZUSz4wYxPv/A8Q02oWlkHF7s7r8JNrq4B6IvOfdLFeVQGXtNtf7EIrH0 ++YKV/RRIPMKPEuc14EhmK8z9+lpySmZ7+4/cZh1DIqFjd6XGo7UeuON7atqEsHZ8e ++PHlgw0Rl/HtCHBEHquZtuMoIF5f1C/qXGgMfIHzbHnCa42k7Vjx2/+UKxsmYmDRp ++RGfBoZJL5DHla7+JOhmN70rTuKnwhPmP3b80Ax18uvrYPgzGxhb0jd7XvlZl+bSD ++7aVhq/XK9rFjN9hf3wVwg01nIHIxMZPXZ1Eml/Af7ZzttcIxuOWTh1/TFw8XSUx/ ++kS8Z0tJpH+AiTCr93JLuh88ryKK5jZ5gGSWMOIpoSWE0wqTgODGcYAAeJJ034ogb ++pbsPihjhxACkQhky+F1KJH2HE9pIKxaJNnCGWn1StX8DA9sngVSGl4YmLlZfEyUz ++K2nJeUB9DPbtyHZHXw4N6Ep17CjUPZIY2jQSMBNkhAOpkIgvtVEMYQtXu6OVLbnu ++O2sGXqV3LBUg3L00WxR9QAIG/n54z5afF3mxl3zJEcZoUwp4OHxkn84= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/362.pem b/repos/system_upgrade/common/files/prod-certs/9.5/362.pem +new file mode 100644 +index 00000000..aa60c216 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/362.pem +@@ -0,0 +1,36 @@ ++-----BEGIN CERTIFICATE----- ++MIIGNDCCBBygAwIBAgIJALDxRLt/tVPJMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1Mjk1OVoXDTQ0MDEx ++NjE1Mjk1OVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4OTA1ZDA0 ++MC04ZGY5LTQ3ZjAtODdhZi0yZDE1ZTYwNzgxZjVdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBvTCBujAJBgNVHRMEAjAAMEgGDCsGAQQBkggJAYJqAQQ4DDZSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuIEJldGEw ++GgYMKwYBBAGSCAkBgmoCBAoMCDkuNSBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw ++cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTkscmhlbC05LWJldGEtcHBj ++NjRsZTANBgkqhkiG9w0BAQsFAAOCAgEAgx5sfDsgXS0GiE9tBa2VUDDcQ82EgPdV ++vR8SUcrhuYv0c0XtKcYw3qwm03QRHLu8zv3f9HMT2SLQGqIPVYAjIk6IR2n9jsIW ++ssbgpkZPaypgRadgS0abapCOSDFh+67FmV3YJR9kHQSrTwMLhqGphidapfN9Si4i ++THn6sc9sy/iyXP8FDgqXehPutoWCvMA1kf6ek50v3121P860XPhhMHXQsLB6y+GV ++G3fy2QAezSpJTA0PwrIWz+ZZiZ9oH5Fpvo2hMGnPclgfsN9/Ge13IE39vBgmznum ++mlkwtArIYajjYDk4ADXFWmhY04zMBldLrR6PIrBNxRZv0a1hazcEP1LJPu2YLWgW ++eV9/FNnzUySfL0a+hkTQvDfs2Ojeb72fDvaDXMzJoT8vdjlAilVsgU98JRXEg2Wq ++5NYlLmkFpJGEvlejqGH8H73R7nFgu5aYeHetScXZmKW7itTiJoECxqX0Yqr/NQLa ++9fSsuRxs0TQUVVKlMoAVokstvrW4v8rtxIU9UqfktOUs3U/kq0GCFwASSwdeGPW4 ++oWfeLK2W9TEICSoW6P38+/vNqXTe7N9x7M6wyfc8HrGM0uYiZrPSodID6yvkJtBv ++wqS9vw9mlczrBF2m55o1dehZbWuncj6CO0Jc/xC8HqpnP8BLNb7/TyPyQrISeQjN ++2LqCFq1dAdQ= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/363.pem b/repos/system_upgrade/common/files/prod-certs/9.5/363.pem +new file mode 100644 +index 00000000..8c15335b +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/363.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJjCCBA6gAwIBAgIJALDxRLt/tVPIMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1Mjk1OFoXDTQ0MDEx ++NjE1Mjk1OFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtkNWEyNjZi ++MC0zMzUwLTQxYTMtYmRmZC1kZmIyNmJmZDdmMDFdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBrzCBrDAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYJrAQQqDChSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NCBCZXRhMBoGDCsGAQQBkggJAYJr ++AgQKDAg5LjUgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE ++AZIICQGCawQEHAwacmhlbC05LHJoZWwtOS1iZXRhLWFhcmNoNjQwDQYJKoZIhvcN ++AQELBQADggIBAM+fiLd/oETC0reNeAtlG0W+FcBdMm3Bl78L7X6Yj4cFLNjfk0PO ++1E8EVGUjw+nx9ZwPlxAdP15Sh90oPztwRgQB2SwyBugYvvQAVY/0VsGvcsq8VyHD ++IDd/mcPMjtFf+ZUqwhy3l1pbxXFiV+sMQtpltdboM5uIVEhZ6+C9hCAawHrQRcOM ++z9usjgqzxjA2jcg0QX0A0ICKmbL4r9dwnX/Wpjo1P7CJUn5gNmJcoMcVYnUmFZ3I ++oVlf+cLOWoex6BzK/QHr+UV+jnPj0d8EmS5vXgzE8Afj31iPn33JavOtsUfdr1hK ++rrdJcHGbKj/lukUIzWBbxr/snq3iC2/hn0AW57GUCpbu9eeNH2pP7G5dNPXK0CpQ ++/ThqyYdvht9HV89YqtLT+bUNjjAe8xhFCSkyBtheOBtG4zR3ctJvRCAb7kmqhTeo ++DzDNcuf0vhWV5m2g4VQ0hbUnJCt1c0eLyF7aFA6oi8xMH7CaIrwrcoO7XbQCdtW6 ++uHuxNo8QQHgql6VQdNhlZpXjR/4F66WYzprs1+TITZqGXkZk1NTCjCGtWJBp/In+ ++HaDSbe+w4eZ/g6OaLyTOw3X7nPz+2j/2eJnNG9FpZt7mhiSfKwgQpTB7sCkiLg+C ++YEKJL0NUBfag6Ahkjqdh/Ptldm8H+hjwzrMX0JtsyD/tJpVMb7LlkGi7 ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/419.pem b/repos/system_upgrade/common/files/prod-certs/9.5/419.pem +new file mode 100644 +index 00000000..3dd6f54b +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/419.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFzCCA/+gAwIBAgIJALDxRLt/tVPeMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1MzAyMFoXDTQ0MDEx ++NjE1MzAyMFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs1Yjk4YWE3 ++Mi1jODQ4LTQ3M2UtOGQ2Ni1lMGU1NzQ1OGYwMDddMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBoDCBnTAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYMjAQQlDCNSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NDAVBgwrBgEEAZIICQGDIwIEBQwD ++OS41MBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX ++DBVyaGVsLTkscmhlbC05LWFhcmNoNjQwDQYJKoZIhvcNAQELBQADggIBAL680KfM ++f4EeH2dvDkjsgTcRbSvkp08PUG671wLnVfIK0Ay9aLvExwoZK6a0hc1U3eLOrrlT ++Kq6MTNhpkeE7RLtGaBMZMNICGrC+Gh1r0uR0a59xAjWly5QodQ05znSjXbdaGkBU ++8vxtGm+ho9dJguEOn1d0Y8racomdK84+mivtLyc6pK3712nHTYmwQX/gzQ3dM/hm ++gB+btQo+crObv2OfjUiN+W5k2eX+DRPsgu9bIpXQaHY4l+CvoZR3/Ww7Xzut4CQE ++aAOpDbv/xAWPkWJ4CdSJp8jN6xGN05Grfw6xeBsTY+XFuoWlW4/9RsY3Qd8tjhTl ++wsIUGOUxxuDDjKq4MoEvbm+w/B0rZHOcMbE0sPi0YFRsRB5/REYJZ0fnOOikEZOw ++GC7EA38HITdkugveWL/NRkwg0AvNNt7ILNYXLVbskTBqw7QnWTy/vgxb/a2lyQuQ ++E+j/NfINlDMXbitb5Nymg45Yl3XDkmeuEQKY2TUKdWype6NRDfJpHBNeeWNWZxrG ++8u+/biqhXbYODlHp1VYRItz7BbTf+YCz7wFnCXBJA7gNPJDCwirIvJm9B15A3Hu3 ++0gd0f0TciKQH1PPnKZicxsEGI9C1sf5LRv+QuVGRvWDnF4GeS5r6OnCz06hndwyj ++cuuGz2+UpjGvrPb9BtkDK2vUML0yaqj+pY7i ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/433.pem b/repos/system_upgrade/common/files/prod-certs/9.5/433.pem +new file mode 100644 +index 00000000..de388174 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/433.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGKTCCBBGgAwIBAgIJALDxRLt/tVPKMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1Mjk1OVoXDTQ0MDEx ++NjE1Mjk1OVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtmNjQ4ZjZk ++ZC0xZDhjLTQ2ZWYtOTZjYy02NWQ4NzA1MTNlMmFdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBsjCBrzAJBgNVHRMEAjAAMEEGDCsGAQQBkggJAYMxAQQxDC9SZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIElCTSB6IFN5c3RlbXMgQmV0YTAaBgwrBgEE ++AZIICQGDMQIECgwIOS41IEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG ++DCsGAQQBkggJAYMxBAQaDBhyaGVsLTkscmhlbC05LWJldGEtczM5MHgwDQYJKoZI ++hvcNAQELBQADggIBAIdymcUPQMVEtwFpOCTyUArt1qx5pzoHmQvsGEBaGbeyiXmQ ++4/5Nv5YgTyefrDR/uyu3ubg8BSTV8zgqqISpq3bVz2qWHTD024IqszhIvXYihHjR ++aqzhgfbd7u+OfkZGa5WqFKFCNgQ93UBmp6g2dkR1gaF63kI9aal6fhNV6wBJitND ++WXb+lGykB/i3X+HFuhXFYcFWCDvVNEpf3pyWLbXLDXsdP8+nkLFKGNnBwxRdARx8 ++sPz3HxStVBnf1mdhp+uGz8j14a5/psjhaqB4Vf9pCuOVLb6d+XdxJhVBTtD7C01a ++Yp/e6He7tcEFHV7YU6qFN49kGk2eDBrMrE8svQ/StSJwHXarquq0z3QKjf4amLz5 ++DUvy0H0dxWUiYiiBx7mD68f5ng/lrsTl91frhQHRo5yLKrG9NQhfWe8wW8dVI8un ++kzfesD5aDImYz0ClQAYROjzBXnMTJlVwGklSa3mrF7r8mKwsWmfvx2W8wGEF/Y27 ++BpYOVLvP22lhbuNZuSxnsTEAF5tzLcRI/nwox0Xsjb0ieS5J/7+0CGe24DpmQI0b ++Dg0sSQhVzhYQkW6fwsTxZa+U2L7UcT/hojUMwji5t2n150LWcadcrtjTNnA7KJpu ++8DGVW89eCmtJI9dEoQzG49GzOQ8iCmfsxWp3Epsbv8wCXtj9pvLmU7ioizSp ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/479.pem b/repos/system_upgrade/common/files/prod-certs/9.5/479.pem +new file mode 100644 +index 00000000..3352d4a8 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/479.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFTCCA/2gAwIBAgIJALDxRLt/tVPhMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1MzAyMVoXDTQ0MDEx ++NjE1MzAyMVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFszYWQ2NDlj ++NS1jOTNjLTQ2NjItYWIxMy1iNzE4ODNmNWVmNzJdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBnjCBmzAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD ++OS41MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM ++FHJoZWwtOSxyaGVsLTkteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQBwU1eipuYq ++/N0j9MiytX8Lvm/+xwPsg+/vpG1o2ro1Dts9U1xZDFt/Fg8+9wnApOMO2reS2aEG ++f/ZJX+R/xWdlhlQTE9z5QTk3k3b7H79b8xWfJcbQU1ZwlaSrIba4FgmHx2h2PN3r ++GNpswVsdXyCjfitBWG/uQlWi2RKDU+B5zD+8HBC3io9qPLYRybTGjfmQ/GlEINxA ++NtnkoE+rDLGSMZNlUpmpjccK8nCLgf70csRloen8MbRH4j4kkVfmjHn75lLk0epb ++zojsGHBRGvtwZzS3X7M03OB+uDoNGUKcD5RUq4zo2Rnlu9Xh0rhvG6wF9KeU2q30 ++hMR6eXJ4blMhpmCBWhvIAqVm68zUnWxPPFWa1hZzECaVuarGd0ncgrm21NiT+mE2 ++ZkrNBBmmZ7Hckv5QP83ynOXr4SkNEf/50rmPhcWaAD3MZr3mgOK5sg0E/diBbVmz ++ZNw1jJ59HvNvKlxeqJqsFW4MkCDBccVPGDna3P4NXSXW5RYGgF0txNfQZc1briuz ++bO+U3NAQocEdqUwflId5v97g0YElVliPdsM8b8xixrCCZT1pOXU46UXBP8+Nri70 ++apME6luow+D4f4ZWqMWg3KJV3FmlYPmn04WMo6EvFv5hvmlu5n6OheBqyzv/Zc1I ++SVE+LwwzANJjNHA8PejmIqLbqzqHYrFbHg== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/486.pem b/repos/system_upgrade/common/files/prod-certs/9.5/486.pem +new file mode 100644 +index 00000000..a0c7c085 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/486.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJDCCBAygAwIBAgIJALDxRLt/tVPLMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1Mjk1OVoXDTQ0MDEx ++NjE1Mjk1OVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtiYjI5ZDU3 ++NC0yNDM5LTRmYTktOWI2Zi1lOWE1NzVkZDU0ZGJdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBrTCBqjAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYNmAQQqDChSZWQgSGF0 ++IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NCBCZXRhMBoGDCsGAQQBkggJAYNm ++AgQKDAg5LjUgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB ++kggJAYNmBAQbDBlyaGVsLTkscmhlbC05LWJldGEteDg2XzY0MA0GCSqGSIb3DQEB ++CwUAA4ICAQC26JzDoY4bAGS+1o4L9vWLAk8zeaFWRCzXmTnEEQk6jyIP+I1lS0rH ++8QWMu8bnnqeSOkb6qhSuiffwvd2TiYtapMf4rZ6vXQ+zTzuAO9/wRAVsQt2ElBf0 ++dU0Ghym9Xz/oUWP8TxZNjYuk/uRRTH9y/fVQWJ2PCP7BT3m3arMhpkyB9sNgoQDS ++Yjb/d5wHgFyIW0ZOjJrM/ThR4xj8wXWFmjidDGXbn8V0Md8NUTo2QDZuoGwH4UKA ++RlF1hjnw2uSr81RvXdWhXeG1XNjW0mJerR2v1T9dCK/QOtYJLIFX8opG05axeJ6y ++FHwbuPi9uCvL2WlWXlfsofgVax9LUPWsN0pwL3B38h2m29nWjRi8g8ob10yGmapA ++ksLACBur0QXKVUGfU0gI5Kd1CpKQMRHXXW3D+i77mfKJF+uLcle4tF2mzxuXmuxn ++3WD+2mmjVWnn5Hx/6A8nELdD5oD4qRN4fydUp2r7UDpVZLqggzvwydhoR1eJvm1K ++1ompaqRTXG5rwpEkqIz1gyJZqTt/35G8XXgwIr6gYSJzcQfFnt6VqYI/tdSu7tAh +++qN6v3nBrASsHjIMO3qldwk3BTPfzTorzDrDi7240B2JLqdd+SeqkAcANDPcWIeZ ++p/JQSedJCYKf0UZ7ry+sJmjhdWLi5ooLq7RPUbXd7kdLCqj2Y8llNg== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.5/72.pem b/repos/system_upgrade/common/files/prod-certs/9.5/72.pem +new file mode 100644 +index 00000000..38c94ef7 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.5/72.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFjCCA/6gAwIBAgIJALDxRLt/tVPgMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDExNjE1MzAyMVoXDTQ0MDEx ++NjE1MzAyMVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs3NTNmOWU4 ++ZS00ZDdhLTRiZjAtOTgzMi1mYjUzOTFiNWJjNmZdMIICIjANBgkqhkiG9w0BAQEF ++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk ++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x ++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB ++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I ++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa ++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo ++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI ++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl ++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v ++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ ++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C ++AwEAAaOBnzCBnDAJBgNVHRMEAjAAMDsGCysGAQQBkggJAUgBBCwMKlJlZCBIYXQg ++RW50ZXJwcmlzZSBMaW51eCBmb3IgSUJNIHogU3lzdGVtczAUBgsrBgEEAZIICQFI ++AgQFDAM5LjUwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE ++FQwTcmhlbC05LHJoZWwtOS1zMzkweDANBgkqhkiG9w0BAQsFAAOCAgEAu5Ud+Lr+ ++ymSvv1ZmDgjZmECL254g+TJ9mqYKpZNELZJwUHbfiFETGD1k6nK6NwHIFJae0CIb ++LbeQ3bIYdbO5/RgcCIL8QUIiksYi7XzfsnJGegMOiYImoqNunQH2YTD3PRHAPy1k ++cji1k0VLISCh/4Qh8m6fT1W/fb1B2+y+Rfkzob4LewdwhfvXkh6uTEj/XKK5itiX ++GdHkahr/eE7ooQM9gty7vOX4hXRsVDgf/zjqko+2wCcO6peh6uqU8e9dZ2oqchMy ++pJlGaGMQ+I0x8XJ2dlt61mHYTgrbjcvXMEN/Kus0LFAp2mxvlhSStFkwvXfZBqTa ++e+qnKDdNLgQcxdlK7p6mwz37XjfPdpMsh4SC4o/e+HVSb5L84nn9SSDp5l+gsNXf ++4XpV+v/dYSS/cB5x4kjcACACPWSobpJc7FJ/NXCp1L0V/mvrQijSQoX9TqzJtgbv ++btKHUTrwgLpvQMEjfv8ZvNGhCCAl/IM02ACTg+GG2oNTwJKc1ogXFfP5WYVW9vEZ ++yYDQbT9mtjfiyqI/nJXvfBbnqxUHgD3lcKs8PpnE0khIkYHoAjs+c7PFfntE08Sa ++UdS/tVQ3Swwu2WczaDiVSwqfssWisHGjkIG6Fv5kmM3PNFCPpNCYnabMs+maaeyV ++jd/FZrkWz+0TLseJ8xeo0MajgW4IjRqBxwg= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/upgrade_paths.json b/repos/system_upgrade/common/files/upgrade_paths.json +index 880595c0..43bd049a 100644 +--- a/repos/system_upgrade/common/files/upgrade_paths.json ++++ b/repos/system_upgrade/common/files/upgrade_paths.json +@@ -2,9 +2,9 @@ + "default": { + "7.9": ["8.8", "8.10"], + "8.8": ["9.2"], +- "8.10": ["9.4"], ++ "8.10": ["9.4", "9.5"], + "7": ["8.8", "8.10"], +- "8": ["9.2", "9.4"] ++ "8": ["9.2", "9.4", "9.5"] + }, + "saphana": { + "7.9": ["8.10", "8.8"], +-- +2.44.0 + diff --git a/leapp-repository.spec b/leapp-repository.spec index 9fc7efa..e90c88a 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -42,7 +42,7 @@ py2_byte_compile "%1" "%2"} Name: leapp-repository Version: 0.20.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Repositories for leapp License: ASL 2.0 @@ -90,6 +90,22 @@ Patch0031: 0031-mount-usr-Implement-try-sleep-loop-add-time-for-stor.patch Patch0032: 0032-Add-additional-KB-resources.patch Patch0033: 0033-storage-initialisation-apply-sleep-always.patch Patch0034: 0034-Add-renovate-to-track-github-actions-deps.patch +Patch0035: 0035-chore-deps-update-redhat-plumbers-in-action-differen.patch +Patch0036: 0036-chore-deps-update-actions-checkout-action-to-v4.patch +Patch0037: 0037-chore-deps-update-dependency-ubuntu-to-v22.patch +Patch0038: 0038-Fix-E0606-errors-reported-by-pylint.patch +Patch0039: 0039-Fix-W0135-reported-by-pylint.patch +Patch0040: 0040-chore-deps-update-peter-evans-create-or-update-comme.patch +Patch0041: 0041-properly-indent-the-list-of-supported-OSes.patch +Patch0042: 0042-report-which-OS-release-was-detected-as-unsupported.patch +Patch0043: 0043-Fix-typo-in-.packit.yaml.patch +Patch0044: 0044-drop-unused-packager-field-from-distro-metadata.patch +Patch0045: 0045-Add-environment-information-to-leappdb.patch +Patch0046: 0046-chore-deps-update-actions-github-script-action-to-v7.patch +Patch0047: 0047-fix-some-typos-spotted-by-codespell.patch +Patch0048: 0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch +Patch0049: 0049-Add-product-certs-and-target-for-9.5.patch + %description %{summary} @@ -275,6 +291,21 @@ Requires: python3-gobject-base %patch0032 -p1 %patch0033 -p1 %patch0034 -p1 +%patch0035 -p1 +%patch0036 -p1 +%patch0037 -p1 +%patch0038 -p1 +%patch0039 -p1 +%patch0040 -p1 +%patch0041 -p1 +%patch0042 -p1 +%patch0043 -p1 +%patch0044 -p1 +%patch0045 -p1 +%patch0046 -p1 +%patch0047 -p1 +%patch0048 -p1 +%patch0049 -p1 %build @@ -352,6 +383,12 @@ done; # no files here %changelog +* Thu May 30 2024 Petr Stodulka - 0.20.0-4 +- Enable new upgrade path RHEL 8.10 -> 9.5 +- Minor updates in reports +- Add information about leapp invocation to leapp.db +- Resolves: RHEL-27847 + * Mon May 13 2024 Toshio Kuratomi - 0.20.0-3 - Do not terminate the upgrade dracut module execution if /sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists