diff --git a/0001-Add-leapp-pkgs-rpm-verification-into-the-breadcrumbs.patch b/0001-Add-leapp-pkgs-rpm-verification-into-the-breadcrumbs.patch new file mode 100644 index 0000000..225888e --- /dev/null +++ b/0001-Add-leapp-pkgs-rpm-verification-into-the-breadcrumbs.patch @@ -0,0 +1,49 @@ +From 096c3a9545c2f98167d38b89d1115d9ae1031c87 Mon Sep 17 00:00:00 2001 +From: Michal Reznik +Date: Fri, 25 Mar 2022 18:17:50 +0100 +Subject: [PATCH 01/30] Add leapp pkgs rpm verification into the breadcrumbs + +--- + commands/upgrade/breadcrumbs.py | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/commands/upgrade/breadcrumbs.py b/commands/upgrade/breadcrumbs.py +index 9138965c..bfb91148 100644 +--- a/commands/upgrade/breadcrumbs.py ++++ b/commands/upgrade/breadcrumbs.py +@@ -41,6 +41,7 @@ class _BreadCrumbs(object): + self._crumbs = { + 'activity': activity, + 'packages': self._get_packages(), ++ 'leapp_file_changes': [], + 'executed': ' '.join([v if ' ' not in v else '"{}"'.format(v) for v in sys.argv]), + 'success': True, + 'activity_started': datetime.datetime.utcnow().isoformat() + 'Z', +@@ -86,6 +87,7 @@ class _BreadCrumbs(object): + + def save(self): + self._crumbs['run_id'] = os.environ.get('LEAPP_EXECUTION_ID', 'N/A') ++ self._crumbs['leapp_file_changes'].extend(self._verify_leapp_pkgs()) + messages = get_messages(('IPUConfig',), self._crumbs['run_id']) + versions = json.loads((messages or [{}])[0].get('message', {}).get( + 'data', '{}')).get('version', {'target': 'N/A', 'source': 'N/A'}) +@@ -124,6 +126,16 @@ class _BreadCrumbs(object): + for t in [line.strip().split(' ', 1) for line in res['stdout'].split('\n') if line.strip()]] + return [] + ++ def _verify_leapp_pkgs(self): ++ upg_path = os.environ.get('LEAPP_IPU_IN_PROGRESS').split('to') ++ cmd = ['/bin/bash', '-c', 'rpm -V leapp leapp-upgrade-el{}toel{}'.format(upg_path[0], upg_path[1])] ++ res = _call(cmd, lambda x, y: None, lambda x, y: None) ++ if res.get('exit_code', None) == 1: ++ if res.get('stdout', None): ++ return [{'result': t[0], 'file_name': t[1]} ++ for t in [line.strip().split(' ', 1) for line in res['stdout'].split('\n') if line.strip()]] ++ return [] ++ + + def produces_breadcrumbs(f): + """ +-- +2.40.1 + diff --git a/0002-Update-codespell-ignorelist-couldn-repositor.patch b/0002-Update-codespell-ignorelist-couldn-repositor.patch new file mode 100644 index 0000000..0b84037 --- /dev/null +++ b/0002-Update-codespell-ignorelist-couldn-repositor.patch @@ -0,0 +1,42 @@ +From 6aee6d7f3b6628f5161d5bf9795ab53d52fa1819 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Fri, 10 Mar 2023 13:34:41 +0100 +Subject: [PATCH 02/30] Update codespell ignorelist: couldn,repositor + +The new version of codespell contains additional "typos" for the +detection in the dictionary, which produces FP fails in tests +as typos are detected also in cases like: + couldn\'t + repositor{suffix} +etc. For now, we will just update the ignorelist, but in future +it would be ideal to not generate such cases. Doing differences +between singular/plural is not providing big benefit in report. +Escaping is not so problematic I would say, but in case of issues, +we could just switch to longer form - like "could not". +But there is no beenfit to update the existing code now, so let's +focus in future on better texts and keep the existing strings as +they are until they are reworded due to additional wanted changes +(I mean, if there is any additional reason in future to change them). + +FYI: + https://github.com/codespell-project/codespell/issues/2786 +--- + .github/workflows/codespell.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index e7532d98..681669ab 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -17,7 +17,7 @@ jobs: + - uses: actions/checkout@v3 + - uses: codespell-project/actions-codespell@master + with: +- ignore_words_list: ro,fo ++ ignore_words_list: ro,fo,couldn,repositor + 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/common/actors/scancpu/tests/files/lscpu_s390x" +-- +2.40.1 + diff --git a/0003-Fix-dead-link-in-checkipaserver-actor.patch b/0003-Fix-dead-link-in-checkipaserver-actor.patch new file mode 100644 index 0000000..4f1a32a --- /dev/null +++ b/0003-Fix-dead-link-in-checkipaserver-actor.patch @@ -0,0 +1,29 @@ +From bf3da8ef5007606bcd73b677a4524e30ab4a8dff Mon Sep 17 00:00:00 2001 +From: Andrea Waltlova +Date: Mon, 20 Mar 2023 18:35:49 +0100 +Subject: [PATCH 03/30] Fix dead link in checkipaserver actor + +--- + .../actors/checkipaserver/libraries/checkipaserver.py | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/checkipaserver/libraries/checkipaserver.py b/repos/system_upgrade/common/actors/checkipaserver/libraries/checkipaserver.py +index 41daff15..5ec36d06 100644 +--- a/repos/system_upgrade/common/actors/checkipaserver/libraries/checkipaserver.py ++++ b/repos/system_upgrade/common/actors/checkipaserver/libraries/checkipaserver.py +@@ -1,10 +1,8 @@ + from leapp import reporting + from leapp.libraries.common.config.version import get_source_major_version + +-MIGRATION_GUIDE_7 = ( +- "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux" +- "/8/html/installing_identity_management/migrate-7-to-8_migrating" +- ) ++MIGRATION_GUIDE_7 = "https://red.ht/IdM-upgrading-RHEL-7-to-RHEL-8" ++ + # TBD: update the doc url when migration guide 8->9 becomes available + MIGRATION_GUIDE_8 = "https://red.ht/IdM-upgrading-RHEL-8-to-RHEL-9" + MIGRATION_GUIDES = { +-- +2.40.1 + diff --git a/0004-checkhybridimage-Fix-the-produce-of-the-report.patch b/0004-checkhybridimage-Fix-the-produce-of-the-report.patch new file mode 100644 index 0000000..9e1f715 --- /dev/null +++ b/0004-checkhybridimage-Fix-the-produce-of-the-report.patch @@ -0,0 +1,38 @@ +From acf3346dd0c0b952194cf0c3ff6803e857165d1f Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Fri, 24 Mar 2023 13:56:07 +0100 +Subject: [PATCH 04/30] checkhybridimage: Fix the produce of the report + +The actor can produce the report, however the report is never +stored / accepted by the leapp framework as the Report has not been +set in the `produces` tuple. Fixing the actor. + +Signed-off-by: Petr Stodulka +--- + .../common/actors/cloud/checkhybridimage/actor.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/repos/system_upgrade/common/actors/cloud/checkhybridimage/actor.py b/repos/system_upgrade/common/actors/cloud/checkhybridimage/actor.py +index 47f5fdd8..3cd2d864 100644 +--- a/repos/system_upgrade/common/actors/cloud/checkhybridimage/actor.py ++++ b/repos/system_upgrade/common/actors/cloud/checkhybridimage/actor.py +@@ -1,6 +1,7 @@ + from leapp.actors import Actor + from leapp.libraries.actor.checkhybridimage import check_hybrid_image + from leapp.models import FirmwareFacts, HybridImage, InstalledRPM ++from leapp.reporting import Report + from leapp.tags import ChecksPhaseTag, IPUWorkflowTag + + +@@ -16,7 +17,7 @@ class CheckHybridImage(Actor): + + name = 'checkhybridimage' + consumes = (InstalledRPM, FirmwareFacts) +- produces = (HybridImage,) ++ produces = (HybridImage, Report) + tags = (ChecksPhaseTag, IPUWorkflowTag) + + def process(self): +-- +2.40.1 + diff --git a/0005-Upgrade-packit.yaml-config-to-have-integration-tests.patch b/0005-Upgrade-packit.yaml-config-to-have-integration-tests.patch new file mode 100644 index 0000000..c786aa2 --- /dev/null +++ b/0005-Upgrade-packit.yaml-config-to-have-integration-tests.patch @@ -0,0 +1,194 @@ +From d0b26dc60f11a59566564540395e11838a53e1b4 Mon Sep 17 00:00:00 2001 +From: Rodolfo Olivieri +Date: Tue, 21 Mar 2023 14:07:39 -0300 +Subject: [PATCH 05/30] Upgrade packit.yaml config to have integration tests + +This commit introduces the execution of leapp-repository integration tests as +a packit job. + +Signed-off-by: Rodolfo Olivieri +--- + .packit.yaml | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 170 insertions(+) + +diff --git a/.packit.yaml b/.packit.yaml +index f1d59ce1..96ed8901 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -84,3 +84,173 @@ jobs: + post-upstream-clone: + # builds from master branch should start with 100 release, to have high priority + - bash -c "sed -i \"s/1%{?dist}/100%{?dist}/g\" packaging/leapp-repository.spec" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/tmt-plans" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-7-x86_64: ++ distros: [RHEL-7.9-ZStream] ++ identifier: tests-7.9to8.6 ++ tmt_plan: "^(?!.*c2r)(?!.*sap)(?!.*8to9)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-7.9" ++ env: ++ SOURCE_RELEASE: "7.9" ++ TARGET_RELEASE: "8.6" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-7-x86_64: ++ distros: [RHEL-7.9-ZStream] ++ identifier: tests-7.9to8.8 ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*max_sst)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-7.9" ++ env: ++ SOURCE_RELEASE: "7.9" ++ TARGET_RELEASE: "8.8" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-7-x86_64: ++ distros: [RHEL-7.9-ZStream] ++ identifier: tests-7.9to8.8-sst ++ tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-7.9" ++ env: ++ SOURCE_RELEASE: "7.9" ++ TARGET_RELEASE: "8.8" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-7-x86_64: ++ distros: [RHEL-7.9-rhui] ++ identifier: tests-7to8-aws-e2e ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-7.9" ++ env: ++ SOURCE_RELEASE: "7.9" ++ TARGET_RELEASE: "8.6" ++ RHUI: "aws" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-8-x86_64: ++ distros: [RHEL-8.6.0-Nightly] ++ identifier: tests-8.6to9.0 ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*max_sst)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-8.6" ++ env: ++ SOURCE_RELEASE: "8.6" ++ TARGET_RELEASE: "9.0" ++ TARGET_KERNEL: "el9" ++ RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-8-x86_64: ++ distros: [RHEL-8.7.0-Nightly] ++ identifier: tests-8.7to9.0 ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*max_sst)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-8.7" ++ env: ++ SOURCE_RELEASE: "8.7" ++ TARGET_RELEASE: "9.0" ++ TARGET_KERNEL: "el9" ++ RHSM_REPOS: "rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-8-x86_64: ++ distros: [RHEL-8.6.0-Nightly] ++ identifier: tests-8.6to9.0-sst ++ tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-8.6" ++ env: ++ SOURCE_RELEASE: "8.6" ++ TARGET_RELEASE: "9.0" ++ TARGET_KERNEL: "el9" ++ RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++ ++- job: tests ++ fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++ fmf_ref: "master" ++ use_internal_tf: True ++ trigger: pull_request ++ targets: ++ epel-8-x86_64: ++ distros: [RHEL-8.6-rhui] ++ identifier: tests-8to9-aws-e2e ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" ++ tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++ tf_extra_params: ++ environments: ++ - tmt: ++ context: ++ distro: "rhel-8.6" ++ env: ++ SOURCE_RELEASE: "8.6" ++ TARGET_RELEASE: "9.0" ++ TARGET_KERNEL: "el9" ++ RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++ RHUI: "aws" +-- +2.40.1 + diff --git a/0006-Update-packit-config-to-match-the-leapp-repositoyr-t.patch b/0006-Update-packit-config-to-match-the-leapp-repositoyr-t.patch new file mode 100644 index 0000000..f6ddec7 --- /dev/null +++ b/0006-Update-packit-config-to-match-the-leapp-repositoyr-t.patch @@ -0,0 +1,178 @@ +From d0f7e7c5ec10ba5a7baa90e881f050074e3da86c Mon Sep 17 00:00:00 2001 +From: Rodolfo Olivieri +Date: Wed, 22 Mar 2023 09:31:18 -0300 +Subject: [PATCH 06/30] Update packit config to match the leapp-repositoyr + tests + +Signed-off-by: Rodolfo Olivieri +--- + .packit.yaml | 101 ++++++++++++++++++++++++++------------------------- + 1 file changed, 52 insertions(+), 49 deletions(-) + +diff --git a/.packit.yaml b/.packit.yaml +index 96ed8901..0ece84da 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -94,7 +94,7 @@ jobs: + epel-7-x86_64: + distros: [RHEL-7.9-ZStream] + identifier: tests-7.9to8.6 +- tmt_plan: "^(?!.*c2r)(?!.*sap)(?!.*8to9)" ++ tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*max_sst)" + tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: +@@ -104,6 +104,7 @@ jobs: + env: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.6" ++ LEAPPDATA_BRANCH: "upstream" + + - job: tests + fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +@@ -124,26 +125,27 @@ jobs: + env: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.8" ++ LEAPPDATA_BRANCH: "upstream" + +-- job: tests +- fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +- fmf_ref: "master" +- use_internal_tf: True +- trigger: pull_request +- targets: +- epel-7-x86_64: +- distros: [RHEL-7.9-ZStream] +- identifier: tests-7.9to8.8-sst +- tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" +- tf_extra_params: +- environments: +- - tmt: +- context: +- distro: "rhel-7.9" +- env: +- SOURCE_RELEASE: "7.9" +- TARGET_RELEASE: "8.8" ++# - job: tests ++# fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++# fmf_ref: "master" ++# use_internal_tf: True ++# trigger: pull_request ++# targets: ++# epel-7-x86_64: ++# distros: [RHEL-7.9-ZStream] ++# identifier: tests-7.9to8.8-sst ++# tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" ++# tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++# tf_extra_params: ++# environments: ++# - tmt: ++# context: ++# distro: "rhel-7.9" ++# env: ++# SOURCE_RELEASE: "7.9" ++# TARGET_RELEASE: "8.8" + + - job: tests + fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +@@ -165,6 +167,7 @@ jobs: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.6" + RHUI: "aws" ++ LEAPPDATA_BRANCH: "upstream" + + - job: tests + fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +@@ -185,8 +188,8 @@ jobs: + env: + SOURCE_RELEASE: "8.6" + TARGET_RELEASE: "9.0" +- TARGET_KERNEL: "el9" + RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++ LEAPPDATA_BRANCH: "upstream" + + - job: tests + fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +@@ -195,42 +198,42 @@ jobs: + trigger: pull_request + targets: + epel-8-x86_64: +- distros: [RHEL-8.7.0-Nightly] +- identifier: tests-8.7to9.0 ++ distros: [RHEL-8.8.0-Nightly] ++ identifier: tests-8.8to9.2 + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*max_sst)" + tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: +- distro: "rhel-8.7" ++ distro: "rhel-8.8" + env: +- SOURCE_RELEASE: "8.7" +- TARGET_RELEASE: "9.0" +- TARGET_KERNEL: "el9" ++ SOURCE_RELEASE: "8.8" ++ TARGET_RELEASE: "9.2" + RHSM_REPOS: "rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms" ++ LEAPPDATA_BRANCH: "upstream" + +-- job: tests +- fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +- fmf_ref: "master" +- use_internal_tf: True +- trigger: pull_request +- targets: +- epel-8-x86_64: +- distros: [RHEL-8.6.0-Nightly] +- identifier: tests-8.6to9.0-sst +- tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" +- tf_extra_params: +- environments: +- - tmt: +- context: +- distro: "rhel-8.6" +- env: +- SOURCE_RELEASE: "8.6" +- TARGET_RELEASE: "9.0" +- TARGET_KERNEL: "el9" +- RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++# - job: tests ++# fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" ++# fmf_ref: "master" ++# use_internal_tf: True ++# trigger: pull_request ++# targets: ++# epel-8-x86_64: ++# distros: [RHEL-8.6.0-Nightly] ++# identifier: tests-8.6to9.0-sst ++# tmt_plan: "^(?!.*tier[2-3].*)(.*max_sst.*)" ++# tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" ++# tf_extra_params: ++# environments: ++# - tmt: ++# context: ++# distro: "rhel-8.6" ++# env: ++# SOURCE_RELEASE: "8.6" ++# TARGET_RELEASE: "9.0" ++# RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" ++# LEAPPDATA_BRANCH: "upstream" + + - job: tests + fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +@@ -251,6 +254,6 @@ jobs: + env: + SOURCE_RELEASE: "8.6" + TARGET_RELEASE: "9.0" +- TARGET_KERNEL: "el9" + RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms" + RHUI: "aws" ++ LEAPPDATA_BRANCH: "upstream" +-- +2.40.1 + diff --git a/0007-Add-new-environment-variable-to-8.8to9.2.patch b/0007-Add-new-environment-variable-to-8.8to9.2.patch new file mode 100644 index 0000000..69ac7cb --- /dev/null +++ b/0007-Add-new-environment-variable-to-8.8to9.2.patch @@ -0,0 +1,28 @@ +From 9d0eab76ca2ac4d27a5dd014ae1f986338b6c421 Mon Sep 17 00:00:00 2001 +From: Rodolfo Olivieri +Date: Thu, 23 Mar 2023 11:56:51 -0300 +Subject: [PATCH 07/30] Add new environment variable to 8.8to9.2 + +Signed-off-by: Rodolfo Olivieri +--- + .packit.yaml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/.packit.yaml b/.packit.yaml +index 0ece84da..3c0f7d55 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -210,8 +210,9 @@ jobs: + env: + SOURCE_RELEASE: "8.8" + TARGET_RELEASE: "9.2" +- RHSM_REPOS: "rhel-8-for-x86_64-appstream-rpms,rhel-8-for-x86_64-baseos-rpms" ++ RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms" + LEAPPDATA_BRANCH: "upstream" ++ LEAPP_DEVEL_TARGET_RELEASE: "9.2" + + # - job: tests + # fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests" +-- +2.40.1 + diff --git a/0008-Stop-mentioning-the-releasever-file-removal.patch b/0008-Stop-mentioning-the-releasever-file-removal.patch new file mode 100644 index 0000000..7f0dcae --- /dev/null +++ b/0008-Stop-mentioning-the-releasever-file-removal.patch @@ -0,0 +1,30 @@ +From 5326d06042006f585be4de720dcd9316dda0772e Mon Sep 17 00:00:00 2001 +From: mreznik +Date: Tue, 11 Apr 2023 14:52:42 +0200 +Subject: [PATCH 08/30] Stop mentioning the "releasever" file removal + +Do not mention the "releasever" file removal in order to not confuse +users. +--- + .../checketcreleasever/libraries/checketcreleasever.py | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/checketcreleasever/libraries/checketcreleasever.py b/repos/system_upgrade/common/actors/checketcreleasever/libraries/checketcreleasever.py +index c92d7dad..b0eb7918 100644 +--- a/repos/system_upgrade/common/actors/checketcreleasever/libraries/checketcreleasever.py ++++ b/repos/system_upgrade/common/actors/checketcreleasever/libraries/checketcreleasever.py +@@ -15,10 +15,7 @@ def handle_etc_releasever(): + 'file and/or the system is using RHUI infrastructure. In order to avoid issues with repofile URLs ' + '(when --release option is not provided) in cases where there is the previous major.minor version value ' + 'in the configuration, release version will be set to the target release version ({}). This will also ' +- 'ensure the system stays on the target version after the upgrade. In order to enable latest minor version ' +- 'updates, you can remove "/etc/dnf/vars/releasever" file.'.format( +- target_version +- ) ++ 'ensure the system stays on the expected target version after the upgrade'.format(target_version) + ), + reporting.Severity(reporting.Severity.INFO), + reporting.Groups([reporting.Groups.UPGRADE_PROCESS]), +-- +2.40.1 + diff --git a/0009-Fix-trace-with-impossible-LEAPP_DEVEL_TARGET_RELEASE.patch b/0009-Fix-trace-with-impossible-LEAPP_DEVEL_TARGET_RELEASE.patch new file mode 100644 index 0000000..6332a49 --- /dev/null +++ b/0009-Fix-trace-with-impossible-LEAPP_DEVEL_TARGET_RELEASE.patch @@ -0,0 +1,32 @@ +From dd501739e40837d721dbe2a43a412402555ef46c Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Tue, 14 Mar 2023 12:03:35 +0100 +Subject: [PATCH 09/30] Fix trace with impossible LEAPP_DEVEL_TARGET_RELEASE + +With this change the (pre)upgrade will correctly handle +impossible target release version, no more ugly trace will +be shown. + +OAMG-8651 +--- + commands/upgrade/breadcrumbs.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/commands/upgrade/breadcrumbs.py b/commands/upgrade/breadcrumbs.py +index bfb91148..61660fb1 100644 +--- a/commands/upgrade/breadcrumbs.py ++++ b/commands/upgrade/breadcrumbs.py +@@ -127,6 +127,10 @@ class _BreadCrumbs(object): + return [] + + def _verify_leapp_pkgs(self): ++ if not os.environ.get('LEAPP_IPU_IN_PROGRESS'): ++ # NOTE(ivasilev) this can happen if LEAPP_DEVEL_TARGET_RELEASE is specified and pointing to an impossible ++ # version ++ return [] + upg_path = os.environ.get('LEAPP_IPU_IN_PROGRESS').split('to') + cmd = ['/bin/bash', '-c', 'rpm -V leapp leapp-upgrade-el{}toel{}'.format(upg_path[0], upg_path[1])] + res = _call(cmd, lambda x, y: None, lambda x, y: None) +-- +2.40.1 + diff --git a/0010-Make-copr-build-functioning-again.patch b/0010-Make-copr-build-functioning-again.patch new file mode 100644 index 0000000..49d07fb --- /dev/null +++ b/0010-Make-copr-build-functioning-again.patch @@ -0,0 +1,65 @@ +From 035f5a9cfdc74e760cc39a32769296466cb04ff5 Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Thu, 13 Apr 2023 19:50:55 +0200 +Subject: [PATCH 10/30] Make copr-build functioning again + +After some unknown changes around COPR, the building +command and the used COPR configuration file needs to be +updated. + +OAMG-8876 +--- + .github/workflows/reuse-copr-build.yml | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml +index eb700df4..093e0c1a 100644 +--- a/.github/workflows/reuse-copr-build.yml ++++ b/.github/workflows/reuse-copr-build.yml +@@ -57,18 +57,19 @@ jobs: + env: + COPR_CONFIG: "copr_fedora.conf" + COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64" ++ COPR_REPO: "@oamg/leapp" + run: | + cat << EOF > $COPR_CONFIG + [copr-cli] + login = ${{ secrets.FEDORA_COPR_LOGIN }} +- username = @oamg ++ username = oamgbot + token = ${{ secrets.FEDORA_COPR_TOKEN }} + copr_url = https://copr.fedorainfracloud.org + # expiration date: 2030-07-04 + EOF + + pip install copr-cli +- PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log ++ PR=${{ steps.pr_nr.outputs.pr_nr }} COPR_CONFIG=$COPR_CONFIG COPR_REPO="$COPR_REPO" COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log + + COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log) + echo "::set-output name=copr_url::${COPR_URL}" +@@ -122,18 +123,19 @@ jobs: + env: + COPR_CONFIG: "copr_fedora.conf" + COPR_CHROOT: "epel-7-x86_64,epel-8-x86_64" ++ COPR_REPO: "@oamg/leapp" + run: | + cat << EOF > $COPR_CONFIG + [copr-cli] + login = ${{ secrets.FEDORA_COPR_LOGIN }} +- username = @oamg ++ username = oamgbot + token = ${{ secrets.FEDORA_COPR_TOKEN }} + copr_url = https://copr.fedorainfracloud.org + # expiration date: 2030-07-04 + EOF + + pip install copr-cli +- PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=$COPR_CONFIG COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log ++ PR=${{ steps.leapp_pr.outputs.leapp_pr }} COPR_CONFIG=$COPR_CONFIG COPR_REPO="$COPR_REPO" COPR_CHROOT=$COPR_CHROOT make copr_build | tee copr.log + + COPR_URL=$(grep -Po 'https://copr.fedorainfracloud.org/coprs/build/\d+' copr.log) + echo "::set-output name=copr_url::${COPR_URL}" +-- +2.40.1 + diff --git a/0011-Add-tag-in-packit.yaml-to-enable-cost-metrics-collec.patch b/0011-Add-tag-in-packit.yaml-to-enable-cost-metrics-collec.patch new file mode 100644 index 0000000..efb11ae --- /dev/null +++ b/0011-Add-tag-in-packit.yaml-to-enable-cost-metrics-collec.patch @@ -0,0 +1,93 @@ +From eb438f8be15b99fb4fae2346386e60283903ca20 Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Mon, 17 Apr 2023 12:36:24 +0200 +Subject: [PATCH 11/30] Add tag in packit.yaml to enable cost metrics + collection + +Now all tft tests run by packit should be marked accordingly +with a sst-upgrades tag. + +OAMG-8892 +--- + .packit.yaml | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/.packit.yaml b/.packit.yaml +index 3c0f7d55..595e94be 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -101,6 +101,11 @@ jobs: + - tmt: + context: + distro: "rhel-7.9" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.6" +@@ -122,6 +127,11 @@ jobs: + - tmt: + context: + distro: "rhel-7.9" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.8" +@@ -163,6 +173,11 @@ jobs: + - tmt: + context: + distro: "rhel-7.9" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "7.9" + TARGET_RELEASE: "8.6" +@@ -185,6 +200,11 @@ jobs: + - tmt: + context: + distro: "rhel-8.6" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "8.6" + TARGET_RELEASE: "9.0" +@@ -207,6 +227,11 @@ jobs: + - tmt: + context: + distro: "rhel-8.8" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "8.8" + TARGET_RELEASE: "9.2" +@@ -252,6 +277,11 @@ jobs: + - tmt: + context: + distro: "rhel-8.6" ++ # tag resources as sst_upgrades to enable cost metrics collection ++ - settings: ++ provisioning: ++ tags: ++ BusinessUnit: sst_upgrades + env: + SOURCE_RELEASE: "8.6" + TARGET_RELEASE: "9.0" +-- +2.40.1 + diff --git a/0012-Workaround-packit-2010-issue.patch b/0012-Workaround-packit-2010-issue.patch new file mode 100644 index 0000000..0ead97d --- /dev/null +++ b/0012-Workaround-packit-2010-issue.patch @@ -0,0 +1,134 @@ +From f4edd16317ee188dd0958a293ea51d0afa2f606e Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Mon, 17 Apr 2023 13:33:12 +0200 +Subject: [PATCH 12/30] Workaround packit#2010 issue + +Looks like tf_post_install_script and environment override does +not play nice together yet, so let's workaround it for now. + +OAMG-8892 +--- + .packit.yaml | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/.packit.yaml b/.packit.yaml +index 595e94be..fd0af7ec 100644 +--- a/.packit.yaml ++++ b/.packit.yaml +@@ -95,15 +95,15 @@ jobs: + distros: [RHEL-7.9-ZStream] + identifier: tests-7.9to8.6 + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*max_sst)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-7.9" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tags: + BusinessUnit: sst_upgrades + env: +@@ -121,15 +121,15 @@ jobs: + distros: [RHEL-7.9-ZStream] + identifier: tests-7.9to8.8 + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(?!.*max_sst)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-7.9" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tags: + BusinessUnit: sst_upgrades + env: +@@ -167,15 +167,15 @@ jobs: + distros: [RHEL-7.9-rhui] + identifier: tests-7to8-aws-e2e + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*8to9)(.*e2e)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; echo 42; yum-config-manager --enable rhel-7-server-rhui-optional-rpms" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-7.9" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; yum-config-manager --enable rhel-7-server-rhui-optional-rpms" + tags: + BusinessUnit: sst_upgrades + env: +@@ -194,15 +194,15 @@ jobs: + distros: [RHEL-8.6.0-Nightly] + identifier: tests-8.6to9.0 + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*max_sst)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-8.6" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tags: + BusinessUnit: sst_upgrades + env: +@@ -221,15 +221,15 @@ jobs: + distros: [RHEL-8.8.0-Nightly] + identifier: tests-8.8to9.2 + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(?!.*max_sst)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-8.8" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tags: + BusinessUnit: sst_upgrades + env: +@@ -271,15 +271,15 @@ jobs: + distros: [RHEL-8.6-rhui] + identifier: tests-8to9-aws-e2e + tmt_plan: "^(?!.*upgrade_plugin)(?!.*tier[2-3].*)(?!.*rhsm)(?!.*c2r)(?!.*sap)(?!.*7to8)(.*e2e)" +- tf_post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tf_extra_params: + environments: + - tmt: + context: + distro: "rhel-8.6" +- # tag resources as sst_upgrades to enable cost metrics collection +- - settings: ++ # tag resources as sst_upgrades to enable cost metrics collection ++ settings: + provisioning: ++ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys" + tags: + BusinessUnit: sst_upgrades + env: +-- +2.40.1 + diff --git a/0013-Improve-the-checkgrubcore-report-message.patch b/0013-Improve-the-checkgrubcore-report-message.patch new file mode 100644 index 0000000..09df4cb --- /dev/null +++ b/0013-Improve-the-checkgrubcore-report-message.patch @@ -0,0 +1,71 @@ +From 0404072439f9c528d569cd23e60b83fb3823b3b5 Mon Sep 17 00:00:00 2001 +From: mreznik +Date: Sun, 9 Apr 2023 10:37:31 +0200 +Subject: [PATCH 13/30] Improve the "checkgrubcore" report message + +No action is needed in case Leapp is able to detect the GRUB2 device +--- + .../common/actors/checkgrubcore/actor.py | 16 +++++++++------- + .../checkgrubcore/tests/test_checkgrubcore.py | 2 +- + 2 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/checkgrubcore/actor.py b/repos/system_upgrade/common/actors/checkgrubcore/actor.py +index 37eeeca8..6aa99797 100644 +--- a/repos/system_upgrade/common/actors/checkgrubcore/actor.py ++++ b/repos/system_upgrade/common/actors/checkgrubcore/actor.py +@@ -6,8 +6,10 @@ from leapp.models import FirmwareFacts, GrubInfo + from leapp.reporting import create_report, Report + from leapp.tags import ChecksPhaseTag, IPUWorkflowTag + +-GRUB_SUMMARY = ('On legacy (BIOS) systems, GRUB core (located in the gap between the MBR and the ' +- 'first partition) does not get automatically updated when GRUB is upgraded.') ++GRUB_SUMMARY = ('On legacy (BIOS) systems, GRUB2 core (located in the gap between the MBR and the ' ++ 'first partition) cannot be updated during the rpm transaction and Leapp has to initiate ' ++ 'the update running "grub2-install" after the transaction. No action is needed before the ' ++ 'upgrade. After the upgrade, it is recommended to check the GRUB configuration.') + + + class CheckGrubCore(Actor): +@@ -33,7 +35,7 @@ class CheckGrubCore(Actor): + if grub_info.orig_device_name: + create_report([ + reporting.Title( +- 'GRUB core will be updated during upgrade' ++ 'GRUB2 core will be automatically updated during the upgrade' + ), + reporting.Summary(GRUB_SUMMARY), + reporting.Severity(reporting.Severity.HIGH), +@@ -41,13 +43,13 @@ class CheckGrubCore(Actor): + ]) + else: + create_report([ +- reporting.Title('Leapp could not identify where GRUB core is located'), ++ reporting.Title('Leapp could not identify where GRUB2 core is located'), + reporting.Summary( +- 'We assume GRUB core is located on the same device as /boot. Leapp needs to ' +- 'update GRUB core as it is not done automatically on legacy (BIOS) systems. ' ++ 'We assumed GRUB2 core is located on the same device as /boot, however Leapp could not ' ++ 'detect GRUB2 on the device. GRUB2 core needs to be updated maually on legacy (BIOS) systems. ' + ), + reporting.Severity(reporting.Severity.HIGH), + reporting.Groups([reporting.Groups.BOOT]), + reporting.Remediation( +- hint='Please run "grub2-install command manually after upgrade'), ++ hint='Please run "grub2-install command manually after the upgrade'), + ]) +diff --git a/repos/system_upgrade/common/actors/checkgrubcore/tests/test_checkgrubcore.py b/repos/system_upgrade/common/actors/checkgrubcore/tests/test_checkgrubcore.py +index 0816963b..fe15b65b 100644 +--- a/repos/system_upgrade/common/actors/checkgrubcore/tests/test_checkgrubcore.py ++++ b/repos/system_upgrade/common/actors/checkgrubcore/tests/test_checkgrubcore.py +@@ -5,7 +5,7 @@ from leapp.libraries.common.config import mock_configs + from leapp.models import FirmwareFacts, GrubInfo + from leapp.reporting import Report + +-NO_GRUB = 'Leapp could not identify where GRUB core is located' ++NO_GRUB = 'Leapp could not identify where GRUB2 core is located' + + + def test_actor_update_grub(current_actor_context): +-- +2.40.1 + diff --git a/0014-Update-pr-welcome-msg-with-packit-tests-info.patch b/0014-Update-pr-welcome-msg-with-packit-tests-info.patch new file mode 100644 index 0000000..1519b7b --- /dev/null +++ b/0014-Update-pr-welcome-msg-with-packit-tests-info.patch @@ -0,0 +1,27 @@ +From 8ed665ca45c90ddd305ff6a3be341d2eef351a9e Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Tue, 25 Apr 2023 12:18:52 +0200 +Subject: [PATCH 14/30] Update pr-welcome-msg with packit tests info + +Let's mention the big leap for leapp officially together with +a command to (re-)trigger tests. +--- + .github/workflows/pr-welcome-msg.yml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml +index 5fbf9558..adeed97c 100644 +--- a/.github/workflows/pr-welcome-msg.yml ++++ b/.github/workflows/pr-welcome-msg.yml +@@ -24,6 +24,8 @@ jobs: + - **review please** to notify leapp developers of review request + - **/packit copr-build** to submit a public copr build using packit + ++ Packit will automatically schedule regression tests for this PR's build and leapp\*master\*. If you need a different version of leapp from PR#42, use `/packit test oamg/leapp#42` ++ + To launch regression testing public members of oamg organization can leave the following comment: + - **/rerun** to schedule basic regression tests using this pr build and leapp\*master\* as artifacts + - **/rerun 42** to schedule basic regression tests using this pr build and leapp\*PR42\* as artifacts +-- +2.40.1 + diff --git a/0015-Further-tune-welcome-bot-message.patch b/0015-Further-tune-welcome-bot-message.patch new file mode 100644 index 0000000..2444aab --- /dev/null +++ b/0015-Further-tune-welcome-bot-message.patch @@ -0,0 +1,38 @@ +From e43346659072d2b86df8272949951e12675ee2e3 Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Tue, 25 Apr 2023 12:37:36 +0200 +Subject: [PATCH 15/30] Further tune welcome-bot message + +- Do not use master, use latest upstream +- Add precise command to request review from oamg-developers +--- + .github/workflows/pr-welcome-msg.yml | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml +index adeed97c..7e7ba831 100644 +--- a/.github/workflows/pr-welcome-msg.yml ++++ b/.github/workflows/pr-welcome-msg.yml +@@ -21,15 +21,15 @@ jobs: + ## **Thank you for contributing to the Leapp project!** + Please note that every PR needs to comply with the [Leapp Guidelines](https://leapp.readthedocs.io/en/latest/contributing.html#) and must pass all tests in order to be mergeable. + If you want to request a review or rebuild a package in copr, you can use following commands as a comment: +- - **review please** to notify leapp developers of review request ++ - **review please @oamg/developers** to notify leapp developers of the review request + - **/packit copr-build** to submit a public copr build using packit + +- Packit will automatically schedule regression tests for this PR's build and leapp\*master\*. If you need a different version of leapp from PR#42, use `/packit test oamg/leapp#42` ++ Packit will automatically schedule regression tests for this PR's build and latest upstream leapp build. If you need a different version of leapp from PR#42, use `/packit test oamg/leapp#42` + + To launch regression testing public members of oamg organization can leave the following comment: +- - **/rerun** to schedule basic regression tests using this pr build and leapp\*master\* as artifacts ++ - **/rerun** to schedule basic regression tests using this pr build and latest upstream leapp build as artifacts + - **/rerun 42** to schedule basic regression tests using this pr build and leapp\*PR42\* as artifacts +- - **/rerun-sst** to schedule sst tests using this pr build and leapp\*master\* as artifacts ++ - **/rerun-sst** to schedule sst tests using this pr build and latest upstream leapp build as artifacts + - **/rerun-sst 42** to schedule sst tests using this pr build and leapp\*PR42\* as artifacts + + Please [open ticket](https://url.corp.redhat.com/oamg-ci-issue) in case you experience technical problem with the CI. (RH internal only) +-- +2.40.1 + diff --git a/0016-Remove-note-about-leapp-ci-build.patch b/0016-Remove-note-about-leapp-ci-build.patch new file mode 100644 index 0000000..2573e30 --- /dev/null +++ b/0016-Remove-note-about-leapp-ci-build.patch @@ -0,0 +1,24 @@ +From ac8b6a1bad62ce5a823b61677788e4a9a6c16e33 Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Tue, 25 Apr 2023 14:37:26 +0200 +Subject: [PATCH 16/30] Remove note about leapp-ci build + +As leapp packages are built by packit now, this is not used +anymore. +--- + .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 7e7ba831..cec7c778 100644 +--- a/.github/workflows/pr-welcome-msg.yml ++++ b/.github/workflows/pr-welcome-msg.yml +@@ -34,4 +34,4 @@ jobs: + + Please [open ticket](https://url.corp.redhat.com/oamg-ci-issue) in case you experience technical problem with the CI. (RH internal only) + +- **Note:** In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please consider rerunning the CI by commenting **leapp-ci build** (might require several comments). If the problem persists, contact leapp-infra. ++ **Note:** In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please contact leapp-infra. +-- +2.40.1 + diff --git a/0017-Fix-false-positive-non-utf-symlinks-reported.patch b/0017-Fix-false-positive-non-utf-symlinks-reported.patch new file mode 100644 index 0000000..d7b9969 --- /dev/null +++ b/0017-Fix-false-positive-non-utf-symlinks-reported.patch @@ -0,0 +1,38 @@ +From a600097a8f5ab9f0083a9abb906e0a0b5394176c Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Wed, 8 Mar 2023 12:12:51 +0100 +Subject: [PATCH 17/30] Fix false positive non-utf symlinks reported + +Because of botched up check for python2 valid utf symlinks were reported +as non-utf ones. + +OAMG-8629 +--- + .../system_upgrade/common/actors/rootscanner/actor.py | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/repos/system_upgrade/common/actors/rootscanner/actor.py b/repos/system_upgrade/common/actors/rootscanner/actor.py +index 515fd7d7..dc02c7a2 100644 +--- a/repos/system_upgrade/common/actors/rootscanner/actor.py ++++ b/repos/system_upgrade/common/actors/rootscanner/actor.py +@@ -28,8 +28,16 @@ class RootScanner(Actor): + return subdir_cls(name=name) + + for subdir in os.listdir('/'): +- # Note(ivasilev) non-utf encoded string will appear as byte strings ++ # Note(ivasilev) in py3 env non-utf encoded string will appear as byte strings ++ # However in py2 env subdir will be always of str type, so verification if this is a valid utf-8 string ++ # should be done differently than formerly suggested plain six.binary_type check ++ decoded = True + if isinstance(subdir, six.binary_type): ++ try: ++ subdir.decode('utf-8') ++ except (AttributeError, UnicodeDecodeError): ++ decoded = False ++ if not decoded: + invalid_subdirs.append(_create_a_subdir(InvalidRootSubdirectory, subdir, os.path.join(b'/', subdir))) + else: + subdirs.append(_create_a_subdir(RootSubdirectory, subdir, os.path.join('/', subdir))) +-- +2.40.1 + diff --git a/0018-Refactor-rootscanner-to-use-library.patch b/0018-Refactor-rootscanner-to-use-library.patch new file mode 100644 index 0000000..4b5e064 --- /dev/null +++ b/0018-Refactor-rootscanner-to-use-library.patch @@ -0,0 +1,153 @@ +From 56b468355e460b9389a97982bd9a04097ce8f96b Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Thu, 23 Mar 2023 15:35:08 +0100 +Subject: [PATCH 18/30] Refactor rootscanner to use library + +Also introduce tests for the nonutf symlinks +--- + commands/upgrade/breadcrumbs.py | 2 -- + .../common/actors/rootscanner/actor.py | 32 ++--------------- + .../rootscanner/libraries/rootscanner.py | 34 +++++++++++++++++++ + .../rootscanner/tests/test_rootscanner.py | 31 +++++++++++++++++ + 4 files changed, 68 insertions(+), 31 deletions(-) + create mode 100644 repos/system_upgrade/common/actors/rootscanner/libraries/rootscanner.py + create mode 100644 repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py + +diff --git a/commands/upgrade/breadcrumbs.py b/commands/upgrade/breadcrumbs.py +index 61660fb1..16903ee0 100644 +--- a/commands/upgrade/breadcrumbs.py ++++ b/commands/upgrade/breadcrumbs.py +@@ -128,8 +128,6 @@ class _BreadCrumbs(object): + + def _verify_leapp_pkgs(self): + if not os.environ.get('LEAPP_IPU_IN_PROGRESS'): +- # NOTE(ivasilev) this can happen if LEAPP_DEVEL_TARGET_RELEASE is specified and pointing to an impossible +- # version + return [] + upg_path = os.environ.get('LEAPP_IPU_IN_PROGRESS').split('to') + cmd = ['/bin/bash', '-c', 'rpm -V leapp leapp-upgrade-el{}toel{}'.format(upg_path[0], upg_path[1])] +diff --git a/repos/system_upgrade/common/actors/rootscanner/actor.py b/repos/system_upgrade/common/actors/rootscanner/actor.py +index dc02c7a2..a3fbb55d 100644 +--- a/repos/system_upgrade/common/actors/rootscanner/actor.py ++++ b/repos/system_upgrade/common/actors/rootscanner/actor.py +@@ -1,9 +1,6 @@ +-import os +- +-import six +- + from leapp.actors import Actor +-from leapp.models import InvalidRootSubdirectory, RootDirectory, RootSubdirectory ++from leapp.libraries.actor.rootscanner import scan_dir ++from leapp.models import RootDirectory + from leapp.tags import FactsPhaseTag, IPUWorkflowTag + + +@@ -19,27 +16,4 @@ class RootScanner(Actor): + tags = (IPUWorkflowTag, FactsPhaseTag) + + def process(self): +- subdirs = [] +- invalid_subdirs = [] +- +- def _create_a_subdir(subdir_cls, name, path): +- if os.path.islink(path): +- return subdir_cls(name=name, target=os.readlink(path)) +- return subdir_cls(name=name) +- +- for subdir in os.listdir('/'): +- # Note(ivasilev) in py3 env non-utf encoded string will appear as byte strings +- # However in py2 env subdir will be always of str type, so verification if this is a valid utf-8 string +- # should be done differently than formerly suggested plain six.binary_type check +- decoded = True +- if isinstance(subdir, six.binary_type): +- try: +- subdir.decode('utf-8') +- except (AttributeError, UnicodeDecodeError): +- decoded = False +- if not decoded: +- invalid_subdirs.append(_create_a_subdir(InvalidRootSubdirectory, subdir, os.path.join(b'/', subdir))) +- else: +- subdirs.append(_create_a_subdir(RootSubdirectory, subdir, os.path.join('/', subdir))) +- +- self.produce(RootDirectory(items=subdirs, invalid_items=invalid_subdirs)) ++ self.produce(scan_dir(b'/')) +diff --git a/repos/system_upgrade/common/actors/rootscanner/libraries/rootscanner.py b/repos/system_upgrade/common/actors/rootscanner/libraries/rootscanner.py +new file mode 100644 +index 00000000..3f29c065 +--- /dev/null ++++ b/repos/system_upgrade/common/actors/rootscanner/libraries/rootscanner.py +@@ -0,0 +1,34 @@ ++import os ++ ++import six ++ ++from leapp.models import InvalidRootSubdirectory, RootDirectory, RootSubdirectory ++ ++ ++def scan_dir(root_dir=b'/'): ++ """ ++ Scan root directory and return a RootDirectory(subdirs, invalid_subdirs) model object ++ """ ++ subdirs = [] ++ invalid_subdirs = [] ++ ++ def _create_a_subdir(subdir_cls, name, path): ++ if os.path.islink(path): ++ return subdir_cls(name=name, target=os.readlink(path)) ++ return subdir_cls(name=name) ++ ++ for subdir in os.listdir(root_dir): ++ # Note(ivasilev) in py3 env non-utf encoded string will appear as byte strings ++ # However in py2 env subdir will be always of str type, so verification if this is a valid utf-8 string ++ # should be done differently than formerly suggested plain six.binary_type check ++ decoded = True ++ if isinstance(subdir, six.binary_type): ++ try: ++ subdir = subdir.decode('utf-8') ++ except (AttributeError, UnicodeDecodeError): ++ decoded = False ++ if not decoded: ++ invalid_subdirs.append(_create_a_subdir(InvalidRootSubdirectory, subdir, os.path.join(b'/', subdir))) ++ else: ++ subdirs.append(_create_a_subdir(RootSubdirectory, subdir, os.path.join('/', subdir))) ++ return RootDirectory(items=subdirs, invalid_items=invalid_subdirs) +diff --git a/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py b/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py +new file mode 100644 +index 00000000..d0e5626a +--- /dev/null ++++ b/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py +@@ -0,0 +1,31 @@ ++import os ++import shutil ++import tempfile ++ ++import pytest ++ ++from leapp.libraries.actor.rootscanner import scan_dir ++ ++ ++@pytest.mark.parametrize("filename,symlink,count_invalid", ++ [(u'a_utf_file'.encode('utf-8'), u"utf8_symlink".encode('utf-8'), 0), ++ (u'простофайл'.encode('koi8-r'), u"этонеутф8".encode('koi8-r'), 2), ++ (u'a_utf_file'.encode('utf-8'), u"этонеутф8".encode('koi8-r'), 1)]) ++def test_invalid_symlinks(filename, symlink, count_invalid): ++ # Let's create a directory with both valid utf-8 and non-utf symlinks ++ # NOTE(ivasilev) As this has to run for python2 as well can't use the nice tempfile.TemporaryDirectory way ++ tmpdirname = tempfile.mkdtemp() ++ # create the file in the temp directory ++ path_to_file = os.path.join(tmpdirname.encode('utf-8'), filename) ++ path_to_symlink = os.path.join(tmpdirname.encode('utf-8'), symlink) ++ with open(path_to_file, 'w') as f: ++ f.write('Some data here') ++ # create a symlink ++ os.symlink(path_to_file, path_to_symlink) ++ # run scan_dir ++ model = scan_dir(tmpdirname.encode('utf-8')) ++ # verify the results ++ assert len(model.items) == 2 - count_invalid ++ assert len(model.invalid_items) == count_invalid ++ # cleanup ++ shutil.rmtree(tmpdirname) +-- +2.40.1 + diff --git a/0019-update-.pylintrc.patch b/0019-update-.pylintrc.patch new file mode 100644 index 0000000..09b2c42 --- /dev/null +++ b/0019-update-.pylintrc.patch @@ -0,0 +1,26 @@ +From aa21fa14e6f8a4644ee1190943127c3c0f2bc206 Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Thu, 23 Mar 2023 15:39:22 +0100 +Subject: [PATCH 19/30] update .pylintrc + +--- + .pylintrc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/.pylintrc b/.pylintrc +index f5da1f1f..7ddb58d6 100644 +--- a/.pylintrc ++++ b/.pylintrc +@@ -52,7 +52,8 @@ disable= + consider-using-with, # on bunch spaces we cannot change that... + duplicate-string-formatting-argument, # TMP: will be fixed in close future + consider-using-f-string, # sorry, not gonna happen, still have to support py2 +- use-dict-literal ++ use-dict-literal, ++ redundant-u-string-prefix # still have py2 to support + + [FORMAT] + # Maximum number of characters on a single line. +-- +2.40.1 + diff --git a/0020-Set-encoding-for-tests.patch b/0020-Set-encoding-for-tests.patch new file mode 100644 index 0000000..f0ccf9b --- /dev/null +++ b/0020-Set-encoding-for-tests.patch @@ -0,0 +1,21 @@ +From d1a7170b5076f03673b17ffd56dd4eb121f4ae2c Mon Sep 17 00:00:00 2001 +From: Inessa Vasilevskaya +Date: Thu, 23 Mar 2023 17:11:33 +0100 +Subject: [PATCH 20/30] Set encoding for tests + +--- + .../common/actors/rootscanner/tests/test_rootscanner.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py b/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py +index d0e5626a..659a3017 100644 +--- a/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py ++++ b/repos/system_upgrade/common/actors/rootscanner/tests/test_rootscanner.py +@@ -1,3 +1,4 @@ ++# -*- coding: utf-8 -*- + import os + import shutil + import tempfile +-- +2.40.1 + diff --git a/0001-Introduce-leapp-data-in-the-RPM-repository.patch b/0021-Introduce-leapp-data-in-the-RPM-repository.patch similarity index 99% rename from 0001-Introduce-leapp-data-in-the-RPM-repository.patch rename to 0021-Introduce-leapp-data-in-the-RPM-repository.patch index e7514e5..91d371e 100644 --- a/0001-Introduce-leapp-data-in-the-RPM-repository.patch +++ b/0021-Introduce-leapp-data-in-the-RPM-repository.patch @@ -1,7 +1,7 @@ From 818945dbc65f9fcbaeb4cb3bffeffece63339004 Mon Sep 17 00:00:00 2001 From: Petr Stodulka Date: Fri, 17 Feb 2023 12:40:55 +0100 -Subject: [PATCH 1/5] Introduce leapp data in the RPM & repository +Subject: [PATCH 21/30] Introduce leapp data in the RPM & repository In the past it was needed to obtain the data by * automatic download of data files from RH Insights @@ -47,6 +47,20 @@ Configure codespell to ignore .etc/leapp/files create mode 100644 etc/leapp/files/pes-events.json create mode 100644 etc/leapp/files/repomap.json +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index 681669ab..50115826 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -20,4 +20,8 @@ jobs: + ignore_words_list: ro,fo,couldn,repositor + 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/common/actors/scancpu/tests/files/lscpu_s390x" ++ ./repos/system_upgrade/common/actors/scancpu/tests/files/lscpu_s390x,\ ++ ./etc/leapp/files/device_driver_deprecation_data.json,\ ++ ./etc/leapp/files/pes-events.json,\ ++ ./etc/leapp/files/repomap.json" ++ diff --git a/etc/leapp/files/device_driver_deprecation_data.json b/etc/leapp/files/device_driver_deprecation_data.json new file mode 100644 index 00000000..02bb2a09 @@ -509316,6 +509330,26 @@ index 00000000..88116e2d + ] +} \ No newline at end of file +diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec +index 5bdd5a9d..2d0d6fd8 100644 +--- a/packaging/leapp-repository.spec ++++ b/packaging/leapp-repository.spec +@@ -215,6 +215,7 @@ install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d/ + install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/transaction/ + install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/ + install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction ++install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files + + # install CLI commands for the leapp utility on the expected path + install -m 0755 -d %{buildroot}%{leapp_python_sitelib}/leapp/cli/ +@@ -261,6 +262,7 @@ done; + %dir %{repositorydir} + %dir %{custom_repositorydir} + %dir %{leapp_python_sitelib}/leapp/cli/commands ++%config %{_sysconfdir}/leapp/files/* + %{_sysconfdir}/leapp/repos.d/* + %{_sysconfdir}/leapp/transaction/* + %{repositorydir}/* -- 2.40.1 diff --git a/0002-Add-el8toel9-actor-to-handle-directory-symlink.patch b/0022-Add-el8toel9-actor-to-handle-directory-symlink-with-.patch similarity index 97% rename from 0002-Add-el8toel9-actor-to-handle-directory-symlink.patch rename to 0022-Add-el8toel9-actor-to-handle-directory-symlink-with-.patch index 917eaf9..3fc25fa 100644 --- a/0002-Add-el8toel9-actor-to-handle-directory-symlink.patch +++ b/0022-Add-el8toel9-actor-to-handle-directory-symlink-with-.patch @@ -1,7 +1,7 @@ From 619982896c07aa453a1b48b2bf399e4fe4f723b2 Mon Sep 17 00:00:00 2001 From: Jarek Prokop Date: Fri, 21 Apr 2023 17:25:15 +0200 -Subject: [PATCH 2/5] Add el8toel9 actor to handle directory -> symlink with +Subject: [PATCH 22/30] Add el8toel9 actor to handle directory -> symlink with ruby IRB. The `/usr/share/ruby/irb/` directory is a symlink in RHEL 9. diff --git a/0003-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch b/0023-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch similarity index 99% rename from 0003-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch rename to 0023-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch index 6be6284..ce674b8 100644 --- a/0003-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch +++ b/0023-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch @@ -1,7 +1,7 @@ From 0c03180b274e9245611a7379a997ac81c726a9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20He=C4=8Dko?= Date: Wed, 10 May 2023 16:51:49 +0200 -Subject: [PATCH 3/5] Enable 8>9 upgrades with FIPS enabled (#1053) +Subject: [PATCH 23/30] Enable 8>9 upgrades with FIPS enabled (#1053) Short story long: ============== diff --git a/0004-Change-the-upgrade-paths-for-SAP-HANA.patch b/0024-Change-the-upgrade-paths-for-SAP-HANA.patch similarity index 99% rename from 0004-Change-the-upgrade-paths-for-SAP-HANA.patch rename to 0024-Change-the-upgrade-paths-for-SAP-HANA.patch index 37ef608..93747b9 100644 --- a/0004-Change-the-upgrade-paths-for-SAP-HANA.patch +++ b/0024-Change-the-upgrade-paths-for-SAP-HANA.patch @@ -1,7 +1,7 @@ From 24bfcccc59047c43237ce1b0202245314eca7158 Mon Sep 17 00:00:00 2001 From: Irina Gulina Date: Fri, 5 May 2023 08:43:19 +0200 -Subject: [PATCH 4/5] Change the upgrade paths for SAP HANA +Subject: [PATCH 24/30] Change the upgrade paths for SAP HANA - Drop 7.9 to 8.2 - Add 7.9 to 8.8, but keep 7.9 to 8.6 as default diff --git a/0025-Inhibit-unsupported-x86-64-microarchitecture-RHEL9.patch b/0025-Inhibit-unsupported-x86-64-microarchitecture-RHEL9.patch new file mode 100644 index 0000000..f0589da --- /dev/null +++ b/0025-Inhibit-unsupported-x86-64-microarchitecture-RHEL9.patch @@ -0,0 +1,377 @@ +From 777e0a641739add1fca50af774d6d924af5550d7 Mon Sep 17 00:00:00 2001 +From: David Kubek +Date: Tue, 14 Mar 2023 11:54:18 +0100 +Subject: [PATCH 25/30] Inhibit unsupported x86-64 microarchitecture RHEL9 + +As per [x86-64-ABI][1] In addition to the AMD64 baseline architecture, +several micro-architecture levels implemented by later CPU modules have +been defined, starting at level ``x86-64-v2``. + +RHEL9 has a higher CPU requirement than older versions, it now requires +a CPU compatible with ``x86-64-v2`` instruction set or higher. Until +now, there was no check for this and the upgrade crashed unexpectedly. +This commit handles this issue and provides the user with a report +explaining the problem. + +The CPU Features are gathered using the ``lscpu`` command by way of +using the ``ScanCPU`` actor. The ``ScanCPU`` actor had to be also +modified to provide the required flags. The mapping of CPU Features to +flags provided by ``lscpu`` has been determined by using the +``/arch/x86/include/asm/cpufeatures.h`` file from the linux kernel. + +[1]: https://gitlab.com/x86-psABIs/x86-64-ABI.git +--- + .../actors/scancpu/libraries/scancpu.py | 13 +++- + .../actors/scancpu/tests/test_scancpu.py | 74 +++++++++++++++---- + repos/system_upgrade/common/models/cpuinfo.py | 4 +- + .../actors/checkmicroarchitecture/actor.py | 63 ++++++++++++++++ + .../libraries/checkmicroarchitecture.py | 47 ++++++++++++ + .../tests/test_checkmicroarchitecture.py | 65 ++++++++++++++++ + 6 files changed, 249 insertions(+), 17 deletions(-) + create mode 100644 repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py + create mode 100644 repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py + create mode 100644 repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py + +diff --git a/repos/system_upgrade/common/actors/scancpu/libraries/scancpu.py b/repos/system_upgrade/common/actors/scancpu/libraries/scancpu.py +index 68f5623b..e5555f99 100644 +--- a/repos/system_upgrade/common/actors/scancpu/libraries/scancpu.py ++++ b/repos/system_upgrade/common/actors/scancpu/libraries/scancpu.py +@@ -17,6 +17,11 @@ def _get_lscpu_output(): + return '' + + ++def _get_cpu_flags(lscpu): ++ flags = lscpu.get('Flags', '') ++ return flags.split() ++ ++ + def _get_cpu_entries_for(arch_prefix): + result = [] + for message in api.consume(DeviceDriverDeprecationData): +@@ -137,4 +142,10 @@ def process(): + api.produce(*_find_deprecation_data_entries(lscpu)) + # Backwards compatibility + machine_type = lscpu.get('Machine type') +- api.produce(CPUInfo(machine_type=int(machine_type) if machine_type else None)) ++ flags = _get_cpu_flags(lscpu) ++ api.produce( ++ CPUInfo( ++ machine_type=int(machine_type) if machine_type else None, ++ flags=flags ++ ) ++ ) +diff --git a/repos/system_upgrade/common/actors/scancpu/tests/test_scancpu.py b/repos/system_upgrade/common/actors/scancpu/tests/test_scancpu.py +index 44d4de87..894fae08 100644 +--- a/repos/system_upgrade/common/actors/scancpu/tests/test_scancpu.py ++++ b/repos/system_upgrade/common/actors/scancpu/tests/test_scancpu.py +@@ -1,14 +1,59 @@ + import os + ++import pytest ++ + from leapp.libraries.actor import scancpu + from leapp.libraries.common import testutils ++from leapp.libraries.common.config.architecture import ( ++ ARCH_ARM64, ++ ARCH_PPC64LE, ++ ARCH_S390X, ++ ARCH_SUPPORTED, ++ ARCH_X86_64 ++) + from leapp.libraries.stdlib import api + from leapp.models import CPUInfo + + CUR_DIR = os.path.dirname(os.path.abspath(__file__)) + ++LSCPU = { ++ ARCH_ARM64: { ++ "machine_type": None, ++ "flags": ['fp', 'asimd', 'evtstrm', 'aes', 'pmull', 'sha1', 'sha2', 'crc32', 'cpuid'], ++ }, ++ ARCH_PPC64LE: { ++ "machine_type": None, ++ "flags": [] ++ }, ++ ARCH_S390X: { ++ "machine_type": ++ 2827, ++ "flags": [ ++ 'esan3', 'zarch', 'stfle', 'msa', 'ldisp', 'eimm', 'dfp', 'edat', 'etf3eh', 'highgprs', 'te', 'vx', 'vxd', ++ 'vxe', 'gs', 'vxe2', 'vxp', 'sort', 'dflt', 'sie' ++ ] ++ }, ++ ARCH_X86_64: { ++ "machine_type": ++ None, ++ "flags": [ ++ 'fpu', 'vme', 'de', 'pse', 'tsc', 'msr', 'pae', 'mce', 'cx8', 'apic', 'sep', 'mtrr', 'pge', 'mca', 'cmov', ++ 'pat', 'pse36', 'clflush', 'dts', 'acpi', 'mmx', 'fxsr', 'sse', 'sse2', 'ss', 'ht', 'tm', 'pbe', 'syscall', ++ 'nx', 'pdpe1gb', 'rdtscp', 'lm', 'constant_tsc', 'arch_perfmon', 'pebs', 'bts', 'rep_good', 'nopl', ++ 'xtopology', 'nonstop_tsc', 'cpuid', 'aperfmperf', 'pni', 'pclmulqdq', 'dtes64', 'monitor', 'ds_cpl', ++ 'vmx', 'smx', 'est', 'tm2', 'ssse3', 'sdbg', 'fma', 'cx16', 'xtpr', 'pdcm', 'pcid', 'dca', 'sse4_1', ++ 'sse4_2', 'x2apic', 'movbe', 'popcnt', 'tsc_deadline_timer', 'aes', 'xsave', 'avx', 'f16c', 'rdrand', ++ 'lahf_lm', 'abm', 'cpuid_fault', 'epb', 'invpcid_single', 'pti', 'ssbd', 'ibrs', 'ibpb', 'stibp', ++ 'tpr_shadow', 'vnmi', 'flexpriority', 'ept', 'vpid', 'ept_ad', 'fsgsbase', 'tsc_adjust', 'bmi1', 'avx2', ++ 'smep', 'bmi2', 'erms', 'invpcid', 'cqm', 'xsaveopt', 'cqm_llc', 'cqm_occup_llc', 'dtherm', 'ida', 'arat', ++ 'pln', 'pts', 'md_clear', 'flush_l1d' ++ ] ++ }, ++} ++ + + class mocked_get_cpuinfo(object): ++ + def __init__(self, filename): + self.filename = filename + +@@ -22,24 +67,25 @@ class mocked_get_cpuinfo(object): + return '\n'.join(fp.read().splitlines()) + + +-def test_machine_type(monkeypatch): ++@pytest.mark.parametrize("arch", ARCH_SUPPORTED) ++def test_scancpu(monkeypatch, arch): + +- # cpuinfo doesn't contain a machine field +- mocked_cpuinfo = mocked_get_cpuinfo('lscpu_x86_64') ++ mocked_cpuinfo = mocked_get_cpuinfo('lscpu_' + arch) + monkeypatch.setattr(scancpu, '_get_lscpu_output', mocked_cpuinfo) + monkeypatch.setattr(api, 'produce', testutils.produce_mocked()) +- current_actor = testutils.CurrentActorMocked(arch=testutils.architecture.ARCH_X86_64) ++ current_actor = testutils.CurrentActorMocked(arch=arch) + monkeypatch.setattr(api, 'current_actor', current_actor) +- scancpu.process() +- assert api.produce.called == 1 +- assert CPUInfo() == api.produce.model_instances[0] + +- # cpuinfo contains a machine field +- api.produce.called = 0 +- api.produce.model_instances = [] +- current_actor = testutils.CurrentActorMocked(arch=testutils.architecture.ARCH_S390X) +- monkeypatch.setattr(api, 'current_actor', current_actor) +- mocked_cpuinfo.filename = 'lscpu_s390x' + scancpu.process() ++ ++ expected = CPUInfo(machine_type=LSCPU[arch]["machine_type"], flags=LSCPU[arch]["flags"]) ++ produced = api.produce.model_instances[0] ++ + assert api.produce.called == 1 +- assert CPUInfo(machine_type=2827) == api.produce.model_instances[0] ++ ++ # Produced what was expected ++ assert expected.machine_type == produced.machine_type ++ assert sorted(expected.flags) == sorted(produced.flags) ++ ++ # Did not produce anything extra ++ assert expected == produced +diff --git a/repos/system_upgrade/common/models/cpuinfo.py b/repos/system_upgrade/common/models/cpuinfo.py +index e3e52838..ee245563 100644 +--- a/repos/system_upgrade/common/models/cpuinfo.py ++++ b/repos/system_upgrade/common/models/cpuinfo.py +@@ -32,8 +32,8 @@ class CPUInfo(Model): + # byte_order = fields.StringEnum(['Little Endian', 'Big Endian']) + # """ Byte order of the CPU: 'Little Endian' or 'Big Endian' """ + +- # flags = fields.List(fields.String(), default=[]) +- # """ Specifies flags/features of the CPU. """ ++ flags = fields.List(fields.String(), default=[]) ++ """ Specifies flags/features of the CPU. """ + + # hypervisor = fields.Nullable(fields.String()) + # hypervisor_vendor = fields.Nullable(fields.String()) +diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py +new file mode 100644 +index 00000000..98ffea80 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py +@@ -0,0 +1,63 @@ ++import leapp.libraries.actor.checkmicroarchitecture as checkmicroarchitecture ++from leapp.actors import Actor ++from leapp.models import CPUInfo ++from leapp.reporting import Report ++from leapp.tags import ChecksPhaseTag, IPUWorkflowTag ++ ++ ++class CheckMicroarchitecture(Actor): ++ """ ++ Inhibit if RHEL9 microarchitecture requirements are not satisfied ++ ++ ++ As per `x86-64-ABI`_ In addition to the AMD64 baseline architecture, several ++ micro-architecture levels implemented by later CPU modules have been ++ defined, starting at level ``x86-64-v2``. The levels are cumulative in the ++ sense that features from previous levels are implicitly included in later ++ levels. ++ ++ RHEL9 has a higher CPU requirement than older versions, it now requires a ++ CPU compatible with ``x86-64-v2`` instruction set or higher. ++ ++ .. table:: Required CPU features by microarchitecure level with a ++ corresponding flag as shown by ``lscpu``. ++ ++ +------------+-------------+--------------------+ ++ | Version | CPU Feature | flag (lscpu) | ++ +============+=============+====================+ ++ | (baseline) | CMOV | cmov | ++ | | CX8 | cx8 | ++ | | FPU | fpu | ++ | | FXSR | fxsr | ++ | | MMX | mmx | ++ | | OSFXSR | (common with FXSR) | ++ | | SCE | syscall | ++ | | SSE | sse | ++ | | SSE2 | sse2 | ++ +------------+-------------+--------------------+ ++ | x86-64-v2 | CMPXCHG16B | cx16 | ++ | | LAHF-SAHF | lahf_lm | ++ | | POPCNT | popcnt | ++ | | SSE3 | pni | ++ | | SSE4_1 | sse4_1 | ++ | | SSE4_2 | sse4_2 | ++ | | SSSE3 | ssse3 | ++ +------------+-------------+--------------------+ ++ | ... | | | ++ +------------+-------------+--------------------+ ++ ++ Note: To get the corresponding flag for the CPU feature consult the file ++ ``/arch/x86/include/asm/cpufeatures.h`` in the linux kernel. ++ ++ ++ .. _x86-64-ABI: https://gitlab.com/x86-psABIs/x86-64-ABI.git ++ ++ """ ++ ++ name = 'check_microarchitecture' ++ consumes = (CPUInfo,) ++ produces = (Report,) ++ tags = (ChecksPhaseTag, IPUWorkflowTag,) ++ ++ def process(self): ++ checkmicroarchitecture.process() +diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py +new file mode 100644 +index 00000000..0f1f1fca +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py +@@ -0,0 +1,47 @@ ++from leapp import reporting ++from leapp.libraries.common.config.architecture import ARCH_X86_64, matches_architecture ++from leapp.libraries.stdlib import api ++from leapp.models import CPUInfo ++ ++X86_64_BASELINE_FLAGS = ['cmov', 'cx8', 'fpu', 'fxsr', 'mmx', 'syscall', 'sse', 'sse2'] ++X86_64_V2_FLAGS = ['cx16', 'lahf_lm', 'popcnt', 'pni', 'sse4_1', 'sse4_2', 'ssse3'] ++ ++ ++def _inhibit_upgrade(missing_flags): ++ title = 'Current x86-64 microarchitecture is unsupported in RHEL9' ++ summary = ('RHEL9 has a higher CPU requirement than older versions, it now requires a CPU ' ++ 'compatible with x86-64-v2 instruction set or higher.\n\n' ++ 'Missings flags detected are: {}\n'.format(', '.join(missing_flags))) ++ ++ reporting.create_report([ ++ reporting.Title(title), ++ reporting.Summary(summary), ++ reporting.ExternalLink(title='Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level', ++ url=('https://developers.redhat.com/blog/2021/01/05/' ++ 'building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level')), ++ reporting.Severity(reporting.Severity.HIGH), ++ reporting.Groups([reporting.Groups.INHIBITOR]), ++ reporting.Groups([reporting.Groups.SANITY]), ++ reporting.Remediation(hint=('If case of using virtualization, virtualization platforms often allow ' ++ 'configuring a minimum denominator CPU model for compatibility when migrating ' ++ 'between different CPU models. Ensure that minimum requirements are not below ' ++ 'that of RHEL9\n')), ++ ]) ++ ++ ++def process(): ++ """ ++ Check whether the processor matches the required microarchitecture. ++ """ ++ ++ if not matches_architecture(ARCH_X86_64): ++ api.current_logger().info('Architecture not x86-64. Skipping microarchitecture test.') ++ return ++ ++ cpuinfo = next(api.consume(CPUInfo)) ++ ++ required_flags = X86_64_BASELINE_FLAGS + X86_64_V2_FLAGS ++ missing_flags = [flag for flag in required_flags if flag not in cpuinfo.flags] ++ api.current_logger().debug('Required flags missing: %s', missing_flags) ++ if missing_flags: ++ _inhibit_upgrade(missing_flags) +diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py +new file mode 100644 +index 00000000..b7c850d9 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py +@@ -0,0 +1,65 @@ ++import pytest ++ ++from leapp import reporting ++from leapp.libraries.actor import checkmicroarchitecture ++from leapp.libraries.common.config.architecture import ARCH_SUPPORTED, ARCH_X86_64 ++from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, logger_mocked ++from leapp.libraries.stdlib import api ++from leapp.models import CPUInfo ++from leapp.utils.report import is_inhibitor ++ ++ ++@pytest.mark.parametrize("arch", [arch for arch in ARCH_SUPPORTED if not arch == ARCH_X86_64]) ++def test_not_x86_64_passes(monkeypatch, arch): ++ """ ++ Test no report is generated on an architecture different from x86-64 ++ """ ++ ++ monkeypatch.setattr(reporting, "create_report", create_report_mocked()) ++ monkeypatch.setattr(api, 'current_logger', logger_mocked()) ++ monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=arch)) ++ ++ checkmicroarchitecture.process() ++ ++ assert 'Architecture not x86-64. Skipping microarchitecture test.' in api.current_logger.infomsg ++ assert not reporting.create_report.called ++ ++ ++def test_valid_microarchitecture(monkeypatch): ++ """ ++ Test no report is generated on a valid microarchitecture ++ """ ++ ++ monkeypatch.setattr(reporting, "create_report", create_report_mocked()) ++ monkeypatch.setattr(api, 'current_logger', logger_mocked()) ++ ++ required_flags = checkmicroarchitecture.X86_64_BASELINE_FLAGS + checkmicroarchitecture.X86_64_V2_FLAGS ++ monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=ARCH_X86_64, ++ msgs=[CPUInfo(flags=required_flags)])) ++ ++ checkmicroarchitecture.process() ++ ++ assert 'Architecture not x86-64. Skipping microarchitecture test.' not in api.current_logger.infomsg ++ assert not reporting.create_report.called ++ ++ ++def test_invalid_microarchitecture(monkeypatch): ++ """ ++ Test report is generated on x86-64 architecture with invalid microarchitecture and the upgrade is inhibited ++ """ ++ ++ monkeypatch.setattr(reporting, "create_report", create_report_mocked()) ++ monkeypatch.setattr(api, 'current_logger', logger_mocked()) ++ monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=ARCH_X86_64, msgs=[CPUInfo()])) ++ ++ checkmicroarchitecture.process() ++ ++ produced_title = reporting.create_report.report_fields.get('title') ++ produced_summary = reporting.create_report.report_fields.get('summary') ++ ++ assert 'Architecture not x86-64. Skipping microarchitecture test.' not in api.current_logger().infomsg ++ assert reporting.create_report.called == 1 ++ assert 'microarchitecture is unsupported' in produced_title ++ assert 'RHEL9 has a higher CPU requirement' in produced_summary ++ assert reporting.create_report.report_fields['severity'] == reporting.Severity.HIGH ++ assert is_inhibitor(reporting.create_report.report_fields) +-- +2.40.1 + diff --git a/0026-Fix-doc-link-in-checktargetrepos.py.patch b/0026-Fix-doc-link-in-checktargetrepos.py.patch new file mode 100644 index 0000000..c2e6f1a --- /dev/null +++ b/0026-Fix-doc-link-in-checktargetrepos.py.patch @@ -0,0 +1,25 @@ +From 7043c7e0c5e674f4337ea0d141e19e5cefbbe79d Mon Sep 17 00:00:00 2001 +From: Marek Filip +Date: Wed, 31 May 2023 13:39:39 +0200 +Subject: [PATCH 26/30] Fix doc link in checktargetrepos.py + +--- + .../actors/checktargetrepos/libraries/checktargetrepos.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py b/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py +index 77d53feb..5a53bf21 100644 +--- a/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py ++++ b/repos/system_upgrade/common/actors/checktargetrepos/libraries/checktargetrepos.py +@@ -32,7 +32,7 @@ def process(): + if target_major_version == '8': + ipu_doc_url = ( + 'https://access.redhat.com/documentation/en-us/' +- 'red_hat_enterprise_linux/8/html-single/upgrading_to_rhel_8/index' ++ 'red_hat_enterprise_linux/8/html-single/upgrading_from_rhel_7_to_rhel_8/index' + ) + elif target_major_version == '9': + ipu_doc_url = 'TBA' +-- +2.40.1 + diff --git a/0005-Update-the-repomap.json-file-for-RHUI-Azure.patch b/0027-Update-the-repomap.json-file-to-address-changes-in-R.patch similarity index 95% rename from 0005-Update-the-repomap.json-file-for-RHUI-Azure.patch rename to 0027-Update-the-repomap.json-file-to-address-changes-in-R.patch index 29b7414..91b5e04 100644 --- a/0005-Update-the-repomap.json-file-for-RHUI-Azure.patch +++ b/0027-Update-the-repomap.json-file-to-address-changes-in-R.patch @@ -1,25 +1,26 @@ -From 1240116a7989f24f00a06273104f059449516365 Mon Sep 17 00:00:00 2001 +From 548a3b77e7dcf214bc1319f2cf47a0612dc78573 Mon Sep 17 00:00:00 2001 From: Petr Stodulka -Date: Mon, 5 Jun 2023 16:24:03 +0200 -Subject: [PATCH] Update the repomap.json file for RHUI Azure +Date: Mon, 5 Jun 2023 18:37:07 +0200 +Subject: [PATCH 27/30] Update the repomap.json file to address changes in RHUI + Azure -python repomap_diff.py old_repomap.json new_repomap.json +Diff: Upg paths are unchanged. Mappings are unchanged. The following repos have been removed: - - Repo(pesid='rhel8-AppStream', major_version='8', repoid='rhui-rhel-8-for-x86_64-appstream-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') - Repo(pesid='rhel8-BaseOS', major_version='8', repoid='rhui-rhel-8-for-x86_64-baseos-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') - Repo(pesid='rhel8-CRB', major_version='8', repoid='rhui-codeready-builder-for-rhel-8-x86_64-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') + - Repo(pesid='rhel8-AppStream', major_version='8', repoid='rhui-rhel-8-for-x86_64-appstream-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') The following repos have been added: + - Repo(pesid='rhel8-AppStream', major_version='8', repoid='rhel-8-for-x86_64-appstream-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') - Repo(pesid='rhel8-CRB', major_version='8', repoid='codeready-builder-for-rhel-8-x86_64-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') - Repo(pesid='rhel8-BaseOS', major_version='8', repoid='rhel-8-for-x86_64-baseos-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') - - Repo(pesid='rhel8-AppStream', major_version='8', repoid='rhel-8-for-x86_64-appstream-rhui-rpms', repo_type='rpm', channel='ga', arch='x86_64', rhui='azure') --- etc/leapp/files/repomap.json | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json -index 88116e2..14b6f0d 100644 +index 88116e2d..14b6f0d7 100644 --- a/etc/leapp/files/repomap.json +++ b/etc/leapp/files/repomap.json @@ -1,5 +1,5 @@ diff --git a/0028-Add-prod-certs-and-upgrade-paths-for-8.9-9.3.patch b/0028-Add-prod-certs-and-upgrade-paths-for-8.9-9.3.patch new file mode 100644 index 0000000..911cacc --- /dev/null +++ b/0028-Add-prod-certs-and-upgrade-paths-for-8.9-9.3.patch @@ -0,0 +1,748 @@ +From 855c025f455f3c5f4949f016d39b573666789ab9 Mon Sep 17 00:00:00 2001 +From: Matej Matuska +Date: Mon, 19 Jun 2023 12:26:17 +0200 +Subject: [PATCH 28/30] Add prod certs and upgrade paths for 8.9 & 9.3 + +--- + .github/workflows/codespell.yml | 4 +-- + .../common/files/prod-certs/8.9/279.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/362.pem | 36 +++++++++++++++++++ + .../common/files/prod-certs/8.9/363.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/419.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/433.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/479.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/486.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/8.9/72.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/279.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/362.pem | 36 +++++++++++++++++++ + .../common/files/prod-certs/9.3/363.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/419.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/433.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/479.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/486.pem | 35 ++++++++++++++++++ + .../common/files/prod-certs/9.3/72.pem | 35 ++++++++++++++++++ + .../common/files/upgrade_paths.json | 7 ++-- + .../common/libraries/config/version.py | 2 +- + 19 files changed, 569 insertions(+), 6 deletions(-) + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/279.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/362.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/363.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/419.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/433.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/479.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/486.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/8.9/72.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/279.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/362.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/363.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/419.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/433.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/479.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/486.pem + create mode 100644 repos/system_upgrade/common/files/prod-certs/9.3/72.pem + +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index 50115826..1348c7fe 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -23,5 +23,5 @@ jobs: + ./repos/system_upgrade/common/actors/scancpu/tests/files/lscpu_s390x,\ + ./etc/leapp/files/device_driver_deprecation_data.json,\ + ./etc/leapp/files/pes-events.json,\ +- ./etc/leapp/files/repomap.json" +- ++ ./etc/leapp/files/repomap.json,\ ++ ./repos/system_upgrade/common/files/prod-certs" +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/279.pem b/repos/system_upgrade/common/files/prod-certs/8.9/279.pem +new file mode 100644 +index 00000000..db37263c +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/279.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJTCCBA2gAwIBAgIJALDxRLt/tU+JMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTgyN1oXDTQzMDEx ++MTE0MTgyN1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtjNWViY2Fi ++ZS0yMjgwLTQ1MTAtOWIxNy02OTg5ZDljNGE5OGJdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AQQBkggJAYIXAgQFDAM4LjkwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM ++KwYBBAGSCAkBghcEBBcMFXJoZWwtOCxyaGVsLTgtcHBjNjRsZTANBgkqhkiG9w0B ++AQsFAAOCAgEAZ5VTVzFyEs0H5dkrav/ynp2WADNCzAVBk7byHzIniDA+9blCDyFi ++w6Yb8KcDEpk4LRxj5wFWSdyCBGX4QpmHZkzxISk49O4MiOhpcfNKwNPzl7p8zdvO ++nm7H+ZIwPWHd5jKvxORsqB8Y7Tk6xM3usXcwSsv93jijIY7nifKIA1kUovi8h7pw ++ZxAys/ABvkegVXp2783GSc9H2ItWVExBEb3rgCkzW5b+ltRnncDYB4lRH5GlND8Q ++OBrth+253HImkA1mSvWewOwOcdtPB79IKkgF2P3vfrakFQva6F4vA7KKcIBdPf/I ++D1wuniZyBxwvKSdN62jy2LWgkSM2SoXpDyUVE0fE8qkoXEcuAImVWeaL4o0uoFn2 ++tZ141z7pG8uMzPweS+x6LwmezftSuUtVh2rESuszfvR8dckPvA2a39BU4qpxt4Nr ++nyosCDBxT3p5CZyvVzFalanZd2J8aWnertrn1K+KMi5pEmqPCUccGwHZe6wvaEAu ++yKUOXdcjs627TIce2OGNAu92cNXeZAsG3xAzzFxo/mBx8TxaMNL579sf7YYsfdY5 ++L47yhN5LD1efLfP1yQjrdcwR3LKVg8NU0JFc2xBf9tnZ1vzlT350nNkgZfkNhoLi ++mTSquBuT+oOdcmNrJIpv65hyRG08YGhS0AAMYsheE2TGcjo6VPpQCDU= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/362.pem b/repos/system_upgrade/common/files/prod-certs/8.9/362.pem +new file mode 100644 +index 00000000..6fd40e9e +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/362.pem +@@ -0,0 +1,36 @@ ++-----BEGIN CERTIFICATE----- ++MIIGNDCCBBygAwIBAgIJALDxRLt/tU9zMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTY1NloXDTQzMDEx ++MTE0MTY1NlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs2YmYzNWFh ++NS0yOTFlLTQ3MzktODBlOS01ZDZlODJlODM0YjJdMIICIjANBgkqhkiG9w0BAQEF ++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 ++GgYMKwYBBAGSCAkBgmoCBAoMCDguOSBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw ++cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTgscmhlbC04LWJldGEtcHBj ++NjRsZTANBgkqhkiG9w0BAQsFAAOCAgEARkOuDEfPta9hzL9cW/KcxeJMKSCIDnYN ++s9+ROCossSvxA7aLedpTcQ3S+rKbw4gDHjwG2ej1xrt3GWc7Kbhmdofk1fKPn4M/ ++70Iy6bWcwagHLgUNMziQEzftogYbmOtxMZKX7E1bk1DqvROs2kg/2+a1b/5Z51gT ++a5B9SjFPF02FmlqIaFt2mVKr2RjfZo9c5J16lbZdNKLTXxMZbcxJF6DH0xyyft57 ++MyMsl7fcIH81Lz7kFJ56EfnJvy2H+VCxKYIJZFetAaQKqyPGqbid9QH/ZMHB3tYv ++sjWd9Dn0jeuQ6K4Cb0wqEx84a9REh0Ige8r9AY+wwWwuivpmCtFtGccEwmMvL657 ++kBMffttaCCyL83GupdTg05+1AokLIFNm0UE/+ma69JOS2hvjM+pC/eMJGZlRAOWM ++oZtsKoKU42oAA9sLSbHAKAN54hnRKOIGABdOGmHOCwPm7tZJ99ZkQo8vli/hCuBE ++pVZiFGYbo34mlsOcJxjBI/4RUIXmWijbgHQemJUgWecbEHlEYu7yR1aVWDraTAKm ++vxxf41D4xDis+g9dspHQWwqxHJ2QsOPp1AtXThgO5vJ6Mu0sd50SDXiD0qrMq/5l ++95Gaa5Ih6JjFttlftftJ6l3rsycLLwoPBcHKMptgyin1ysg/TsRZ9OvznrMhTT9w ++nEMeBZgLxXU= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/363.pem b/repos/system_upgrade/common/files/prod-certs/8.9/363.pem +new file mode 100644 +index 00000000..803aafc2 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/363.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJjCCBA6gAwIBAgIJALDxRLt/tU9yMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTY1NVoXDTQzMDEx ++MTE0MTY1NVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtlYmNjOWQw ++Yy0yYjU1LTQ4MTAtOGY0ZC1mZTczYzViYzYyNDJdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQKDAg4LjkgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE ++AZIICQGCawQEHAwacmhlbC04LHJoZWwtOC1iZXRhLWFhcmNoNjQwDQYJKoZIhvcN ++AQELBQADggIBAEKQU4JdkRynFZJqFN6waBVJsSWfdMPvCDZ7C+aJiXjeJEzccziE ++QK1rN2TiZzMcJdGu4eimXIPdjz5gZnupy6ZbNZLjGBfCEuIGQZLOF1aBwdM/chPq ++bZniU+Iu3VmJZ5nBdYBMwWee8I9E4T1Ia5m8sh93pL9F8M4a/SRBG26tSTRPHf3I ++zpEIR7nsbussbApcSiq/sGOr80DDycpS2hc5qPiICnwPIfGQNEgMRA8G//3JJZ1q ++4nwG5WHxLK68K9i9bUKOBVizEiAnqGCdDcTez1Qanags95Uvebnpx6QvST6b4bjG ++8pvbu8GTw/CGnYSw9pg2Is8nkDIQN66j/JGcbysFad4vldiLjUYkjVpdxYUT6fVE ++jmWFE0Px6jf7u0NqD3sjKVxy5RwcBorrYC2TM4tQfJbrTfVhJXxRUFVKkcq8q10a ++zhTISai2re7qPE08SQ1pzQ98KV44ZY0atnGOhb95EKhE1+Nvdzjf0aNDzcWGHTlO ++TwaoGeZXgh0xRUj+6+MXsk6c5PLNnEUOdsW4pkYt1ew0FhzkyED0hr2rVAUXSBCH ++5nJ7N6DStcVZwgc7j5c57c8+a22L6R6ncuoZh7qmujVN7zgvP/6c7ZcGUixe+I7s ++h/14X8CuC12Hwod3A9Qod/7LorjbKAO45xIWYaMjvnYVgwA26Jk5Uapb ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/419.pem b/repos/system_upgrade/common/files/prod-certs/8.9/419.pem +new file mode 100644 +index 00000000..c41dc91d +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/419.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFzCCA/+gAwIBAgIJALDxRLt/tU+IMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTgyN1oXDTQzMDEx ++MTE0MTgyN1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFthODQ5MGNk ++YS04M2IwLTQ2ZDYtOGRhMy1mOGU0YTY4NzQyZjFdMIICIjANBgkqhkiG9w0BAQEF ++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 ++OC45MBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX ++DBVyaGVsLTgscmhlbC04LWFhcmNoNjQwDQYJKoZIhvcNAQELBQADggIBABZR2AuL ++G1qvNs6+3mXN3QncJaKV5BenG8lglARP2V0+R26F4vbJJ2bxSc5Xyr1tp+qji2fL ++POJSwCwR06RDMhUEs8N5cLfpzDpXhq9KPF+L3GEDemMeWzt4JeVI3ekJLPWqm4L/ ++5qxFsqL1GFYvDK/Qd9Rf5NEsum3Phv6y9aYhmLPEnDcKxhl0+ju3nth68p3pnk7b ++pJlUQ+xsVuQixG8OBAugPcbW624Nf6g9R5ZtwAFv9t709zUjqI4HCJJAbgfAI18Z ++uPiHs7S42xY3XVTTucx2DAkKlMi4bS9Pk/EK7r5xiiDZkN1zqyYVN9kKUqJGhtFq ++w1W+SPuryexcZ6lXzZUzaxQXc2u1N1ATGdgubyS94O2lY6XM7JAN+nSe51xrbtcM ++XOwibUGCmELek8wmJTSIj1kFo/7vBVgyqoffDOgmRXpogFCJZk2v69WVCWmo2BYS ++5LnucG8iZMQ1Ix+6llsNgCTp32zApk26DA8WYzGRsXv88TWhNpI0iQjO9HMhJlBN ++PqwrQpyprOFwKsKJxWSC1kcEPJ3gYJVawUq5hbYxpUplxt1q670xfKqN0egXcUrL ++rnNWYsq+pJpQo601pgP2eQJQRWzWFwioYkbbliPMgFQVuKQATGq4l2VZn/PQ/SSF ++/CDtUf1/ucR7cRcl/AT1MVlkC1DrCHb2yDgh ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/433.pem b/repos/system_upgrade/common/files/prod-certs/8.9/433.pem +new file mode 100644 +index 00000000..5ce693ee +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/433.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGKTCCBBGgAwIBAgIJALDxRLt/tU90MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTY1NloXDTQzMDEx ++MTE0MTY1NlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4YjkzMzU0 ++Zi1lMDdmLTQxYzUtOTRkOC05MWQ0MGY0Y2NhNWRdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AZIICQGDMQIECgwIOC45IEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG ++DCsGAQQBkggJAYMxBAQaDBhyaGVsLTgscmhlbC04LWJldGEtczM5MHgwDQYJKoZI ++hvcNAQELBQADggIBAKH1KhOE0yRAcJ2aqMvGlfrhqEPhtzBNp73vt0QNyNDlU3Ud ++ijwKlTIsmLFbAXGQj4WdR4TbCm0BZP4+6pMPjwhFXHdU5fHpOD/BiIV7csZKNWZy ++HpuBv0Kp4Xv7yJoHy6YhPoaIPIwDX4VPPjoSccn2jHUDGg/o9mTyUZfCnIe5GrwM ++MDck15uvG5kRhIkCcW6AkJuaNpPNLLHLjX7VNDYwAYllmWbozu0YQ7KhHHslT0z3 ++HFlDVFbrt3X/0Zv0DOrkN/50f0i6KlPevFBBdvPuGTkPIRANSmNGu0DRn8fF1G+3 ++8TrAi1tIBaQ6E4/RZJ3y0YGnV2fO/bDuv8qscQGWoSkmFEAsrvCih5swoBhJ8aPn ++6FusamiIKH/okwX59eAA+yhFfohmsrn3kxXNbDOfozchHYuP3trk6jfDLsS6519f ++cHGaJtmzVNfsF2QoHp9aWbkgE0kzBPUOvXOa6T3AXYcTzhkpWDR+MxcUl9y/eNh1 ++s/hbiQH7BBMHq+/sMPD7n3Dus51am1xamDy1B+v8b5p8kNTbrUR0uzEzCQNsrZtM ++jSa3SziP+DJwGu5Ag2qFAfI5rXFHCPrk+fgeg/4uSz+Smtm1W1mqK0AQMmYBqgCq ++q8WPWP8kQt79RbtprUgNTCvSg+mY18uiyO6B0VqcT9gRIE6/oTXR7RfFCH6h ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/479.pem b/repos/system_upgrade/common/files/prod-certs/8.9/479.pem +new file mode 100644 +index 00000000..c8952280 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/479.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFTCCA/2gAwIBAgIJALDxRLt/tU+LMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTgyOFoXDTQzMDEx ++MTE0MTgyOFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtiOThjZDg0 ++ZC0yMDk5LTRmNGQtOWM0My1mYWFjMjI1OGExOTBdMIICIjANBgkqhkiG9w0BAQEF ++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 ++OC45MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM ++FHJoZWwtOCxyaGVsLTgteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQB0AKa00fqK ++1LSDclHITX5fN2fBiT9mU0yen8ku+tOFZQ2zkkspGSEE+//d6jXn7xbYByf4YMmN ++M4wzIVET6uJ8uvi8Z/D3Pktm4ErPQMjZ3N3J6oKkrgZSaaqvMS+YCbaGKL17iOxz ++QwXub6oSpfW0KguSeCPtJ2wODQs45ggIPPdnuJsiyn/nXRwg+qlM0KPpn0y4TWHM ++tmAf4Vu4Bz9wdqQylZ1n8oIX5vm0R4m7ihM0zLyt4tTucMr1dh9H8V6Cw/RGg1b/ ++J2Z8HvtIWfOa0dmLDkYxbmZRfoBXKjG8KTE0PrvaRuaa1wb7P9ZhVw8yfHqSG4QS ++DqHEMaYpodqjYKcmRpAd7yR16OpEMv+j5oOHiXwyR51pKjconspuSdD9Oso6o/H4 ++JFloBTzAYWV5FMeDMzDwJ89D3T8okZwv/jftIlCMHcQFwKvd+pPQGrdJkLc06WsB ++RtKb89s7pwaqpItHScFypX0DzluJ/uIy6cT8xGjbbohyvRhCuUxEcNmlTUmMlQT9 ++ll+5nCh6g+qUFFRclCAYstnU+7akEEa+L8sLcq7Bs576ZYlbuoFgBbXhYA2YU95m ++OI/q7kF/hm5p8pHNw/JnRzeX7Fo+n4AyeOBT9Az+bTis4gyCo3v9sAuLyscrCPtv ++0Vkuk+SRppk0hoUZzNtyeMAAzLFK+juhpA== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/486.pem b/repos/system_upgrade/common/files/prod-certs/8.9/486.pem +new file mode 100644 +index 00000000..9ac3b351 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/486.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJDCCBAygAwIBAgIJALDxRLt/tU91MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTY1NloXDTQzMDEx ++MTE0MTY1NlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs5MDhjYjA5 ++ZC1mOTlmLTQ1OTEtOWViOS02Y2E2ZTg2OTQ1ODRdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQKDAg4LjkgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB ++kggJAYNmBAQbDBlyaGVsLTgscmhlbC04LWJldGEteDg2XzY0MA0GCSqGSIb3DQEB ++CwUAA4ICAQAFLcBknEcS9WQCE5QzsjzEKMW2FzObxTJk69Al1/gYVfYmWszd8F5V ++jUyd077DiWkqaHGYR64/E7acdSRd1npms52Jj07YGQTshIbaNQLoseQeJ8b/Bcma +++Htrr73JWK+rcUdOiLjv+7gykFevxptgYUACLnjfJxxJmVWBVt5305yOgvFj6Sip ++RTALMY0uQty9/T4HybURCjK+hHinnDPypGKEg/7KRpjpQ8kRGjD5IZQ4sQzHkrIE ++fvVHs4t5IIYJ5iaR6ropcBUrBrz+loTOfcCAoUhAVjYDIOJnuQm2XVNgbM/uDBZG ++fwI7XKauUVvNa/h2tbSQ/f3cyEVbfSwfv8nlLoWe4XYvipTQpPcIDvm8GgOuiyax ++kXy5a2ToyiAfepEeJhSBX4IM38TjWiEn2+jcapaQSuAtH6Wy+3HWO6qpnRQ8sRF4 ++WrK+WqW2DnTop9K1fLdUnwjFimZDdBxwnnJ0JLop7ZJWchKFFT3oxsykBMnH+6gm ++O1nHZpgtBAcOj+qLi6z+PvptqBxeTSnSQbdEWpsC+RsWXIOvvTllHRduKU62PdSg +++87Mp4opiStjhgRVDq1Ba8XWxo/rlf6HDuPI/uut4XhZ8tpsJ+aj6t0lQLU6dm81 ++1Vjw3yHlJy4ire6E9jzz9q1JNYLWWLJCbPEPlF4hd8zw6nAfDzSNmw== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/8.9/72.pem b/repos/system_upgrade/common/files/prod-certs/8.9/72.pem +new file mode 100644 +index 00000000..9d896b59 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/8.9/72.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFjCCA/6gAwIBAgIJALDxRLt/tU+KMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExMTE0MTgyN1oXDTQzMDEx ++MTE0MTgyN1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFthNDU4Nzll ++OS0zYWE4LTQ3MTEtOTIwNi03M2Y1Yzk3ZTAwYjVdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQFDAM4LjkwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE ++FQwTcmhlbC04LHJoZWwtOC1zMzkweDANBgkqhkiG9w0BAQsFAAOCAgEASZ0dxU60 ++Wrrh5ApGxwe53AbbIiDdMc4641p2IbVM6J3/09Er4orl6xch0s/ReVbWgYfO4DDT ++q+L0f5csn8HggdFHmEvjFwJ1IBWj4gWpBQuZy4MSowntNla2MnVeFPKBK46qrDNO ++SQKwEkIRB5hYKMDAwZFY6ewuuVpEnhfBoSfr/Xg7e414pWhRaVlTk/x6L78KZk9j ++7gw4QpptMq9r2qp+TaAew76g5bVDLDnCYTX3c+MGqVZcj5dw3TUctvLYRc+gY6gO ++5bpmLCbtsD19IKqB4Wi7IF/NqdN4YLBaNfedyugzUDWkJWt1mIZfunpsoQm0Yys7 ++upkEMwgfMBclq9QDnO4jbOC3cnp7qKgkim94wxPdGf19xijSfBnIwIwuFxzJPFpe ++spp8DUz6alwyBmM9UjIzpybfMVOKDHR8LCiB53EMJW2nxWgW8nItYSMbfsNukAJv ++Md4UKRJ5zHB+xcyAI1NF7KgfrmScC0HwZ5BiDDK1iZHAeTOH6GtNkii4HSGvuZAW ++m7ujIHohHCfIKiZiR2YfMnWhYQiH0Y9CX9k4wDWRwdyMRQQftX5RUWLzxFbferTG ++gSVVQjLpeCaWZv3jqekrGzNK0jcaUTTPi//FyeCE8aNXET6M+aK65AmsgnPL+a/K ++7SvOvOa0GfDBoH++jO1u2fAK4DqLd5iFv/o= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/279.pem b/repos/system_upgrade/common/files/prod-certs/9.3/279.pem +new file mode 100644 +index 00000000..dc6d933a +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/279.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJTCCBA2gAwIBAgIJALDxRLt/tVOwMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYxNloXDTQzMDEx ++ODE3MjYxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4MzNlZjBl ++ZS1hM2U2LTQ3NmQtOTczZi1lM2I1MTczMGJlMGRdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AQQBkggJAYIXAgQFDAM5LjMwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM ++KwYBBAGSCAkBghcEBBcMFXJoZWwtOSxyaGVsLTktcHBjNjRsZTANBgkqhkiG9w0B ++AQsFAAOCAgEASI4aXuhlVXPj5zmgb3YBTJzQ0QA/+e8jfSmm5NEOagwYvSg5ISp8 ++urRpmGMnOJboeXylvSmqPIjVQoJeTk1yE7OqB7F3NDEiPY0QCOHpvHdHd4qjwpp5 ++yw2NVk9+8b/3vD3M49bGlOwG2pHSaeybPlrJLBPF2ARHO0HxtqSx2spB0k6XBBG/ ++rB6PUtUKbudtCvVNuG70YPAXpvGANgwHNWP6o2EsnZPvATrmvA/PtElNCF39syqJ ++Y1yYe+FYkr9y/ToUTDUFN4aRljrFCHZrGCwz8xI72JqKAB5EaLWdiETWaeWL3VCi ++6CVRDSQ/BvSl+C3bJ7n98Rlt+hEawxGK1zs4VAvpOVq2A1jas9Ia4S+1xvmWVAdi ++it/vH//5I2qIwjE2CGY5Ov5vywW0JT9+kxL1zGiOG8kwxmOdllqqFqQW8eKK9mUe ++HMLZKKX/ASfpg23B8ZaEFiaOCHLqirGc2hokPFWELv6lNclqFajMdWPNwDglP+OK ++ljg+4XC3gqYgt0Cjv/skg6GnWMh4F/xRWDIQAx1TwWPbdF9f2tEmoRspNj+0FLCI ++0rTZ5JRKA7w8tD0TBKZooH7iMxdcJ+mtccp7F3SWpbZMNwR/HxoEbXCtgIhX4mPf ++eJxFT+hA2DbrMI/hPQj7UlSt+suyTzPYphXHy25XGvwxSo/ejudOrq0= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/362.pem b/repos/system_upgrade/common/files/prod-certs/9.3/362.pem +new file mode 100644 +index 00000000..80a0beb7 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/362.pem +@@ -0,0 +1,36 @@ ++-----BEGIN CERTIFICATE----- ++MIIGNDCCBBygAwIBAgIJALDxRLt/tVOaMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYwNFoXDTQzMDEx ++ODE3MjYwNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFszY2M4Mzk2 ++My01YmI2LTQ2NTMtYWM3MC03NTc5OTFjZmU1MDddMIICIjANBgkqhkiG9w0BAQEF ++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 ++GgYMKwYBBAGSCAkBgmoCBAoMCDkuMyBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw ++cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTkscmhlbC05LWJldGEtcHBj ++NjRsZTANBgkqhkiG9w0BAQsFAAOCAgEAAZCh34sM762ZlnRF4Gi0hfmRr+z9pDmn ++IKw7M3wonyVmvPOCixNMjJGY5K052ZA8TDctC5FfJoKdr3cbEqIxBhHAVS8UYmhu ++qK4egMqUNI3Ui4DaYCDw9Ic7UDZ6KEf2FbK8OHGSZgCG6KCcECGJ/mBzryvP3Ctc ++KYdRHZLJ9h/HmjjD1fhQ0mZySNzKu3XlqT8fqi8g9XLS00defVKrc5G6TdpQJoaQ ++koWLPmSsWQTjQlo6GuTpe/lcsYWzEqjwOpX7eltkAXGYZTf47Ao02XfVuVoRvIEJ ++uESGh18LskQLacrrIBoztjZK7BQcCDfaL26qW5cPSPbZcBbMbc2Y/mL6zCfnaf2t ++VQ0hs2+n/U6f5enymfig9jYdhqq4NvnhhTNC5VZERXuR92bnkyBozogtRQ27RHFT ++cKRF6v6tG8/KWZqmHj4v+yLh0s3ECFH48wO1dzyFhQQWhwxmXQDb5XA8OjpxEGt/ ++F9HrNoJhyhXLEc4Sphea5XsDFUYZbGR/MO7f7Pa5SeVqmz35BOLpZVwzU2Dq65Ww ++RPl+litDq4YrrPmdbagB0P0P4uU53i0k8oWF57eqEGgtgJEMlXFkAhwgQ1Pdh37p ++KoczLfGsv79MDbtjbwXZZ1AwDpRlkjEGOkb7zDkYiVhr/UE+Mwv6qNXgdhuKA674 ++GXHtOldbC38= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/363.pem b/repos/system_upgrade/common/files/prod-certs/9.3/363.pem +new file mode 100644 +index 00000000..63ccf162 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/363.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJjCCBA6gAwIBAgIJALDxRLt/tVOZMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYwNFoXDTQzMDEx ++ODE3MjYwNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtmNWYyNjUw ++Zi0xODVmLTRkYTItYmFkYy0zOGU2OTBhYjY1Y2FdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQKDAg5LjMgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE ++AZIICQGCawQEHAwacmhlbC05LHJoZWwtOS1iZXRhLWFhcmNoNjQwDQYJKoZIhvcN ++AQELBQADggIBAALbefHcK3VySf323O/ORY07zjxqGZAccrIT5BhvyCmr4DNtElMO ++5JdcTuabdx8srv+fHbne8DPKunXwxXoiCE3OuROwb8TvxEkdhNt9X+MvyIIaqAJE ++yftfq2fzh01rtSwu5PpWQzYX7NqFaJnZAOT0aVMZfufGuBflP4wWUBfhVdLt0/uJ ++NSe59gFuq9U8XPfDk7rcL1gmHT+n+4rxaNUtrRul0o8KR/kCytTYmS/HrrAfmzQW ++w/oJOqMIfjmgCTNkE4j/ZGR5hqGcxLvqHBV5cD5Og7bPLhM/FCEc1QdBD6Gkoocu ++R4k+oZuT2St12cD56yB4gVSeFX4XYt3ehX+zmHP1el/m6ZFM1SPqIsHbs549cG9D ++s8mNxlMIOY47n3welSYWvGOVEReB1ihX74tDmfC3keg2t5qVCyQHKAddQ1z+GM0Q ++ngiJuYEf9rUFuFe23bEy3NkCLWSfQYDsHC1FjaOhxUCNSkN6YW8IUXQWz5Rb5Som ++NucA3B+F7e43hi5ZOgHQ6BY+OiUnyt2XUWbJqBuapiq3XWuDMT5hkVC7yEqS0X2u ++jHluXbxExHjkQydVWQvVDSffOcimcHTddAGMI3UFmDAzzdRXlbm/By5uGZQbUcag ++MG0E415u4myf7Sry8X1Fc/Dgmxj+aU6jsE+0Ur2J08iUC8FMoqRaVNs/ ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/419.pem b/repos/system_upgrade/common/files/prod-certs/9.3/419.pem +new file mode 100644 +index 00000000..a64cb936 +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/419.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFzCCA/+gAwIBAgIJALDxRLt/tVOvMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYxNVoXDTQzMDEx ++ODE3MjYxNVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxMDY3YTc5 ++Mi01OTk2LTQ3MTEtODgwMC0xOTUwOTU0NzU4NTBdMIICIjANBgkqhkiG9w0BAQEF ++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 ++OS4zMBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX ++DBVyaGVsLTkscmhlbC05LWFhcmNoNjQwDQYJKoZIhvcNAQELBQADggIBACN+Q+sC ++Czu4DtARf+f1yOJbM6fZGI0j8O4uJ6fm6pTCG5VLMhaOmz19MF3tjd/3ZpyZirq7 ++dUoYiTA1IN9k/f3pm8uunCmpG3tJyM7x2wL72B+7d37UbiaZ042h0oCjy0jb9CBg ++cfb9g+MNCCWBoAExpFavwG8x0FQCoxWIOal/yYN8GGGTZYZ7oj3dwpdJ9XYhSI2J ++YhHaaiQJAQihl+m9yVRw6DKm98tfgMPh2C7W5Wp/krFQbE5vcJZbkX7IN298grd5 ++uacOMYUK7szcGCW957rCto+she4Ig6Z/eQznWzAtQz99rVzDX0D6rV8OgYfmofXB ++E/QebHOlLe8M17rZPslGD4UHXqZ0aqeKFLUzpM45jA6jJ5b78r7KpiPcYFE5OpFR ++6NakTavJ8ilUBIgSXQicVZH5LNvELgO5dzCjlrfJqj5tGvPwEHUP/uSpKg0Z71DH ++2yW9U4WoYz3s1FEc5vcXrU+vz7Pxl7sELiJ753fH71kUyG2QjwxgfbdH0YwZ/a/t ++sTrjyTrFpOajacPSdBp/SMOul40eRkJPmDNRp6kIzU+wRKO+x2Dsm9ZNklTk1Tk5 ++FX8y1eyYUyO3IPRFzO9tmQYvNrCbnxtnVHvsiK2bQFkKEy8SUOYKbjOJ9p4koAjm ++zNT9mgMCVTfmKugrpVbptkDlWlbmRMGakOs1 ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/433.pem b/repos/system_upgrade/common/files/prod-certs/9.3/433.pem +new file mode 100644 +index 00000000..9c9fecfd +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/433.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGKTCCBBGgAwIBAgIJALDxRLt/tVObMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYwNFoXDTQzMDEx ++ODE3MjYwNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxODFiNGNm ++Ny1mZTJiLTRhMjQtYWJiYy0xYzJlYmUwZTRhOGVdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AZIICQGDMQIECgwIOS4zIEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG ++DCsGAQQBkggJAYMxBAQaDBhyaGVsLTkscmhlbC05LWJldGEtczM5MHgwDQYJKoZI ++hvcNAQELBQADggIBANaD1YdjSAn6VNTSFKuX/sIc0VhrtbcXLXj6U3AdDvoJN4Yi ++Qm3fFn2Y4N7W8U8gREaIxRaEUG3G1Lru6S9uYIoZu6w+faHOehbKyTU07xJ3YwIU ++lWdIciAwnOsUxnoMN7NDW1caFGPUTgPrDArzkHSyn88Hh+dmtuocvZ3s7WSZqXTC ++opZjxbP/O5+Td7NKBNmAEdi7lIQVWcljyrv+2HxlYiIfZ6o0iRBpbabhxoKCDXG1 ++p1e5Pz92nXXPHG0lWvw6XNCebnEwU91ndEebbRI4lIe7FNYdIIhylWW8wAmPT7eP ++rEX6Q4Vd3LDbGwcGQXyxVgpqCyW62VN9BlBIRHowGI9qKPBctTANUmmyNhswiiO5 ++j3UtRHCv3iJcpEv7iW6volH4HwF+uv/PtGJCHeDWnt6qUleBbtjvmapzCRhUOzID ++To7n5blIFCptEfcBUnT8SlUZWKQ2lhf5KZ0k9vPHWtFib0pJ1WETwTiho6BeoY8F ++2HfD/6xFuOHshsjkl3druUpX3xjLOqqCaSDKwGwJTMt+TT//GwasL7OvheZG4dIa ++OrZXnzl+pw5cNSofOC1FWKi7xD0x8fAmQbMwLf/eKrpynVnFvcDsWbEAtZfU6jy0 ++i2oFGDjHYX9VwnB9pjRk6gm7Y1eCQSkheP4gM/w7+FVuW4azbJ3R4vQm/kSO ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/479.pem b/repos/system_upgrade/common/files/prod-certs/9.3/479.pem +new file mode 100644 +index 00000000..8217fc3b +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/479.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFTCCA/2gAwIBAgIJALDxRLt/tVOyMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYxNloXDTQzMDEx ++ODE3MjYxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4MzdlYzZi ++OC1mZWQyLTRhODUtOWJlMC1jMjJkZDM3NmE2YjBdMIICIjANBgkqhkiG9w0BAQEF ++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 ++OS4zMBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM ++FHJoZWwtOSxyaGVsLTkteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQDDwbB0lRuo ++eheuRxVPx5mOpwMk72D4/940FBBIfgpJ0tyelkSOEBnL4GmN5HzN6vXwyj03N/M7 ++Q2d9lAMKjsobWJZ4Wd12eJhB1FYUd/LNv62T9QL1Xac7ve/LWUNIXygcazh2nwVw ++jJo1gzJ9BLIExZiNLpBESeMcJn+Vgi9tQGcqD+QjWH5E14xwHD1j0Ni8GuQpr/S5 ++KS1sF1rVl+m5BZP93NfNlijL9OXIzUyX78wq3vh+YcfrtyMi4Ric3s+6sXz/1l1E ++EfUyzxJy4AGuzAYA1zGmQhNv0GrqWnXoqjyNPCqZz3c5K1o6BaQGZoyojA6sSm0D ++2QW0j4haVimS0x8FboEOHIxpxNl91iTQ5OwzwmGxzNssW/w+guPzGjo9fPg0gptY ++witpiGTsAeqbqQ8uyNhXVkZA1vcYwP44MtZdQTGt1VIRyVnPzFEoGmfGG5a6vk7v ++4GBWjM/uSyJHXFe3GZFZcnmwchYEbKf78tAaWrbhfWSf5ahj68VJNc/waNfjQ8TW ++HPlV1x1RVTuGRDocWGUYabq4d3deU6vw3/EYowfphwK6ID5Sh/jfsVtO8BasVvK4 ++d1s51rINFw7chj8leszo3zKgdaGhJG5DNE+/lh/zq4+3SSVmMz60ymbSyJ58am1m ++maoFBh+goPx/hrRTXxtfp+qNp4C7xY8o3Q== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/486.pem b/repos/system_upgrade/common/files/prod-certs/9.3/486.pem +new file mode 100644 +index 00000000..591f473b +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/486.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGJDCCBAygAwIBAgIJALDxRLt/tVOcMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYwNFoXDTQzMDEx ++ODE3MjYwNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFthNWYyMDk4 ++NC04NGYxLTQ0ZTUtOTNkNC0wMzJiMDI1MDQyYWRdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQKDAg5LjMgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB ++kggJAYNmBAQbDBlyaGVsLTkscmhlbC05LWJldGEteDg2XzY0MA0GCSqGSIb3DQEB ++CwUAA4ICAQC+1Krw6yHDMaqNxAN1dlGAJA58Sm5RUimBgyHDG/IGo5uTJWuqJF2J ++rbfcoo1pswElQiMRUrChbT3vUXgXaORlVQHdnBepH228qTTA33CiP2UoQKYwR1rj ++FtZGnyUdqwITn9Sm8ZbX0fa74UUZ4bS1IkZQKJdKHkBQHUjhtEUvA76baJjWLG2Y ++f282IVG1t5Z8zRDhR6akabtIjEd8AQZ4EFufFLCyZMxKhvKd4RYOvBOD06AFl3KM +++kiMjFQlLjUF3ldB7JnSpMwN829ocX3rrGYQMzYz6yg5ByxWmYqHMymBgRhC/gDX ++Sxi0Znej559QBTXidLy5exASrc/t8iwwlr94WLRDfAyV2Ven9OQu5/fbdnCY2Wb0 ++2MOkglx6tVgl+Y1H2pfF7qOcS3iYDSkCxPlgWXYIoxsxvwW0W0nGA2WsIntnP9UK ++5cFX5lFMgsNGxqFmrHVR1Q9DVg9tCV3uG9lQPvwX3bHHtvaxZD5NJ6HgvEaNcvyN ++ZW6QYTnaam6XqavL0sBw9/N01SEW7NBM1DO3VGMrWzWF3nTADUbea9wCVqXkkydd ++spjFWAlxMMVWXz0CWCNdBiylKHhpmencrkA0wxjaDntJcm8qtmJol1obz8/5GNxX ++BzszVd7VwwGY6G7h929bctv9NsyfmA+NlXYWFp5Hwdqp+jmBnxlr3Q== ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/prod-certs/9.3/72.pem b/repos/system_upgrade/common/files/prod-certs/9.3/72.pem +new file mode 100644 +index 00000000..25dbb8ab +--- /dev/null ++++ b/repos/system_upgrade/common/files/prod-certs/9.3/72.pem +@@ -0,0 +1,35 @@ ++-----BEGIN CERTIFICATE----- ++MIIGFjCCA/6gAwIBAgIJALDxRLt/tVOxMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD ++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI ++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk ++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ ++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDExODE3MjYxNloXDTQzMDEx ++ODE3MjYxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs2MGExNTA1 ++Yy1jNDJkLTQyNzktOGM4My0yNGQyYjFmMDM3YmRdMIICIjANBgkqhkiG9w0BAQEF ++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 ++AgQFDAM5LjMwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE ++FQwTcmhlbC05LHJoZWwtOS1zMzkweDANBgkqhkiG9w0BAQsFAAOCAgEARLQjlxaO ++jQEdcV7ycIcjgwpeeB4TDFrg+3NCnBTqHWw4zoKv0r19CRuMNW7uyKlpRRk+0Eyt ++zblQD9cxsNywibOMliSV6aKZb7jVfx/0wbx+w+7A+n2YpkHedWQpcbSYsrQ+GZLg ++ORTfbpqt+qXUyx2PqyGqwjpO0mvW1cpV4Nqm0vs8veAPMuJd9wnbb8n3Ib/XcmHA ++hlnTCoO5kYZk9xAFYNmdWQSSfmD3hH7bdWMV17ppWrkNY14RF8BjYcmHOaUOAGdf ++caKDx9I4QeQfKDfBhvxj9KdAecQEAjhxuD3qjwkQfbrGkRdKsMAu85xagvHAXwaY ++tobmyUZg/uXozr8Vss3wwWxllDxtGpQG8mAUTlly6vvlbDXGns2Ga4RbEA++vRUM ++rOK2r7lCg8bexbHRa+F4WtUhrcZ3gIiGGDJt93aOcfgZul+FW/fXQSYKYP/C4cEn ++1VhUakpp+j+Iffu7Y5TPGE9fOGxbkmcUBbLxDOlt1M58F6tt9rOLCcLUDBU20ZLD ++GJVE7BqyQQ4FEkzPZ6zb1fbVWP1VPZT00Mgb6FFyrfo4FeLSoqMIU7y/1LRocwi2 ++BW7E9IfcO3OPdIu3hsGs7vXd+juMj8pGres6bp8EFS5wF7QgcSBMTGO4/bPAg0Wv ++pUuiDsjVPVq0wfhTOOj2Tp6mPKcg62IRpT0= ++-----END CERTIFICATE----- +diff --git a/repos/system_upgrade/common/files/upgrade_paths.json b/repos/system_upgrade/common/files/upgrade_paths.json +index 5d8b44e9..2069e26d 100644 +--- a/repos/system_upgrade/common/files/upgrade_paths.json ++++ b/repos/system_upgrade/common/files/upgrade_paths.json +@@ -1,10 +1,11 @@ + { + "default": { +- "7.9": ["8.6", "8.8"], ++ "7.9": ["8.6", "8.8", "8.9"], + "8.6": ["9.0"], + "8.8": ["9.2"], +- "7": ["8.6", "8.8"], +- "8": ["9.2"] ++ "8.9": ["9.3"], ++ "7": ["8.6", "8.8", "8.9"], ++ "8": ["9.3"] + }, + "saphana": { + "7.9": ["8.8", "8.6"], +diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py +index 6bf6b4da..e146bd9b 100644 +--- a/repos/system_upgrade/common/libraries/config/version.py ++++ b/repos/system_upgrade/common/libraries/config/version.py +@@ -14,7 +14,7 @@ OP_MAP = { + _SUPPORTED_VERSIONS = { + # Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x + '7': {'rhel': ['7.9'], 'rhel-alt': [], 'rhel-saphana': ['7.9']}, +- '8': {'rhel': ['8.6', '8.8'], 'rhel-saphana': ['8.6', '8.8']}, ++ '8': {'rhel': ['8.6', '8.8', '8.9'], 'rhel-saphana': ['8.6', '8.8']}, + } + + +-- +2.40.1 + diff --git a/0029-Update-leapp-data-files-1.1-2.0-and-requires-repomap.patch b/0029-Update-leapp-data-files-1.1-2.0-and-requires-repomap.patch new file mode 100644 index 0000000..dceba1a --- /dev/null +++ b/0029-Update-leapp-data-files-1.1-2.0-and-requires-repomap.patch @@ -0,0 +1,5876 @@ +From ee99c3b88951df5c2c1643ecb4bee78d5a6eb2be Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Mon, 19 Jun 2023 18:01:22 +0200 +Subject: [PATCH 29/30] Update leapp data files (1.1, 2.0) and requires repomap + v1.1.0 + +- Added mapping for missing Azure repos (NFV, supplementary, ...) +- Updated PES data +- Repomap data version 1.1.0 to reflect added provides_version field + and other changes required for a time. Also it reflects versioning + of the json schema as defined in https://github.com/oamg/schema-test +- CONSUMED_DATA_STREAM_ID = 2.0 + +The new streams are not 1.1 and 2.0 to differenciate the change +from the previous data files. +--- + .../files/device_driver_deprecation_data.json | 3 +- + etc/leapp/files/pes-events.json | 4314 ++++++++++++----- + etc/leapp/files/repomap.json | 52 +- + .../libraries/repositoriesmapping.py | 2 +- + .../tests/files/repomap_example.json | 3 +- + .../common/libraries/config/__init__.py | 2 +- + 6 files changed, 3086 insertions(+), 1290 deletions(-) + +diff --git a/etc/leapp/files/device_driver_deprecation_data.json b/etc/leapp/files/device_driver_deprecation_data.json +index 02bb2a09..9a5f26b6 100644 +--- a/etc/leapp/files/device_driver_deprecation_data.json ++++ b/etc/leapp/files/device_driver_deprecation_data.json +@@ -4769,6 +4769,7 @@ + } + ], + "provided_data_streams": [ +- "1.0" ++ "1.0", ++ "2.0" + ] + } +\ No newline at end of file +diff --git a/etc/leapp/files/pes-events.json b/etc/leapp/files/pes-events.json +index 0b911c1e..e6c1ef9f 100644 +--- a/etc/leapp/files/pes-events.json ++++ b/etc/leapp/files/pes-events.json +@@ -1,6 +1,6 @@ + { + "legal_notice": "Copyright 2018 Red Hat, Inc. This file is provided to customers as a part of the Servicesunder the Red Hat Enterprise Agreement and not for redistribution.", +-"timestamp": "202303072102Z", ++"timestamp": "202306191502Z", + "packageinfo": [ + { + "action": 1, +@@ -176189,10 +176189,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 4438 + }, +@@ -176227,10 +176227,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 4439 + }, +@@ -176265,10 +176265,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 4440 + }, +@@ -176303,10 +176303,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 4441 + }, +@@ -184783,7 +184783,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 7, +-"minor_version": 7, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -272321,7 +272321,7 @@ null + "package": [ + { + "name": "realtime-setup", +-"repository": "rhel9-BaseOS", ++"repository": "rhel9-RT", + "modulestreams": [ + null + ] +@@ -273650,7 +273650,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 5, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -276385,7 +276385,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 4, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -279542,7 +279542,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 4, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -283869,7 +283869,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 5, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -343039,10 +343039,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 8775 + }, +@@ -387233,7 +387230,7 @@ null + "package": [ + { + "name": "rt-setup", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-NFV", + "modulestreams": [ + null + ] +@@ -387245,7 +387242,7 @@ null + "package": [ + { + "name": "realtime-setup", +-"repository": "rhel9-BaseOS", ++"repository": "rhel9-NFV", + "modulestreams": [ + null + ] +@@ -387274,10 +387271,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 9933 + }, +@@ -446877,7 +446871,7 @@ null + "package": [ + { + "name": "gcc-toolset-12-gdb", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] +@@ -446915,7 +446909,7 @@ null + "package": [ + { + "name": "gcc-toolset-12-gdb", +-"repository": "rhel9-BaseOS", ++"repository": "rhel9-AppStream", + "modulestreams": [ + null + ] +@@ -446940,10 +446934,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 11362 + }, +@@ -446952,84 +446946,8 @@ null + "in_packageset": { + "package": [ + { +-"name": "gcc-toolset-12-annobin", +-"repository": "rhel8-BaseOS", +-"modulestreams": [ +-null +-] +-} +-], +-"set_id": 15867 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" +-], +-"id": 11363 +-}, +-{ +-"action": 0, +-"in_packageset": { +-"package": [ +-{ +-"name": "gcc-toolset-12-annobin", +-"repository": "rhel9-BaseOS", +-"modulestreams": [ +-null +-] +-} +-], +-"set_id": 15868 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 0, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" +-], +-"id": 11364 +-}, +-{ +-"action": 0, +-"in_packageset": { +-"package": [ +-{ + "name": "gcc-toolset-12-binutils", +-"repository": "rhel9-BaseOS", ++"repository": "rhel9-AppStream", + "modulestreams": [ + null + ] +@@ -447054,10 +446972,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 11365 + }, +@@ -447067,7 +446985,7 @@ null + "package": [ + { + "name": "gcc-toolset-12-binutils", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] +@@ -447092,10 +447010,10 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", + "aarch64", + "ppc64le", +-"s390x" ++"s390x", ++"x86_64" + ], + "id": 11366 + }, +@@ -449415,7 +449333,7 @@ null + "package": [ + { + "name": "eclipse-equinox-osgi", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449444,10 +449362,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11422 + }, +@@ -449457,7 +449372,7 @@ null + "package": [ + { + "name": "eclipse-equinox-osgi", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449486,10 +449401,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11423 + }, +@@ -449667,7 +449579,7 @@ null + "package": [ + { + "name": "eclipse-pde", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449696,10 +449608,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11428 + }, +@@ -449709,7 +449618,7 @@ null + "package": [ + { + "name": "eclipse-pde", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449738,10 +449647,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11429 + }, +@@ -449751,7 +449657,7 @@ null + "package": [ + { + "name": "eclipse-platform", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449780,10 +449686,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11430 + }, +@@ -449793,7 +449696,7 @@ null + "package": [ + { + "name": "eclipse-platform", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449822,10 +449725,7 @@ null + "tag": null + }, + "architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" ++"x86_64" + ], + "id": 11431 + }, +@@ -449835,7 +449735,46 @@ null + "package": [ + { + "name": "eclipse-swt", +-"repository": "rhel8-BaseOS", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "eclipse", ++"stream": "rhel8" ++}, ++null ++] ++} ++], ++"set_id": 15905 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 0, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"x86_64" ++], ++"id": 11432 ++}, ++{ ++"action": 2, ++"in_packageset": { ++"package": [ ++{ ++"name": "eclipse-swt", ++"repository": "rhel8-AppStream", + "modulestreams": [ + { + "name": "eclipse", +@@ -449852,6 +449791,45 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"x86_64" ++], ++"id": 11433 ++}, ++{ ++"action": 1, ++"in_packageset": { ++"package": [ ++{ ++"name": "HdrHistogram", ++"repository": "rhel8-BaseOS", ++"modulestreams": [ ++{ ++"name": "jmc", ++"stream": "rhel8" ++}, ++null ++] ++} ++], ++"set_id": 15906 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, + "minor_version": 7, + "z_stream": null, + "tag": null +@@ -449869,109 +449847,25 @@ null + "ppc64le", + "s390x" + ], +-"id": 11432 ++"id": 11434 + }, + { + "action": 2, + "in_packageset": { + "package": [ + { +-"name": "eclipse-swt", ++"name": "HdrHistogram", + "repository": "rhel8-BaseOS", + "modulestreams": [ + { +-"name": "eclipse", ++"name": "jmc", + "stream": "rhel8" + }, + null + ] + } + ], +-"set_id": 15905 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" +-], +-"id": 11433 +-}, +-{ +-"action": 1, +-"in_packageset": { +-"package": [ +-{ +-"name": "HdrHistogram", +-"repository": "rhel8-BaseOS", +-"modulestreams": [ +-{ +-"name": "jmc", +-"stream": "rhel8" +-}, +-null +-] +-} +-], +-"set_id": 15906 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 0, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"x86_64", +-"aarch64", +-"ppc64le", +-"s390x" +-], +-"id": 11434 +-}, +-{ +-"action": 2, +-"in_packageset": { +-"package": [ +-{ +-"name": "HdrHistogram", +-"repository": "rhel8-BaseOS", +-"modulestreams": [ +-{ +-"name": "jmc", +-"stream": "rhel8" +-}, +-null +-] +-} +-], +-"set_id": 15906 ++"set_id": 15906 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -463771,7 +463665,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 0, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -490552,15 +490446,7 @@ null + "set_id": 17051 + }, + "out_packageset": null, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pmdk", +-"stream": "1_fileformat_v6" +-}, +-"out_modulestream": null +-} +-], ++"modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +@@ -496783,670 +496669,670 @@ null + }, + "out_packageset": null, + "modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12465 +-}, +-{ +-"action": 0, +-"in_packageset": { +-"package": [ +-{ +-"name": "samba-tools", +-"repository": "rhel9-BaseOS", +-"modulestreams": [ +-null +-] +-} +-], +-"set_id": 17311 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12466 +-}, +-{ +-"action": 1, +-"in_packageset": { +-"package": [ +-{ +-"name": "sisu-inject", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "maven", +-"stream": "3.5" +-} +-] +-} +-], +-"set_id": 17319 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 0, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12468 +-}, +-{ +-"action": 2, +-"in_packageset": { +-"package": [ +-{ +-"name": "sisu-inject", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "maven", +-"stream": "3.5" +-} +-] +-} +-], +-"set_id": 17319 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 5, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12469 +-}, +-{ +-"action": 1, +-"in_packageset": { +-"package": [ +-{ +-"name": "sisu-plexus", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "maven", +-"stream": "3.5" +-} +-] +-} +-], +-"set_id": 17320 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 9, +-"minor_version": 0, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12470 +-}, +-{ +-"action": 2, +-"in_packageset": { +-"package": [ +-{ +-"name": "sisu-plexus", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "maven", +-"stream": "3.5" +-} +-] +-} +-], +-"set_id": 17320 +-}, +-"out_packageset": null, +-"modulestream_maps": [], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 5, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12471 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-symkey", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17323 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-symkey", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17324 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12472 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-tools", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17325 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-tools", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17326 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12473 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-acme", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17327 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-acme", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17328 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12474 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-base", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17329 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-base", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17330 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12475 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-base-java", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17331 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-base-java", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17332 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12476 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-ca", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17333 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-ca", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17334 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], +-"initial_release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 6, +-"z_stream": null, +-"tag": null +-}, +-"release": { +-"os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, +-"z_stream": null, +-"tag": null +-}, +-"architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", +-"x86_64" +-], +-"id": 12477 +-}, +-{ +-"action": 7, +-"in_packageset": { +-"package": [ +-{ +-"name": "pki-kra", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17335 +-}, +-"out_packageset": { +-"package": [ +-{ +-"name": "idm-pki-kra", +-"repository": "rhel8-AppStream", +-"modulestreams": [ +-{ +-"name": "pki-core", +-"stream": "10.6" +-} +-] +-} +-], +-"set_id": 17336 +-}, +-"modulestream_maps": [ +-{ +-"in_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-}, +-"out_modulestream": { +-"name": "pki-core", +-"stream": "10.6" +-} +-} +-], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12465 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "samba-tools", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17311 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12466 ++}, ++{ ++"action": 1, ++"in_packageset": { ++"package": [ ++{ ++"name": "sisu-inject", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "maven", ++"stream": "3.5" ++} ++] ++} ++], ++"set_id": 17319 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 0, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12468 ++}, ++{ ++"action": 2, ++"in_packageset": { ++"package": [ ++{ ++"name": "sisu-inject", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "maven", ++"stream": "3.5" ++} ++] ++} ++], ++"set_id": 17319 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 5, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12469 ++}, ++{ ++"action": 1, ++"in_packageset": { ++"package": [ ++{ ++"name": "sisu-plexus", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "maven", ++"stream": "3.5" ++} ++] ++} ++], ++"set_id": 17320 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 0, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12470 ++}, ++{ ++"action": 2, ++"in_packageset": { ++"package": [ ++{ ++"name": "sisu-plexus", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "maven", ++"stream": "3.5" ++} ++] ++} ++], ++"set_id": 17320 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 5, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12471 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-symkey", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17323 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-symkey", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17324 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12472 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-tools", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17325 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-tools", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17326 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12473 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-acme", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17327 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-acme", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17328 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12474 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-base", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17329 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-base", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17330 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12475 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-base-java", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17331 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-base-java", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17332 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12476 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-ca", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17333 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-ca", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17334 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 6, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12477 ++}, ++{ ++"action": 7, ++"in_packageset": { ++"package": [ ++{ ++"name": "pki-kra", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17335 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "idm-pki-kra", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "pki-core", ++"stream": "10.6" ++} ++] ++} ++], ++"set_id": 17336 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++}, ++"out_modulestream": { ++"name": "pki-core", ++"stream": "10.6" ++} ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +@@ -497642,7 +497528,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 7, +-"minor_version": 10, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -498442,7 +498328,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 7, +-"minor_version": 10, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -498483,7 +498369,7 @@ null + "initial_release": { + "os_name": "RHEL", + "major_version": 7, +-"minor_version": 10, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -499089,9 +498975,7 @@ null + "tag": null + }, + "architectures": [ +-"aarch64", + "ppc64le", +-"s390x", + "x86_64" + ], + "id": 12507 +@@ -499258,24 +499142,1723 @@ null + "s390x", + "x86_64" + ], +-"id": 12511 ++"id": 12511 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-dtd-parser", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17416 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12512 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-istack-commons-runtime", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17417 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12513 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-istack-commons-tools", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17418 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12514 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-relaxng-datatype", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17419 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12515 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-rngom", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17420 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12516 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-runtime", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17421 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12517 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-txw2", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17422 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12518 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-xjc", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17423 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12519 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-xsom", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++{ ++"name": "jaxb", ++"stream": "4" ++} ++] ++} ++], ++"set_id": 17424 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12520 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-codemodel", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17425 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12521 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-core", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17426 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12522 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-relaxng-datatype", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17427 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12523 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-rngom", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17428 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12524 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-runtime", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17429 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12525 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-txw2", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17430 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12526 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-xjc", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17431 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12527 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-xsom", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17432 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12528 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-dtd-parser", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17435 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12529 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-istack-commons-runtime", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17436 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12530 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "jaxb-istack-commons-tools", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17437 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12531 ++}, ++{ ++"action": 3, ++"in_packageset": { ++"package": [ ++{ ++"name": "gcc-toolset-12-binutils", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17440 ++}, ++"out_packageset": { ++"package": [ ++{ ++"name": "gcc-toolset-13-binutils", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17441 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 3, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12533 ++}, ++{ ++"action": 1, ++"in_packageset": { ++"package": [ ++{ ++"name": "rtla", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17442 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 9, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 0, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12534 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17443 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12536 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17444 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12537 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17445 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12538 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17446 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12539 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-devel", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17447 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12540 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-devel-matched", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17448 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12541 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-modules", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17449 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12542 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-modules-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17450 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12543 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-debug-modules-extra", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17451 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12544 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-devel", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17452 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12545 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-devel-matched", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17453 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12546 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-modules", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17454 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12547 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-modules-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17456 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12549 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-64k-modules-extra", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17458 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64" ++], ++"id": 12551 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-debug-uki-virt", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17461 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"x86_64" ++], ++"id": 12553 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-uki-virt", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17462 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"x86_64" ++], ++"id": 12554 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-debug-modules-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17464 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12555 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-modules-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17465 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12556 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "kernel-zfcpdump-modules-core", ++"repository": "rhel9-BaseOS", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17466 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 1, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"s390x" ++], ++"id": 12557 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "python-tomli", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17467 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 2, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 9, ++"minor_version": 3, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12558 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "python-tomli", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17468 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 9, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12559 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "tomcat-admin-webapps", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17471 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12560 ++}, ++{ ++"action": 0, ++"in_packageset": { ++"package": [ ++{ ++"name": "tomcat-docs-webapp", ++"repository": "rhel8-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17472 ++}, ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 7, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12561 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-dtd-parser", ++"name": "tomcat-lib", + "repository": "rhel8-AppStream", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17416 ++"set_id": 17473 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499299,24 +500882,21 @@ null + "s390x", + "x86_64" + ], +-"id": 12512 ++"id": 12562 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-istack-commons-runtime", ++"name": "tomcat-webapps", + "repository": "rhel8-AppStream", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17417 ++"set_id": 17474 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499340,24 +500920,21 @@ null + "s390x", + "x86_64" + ], +-"id": 12513 ++"id": 12563 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-istack-commons-tools", ++"name": "tomcat-el-3.0-api", + "repository": "rhel8-AppStream", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17418 ++"set_id": 17475 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499381,24 +500958,21 @@ null + "s390x", + "x86_64" + ], +-"id": 12514 ++"id": 12564 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-relaxng-datatype", ++"name": "tomcat-jsp-2.3-api", + "repository": "rhel8-AppStream", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17419 ++"set_id": 17476 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499422,24 +500996,21 @@ null + "s390x", + "x86_64" + ], +-"id": 12515 ++"id": 12565 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-rngom", ++"name": "tomcat-servlet-4.0-api", + "repository": "rhel8-AppStream", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17420 ++"set_id": 17477 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499463,38 +501034,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12516 ++"id": 12566 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-runtime", +-"repository": "rhel8-AppStream", ++"name": "ldns-utils", ++"repository": "rhel9-CRB", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17421 ++"set_id": 17478 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, ++"major_version": 9, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 8, ++"major_version": 9, ++"minor_version": 1, + "z_stream": null, + "tag": null + }, +@@ -499504,38 +501072,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12517 ++"id": 12567 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-txw2", +-"repository": "rhel8-AppStream", ++"name": "python3-ldns", ++"repository": "rhel9-CRB", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17422 ++"set_id": 17479 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, ++"major_version": 9, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 8, ++"major_version": 9, ++"minor_version": 1, + "z_stream": null, + "tag": null + }, +@@ -499545,38 +501110,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12518 ++"id": 12568 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-xjc", +-"repository": "rhel8-AppStream", ++"name": "perl-ldns", ++"repository": "rhel9-CRB", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17423 ++"set_id": 17480 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, ++"major_version": 9, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 8, ++"major_version": 9, ++"minor_version": 1, + "z_stream": null, + "tag": null + }, +@@ -499586,38 +501148,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12519 ++"id": 12569 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-xsom", +-"repository": "rhel8-AppStream", ++"name": "ldns-doc", ++"repository": "rhel9-CRB", + "modulestreams": [ +-{ +-"name": "jaxb", +-"stream": "4" +-} ++null + ] + } + ], +-"set_id": 17424 ++"set_id": 17481 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 7, ++"major_version": 9, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 8, +-"minor_version": 8, ++"major_version": 9, ++"minor_version": 1, + "z_stream": null, + "tag": null + }, +@@ -499627,24 +501186,40 @@ null + "s390x", + "x86_64" + ], +-"id": 12520 ++"id": 12570 + }, + { +-"action": 0, ++"action": 3, + "in_packageset": { + "package": [ + { +-"name": "jaxb-codemodel", ++"name": "podman-catatonit", + "repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17425 ++"set_id": 17482 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "podman", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17483 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +@@ -499665,35 +501240,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12521 ++"id": 12571 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "jaxb-core", +-"repository": "rhel9-AppStream", ++"name": "kde-l10n-Chinese", ++"repository": "rhel7-base", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17426 ++"set_id": 17484 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 7, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 7, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, +@@ -499703,21 +501278,21 @@ null + "s390x", + "x86_64" + ], +-"id": 12522 ++"id": 12572 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-relaxng-datatype", ++"name": "pf-bb-config", + "repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17427 ++"set_id": 17485 + }, + "out_packageset": null, + "modulestream_maps": [], +@@ -499738,38 +501313,40 @@ null + "architectures": [ + "aarch64", + "ppc64le", +-"s390x", + "x86_64" + ], +-"id": 12523 ++"id": 12574 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "jaxb-rngom", +-"repository": "rhel9-AppStream", ++"name": "ipa-idoverride-memberof-plugin", ++"repository": "rhel8-AppStream", + "modulestreams": [ +-null ++{ ++"name": "idm", ++"stream": "DL1" ++} + ] + } + ], +-"set_id": 17428 ++"set_id": 17486 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 2, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 3, + "z_stream": null, + "tag": null + }, +@@ -499779,24 +501356,40 @@ null + "s390x", + "x86_64" + ], +-"id": 12524 ++"id": 12575 + }, + { +-"action": 0, ++"action": 6, + "in_packageset": { + "package": [ + { +-"name": "jaxb-runtime", +-"repository": "rhel9-AppStream", ++"name": "jmc", ++"repository": "rhel9-BaseOS", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17429 ++"set_id": 17487 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "jmc", ++"repository": "rhel9-CRB", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17488 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +@@ -499812,29 +501405,42 @@ null + "tag": null + }, + "architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", + "x86_64" + ], +-"id": 12525 ++"id": 12576 + }, + { +-"action": 0, ++"action": 6, + "in_packageset": { + "package": [ + { +-"name": "jaxb-txw2", ++"name": "jmc-core", + "repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17430 ++"set_id": 17489 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "jmc-core", ++"repository": "rhel9-CRB", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17490 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +@@ -499850,29 +501456,42 @@ null + "tag": null + }, + "architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", + "x86_64" + ], +-"id": 12526 ++"id": 12577 + }, + { +-"action": 0, ++"action": 6, + "in_packageset": { + "package": [ + { +-"name": "jaxb-xjc", ++"name": "owasp-java-encoder", + "repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17431 ++"set_id": 17491 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "owasp-java-encoder", ++"repository": "rhel9-CRB", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17492 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +@@ -499888,40 +501507,37 @@ null + "tag": null + }, + "architectures": [ +-"aarch64", +-"ppc64le", +-"s390x", + "x86_64" + ], +-"id": 12527 ++"id": 12578 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "jaxb-xsom", +-"repository": "rhel9-AppStream", ++"name": "marisa-devel", ++"repository": "rhel8-CRB", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17432 ++"set_id": 17493 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -499931,35 +501547,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12528 ++"id": 12579 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "jaxb-dtd-parser", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-annobin-annocheck", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17435 ++"set_id": 17494 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, +@@ -499969,35 +501585,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12529 ++"id": 12580 + }, + { +-"action": 0, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "jaxb-istack-commons-runtime", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-annobin-annocheck", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17436 ++"set_id": 17494 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -500007,35 +501623,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12530 ++"id": 12581 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "jaxb-istack-commons-tools", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-annobin-docs", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17437 ++"set_id": 17495 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, +@@ -500045,51 +501661,73 @@ null + "s390x", + "x86_64" + ], +-"id": 12531 ++"id": 12582 + }, + { +-"action": 3, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "gcc-toolset-12-binutils", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-annobin-docs", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17440 ++"set_id": 17495 + }, +-"out_packageset": { ++"out_packageset": null, ++"modulestream_maps": [], ++"initial_release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 8, ++"z_stream": null, ++"tag": null ++}, ++"release": { ++"os_name": "RHEL", ++"major_version": 8, ++"minor_version": 9, ++"z_stream": null, ++"tag": null ++}, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 12583 ++}, ++{ ++"action": 1, ++"in_packageset": { + "package": [ + { +-"name": "gcc-toolset-13-binutils", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-annobin-plugin-gcc", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17441 ++"set_id": 17496 + }, +-"modulestream_maps": [ +-{ +-"in_modulestream": null, +-"out_modulestream": null +-} +-], ++"out_packageset": null, ++"modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 3, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, +@@ -500099,35 +501737,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12533 ++"id": 12584 + }, + { +-"action": 1, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "rtla", ++"name": "gcc-toolset-12-annobin-plugin-gcc", + "repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17442 ++"set_id": 17496 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", + "major_version": 8, +-"minor_version": 9, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 0, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -500137,595 +501775,703 @@ null + "s390x", + "x86_64" + ], +-"id": 12534 ++"id": 12585 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-binutils", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17443 ++"set_id": 17497 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12536 ++"id": 12586 + }, + { +-"action": 0, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-core", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-binutils", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17444 ++"set_id": 17497 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12537 ++"id": 12587 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-binutils-devel", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17445 ++"set_id": 17498 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12538 ++"id": 12588 + }, + { +-"action": 0, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-core", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-binutils-devel", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17446 ++"set_id": 17498 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12539 ++"id": 12589 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-devel", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-binutils-gold", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17447 ++"set_id": 17499 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 0, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12540 ++"id": 12590 + }, + { +-"action": 0, ++"action": 2, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-devel-matched", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-binutils-gold", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17448 ++"set_id": 17499 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12541 ++"id": 12591 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-modules", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-annobin-annocheck", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17449 ++"set_id": 17500 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12542 ++"id": 12592 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-modules-core", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-annobin-docs", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17450 ++"set_id": 17501 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12543 ++"id": 12593 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-debug-modules-extra", +-"repository": "rhel9-BaseOS", ++"name": "gcc-toolset-12-annobin-plugin-gcc", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17451 ++"set_id": 17502 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12544 ++"id": 12594 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-devel", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-binutils-devel", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17452 ++"set_id": 17503 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12545 ++"id": 12595 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-devel-matched", +-"repository": "rhel9-AppStream", ++"name": "gcc-toolset-12-binutils-gold", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17453 ++"set_id": 17504 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 6, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12546 ++"id": 12596 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-modules", +-"repository": "rhel9-BaseOS", ++"name": "libreoffice", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17454 ++"set_id": 17505 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 7, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"ppc64le", ++"x86_64" + ], +-"id": 12547 ++"id": 12597 + }, + { +-"action": 0, ++"action": 7, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-modules-core", +-"repository": "rhel9-BaseOS", ++"name": "ht-caladea-fonts", ++"repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17456 ++"set_id": 17514 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "google-crosextra-caladea-fonts", ++"repository": "rhel9-AppStream", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17515 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 1, ++"minor_version": 2, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 3, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12549 ++"id": 12612 + }, + { +-"action": 0, ++"action": 1, + "in_packageset": { + "package": [ + { +-"name": "kernel-64k-modules-extra", +-"repository": "rhel9-BaseOS", ++"name": "subscription-manager-migration", ++"repository": "rhel8-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17458 ++"set_id": 17516 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"aarch64" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12551 ++"id": 12613 + }, + { +-"action": 0, ++"action": 4, + "in_packageset": { + "package": [ + { +-"name": "kernel-debug-uki-virt", +-"repository": "rhel9-BaseOS", ++"name": "pacemaker", ++"repository": "rhel9-HighAvailability", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17461 ++"set_id": 17517 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "pacemaker", ++"repository": "rhel9-HighAvailability", ++"modulestreams": [ ++null ++] ++}, ++{ ++"name": "python3-pacemaker", ++"repository": "rhel9-HighAvailability", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17518 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 1, ++"minor_version": 2, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 3, + "z_stream": null, + "tag": null + }, + "architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", + "x86_64" + ], +-"id": 12553 ++"id": 12614 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-uki-virt", +-"repository": "rhel9-BaseOS", ++"name": "libblkio", ++"repository": "rhel9-AppStream", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17462 ++"set_id": 17547 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 1, ++"minor_version": 2, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 3, + "z_stream": null, + "tag": null + }, + "architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", + "x86_64" + ], +-"id": 12554 ++"id": 12645 + }, + { +-"action": 0, ++"action": 4, + "in_packageset": { + "package": [ + { +-"name": "kernel-debug-modules-core", +-"repository": "rhel9-BaseOS", ++"name": "pacemaker", ++"repository": "rhel8-HighAvailability", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17464 ++"set_id": 17548 + }, +-"out_packageset": null, +-"modulestream_maps": [], ++"out_packageset": { ++"package": [ ++{ ++"name": "pacemaker", ++"repository": "rhel8-HighAvailability", ++"modulestreams": [ ++null ++] ++}, ++{ ++"name": "python3-pacemaker", ++"repository": "rhel8-HighAvailability", ++"modulestreams": [ ++null ++] ++} ++], ++"set_id": 17549 ++}, ++"modulestream_maps": [ ++{ ++"in_modulestream": null, ++"out_modulestream": null ++} ++], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, +@@ -500735,35 +502481,35 @@ null + "s390x", + "x86_64" + ], +-"id": 12555 ++"id": 12646 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-modules-core", +-"repository": "rhel9-BaseOS", ++"name": "unifdef", ++"repository": "rhel9-CRB", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17465 ++"set_id": 17550 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 1, ++"minor_version": 2, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", + "major_version": 9, +-"minor_version": 2, ++"minor_version": 3, + "z_stream": null, + "tag": null + }, +@@ -500773,45 +502519,49 @@ null + "s390x", + "x86_64" + ], +-"id": 12556 ++"id": 12647 + }, + { + "action": 0, + "in_packageset": { + "package": [ + { +-"name": "kernel-zfcpdump-modules-core", +-"repository": "rhel9-BaseOS", ++"name": "unifdef", ++"repository": "rhel8-CRB", + "modulestreams": [ + null + ] + } + ], +-"set_id": 17466 ++"set_id": 17551 + }, + "out_packageset": null, + "modulestream_maps": [], + "initial_release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 1, ++"major_version": 8, ++"minor_version": 8, + "z_stream": null, + "tag": null + }, + "release": { + "os_name": "RHEL", +-"major_version": 9, +-"minor_version": 2, ++"major_version": 8, ++"minor_version": 9, + "z_stream": null, + "tag": null + }, + "architectures": [ +-"s390x" ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" + ], +-"id": 12557 ++"id": 12648 + } + ], + "provided_data_streams": [ +-"1.0" ++"1.1", ++"2.0" + ] +-} +\ No newline at end of file ++} +diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json +index 14b6f0d7..37ae3273 100644 +--- a/etc/leapp/files/repomap.json ++++ b/etc/leapp/files/repomap.json +@@ -1,6 +1,6 @@ + { +- "datetime": "202306051542Z", +- "version_format": "1.0.0", ++ "datetime": "202306191741Z", ++ "version_format": "1.1.0", + "mapping": [ + { + "source_major_version": "7", +@@ -1286,6 +1286,13 @@ + "channel": "beta", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-aarch64-baseos-e4s-rpms", ++ "arch": "aarch64", ++ "channel": "e4s", ++ "repo_type": "rpm" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-baseos-eus-rpms", +@@ -1335,6 +1342,13 @@ + "channel": "beta", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-s390x-baseos-e4s-rpms", ++ "arch": "s390x", ++ "channel": "e4s", ++ "repo_type": "rpm" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-baseos-eus-rpms", +@@ -1492,6 +1506,13 @@ + "channel": "beta", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-aarch64-appstream-e4s-rpms", ++ "arch": "aarch64", ++ "channel": "e4s", ++ "repo_type": "rpm" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-appstream-eus-rpms", +@@ -1541,6 +1562,13 @@ + "channel": "beta", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-s390x-appstream-e4s-rpms", ++ "arch": "s390x", ++ "channel": "e4s", ++ "repo_type": "rpm" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-appstream-eus-rpms", +@@ -1865,6 +1893,14 @@ + "channel": "eus", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-x86_64-supplementary-rhui-rpms", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "rhui": "azure" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-supplementary-rpms", +@@ -1935,6 +1971,13 @@ + "channel": "beta", + "repo_type": "rpm" + }, ++ { ++ "major_version": "8", ++ "repoid": "rhel-8-for-x86_64-nfv-e4s-rpms", ++ "arch": "x86_64", ++ "channel": "e4s", ++ "repo_type": "rpm" ++ }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-nfv-rpms", +@@ -3652,6 +3695,7 @@ + } + ], + "provided_data_streams": [ +- "1.0" ++ "1.1", ++ "2.0" + ] +-} +\ No newline at end of file ++} +diff --git a/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py b/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py +index 9c8ff5c2..cbe5ea11 100644 +--- a/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py ++++ b/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py +@@ -16,7 +16,7 @@ REPOMAP_FILE = 'repomap.json' + + + class RepoMapData(object): +- VERSION_FORMAT = '1.0.0' ++ VERSION_FORMAT = '1.1.0' + + def __init__(self): + self.repositories = [] +diff --git a/repos/system_upgrade/common/actors/repositoriesmapping/tests/files/repomap_example.json b/repos/system_upgrade/common/actors/repositoriesmapping/tests/files/repomap_example.json +index 19dd7bc4..32dc1da0 100644 +--- a/repos/system_upgrade/common/actors/repositoriesmapping/tests/files/repomap_example.json ++++ b/repos/system_upgrade/common/actors/repositoriesmapping/tests/files/repomap_example.json +@@ -1,6 +1,7 @@ + { + "datetime": "202107141655Z", +- "version_format": "1.0.0", ++ "version_format": "1.1.0", ++ "provided_data_streams": [ "2.0" ], + "mapping": [ + { + "source_major_version": "7", +diff --git a/repos/system_upgrade/common/libraries/config/__init__.py b/repos/system_upgrade/common/libraries/config/__init__.py +index c793d917..c37a35cf 100644 +--- a/repos/system_upgrade/common/libraries/config/__init__.py ++++ b/repos/system_upgrade/common/libraries/config/__init__.py +@@ -3,7 +3,7 @@ from leapp.libraries.stdlib import api + + # The devel variable for target product channel can also contain 'beta' + SUPPORTED_TARGET_CHANNELS = {'ga', 'tuv', 'e4s', 'eus', 'aus'} +-CONSUMED_DATA_STREAM_ID = '1.0' ++CONSUMED_DATA_STREAM_ID = '2.0' + + + def get_env(name, default=None): +-- +2.40.1 + diff --git a/0030-el8toel9-Warn-about-deprecated-Xorg-drivers.patch b/0030-el8toel9-Warn-about-deprecated-Xorg-drivers.patch new file mode 100644 index 0000000..be11074 --- /dev/null +++ b/0030-el8toel9-Warn-about-deprecated-Xorg-drivers.patch @@ -0,0 +1,1424 @@ +From 948c78298faf4b0e9a2fd3526397cfee90836546 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Fri, 5 May 2023 11:40:09 +0200 +Subject: [PATCH 30/30] el8toel9: Warn about deprecated Xorg drivers + +Some Xorg drivers have been deprecated in favor of the "modesetting" +driver. + +If Xorg is configured to use those driver, it may not be able to work +properly after the upgrade. + +Add a new actor to check in the journal whether such Xorg drivers are in +use and in that case, also warn if there are custom Xorg config options. + +Known limitation: This actor checks the journal logs since the last +boot, meaning that if Xorg was started manually from a console or if the +system has been rebooted after a graphical Xorg session was used, the +actor will not be able to detect the use of deprecated drivers. + +Signed-off-by: Olivier Fourdan +--- + .github/workflows/codespell.yml | 3 + + .../el8toel9/actors/xorgdrvcheck/actor.py | 52 ++ + .../xorgdrvcheck/tests/test_xorgdrvcheck.py | 19 + + .../el8toel9/actors/xorgdrvfact/actor.py | 28 ++ + .../xorgdrvfact/libraries/xorgdriverlib.py | 36 ++ + .../tests/files/journalctl-xorg-intel | 461 ++++++++++++++++++ + .../tests/files/journalctl-xorg-qxl | 309 ++++++++++++ + .../tests/files/journalctl-xorg-without-qxl | 305 ++++++++++++ + .../xorgdrvfact/tests/test_xorgdrvfact.py | 77 +++ + .../system_upgrade/el8toel9/models/xorgdrv.py | 24 + + 10 files changed, 1314 insertions(+) + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvcheck/actor.py + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvcheck/tests/test_xorgdrvcheck.py + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/actor.py + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/libraries/xorgdriverlib.py + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-intel + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-qxl + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-without-qxl + create mode 100644 repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/test_xorgdrvfact.py + create mode 100644 repos/system_upgrade/el8toel9/models/xorgdrv.py + +diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml +index 1348c7fe..24add3fb 100644 +--- a/.github/workflows/codespell.yml ++++ b/.github/workflows/codespell.yml +@@ -20,6 +20,9 @@ jobs: + ignore_words_list: ro,fo,couldn,repositor + 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,\ ++ ./repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-qxl,\ ++ ./repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-without-qxl,\ + ./repos/system_upgrade/common/actors/scancpu/tests/files/lscpu_s390x,\ + ./etc/leapp/files/device_driver_deprecation_data.json,\ + ./etc/leapp/files/pes-events.json,\ +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/actor.py b/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/actor.py +new file mode 100644 +index 00000000..2531e4c7 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/actor.py +@@ -0,0 +1,52 @@ ++from leapp import reporting ++from leapp.actors import Actor ++from leapp.models import XorgDrvFacts ++from leapp.reporting import create_report, Report ++from leapp.tags import ChecksPhaseTag, IPUWorkflowTag ++ ++SUMMARY_XORG_DEPRECATE_DRIVERS_FMT = ( ++ 'Leapp has detected the use of some deprecated Xorg drivers. ' ++ 'Using these drivers could lead to a broken graphical session after the upgrade. ' ++ 'Any custom configuration related to these drivers will be ignored. ' ++ 'The list of used deprecated drivers: {}') ++ ++SUMMARY_XORG_DEPRECATE_DRIVERS_HINT = ( ++ 'Please uninstall the Xorg driver and remove the corresponding driver ' ++ 'customisation entries from the X.Org configuration files and directories, ' ++ 'such as `/etc/X11/xorg.conf` and `/etc/X11/xorg.conf.d/` and reboot before ' ++ 'upgrading to make sure you have a graphical session after upgrading.' ++) ++FMT_LIST_SEPARATOR = '\n - {}' ++ ++ ++def _printable_drv(facts): ++ output = '' ++ for fact in facts: ++ for driver in fact.xorg_drivers: ++ output += FMT_LIST_SEPARATOR.format(driver.driver) ++ if driver.has_options: ++ output += ' (with custom driver options)' ++ return output ++ ++ ++class XorgDrvCheck8to9(Actor): ++ """ ++ Warn if Xorg deprecated drivers are in use. ++ """ ++ ++ name = 'xorgdrvcheck8to9' ++ consumes = (XorgDrvFacts,) ++ produces = (Report,) ++ tags = (IPUWorkflowTag, ChecksPhaseTag) ++ ++ def process(self): ++ facts = self.consume(XorgDrvFacts) ++ deprecated_drivers = _printable_drv(facts) ++ if len(deprecated_drivers) > 0: ++ create_report([ ++ reporting.Title('Deprecated Xorg driver detected'), ++ reporting.Summary(SUMMARY_XORG_DEPRECATE_DRIVERS_FMT.format(deprecated_drivers)), ++ reporting.Severity(reporting.Severity.MEDIUM), ++ reporting.Groups([reporting.Groups.DRIVERS]), ++ reporting.Remediation(hint=SUMMARY_XORG_DEPRECATE_DRIVERS_HINT) ++ ]) +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/tests/test_xorgdrvcheck.py b/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/tests/test_xorgdrvcheck.py +new file mode 100644 +index 00000000..7a3ec62a +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvcheck/tests/test_xorgdrvcheck.py +@@ -0,0 +1,19 @@ ++from leapp.models import XorgDrv, XorgDrvFacts ++from leapp.reporting import Report ++ ++ ++def test_actor_with_deprecated_driver(current_actor_context): ++ for driver in ['RADEON', 'ATI', 'AMDGPU', 'MACH64', 'intel', 'spiceqxl', 'qxl', 'NOUVEAU', 'NV', 'VESA']: ++ xorg_drv = [XorgDrv(driver=driver, has_options=False)] ++ ++ current_actor_context.feed(XorgDrvFacts(xorg_drivers=xorg_drv)) ++ current_actor_context.run() ++ assert current_actor_context.consume(Report) ++ ++ ++def test_actor_without_deprecated_driver(current_actor_context): ++ xorg_drv = [] ++ ++ current_actor_context.feed(XorgDrvFacts(xorg_drivers=xorg_drv)) ++ current_actor_context.run() ++ assert not current_actor_context.consume(Report) +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/actor.py b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/actor.py +new file mode 100644 +index 00000000..64ebb106 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/actor.py +@@ -0,0 +1,28 @@ ++from leapp.actors import Actor ++from leapp.libraries.actor.xorgdriverlib import check_drv_and_options, get_xorg_logs_from_journal ++from leapp.libraries.stdlib import api ++from leapp.models import XorgDrvFacts ++from leapp.tags import FactsPhaseTag, IPUWorkflowTag ++ ++ ++class XorgDrvFacts8to9(Actor): ++ """ ++ Check the journal logs for deprecated Xorg drivers. ++ ++ This actor checks the journal logs and looks for deprecated Xorg drivers. ++ """ ++ ++ name = 'xorgdrvfacts8to9' ++ consumes = () ++ produces = (XorgDrvFacts,) ++ tags = (IPUWorkflowTag, FactsPhaseTag) ++ ++ def process(self): ++ xorg_logs = get_xorg_logs_from_journal() ++ deprecated_drivers = [] ++ for driver in ['RADEON', 'ATI', 'AMDGPU', 'MACH64', 'intel', 'spiceqxl', 'qxl', 'NOUVEAU', 'NV', 'VESA']: ++ deprecated_driver = check_drv_and_options(driver, xorg_logs) ++ if deprecated_driver: ++ deprecated_drivers.append(deprecated_driver) ++ ++ api.produce(XorgDrvFacts(xorg_drivers=deprecated_drivers)) +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/libraries/xorgdriverlib.py b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/libraries/xorgdriverlib.py +new file mode 100644 +index 00000000..713e4ec5 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/libraries/xorgdriverlib.py +@@ -0,0 +1,36 @@ ++# ++# Helper functions ++# ++ ++import re ++ ++from leapp.libraries.stdlib import api, CalledProcessError, run ++from leapp.models import XorgDrv ++ ++ ++def check_drv_and_options(driver, logs): ++ regex_driver = re.compile(''.join([driver, '.*DPI set to'])) ++ regex_options = re.compile(''.join([r'\(\*\*\)', '.*', driver])) ++ has_driver = False ++ has_options = False ++ ++ for line in logs: ++ if re.search(regex_driver, line): ++ has_driver = True ++ if re.search(regex_options, line): ++ has_options = True ++ ++ if not has_driver: ++ return None ++ ++ return XorgDrv(driver=driver, has_options=has_options) ++ ++ ++def get_xorg_logs_from_journal(): ++ try: ++ output = run(['/usr/bin/journalctl', '/usr/libexec/Xorg', '-o', 'cat', '-b', '0'], split=True) ++ except CalledProcessError: ++ api.current_logger().debug('No Xorg logs found in journal.') ++ return [] ++ ++ return output['stdout'] +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-intel b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-intel +new file mode 100644 +index 00000000..7d5b4418 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-intel +@@ -0,0 +1,461 @@ ++(--) Log file renamed from "/home/johndoe/.local/share/xorg/Xorg.pid-1694.log" to "/home/johndoe/.local/share/xorg/Xorg.0.log" ++X.Org X Server 1.20.11 ++X Protocol Version 11, Revision 0 ++Build Operating System: 4.18.0-305.17.1.el8_4.x86_64 ++Current Operating System: Linux el8 4.18.0-409.el8.x86_64 #1 SMP Tue Jul 12 00:42:37 EDT 2022 x86_64 ++Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-409.el8.x86_64 root=/dev/mapper/rhel_el8-root ro resume=/dev/mapper/rhel_el8-swap rd.lvm.lv=rhel_el8/root rd.lvm.lv=rhel_el8/swap rhgb quiet ++Build Date: 09 June 2022 04:30:21PM ++Build ID: xorg-x11-server 1.20.11-8.el8 ++Current version of pixman: 0.38.4 ++ Before reporting problems, check http://wiki.x.org ++ to make sure that you have the latest version. ++Markers: (--) probed, (**) from config file, (==) default setting, ++ (++) from command line, (!!) notice, (II) informational, ++ (WW) warning, (EE) error, (NI) not implemented, (??) unknown. ++(==) Log file: "/home/johndoe/.local/share/xorg/Xorg.2.log", Time: Wed May 10 10:21:00 2023 ++(==) Using config directory: "/etc/X11/xorg.conf.d" ++(==) Using system config directory "/usr/share/X11/xorg.conf.d" ++(==) No Layout section. Using the first Screen section. ++(==) No screen section available. Using defaults. ++(**) |-->Screen "Default Screen Section" (0) ++(**) | |-->Monitor "" ++(==) No device specified for screen "Default Screen Section". ++ Using the first device section listed. ++(**) | |-->Device "Intel Graphics" ++(==) No monitor specified for screen "Default Screen Section". ++ Using a default monitor configuration. ++(==) Automatically adding devices ++(==) Automatically enabling devices ++(==) Automatically adding GPU devices ++(==) Automatically binding GPU devices ++(==) Max clients allowed: 256, resource mask: 0x1fffff ++(==) FontPath set to: ++ catalogue:/etc/X11/fontpath.d, ++ built-ins ++(==) ModulePath set to "/usr/lib64/xorg/modules" ++(II) The server relies on udev to provide the list of input devices. ++ If no devices become available, reconfigure udev or disable AutoAddDevices. ++(II) Loader magic: 0x564b9143fa80 ++(II) Module ABI versions: ++ X.Org ANSI C Emulation: 0.4 ++ X.Org Video Driver: 24.1 ++ X.Org XInput driver : 24.1 ++ X.Org Server Extension : 10.0 ++(++) using VT number 3 ++(II) systemd-logind: took control of session /org/freedesktop/login1/session/_37 ++(II) xfree86: Adding drm device (/dev/dri/card0) ++(II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 16 paused 0 ++(--) PCI:*(0@0:2:0) 8086:5917:17aa:2258 rev 7, Mem @ 0xeb000000/16777216, 0xa0000000/268435456, I/O @ 0x0000e000/64, BIOS @ 0x????????/65536 ++(II) LoadModule: "glx" ++(II) Loading /usr/lib64/xorg/modules/extensions/libglx.so ++(II) Module glx: vendor="X.Org Foundation" ++ compiled for 1.20.14, module version = 1.0.0 ++ ABI class: X.Org Server Extension, version 10.0 ++(II) LoadModule: "intel" ++(II) Loading /usr/lib64/xorg/modules/drivers/intel_drv.so ++(II) Module intel: vendor="X.Org Foundation" ++ compiled for 1.20.14, module version = 2.99.917 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.1 ++(II) intel: Driver for Intel(R) Integrated Graphics Chipsets: ++ i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, ++ 915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, ++ Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, ++ GM45, 4 Series, G45/G43, Q45/Q43, G41, B43 ++(II) intel: Driver for Intel(R) HD Graphics ++(II) intel: Driver for Intel(R) Iris(TM) Graphics ++(II) intel: Driver for Intel(R) Iris(TM) Pro Graphics ++(II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20201103 ++(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support ++(--) intel(0): gen9 engineering sample ++(--) intel(0): CPU: x86-64, sse2, sse3, ssse3, sse4.1, sse4.2, avx, avx2; using a maximum of 4 threads ++(II) intel(0): Creating default Display subsection in Screen section ++ "Default Screen Section" for depth/fbbpp 24/32 ++(==) intel(0): Depth 24, (--) framebuffer bpp 32 ++(==) intel(0): RGB weight 888 ++(==) intel(0): Default visual is TrueColor ++(**) intel(0): Option "DRI" "3" ++(**) intel(0): Option "TearFree" "true" ++(II) intel(0): Output eDP1 has no monitor section ++(**) intel(0): Found backlight control interface intel_backlight (type 'raw') for output eDP1 ++(II) intel(0): Enabled output eDP1 ++(II) intel(0): Output DP1 has no monitor section ++(II) intel(0): Enabled output DP1 ++(II) intel(0): Output HDMI1 has no monitor section ++(II) intel(0): Enabled output HDMI1 ++(II) intel(0): Output DP2 has no monitor section ++(II) intel(0): Enabled output DP2 ++(II) intel(0): Output HDMI2 has no monitor section ++(II) intel(0): Enabled output HDMI2 ++(II) intel(0): Output DP1-1 has no monitor section ++(II) intel(0): Enabled output DP1-1 ++(II) intel(0): Output DP1-2 has no monitor section ++(II) intel(0): Enabled output DP1-2 ++(II) intel(0): Output DP1-3 has no monitor section ++(II) intel(0): Enabled output DP1-3 ++(--) intel(0): Using a maximum size of 256x256 for hardware cursors ++(II) intel(0): Output VIRTUAL1 has no monitor section ++(II) intel(0): Enabled output VIRTUAL1 ++(--) intel(0): Output eDP1 using initial mode 1920x1080 on pipe 0 ++(--) intel(0): Output DP1-1 using initial mode 1920x1200 on pipe 1 ++(**) intel(0): TearFree enabled ++(==) intel(0): Using gamma correction (1.0, 1.0, 1.0) ++(==) intel(0): DPI set to (96, 96) ++(II) Loading sub module "dri3" ++(II) LoadModule: "dri3" ++(II) Module "dri3" already built-in ++(II) Loading sub module "dri2" ++(II) LoadModule: "dri2" ++(II) Module "dri2" already built-in ++(II) Loading sub module "present" ++(II) LoadModule: "present" ++(II) Module "present" already built-in ++(II) intel(0): SNA initialized with Kabylake (gen9) backend ++(==) intel(0): Backing store enabled ++(==) intel(0): Silken mouse enabled ++(II) intel(0): HW Cursor enabled ++(==) intel(0): DPMS enabled ++(==) intel(0): Display hotplug detection enabled ++(II) intel(0): [DRI2] Setup complete ++(II) intel(0): [DRI2] DRI driver: i965 ++(II) intel(0): [DRI2] VDPAU driver: va_gl ++(II) intel(0): direct rendering: DRI2 DRI3 enabled ++(II) intel(0): hardware support for Present enabled ++(II) Initializing extension Generic Event Extension ++(II) Initializing extension SHAPE ++(II) Initializing extension MIT-SHM ++(II) Initializing extension XInputExtension ++(II) Initializing extension XTEST ++(II) Initializing extension BIG-REQUESTS ++(II) Initializing extension SYNC ++(II) Initializing extension XKEYBOARD ++(II) Initializing extension XC-MISC ++(II) Initializing extension SECURITY ++(II) Initializing extension XFIXES ++(II) Initializing extension RENDER ++(II) Initializing extension RANDR ++(II) Initializing extension COMPOSITE ++(II) Initializing extension DAMAGE ++(II) Initializing extension MIT-SCREEN-SAVER ++(II) Initializing extension DOUBLE-BUFFER ++(II) Initializing extension RECORD ++(II) Initializing extension DPMS ++(II) Initializing extension Present ++(II) Initializing extension DRI3 ++(II) Initializing extension X-Resource ++(II) Initializing extension XVideo ++(II) Initializing extension XVideo-MotionCompensation ++(II) Initializing extension SELinux ++(II) SELinux: Disabled by boolean ++(II) Initializing extension GLX ++(EE) AIGLX error: dlopen of /usr/lib64/dri/i965_dri.so failed (/usr/lib64/dri/i965_dri.so: cannot open shared object file: No such file or directory) ++(EE) AIGLX error: unable to load driver i965 ++(II) IGLX: Loaded and initialized swrast ++(II) GLX: Initialized DRISWRAST GL provider for screen 0 ++(II) Initializing extension XFree86-VidModeExtension ++(II) Initializing extension XFree86-DGA ++(II) Initializing extension DRI2 ++(II) intel(0): switch to mode 1920x1080@60.0 on eDP1 using pipe 0, position (0, 0), rotation normal, reflection none ++(II) intel(0): switch to mode 1920x1200@60.0 on DP1-1 using pipe 1, position (0, 0), rotation normal, reflection none ++(II) intel(0): Setting screen physical size to 508 x 317 ++(II) config/udev: Adding input device Power Button (/dev/input/event2) ++(**) Power Button: Applying InputClass "evdev keyboard catchall" ++(**) Power Button: Applying InputClass "libinput keyboard catchall" ++(**) Power Button: Applying InputClass "system-keyboard" ++(II) LoadModule: "libinput" ++(II) Loading /usr/lib64/xorg/modules/input/libinput_drv.so ++(II) Module libinput: vendor="X.Org Foundation" ++ compiled for 1.20.14, module version = 1.3.0 ++ Module class: X.Org XInput Driver ++ ABI class: X.Org XInput driver, version 24.1 ++(II) Using input driver 'libinput' for 'Power Button' ++(II) systemd-logind: got fd for /dev/input/event2 13:66 fd 26 paused 0 ++(**) Power Button: always reports core events ++(**) Option "Device" "/dev/input/event2" ++(II) event2 - Power Button: is tagged by udev as: Keyboard ++(II) event2 - Power Button: device is a keyboard ++(II) event2 - Power Button: device removed ++(**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2" ++(II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event2 - Power Button: is tagged by udev as: Keyboard ++(II) event2 - Power Button: device is a keyboard ++(II) config/udev: Adding input device Video Bus (/dev/input/event10) ++(**) Video Bus: Applying InputClass "evdev keyboard catchall" ++(**) Video Bus: Applying InputClass "libinput keyboard catchall" ++(**) Video Bus: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'Video Bus' ++(II) systemd-logind: got fd for /dev/input/event10 13:74 fd 29 paused 0 ++(**) Video Bus: always reports core events ++(**) Option "Device" "/dev/input/event10" ++(II) event10 - Video Bus: is tagged by udev as: Keyboard ++(II) event10 - Video Bus: device is a keyboard ++(II) event10 - Video Bus: device removed ++(**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input11/event10" ++(II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event10 - Video Bus: is tagged by udev as: Keyboard ++(II) event10 - Video Bus: device is a keyboard ++(II) config/udev: Adding input device Lid Switch (/dev/input/event1) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device Sleep Button (/dev/input/event0) ++(**) Sleep Button: Applying InputClass "evdev keyboard catchall" ++(**) Sleep Button: Applying InputClass "libinput keyboard catchall" ++(**) Sleep Button: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'Sleep Button' ++(II) systemd-logind: got fd for /dev/input/event0 13:64 fd 30 paused 0 ++(**) Sleep Button: always reports core events ++(**) Option "Device" "/dev/input/event0" ++(II) event0 - Sleep Button: is tagged by udev as: Keyboard ++(II) event0 - Sleep Button: device is a keyboard ++(II) event0 - Sleep Button: device removed ++(**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0/event0" ++(II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 8) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event0 - Sleep Button: is tagged by udev as: Keyboard ++(II) event0 - Sleep Button: device is a keyboard ++(II) config/udev: Adding input device Yubico Yubico Yubikey II (/dev/input/event4) ++(**) Yubico Yubico Yubikey II: Applying InputClass "evdev keyboard catchall" ++(**) Yubico Yubico Yubikey II: Applying InputClass "libinput keyboard catchall" ++(**) Yubico Yubico Yubikey II: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'Yubico Yubico Yubikey II' ++(II) systemd-logind: got fd for /dev/input/event4 13:68 fd 31 paused 0 ++(**) Yubico Yubico Yubikey II: always reports core events ++(**) Option "Device" "/dev/input/event4" ++(II) event4 - Yubico Yubico Yubikey II: is tagged by udev as: Keyboard ++(II) event4 - Yubico Yubico Yubikey II: device is a keyboard ++(II) event4 - Yubico Yubico Yubikey II: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:1050:0010.0001/input/input6/event4" ++(II) XINPUT: Adding extended input device "Yubico Yubico Yubikey II" (type: KEYBOARD, id 9) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event4 - Yubico Yubico Yubikey II: is tagged by udev as: Keyboard ++(II) event4 - Yubico Yubico Yubikey II: device is a keyboard ++(II) config/udev: Adding input device Integrated Camera: Integrated C (/dev/input/event17) ++(**) Integrated Camera: Integrated C: Applying InputClass "evdev keyboard catchall" ++(**) Integrated Camera: Integrated C: Applying InputClass "libinput keyboard catchall" ++(**) Integrated Camera: Integrated C: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'Integrated Camera: Integrated C' ++(II) systemd-logind: got fd for /dev/input/event17 13:81 fd 32 paused 0 ++(**) Integrated Camera: Integrated C: always reports core events ++(**) Option "Device" "/dev/input/event17" ++(II) event17 - Integrated Camera: Integrated C: is tagged by udev as: Keyboard ++(II) event17 - Integrated Camera: Integrated C: device is a keyboard ++(II) event17 - Integrated Camera: Integrated C: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input22/event17" ++(II) XINPUT: Adding extended input device "Integrated Camera: Integrated C" (type: KEYBOARD, id 10) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event17 - Integrated Camera: Integrated C: is tagged by udev as: Keyboard ++(II) event17 - Integrated Camera: Integrated C: device is a keyboard ++(II) config/udev: Adding input device Lenovo ThinkPad Thunderbolt 3 Dock USB Audio (/dev/input/event6) ++(**) Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: Applying InputClass "evdev keyboard catchall" ++(**) Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: Applying InputClass "libinput keyboard catchall" ++(**) Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'Lenovo ThinkPad Thunderbolt 3 Dock USB Audio' ++(II) systemd-logind: got fd for /dev/input/event6 13:70 fd 33 paused 0 ++(**) Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: always reports core events ++(**) Option "Device" "/dev/input/event6" ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: is tagged by udev as: Keyboard ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: device is a keyboard ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:01.0/0000:07:00.0/0000:08:00.0/0000:09:00.0/usb3/3-1/3-1:1.3/0003:17EF:306A.0003/input/input8/event6" ++(II) XINPUT: Adding extended input device "Lenovo ThinkPad Thunderbolt 3 Dock USB Audio" (type: KEYBOARD, id 11) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: is tagged by udev as: Keyboard ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: device is a keyboard ++(II) config/udev: Adding input device USB OPTICAL MOUSE (/dev/input/event5) ++(**) USB OPTICAL MOUSE : Applying InputClass "evdev pointer catchall" ++(**) USB OPTICAL MOUSE : Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'USB OPTICAL MOUSE ' ++(II) systemd-logind: got fd for /dev/input/event5 13:69 fd 34 paused 0 ++(**) USB OPTICAL MOUSE : always reports core events ++(**) Option "Device" "/dev/input/event5" ++(II) event5 - USB OPTICAL MOUSE : is tagged by udev as: Mouse ++(II) event5 - USB OPTICAL MOUSE : device is a pointer ++(II) event5 - USB OPTICAL MOUSE : device removed ++(II) libinput: USB OPTICAL MOUSE : Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: USB OPTICAL MOUSE : Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: USB OPTICAL MOUSE : Step value 0 was provided, libinput Fallback acceleration function is used. ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:01.0/0000:07:00.0/0000:08:02.0/0000:0b:00.0/usb5/5-3/5-3:1.0/0003:30FA:0400.0002/input/input7/event5" ++(II) XINPUT: Adding extended input device "USB OPTICAL MOUSE " (type: MOUSE, id 12) ++(**) Option "AccelerationScheme" "none" ++(**) USB OPTICAL MOUSE : (accel) selected scheme none/0 ++(**) USB OPTICAL MOUSE : (accel) acceleration factor: 2.000 ++(**) USB OPTICAL MOUSE : (accel) acceleration threshold: 4 ++(II) event5 - USB OPTICAL MOUSE : is tagged by udev as: Mouse ++(II) event5 - USB OPTICAL MOUSE : device is a pointer ++(II) config/udev: Adding input device USB OPTICAL MOUSE (/dev/input/mouse0) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device HID 046a:0011 (/dev/input/event9) ++(**) HID 046a:0011: Applying InputClass "evdev keyboard catchall" ++(**) HID 046a:0011: Applying InputClass "libinput keyboard catchall" ++(**) HID 046a:0011: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'HID 046a:0011' ++(II) systemd-logind: got fd for /dev/input/event9 13:73 fd 35 paused 0 ++(**) HID 046a:0011: always reports core events ++(**) Option "Device" "/dev/input/event9" ++(II) event9 - HID 046a:0011: is tagged by udev as: Keyboard ++(II) event9 - HID 046a:0011: device is a keyboard ++(II) event9 - HID 046a:0011: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:01.0/0000:07:00.0/0000:08:02.0/0000:0b:00.0/usb5/5-4/5-4:1.0/0003:046A:0011.0004/input/input10/event9" ++(II) XINPUT: Adding extended input device "HID 046a:0011" (type: KEYBOARD, id 13) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event9 - HID 046a:0011: is tagged by udev as: Keyboard ++(II) event9 - HID 046a:0011: device is a keyboard ++(II) config/udev: Adding input device HDA Intel PCH Mic (/dev/input/event8) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event11) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=3 (/dev/input/event12) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=7 (/dev/input/event13) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=8 (/dev/input/event14) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device Elan Touchpad (/dev/input/event15) ++(**) Elan Touchpad: Applying InputClass "evdev touchpad catchall" ++(**) Elan Touchpad: Applying InputClass "libinput touchpad catchall" ++(II) Using input driver 'libinput' for 'Elan Touchpad' ++(II) systemd-logind: got fd for /dev/input/event15 13:79 fd 36 paused 0 ++(**) Elan Touchpad: always reports core events ++(**) Option "Device" "/dev/input/event15" ++(II) event15 - Elan Touchpad: is tagged by udev as: Touchpad ++(II) event15 - Elan Touchpad: device is a touchpad ++(II) event15 - Elan Touchpad: device removed ++(II) libinput: Elan Touchpad: Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: Elan Touchpad: Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: Elan Touchpad: Step value 0 was provided, libinput Fallback acceleration function is used. ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1f.4/i2c-8/8-0015/input/input20/event15" ++(II) XINPUT: Adding extended input device "Elan Touchpad" (type: TOUCHPAD, id 14) ++(**) Option "AccelerationScheme" "none" ++(**) Elan Touchpad: (accel) selected scheme none/0 ++(**) Elan Touchpad: (accel) acceleration factor: 2.000 ++(**) Elan Touchpad: (accel) acceleration threshold: 4 ++(II) event15 - Elan Touchpad: is tagged by udev as: Touchpad ++(II) event15 - Elan Touchpad: device is a touchpad ++(II) config/udev: Adding input device Elan Touchpad (/dev/input/mouse1) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device Elan TrackPoint (/dev/input/event16) ++(**) Elan TrackPoint: Applying InputClass "evdev pointer catchall" ++(**) Elan TrackPoint: Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'Elan TrackPoint' ++(II) systemd-logind: got fd for /dev/input/event16 13:80 fd 37 paused 0 ++(**) Elan TrackPoint: always reports core events ++(**) Option "Device" "/dev/input/event16" ++(II) event16 - Elan TrackPoint: is tagged by udev as: Mouse Pointingstick ++(II) event16 - Elan TrackPoint: device is a pointer ++(II) event16 - Elan TrackPoint: device removed ++(II) libinput: Elan TrackPoint: Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: Elan TrackPoint: Step value 0 was provided, libinput Fallback acceleration function is used. ++(II) libinput: Elan TrackPoint: Step value 0 was provided, libinput Fallback acceleration function is used. ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1f.4/i2c-8/8-0015/input/input21/event16" ++(II) XINPUT: Adding extended input device "Elan TrackPoint" (type: MOUSE, id 15) ++(**) Option "AccelerationScheme" "none" ++(**) Elan TrackPoint: (accel) selected scheme none/0 ++(**) Elan TrackPoint: (accel) acceleration factor: 2.000 ++(**) Elan TrackPoint: (accel) acceleration threshold: 4 ++(II) event16 - Elan TrackPoint: is tagged by udev as: Mouse Pointingstick ++(II) event16 - Elan TrackPoint: device is a pointer ++(II) config/udev: Adding input device Elan TrackPoint (/dev/input/mouse2) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event3) ++(**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard' ++(II) systemd-logind: got fd for /dev/input/event3 13:67 fd 38 paused 0 ++(**) AT Translated Set 2 keyboard: always reports core events ++(**) Option "Device" "/dev/input/event3" ++(II) event3 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event3 - AT Translated Set 2 keyboard: device is a keyboard ++(II) event3 - AT Translated Set 2 keyboard: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input3/event3" ++(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 16) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event3 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event3 - AT Translated Set 2 keyboard: device is a keyboard ++(II) config/udev: Adding input device ThinkPad Extra Buttons (/dev/input/event7) ++(**) ThinkPad Extra Buttons: Applying InputClass "evdev keyboard catchall" ++(**) ThinkPad Extra Buttons: Applying InputClass "libinput keyboard catchall" ++(**) ThinkPad Extra Buttons: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'ThinkPad Extra Buttons' ++(II) systemd-logind: got fd for /dev/input/event7 13:71 fd 39 paused 0 ++(**) ThinkPad Extra Buttons: always reports core events ++(**) Option "Device" "/dev/input/event7" ++(II) event7 - ThinkPad Extra Buttons: is tagged by udev as: Keyboard Switch ++(II) event7 - ThinkPad Extra Buttons: device is a keyboard ++(II) event7 - ThinkPad Extra Buttons: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/thinkpad_acpi/input/input12/event7" ++(II) XINPUT: Adding extended input device "ThinkPad Extra Buttons" (type: KEYBOARD, id 17) ++(**) Option "xkb_layout" "gb,fr" ++(**) Option "xkb_variant" ",oss" ++(II) event7 - ThinkPad Extra Buttons: is tagged by udev as: Keyboard Switch ++(II) event7 - ThinkPad Extra Buttons: device is a keyboard ++(II) intel(0): EDID vendor "CMN", prod id 5321 ++(II) intel(0): Printing DDC gathered Modelines: ++(II) intel(0): Modeline "1920x1080"x0.0 152.84 1920 2000 2060 2250 1080 1086 1094 1132 -hsync -vsync (67.9 kHz eP) ++(**) Option "fd" "26" ++(II) event2 - Power Button: device removed ++(**) Option "fd" "29" ++(II) event10 - Video Bus: device removed ++(**) Option "fd" "30" ++(II) event0 - Sleep Button: device removed ++(**) Option "fd" "31" ++(II) event4 - Yubico Yubico Yubikey II: device removed ++(**) Option "fd" "32" ++(II) event17 - Integrated Camera: Integrated C: device removed ++(**) Option "fd" "33" ++(II) event6 - Lenovo ThinkPad Thunderbolt 3 Dock USB Audio: device removed ++(**) Option "fd" "34" ++(II) event5 - USB OPTICAL MOUSE : device removed ++(**) Option "fd" "35" ++(II) event9 - HID 046a:0011: device removed ++(**) Option "fd" "36" ++(II) event15 - Elan Touchpad: device removed ++(**) Option "fd" "37" ++(II) event16 - Elan TrackPoint: device removed ++(**) Option "fd" "38" ++(II) event3 - AT Translated Set 2 keyboard: device removed ++(**) Option "fd" "39" ++(II) event7 - ThinkPad Extra Buttons: device removed ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:71 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:67 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:80 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:79 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:73 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:69 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:70 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:81 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:68 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:64 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:74 ++(II) UnloadModule: "libinput" ++(II) systemd-logind: releasing fd for 13:66 ++(II) Server terminated successfully (0). Closing log file. +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-qxl b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-qxl +new file mode 100644 +index 00000000..1fa48151 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-qxl +@@ -0,0 +1,309 @@ ++(--) Log file renamed from "/home/johndoe/.local/share/xorg/Xorg.pid-1694.log" to "/home/johndoe/.local/share/xorg/Xorg.0.log" ++X.Org X Server 1.20.11 ++X Protocol Version 11, Revision 0 ++Build Operating System: 4.18.0-305.17.1.el8_4.x86_64 ++Current Operating System: Linux el8 4.18.0-409.el8.x86_64 #1 SMP Tue Jul 12 00:42:37 EDT 2022 x86_64 ++Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-409.el8.x86_64 root=/dev/mapper/rhel_el8-root ro resume=/dev/mapper/rhel_el8-swap rd.lvm.lv=rhel_el8/root rd.lvm.lv=rhel_el8/swap rhgb quiet ++Build Date: 09 June 2022 04:30:21PM ++Build ID: xorg-x11-server 1.20.11-8.el8 ++Current version of pixman: 0.38.4 ++ Before reporting problems, check http://wiki.x.org ++ to make sure that you have the latest version. ++Markers: (--) probed, (**) from config file, (==) default setting, ++ (++) from command line, (!!) notice, (II) informational, ++ (WW) warning, (EE) error, (NI) not implemented, (??) unknown. ++(==) Log file: "/home/johndoe/.local/share/xorg/Xorg.2.log", Time: Wed May 10 10:21:00 2023 ++(==) Using config directory: "/etc/X11/xorg.conf.d" ++(==) Using system config directory "/usr/share/X11/xorg.conf.d" ++(==) No Layout section. Using the first Screen section. ++(==) No screen section available. Using defaults. ++(**) |-->Screen "Default Screen Section" (0) ++(**) | |-->Monitor "" ++(==) No monitor specified for screen "Default Screen Section". ++ Using a default monitor configuration. ++(==) Automatically adding devices ++(==) Automatically enabling devices ++(==) Automatically adding GPU devices ++(==) Automatically binding GPU devices ++(==) Max clients allowed: 256, resource mask: 0x1fffff ++(==) FontPath set to: ++ catalogue:/etc/X11/fontpath.d, ++ built-ins ++(==) ModulePath set to "/usr/lib64/xorg/modules" ++(II) The server relies on udev to provide the list of input devices. ++ If no devices become available, reconfigure udev or disable AutoAddDevices. ++(II) Loader magic: 0x56380b065020 ++(II) Module ABI versions: ++ X.Org ANSI C Emulation: 0.4 ++ X.Org Video Driver: 24.1 ++ X.Org XInput driver : 24.1 ++ X.Org Server Extension : 10.0 ++(++) using VT number 2 ++(II) systemd-logind: took control of session /org/freedesktop/login1/session/_32 ++(II) xfree86: Adding drm device (/dev/dri/card0) ++(II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card0 ++(II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 12 paused 0 ++(--) PCI:*(0@0:2:0) 1b36:0100:1af4:1100 rev 4, Mem @ 0xf4000000/67108864, 0xf8000000/67108864, 0xfc054000/8192, I/O @ 0x0000c080/32, BIOS @ 0x????????/65536 ++(II) LoadModule: "glx" ++(II) Loading /usr/lib64/xorg/modules/extensions/libglx.so ++(II) Module glx: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.0.0 ++ ABI class: X.Org Server Extension, version 10.0 ++(==) Matched qxl as autoconfigured driver 0 ++(==) Matched modesetting as autoconfigured driver 1 ++(==) Matched fbdev as autoconfigured driver 2 ++(==) Matched vesa as autoconfigured driver 3 ++(==) Assigned the driver to the xf86ConfigLayout ++(II) LoadModule: "qxl" ++(II) Loading /usr/lib64/xorg/modules/drivers/qxl_drv.so ++(II) Module qxl: vendor="X.Org Foundation" ++ compiled for 1.20.3, module version = 0.1.5 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.0 ++(II) LoadModule: "modesetting" ++(II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so ++(II) Module modesetting: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.20.11 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.1 ++(II) LoadModule: "fbdev" ++(II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so ++(II) Module fbdev: vendor="X.Org Foundation" ++ compiled for 1.20.1, module version = 0.5.0 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.0 ++(II) LoadModule: "vesa" ++(II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so ++(II) Module vesa: vendor="X.Org Foundation" ++ compiled for 1.20.2, module version = 2.4.0 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.0 ++(II) qxl: Driver for QXL virtual graphics: QXL 1 ++(II) modesetting: Driver for Modesetting Kernel Drivers: kms ++(II) FBDEV: driver for framebuffer: fbdev ++(II) VESA: driver for VESA chipsets: vesa ++xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted) ++(II) [KMS] Kernel modesetting enabled. ++(WW) Falling back to old probe method for modesetting ++(WW) Falling back to old probe method for fbdev ++(II) Loading sub module "fbdevhw" ++(II) LoadModule: "fbdevhw" ++(II) Loading /usr/lib64/xorg/modules/libfbdevhw.so ++(II) Module fbdevhw: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 0.0.2 ++ ABI class: X.Org Video Driver, version 24.1 ++(EE) open /dev/fb0: Permission denied ++(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support ++(II) qxl(0): Creating default Display subsection in Screen section ++ "Default Screen Section" for depth/fbbpp 24/32 ++(==) qxl(0): Depth 24, (--) framebuffer bpp 32 ++(==) qxl(0): RGB weight 888 ++(==) qxl(0): Default visual is TrueColor ++(==) qxl(0): Using gamma correction (1.0, 1.0, 1.0) ++(II) qxl(0): Deferred Frames: Disabled ++(II) qxl(0): Offscreen Surfaces: Enabled ++(II) qxl(0): Image Cache: Enabled ++(II) qxl(0): Fallback Cache: Enabled ++(==) qxl(0): DPI set to (96, 96) ++(II) Loading sub module "fb" ++(II) LoadModule: "fb" ++(II) Loading /usr/lib64/xorg/modules/libfb.so ++(II) Module fb: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.0.0 ++ ABI class: X.Org ANSI C Emulation, version 0.4 ++(II) Loading sub module "ramdac" ++(II) LoadModule: "ramdac" ++(II) Module "ramdac" already built-in ++(II) qxl(0): Output Virtual-0 has no monitor section ++(II) qxl(0): Output Virtual-1 has no monitor section ++(II) qxl(0): Output Virtual-2 has no monitor section ++(II) qxl(0): Output Virtual-3 has no monitor section ++(II) qxl(0): EDID for output Virtual-0 ++(II) qxl(0): Printing probed modes for output Virtual-0 ++(II) qxl(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz eP) ++(II) qxl(0): Modeline "2560x1600"x60.0 348.50 2560 2752 3032 3504 1600 1603 1609 1658 -hsync +vsync (99.5 kHz e) ++(II) qxl(0): Modeline "2560x1600"x60.0 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync (98.7 kHz e) ++(II) qxl(0): Modeline "1920x1440"x60.0 234.00 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync (90.0 kHz e) ++(II) qxl(0): Modeline "1856x1392"x60.0 218.25 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync (86.3 kHz e) ++(II) qxl(0): Modeline "1792x1344"x60.0 204.75 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync (83.6 kHz e) ++(II) qxl(0): Modeline "2048x1152"x60.0 162.00 2048 2074 2154 2250 1152 1153 1156 1200 +hsync +vsync (72.0 kHz e) ++(II) qxl(0): Modeline "1920x1200"x59.9 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync (74.6 kHz e) ++(II) qxl(0): Modeline "1920x1200"x60.0 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync (74.0 kHz e) ++(II) qxl(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync -vsync (67.5 kHz e) ++(II) qxl(0): Modeline "1600x1200"x60.0 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz e) ++(II) qxl(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz e) ++(II) qxl(0): Modeline "1680x1050"x59.9 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz e) ++(II) qxl(0): Modeline "1400x1050"x60.0 121.75 1400 1488 1632 1864 1050 1053 1057 1089 -hsync +vsync (65.3 kHz e) ++(II) qxl(0): Modeline "1400x1050"x59.9 101.00 1400 1448 1480 1560 1050 1053 1057 1080 +hsync -vsync (64.7 kHz e) ++(II) qxl(0): Modeline "1600x900"x60.0 108.00 1600 1624 1704 1800 900 901 904 1000 +hsync +vsync (60.0 kHz e) ++(II) qxl(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e) ++(II) qxl(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz e) ++(II) qxl(0): Modeline "1440x900"x59.9 88.75 1440 1488 1520 1600 900 903 909 926 +hsync -vsync (55.5 kHz e) ++(II) qxl(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e) ++(II) qxl(0): Modeline "1280x854"x60.0 89.34 1280 1352 1480 1680 854 857 867 887 -hsync +vsync (53.2 kHz) ++(II) qxl(0): Modeline "1366x768"x59.8 85.50 1366 1436 1579 1792 768 771 774 798 +hsync +vsync (47.7 kHz e) ++(II) qxl(0): Modeline "1366x768"x60.0 72.00 1366 1380 1436 1500 768 769 772 800 +hsync +vsync (48.0 kHz e) ++(II) qxl(0): Modeline "1360x768"x60.0 85.50 1360 1424 1536 1792 768 771 777 795 +hsync +vsync (47.7 kHz e) ++(II) qxl(0): Modeline "1280x800"x59.8 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync (49.7 kHz e) ++(II) qxl(0): Modeline "1280x800"x59.9 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync (49.3 kHz e) ++(II) qxl(0): Modeline "1280x768"x59.9 79.50 1280 1344 1472 1664 768 771 778 798 -hsync +vsync (47.8 kHz e) ++(II) qxl(0): Modeline "1280x768"x60.0 68.25 1280 1328 1360 1440 768 771 778 790 +hsync -vsync (47.4 kHz e) ++(II) qxl(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e) ++(II) qxl(0): Modeline "1152x768"x59.9 71.95 1152 1216 1328 1504 768 771 781 798 -hsync +vsync (47.8 kHz) ++(II) qxl(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) ++(II) qxl(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e) ++(II) qxl(0): Modeline "848x480"x60.0 33.75 848 864 976 1088 480 486 494 517 +hsync +vsync (31.0 kHz e) ++(II) qxl(0): Modeline "720x480"x59.9 26.85 720 744 808 896 480 483 493 500 -hsync +vsync (30.0 kHz) ++(II) qxl(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e) ++(II) qxl(0): EDID for output Virtual-1 ++(II) qxl(0): EDID for output Virtual-2 ++(II) qxl(0): EDID for output Virtual-3 ++(II) qxl(0): Output Virtual-0 connected ++(II) qxl(0): Output Virtual-1 disconnected ++(II) qxl(0): Output Virtual-2 disconnected ++(II) qxl(0): Output Virtual-3 disconnected ++(II) qxl(0): Using exact sizes for initial modes ++(II) qxl(0): Output Virtual-0 using initial mode 1024x768 +0+0 ++(II) qxl(0): PreInit complete ++(II) qxl(0): git commit 499e30d ++(II) UnloadModule: "modesetting" ++(II) Unloading modesetting ++(II) UnloadModule: "fbdev" ++(II) Unloading fbdev ++(II) UnloadSubModule: "fbdevhw" ++(II) Unloading fbdevhw ++(II) UnloadModule: "vesa" ++(II) Unloading vesa ++(II) UXA(0): Driver registered support for the following operations: ++(II) solid ++(II) copy ++(II) composite (RENDER acceleration) ++(II) put_image ++resizing primary to 1024x768 ++primary is 0x56380ba8b930 ++(II) Initializing extension Generic Event Extension ++(II) Initializing extension SHAPE ++(II) Initializing extension MIT-SHM ++(II) Initializing extension XInputExtension ++(II) Initializing extension XTEST ++(II) Initializing extension BIG-REQUESTS ++(II) Initializing extension SYNC ++(II) Initializing extension XKEYBOARD ++(II) Initializing extension XC-MISC ++(II) Initializing extension SECURITY ++(II) Initializing extension XFIXES ++(II) Initializing extension RENDER ++(II) Initializing extension RANDR ++(II) Initializing extension COMPOSITE ++(II) Initializing extension DAMAGE ++(II) Initializing extension MIT-SCREEN-SAVER ++(II) Initializing extension DOUBLE-BUFFER ++(II) Initializing extension RECORD ++(II) Initializing extension DPMS ++(II) Initializing extension Present ++(II) Initializing extension DRI3 ++(II) Initializing extension X-Resource ++(II) Initializing extension XVideo ++(II) Initializing extension XVideo-MotionCompensation ++(II) Initializing extension SELinux ++(II) SELinux: Disabled on system ++(II) Initializing extension GLX ++(II) AIGLX: Screen 0 is not DRI2 capable ++(II) IGLX: Loaded and initialized swrast ++(II) GLX: Initialized DRISWRAST GL provider for screen 0 ++(II) Initializing extension XFree86-VidModeExtension ++(II) Initializing extension XFree86-DGA ++(II) Initializing extension XFree86-DRI ++(II) Initializing extension DRI2 ++(II) qxl(0): Setting screen physical size to 270 x 203 ++(II) config/udev: Adding input device Power Button (/dev/input/event0) ++(**) Power Button: Applying InputClass "evdev keyboard catchall" ++(**) Power Button: Applying InputClass "libinput keyboard catchall" ++(**) Power Button: Applying InputClass "system-keyboard" ++(II) LoadModule: "libinput" ++(II) Loading /usr/lib64/xorg/modules/input/libinput_drv.so ++(II) Module libinput: vendor="X.Org Foundation" ++ compiled for 1.20.3, module version = 0.29.0 ++ Module class: X.Org XInput Driver ++ ABI class: X.Org XInput driver, version 24.1 ++(II) Using input driver 'libinput' for 'Power Button' ++(II) systemd-logind: got fd for /dev/input/event0 13:64 fd 20 paused 0 ++(**) Power Button: always reports core events ++(**) Option "Device" "/dev/input/event0" ++(**) Option "_source" "server/udev" ++(II) event0 - Power Button: is tagged by udev as: Keyboard ++(II) event0 - Power Button: device is a keyboard ++(II) event0 - Power Button: device removed ++(**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input0/event0" ++(II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) ++(**) Option "xkb_model" "pc105" ++(**) Option "xkb_layout" "gb" ++(**) Option "xkb_options" "terminate:ctrl_alt_bksp" ++(II) event0 - Power Button: is tagged by udev as: Keyboard ++(II) event0 - Power Button: device is a keyboard ++(II) config/udev: Adding input device QEMU QEMU USB Tablet (/dev/input/event2) ++(**) QEMU QEMU USB Tablet: Applying InputClass "evdev pointer catchall" ++(**) QEMU QEMU USB Tablet: Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'QEMU QEMU USB Tablet' ++(II) systemd-logind: got fd for /dev/input/event2 13:66 fd 23 paused 0 ++(**) QEMU QEMU USB Tablet: always reports core events ++(**) Option "Device" "/dev/input/event2" ++(**) Option "_source" "server/udev" ++(II) event2 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse ++(II) event2 - QEMU QEMU USB Tablet: device is a pointer ++(II) event2 - QEMU QEMU USB Tablet: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:05.7/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input4/event2" ++(II) XINPUT: Adding extended input device "QEMU QEMU USB Tablet" (type: MOUSE, id 7) ++(**) Option "AccelerationScheme" "none" ++(**) QEMU QEMU USB Tablet: (accel) selected scheme none/0 ++(**) QEMU QEMU USB Tablet: (accel) acceleration factor: 2.000 ++(**) QEMU QEMU USB Tablet: (accel) acceleration threshold: 4 ++(II) event2 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse ++(II) event2 - QEMU QEMU USB Tablet: device is a pointer ++(II) config/udev: Adding input device QEMU QEMU USB Tablet (/dev/input/mouse0) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event1) ++(**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard' ++(II) systemd-logind: got fd for /dev/input/event1 13:65 fd 24 paused 0 ++(**) AT Translated Set 2 keyboard: always reports core events ++(**) Option "Device" "/dev/input/event1" ++(**) Option "_source" "server/udev" ++(II) event1 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event1 - AT Translated Set 2 keyboard: device is a keyboard ++(II) event1 - AT Translated Set 2 keyboard: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input1/event1" ++(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 8) ++(**) Option "xkb_model" "pc105" ++(**) Option "xkb_layout" "gb" ++(**) Option "xkb_options" "terminate:ctrl_alt_bksp" ++(II) event1 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event1 - AT Translated Set 2 keyboard: device is a keyboard ++(II) config/udev: Adding input device ImExPS/2 Generic Explorer Mouse (/dev/input/event3) ++(**) ImExPS/2 Generic Explorer Mouse: Applying InputClass "evdev pointer catchall" ++(**) ImExPS/2 Generic Explorer Mouse: Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'ImExPS/2 Generic Explorer Mouse' ++(II) systemd-logind: got fd for /dev/input/event3 13:67 fd 25 paused 0 ++(**) ImExPS/2 Generic Explorer Mouse: always reports core events ++(**) Option "Device" "/dev/input/event3" ++(**) Option "_source" "server/udev" ++(II) event3 - ImExPS/2 Generic Explorer Mouse: is tagged by udev as: Mouse ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device is a pointer ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input3/event3" ++(II) XINPUT: Adding extended input device "ImExPS/2 Generic Explorer Mouse" (type: MOUSE, id 9) ++(**) Option "AccelerationScheme" "none" ++(**) ImExPS/2 Generic Explorer Mouse: (accel) selected scheme none/0 ++(**) ImExPS/2 Generic Explorer Mouse: (accel) acceleration factor: 2.000 ++(**) ImExPS/2 Generic Explorer Mouse: (accel) acceleration threshold: 4 ++(II) event3 - ImExPS/2 Generic Explorer Mouse: is tagged by udev as: Mouse ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device is a pointer ++(II) config/udev: Adding input device ImExPS/2 Generic Explorer Mouse (/dev/input/mouse1) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device PC Speaker (/dev/input/event4) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-without-qxl b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-without-qxl +new file mode 100644 +index 00000000..62c24b60 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/files/journalctl-xorg-without-qxl +@@ -0,0 +1,305 @@ ++(--) Log file renamed from "/home/johndoe/.local/share/xorg/Xorg.pid-1677.log" to "/home/johndoe/.local/share/xorg/Xorg.0.log" ++X.Org X Server 1.20.11 ++X Protocol Version 11, Revision 0 ++Build Operating System: 4.18.0-305.17.1.el8_4.x86_64 ++Current Operating System: Linux el8 4.18.0-409.el8.x86_64 #1 SMP Tue Jul 12 00:42:37 EDT 2022 x86_64 ++Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-409.el8.x86_64 root=/dev/mapper/rhel_el8-root ro resume=/dev/mapper/rhel_el8-swap rd.lvm.lv=rhel_el8/root rd.lvm.lv=rhel_el8/swap rhgb quiet ++Build Date: 09 June 2022 04:30:21PM ++Build ID: xorg-x11-server 1.20.11-8.el8 ++Current version of pixman: 0.38.4 ++ Before reporting problems, check http://wiki.x.org ++ to make sure that you have the latest version. ++Markers: (--) probed, (**) from config file, (==) default setting, ++ (++) from command line, (!!) notice, (II) informational, ++ (WW) warning, (EE) error, (NI) not implemented, (??) unknown. ++(==) Log file: "/home/johndoe/.local/share/xorg/Xorg.0.log", Time: Tue May 30 15:33:30 2023 ++(==) Using config directory: "/etc/X11/xorg.conf.d" ++(==) Using system config directory "/usr/share/X11/xorg.conf.d" ++(==) No Layout section. Using the first Screen section. ++(==) No screen section available. Using defaults. ++(**) |-->Screen "Default Screen Section" (0) ++(**) | |-->Monitor "" ++(==) No monitor specified for screen "Default Screen Section". ++ Using a default monitor configuration. ++(==) Automatically adding devices ++(==) Automatically enabling devices ++(==) Automatically adding GPU devices ++(==) Automatically binding GPU devices ++(==) Max clients allowed: 256, resource mask: 0x1fffff ++(==) FontPath set to: ++ catalogue:/etc/X11/fontpath.d, ++ built-ins ++(==) ModulePath set to "/usr/lib64/xorg/modules" ++(II) The server relies on udev to provide the list of input devices. ++ If no devices become available, reconfigure udev or disable AutoAddDevices. ++(II) Loader magic: 0x556bf9d4f020 ++(II) Module ABI versions: ++ X.Org ANSI C Emulation: 0.4 ++ X.Org Video Driver: 24.1 ++ X.Org XInput driver : 24.1 ++ X.Org Server Extension : 10.0 ++(++) using VT number 2 ++(II) systemd-logind: took control of session /org/freedesktop/login1/session/_32 ++(II) xfree86: Adding drm device (/dev/dri/card0) ++(II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card0 ++(II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 12 paused 0 ++(--) PCI:*(0@0:2:0) 1b36:0100:1af4:1100 rev 4, Mem @ 0xf4000000/67108864, 0xf8000000/67108864, 0xfc054000/8192, I/O @ 0x0000c080/32, BIOS @ 0x????????/65536 ++(II) LoadModule: "glx" ++(II) Loading /usr/lib64/xorg/modules/extensions/libglx.so ++(II) Module glx: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.0.0 ++ ABI class: X.Org Server Extension, version 10.0 ++(==) Matched qxl as autoconfigured driver 0 ++(==) Matched modesetting as autoconfigured driver 1 ++(==) Matched fbdev as autoconfigured driver 2 ++(==) Matched vesa as autoconfigured driver 3 ++(==) Assigned the driver to the xf86ConfigLayout ++(II) LoadModule: "qxl" ++(WW) Warning, couldn't open module qxl ++(EE) Failed to load module "qxl" (module does not exist, 0) ++(II) LoadModule: "modesetting" ++(II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so ++(II) Module modesetting: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.20.11 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.1 ++(II) LoadModule: "fbdev" ++(II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so ++(II) Module fbdev: vendor="X.Org Foundation" ++ compiled for 1.20.1, module version = 0.5.0 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.0 ++(II) LoadModule: "vesa" ++(II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so ++(II) Module vesa: vendor="X.Org Foundation" ++ compiled for 1.20.2, module version = 2.4.0 ++ Module class: X.Org Video Driver ++ ABI class: X.Org Video Driver, version 24.0 ++(II) modesetting: Driver for Modesetting Kernel Drivers: kms ++(II) FBDEV: driver for framebuffer: fbdev ++(II) VESA: driver for VESA chipsets: vesa ++xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted) ++(II) modeset(0): using drv /dev/dri/card0 ++(WW) Falling back to old probe method for fbdev ++(II) Loading sub module "fbdevhw" ++(II) LoadModule: "fbdevhw" ++(II) Loading /usr/lib64/xorg/modules/libfbdevhw.so ++(II) Module fbdevhw: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 0.0.2 ++ ABI class: X.Org Video Driver, version 24.1 ++(EE) open /dev/fb0: Permission denied ++(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support ++(II) modeset(0): Creating default Display subsection in Screen section ++ "Default Screen Section" for depth/fbbpp 24/32 ++(==) modeset(0): Depth 24, (==) framebuffer bpp 32 ++(==) modeset(0): RGB weight 888 ++(==) modeset(0): Default visual is TrueColor ++(II) Loading sub module "glamoregl" ++(II) LoadModule: "glamoregl" ++(II) Loading /usr/lib64/xorg/modules/libglamoregl.so ++(II) Module glamoregl: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.0.1 ++ ABI class: X.Org ANSI C Emulation, version 0.4 ++pci id for fd 12: 1b36:0100, driver (null) ++MESA-LOADER: failed to open qxl: /usr/lib64/dri/qxl_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri) ++failed to load driver: qxl ++MESA-LOADER: failed to open zink: /usr/lib64/dri/zink_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri) ++failed to load driver: zink ++(II) modeset(0): Refusing to try glamor on llvmpipe ++(II) modeset(0): glamor initialization failed ++(II) modeset(0): ShadowFB: preferred NO, enabled NO ++(II) modeset(0): Output Virtual-1 has no monitor section ++(II) modeset(0): Output Virtual-2 has no monitor section ++(II) modeset(0): Output Virtual-3 has no monitor section ++(II) modeset(0): Output Virtual-4 has no monitor section ++(II) modeset(0): EDID for output Virtual-1 ++(II) modeset(0): Printing probed modes for output Virtual-1 ++(II) modeset(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz eP) ++(II) modeset(0): Modeline "2560x1600"x60.0 348.50 2560 2752 3032 3504 1600 1603 1609 1658 -hsync +vsync (99.5 kHz e) ++(II) modeset(0): Modeline "2560x1600"x60.0 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync (98.7 kHz e) ++(II) modeset(0): Modeline "1920x1440"x60.0 234.00 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync (90.0 kHz e) ++(II) modeset(0): Modeline "1856x1392"x60.0 218.25 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync (86.3 kHz e) ++(II) modeset(0): Modeline "1792x1344"x60.0 204.75 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync (83.6 kHz e) ++(II) modeset(0): Modeline "2048x1152"x60.0 162.00 2048 2074 2154 2250 1152 1153 1156 1200 +hsync +vsync (72.0 kHz e) ++(II) modeset(0): Modeline "1920x1200"x59.9 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync (74.6 kHz e) ++(II) modeset(0): Modeline "1920x1200"x60.0 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync (74.0 kHz e) ++(II) modeset(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync -vsync (67.5 kHz e) ++(II) modeset(0): Modeline "1600x1200"x60.0 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz e) ++(II) modeset(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz e) ++(II) modeset(0): Modeline "1680x1050"x59.9 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz e) ++(II) modeset(0): Modeline "1400x1050"x60.0 121.75 1400 1488 1632 1864 1050 1053 1057 1089 -hsync +vsync (65.3 kHz e) ++(II) modeset(0): Modeline "1400x1050"x59.9 101.00 1400 1448 1480 1560 1050 1053 1057 1080 +hsync -vsync (64.7 kHz e) ++(II) modeset(0): Modeline "1600x900"x60.0 108.00 1600 1624 1704 1800 900 901 904 1000 +hsync +vsync (60.0 kHz e) ++(II) modeset(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e) ++(II) modeset(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz e) ++(II) modeset(0): Modeline "1440x900"x59.9 88.75 1440 1488 1520 1600 900 903 909 926 +hsync -vsync (55.5 kHz e) ++(II) modeset(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e) ++(II) modeset(0): Modeline "1280x854"x60.0 89.34 1280 1352 1480 1680 854 857 867 887 -hsync +vsync (53.2 kHz) ++(II) modeset(0): Modeline "1366x768"x59.8 85.50 1366 1436 1579 1792 768 771 774 798 +hsync +vsync (47.7 kHz e) ++(II) modeset(0): Modeline "1366x768"x60.0 72.00 1366 1380 1436 1500 768 769 772 800 +hsync +vsync (48.0 kHz e) ++(II) modeset(0): Modeline "1360x768"x60.0 85.50 1360 1424 1536 1792 768 771 777 795 +hsync +vsync (47.7 kHz e) ++(II) modeset(0): Modeline "1280x800"x59.8 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync (49.7 kHz e) ++(II) modeset(0): Modeline "1280x800"x59.9 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync (49.3 kHz e) ++(II) modeset(0): Modeline "1280x768"x59.9 79.50 1280 1344 1472 1664 768 771 778 798 -hsync +vsync (47.8 kHz e) ++(II) modeset(0): Modeline "1280x768"x60.0 68.25 1280 1328 1360 1440 768 771 778 790 +hsync -vsync (47.4 kHz e) ++(II) modeset(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e) ++(II) modeset(0): Modeline "1152x768"x59.9 71.95 1152 1216 1328 1504 768 771 781 798 -hsync +vsync (47.8 kHz) ++(II) modeset(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) ++(II) modeset(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e) ++(II) modeset(0): Modeline "848x480"x60.0 33.75 848 864 976 1088 480 486 494 517 +hsync +vsync (31.0 kHz e) ++(II) modeset(0): Modeline "720x480"x59.9 26.85 720 744 808 896 480 483 493 500 -hsync +vsync (30.0 kHz) ++(II) modeset(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e) ++(II) modeset(0): EDID for output Virtual-2 ++(II) modeset(0): EDID for output Virtual-3 ++(II) modeset(0): EDID for output Virtual-4 ++(II) modeset(0): Output Virtual-1 connected ++(II) modeset(0): Output Virtual-2 disconnected ++(II) modeset(0): Output Virtual-3 disconnected ++(II) modeset(0): Output Virtual-4 disconnected ++(II) modeset(0): Using exact sizes for initial modes ++(II) modeset(0): Output Virtual-1 using initial mode 1024x768 +0+0 ++(==) modeset(0): Using gamma correction (1.0, 1.0, 1.0) ++(==) modeset(0): DPI set to (96, 96) ++(II) Loading sub module "fb" ++(II) LoadModule: "fb" ++(II) Loading /usr/lib64/xorg/modules/libfb.so ++(II) Module fb: vendor="X.Org Foundation" ++ compiled for 1.20.11, module version = 1.0.0 ++ ABI class: X.Org ANSI C Emulation, version 0.4 ++(II) UnloadModule: "fbdev" ++(II) Unloading fbdev ++(II) UnloadSubModule: "fbdevhw" ++(II) Unloading fbdevhw ++(II) UnloadModule: "vesa" ++(II) Unloading vesa ++(==) modeset(0): Backing store enabled ++(==) modeset(0): Silken mouse enabled ++(II) modeset(0): Initializing kms color map for depth 24, 8 bpc. ++(==) modeset(0): DPMS enabled ++(II) Initializing extension Generic Event Extension ++(II) Initializing extension SHAPE ++(II) Initializing extension MIT-SHM ++(II) Initializing extension XInputExtension ++(II) Initializing extension XTEST ++(II) Initializing extension BIG-REQUESTS ++(II) Initializing extension SYNC ++(II) Initializing extension XKEYBOARD ++(II) Initializing extension XC-MISC ++(II) Initializing extension SECURITY ++(II) Initializing extension XFIXES ++(II) Initializing extension RENDER ++(II) Initializing extension RANDR ++(II) Initializing extension COMPOSITE ++(II) Initializing extension DAMAGE ++(II) Initializing extension MIT-SCREEN-SAVER ++(II) Initializing extension DOUBLE-BUFFER ++(II) Initializing extension RECORD ++(II) Initializing extension DPMS ++(II) Initializing extension Present ++(II) Initializing extension DRI3 ++(II) Initializing extension X-Resource ++(II) Initializing extension XVideo ++(II) Initializing extension XVideo-MotionCompensation ++(II) Initializing extension SELinux ++(II) SELinux: Disabled on system ++(II) Initializing extension GLX ++(II) AIGLX: Screen 0 is not DRI2 capable ++(II) IGLX: Loaded and initialized swrast ++(II) GLX: Initialized DRISWRAST GL provider for screen 0 ++(II) Initializing extension XFree86-VidModeExtension ++(II) Initializing extension XFree86-DGA ++(II) Initializing extension XFree86-DRI ++(II) Initializing extension DRI2 ++(II) modeset(0): Damage tracking initialized ++(II) modeset(0): Setting screen physical size to 270 x 203 ++(II) config/udev: Adding input device Power Button (/dev/input/event0) ++(**) Power Button: Applying InputClass "evdev keyboard catchall" ++(**) Power Button: Applying InputClass "libinput keyboard catchall" ++(**) Power Button: Applying InputClass "system-keyboard" ++(II) LoadModule: "libinput" ++(II) Loading /usr/lib64/xorg/modules/input/libinput_drv.so ++(II) Module libinput: vendor="X.Org Foundation" ++ compiled for 1.20.3, module version = 0.29.0 ++ Module class: X.Org XInput Driver ++ ABI class: X.Org XInput driver, version 24.1 ++(II) Using input driver 'libinput' for 'Power Button' ++(II) systemd-logind: got fd for /dev/input/event0 13:64 fd 21 paused 0 ++(**) Power Button: always reports core events ++(**) Option "Device" "/dev/input/event0" ++(**) Option "_source" "server/udev" ++(II) event0 - Power Button: is tagged by udev as: Keyboard ++(II) event0 - Power Button: device is a keyboard ++(II) event0 - Power Button: device removed ++(**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input0/event0" ++(II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) ++(**) Option "xkb_model" "pc105" ++(**) Option "xkb_layout" "gb" ++(**) Option "xkb_options" "terminate:ctrl_alt_bksp" ++(II) event0 - Power Button: is tagged by udev as: Keyboard ++(II) event0 - Power Button: device is a keyboard ++(II) config/udev: Adding input device QEMU QEMU USB Tablet (/dev/input/event2) ++(**) QEMU QEMU USB Tablet: Applying InputClass "evdev pointer catchall" ++(**) QEMU QEMU USB Tablet: Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'QEMU QEMU USB Tablet' ++(II) systemd-logind: got fd for /dev/input/event2 13:66 fd 24 paused 0 ++(**) QEMU QEMU USB Tablet: always reports core events ++(**) Option "Device" "/dev/input/event2" ++(**) Option "_source" "server/udev" ++(II) event2 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse ++(II) event2 - QEMU QEMU USB Tablet: device is a pointer ++(II) event2 - QEMU QEMU USB Tablet: device removed ++(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:05.7/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input4/event2" ++(II) XINPUT: Adding extended input device "QEMU QEMU USB Tablet" (type: MOUSE, id 7) ++(**) Option "AccelerationScheme" "none" ++(**) QEMU QEMU USB Tablet: (accel) selected scheme none/0 ++(**) QEMU QEMU USB Tablet: (accel) acceleration factor: 2.000 ++(**) QEMU QEMU USB Tablet: (accel) acceleration threshold: 4 ++(II) event2 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse ++(II) event2 - QEMU QEMU USB Tablet: device is a pointer ++(II) config/udev: Adding input device QEMU QEMU USB Tablet (/dev/input/mouse0) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event1) ++(**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall" ++(**) AT Translated Set 2 keyboard: Applying InputClass "system-keyboard" ++(II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard' ++(II) systemd-logind: got fd for /dev/input/event1 13:65 fd 25 paused 0 ++(**) AT Translated Set 2 keyboard: always reports core events ++(**) Option "Device" "/dev/input/event1" ++(**) Option "_source" "server/udev" ++(II) event1 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event1 - AT Translated Set 2 keyboard: device is a keyboard ++(II) event1 - AT Translated Set 2 keyboard: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input1/event1" ++(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 8) ++(**) Option "xkb_model" "pc105" ++(**) Option "xkb_layout" "gb" ++(**) Option "xkb_options" "terminate:ctrl_alt_bksp" ++(II) event1 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard ++(II) event1 - AT Translated Set 2 keyboard: device is a keyboard ++(II) config/udev: Adding input device ImExPS/2 Generic Explorer Mouse (/dev/input/event3) ++(**) ImExPS/2 Generic Explorer Mouse: Applying InputClass "evdev pointer catchall" ++(**) ImExPS/2 Generic Explorer Mouse: Applying InputClass "libinput pointer catchall" ++(II) Using input driver 'libinput' for 'ImExPS/2 Generic Explorer Mouse' ++(II) systemd-logind: got fd for /dev/input/event3 13:67 fd 26 paused 0 ++(**) ImExPS/2 Generic Explorer Mouse: always reports core events ++(**) Option "Device" "/dev/input/event3" ++(**) Option "_source" "server/udev" ++(II) event3 - ImExPS/2 Generic Explorer Mouse: is tagged by udev as: Mouse ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device is a pointer ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device removed ++(**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input3/event3" ++(II) XINPUT: Adding extended input device "ImExPS/2 Generic Explorer Mouse" (type: MOUSE, id 9) ++(**) Option "AccelerationScheme" "none" ++(**) ImExPS/2 Generic Explorer Mouse: (accel) selected scheme none/0 ++(**) ImExPS/2 Generic Explorer Mouse: (accel) acceleration factor: 2.000 ++(**) ImExPS/2 Generic Explorer Mouse: (accel) acceleration threshold: 4 ++(II) event3 - ImExPS/2 Generic Explorer Mouse: is tagged by udev as: Mouse ++(II) event3 - ImExPS/2 Generic Explorer Mouse: device is a pointer ++(II) config/udev: Adding input device ImExPS/2 Generic Explorer Mouse (/dev/input/mouse1) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. ++(II) config/udev: Adding input device PC Speaker (/dev/input/event4) ++(II) No input driver specified, ignoring this device. ++(II) This device may have been added with another device file. +diff --git a/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/test_xorgdrvfact.py b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/test_xorgdrvfact.py +new file mode 100644 +index 00000000..44bc10a1 +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/actors/xorgdrvfact/tests/test_xorgdrvfact.py +@@ -0,0 +1,77 @@ ++import os ++ ++from leapp.libraries.actor import xorgdriverlib ++from leapp.models import XorgDrv, XorgDrvFacts ++ ++CUR_DIR = os.path.dirname(os.path.abspath(__file__)) ++ ++ ++def _read_log_file(path): ++ """ ++ Read a log file in text mode and return the contents as an array. ++ ++ :param path: Log file path ++ """ ++ with open(path, 'r') as f: ++ return f.read().splitlines() ++ ++ ++def test_check_drv_and_options_qxl_driver(monkeypatch): ++ ++ def get_xorg_logs_from_journal_mocked(): ++ return _read_log_file(os.path.join(CUR_DIR, 'files/journalctl-xorg-qxl')) ++ ++ monkeypatch.setattr(xorgdriverlib, 'get_xorg_logs_from_journal', get_xorg_logs_from_journal_mocked) ++ xorg_logs = xorgdriverlib.get_xorg_logs_from_journal() ++ expected = XorgDrv(driver='qxl', has_options=False) ++ actual = xorgdriverlib.check_drv_and_options('qxl', xorg_logs) ++ assert expected == actual ++ ++ ++def test_check_drv_and_options_intel_driver(monkeypatch): ++ ++ def get_xorg_logs_from_journal_mocked(): ++ return _read_log_file(os.path.join(CUR_DIR, 'files/journalctl-xorg-intel')) ++ ++ monkeypatch.setattr(xorgdriverlib, 'get_xorg_logs_from_journal', get_xorg_logs_from_journal_mocked) ++ xorg_logs = xorgdriverlib.get_xorg_logs_from_journal() ++ expected = XorgDrv(driver='intel', has_options=True) ++ actual = xorgdriverlib.check_drv_and_options('intel', xorg_logs) ++ assert expected == actual ++ ++ ++def test_actor_with_deprecated_driver_without_options(current_actor_context, monkeypatch): ++ ++ def get_xorg_logs_from_journal_mocked(): ++ return _read_log_file(os.path.join(CUR_DIR, 'files/journalctl-xorg-qxl')) ++ ++ monkeypatch.setattr(xorgdriverlib, 'get_xorg_logs_from_journal', get_xorg_logs_from_journal_mocked) ++ current_actor_context.run() ++ facts = list(current_actor_context.consume(XorgDrvFacts)) ++ assert facts and len(facts[0].xorg_drivers) == 1 ++ assert (facts[0].xorg_drivers)[0].driver == 'qxl' ++ assert (facts[0].xorg_drivers)[0].has_options is False ++ ++ ++def test_actor_with_deprecated_driver_with_options(current_actor_context, monkeypatch): ++ ++ def get_xorg_logs_from_journal_mocked(): ++ return _read_log_file(os.path.join(CUR_DIR, 'files/journalctl-xorg-intel')) ++ ++ monkeypatch.setattr(xorgdriverlib, 'get_xorg_logs_from_journal', get_xorg_logs_from_journal_mocked) ++ current_actor_context.run() ++ facts = list(current_actor_context.consume(XorgDrvFacts)) ++ assert facts and len(facts[0].xorg_drivers) == 1 ++ assert (facts[0].xorg_drivers)[0].driver == 'intel' ++ assert (facts[0].xorg_drivers)[0].has_options is True ++ ++ ++def test_actor_without_deprecated_driver(current_actor_context, monkeypatch): ++ ++ def get_xorg_logs_from_journal_mocked(): ++ return _read_log_file(os.path.join(CUR_DIR, 'files/journalctl-xorg-without-qxl')) ++ ++ monkeypatch.setattr(xorgdriverlib, 'get_xorg_logs_from_journal', get_xorg_logs_from_journal_mocked) ++ current_actor_context.run() ++ facts = current_actor_context.consume(XorgDrvFacts) ++ assert facts and len(facts[0].xorg_drivers) == 0 +diff --git a/repos/system_upgrade/el8toel9/models/xorgdrv.py b/repos/system_upgrade/el8toel9/models/xorgdrv.py +new file mode 100644 +index 00000000..21d8eecd +--- /dev/null ++++ b/repos/system_upgrade/el8toel9/models/xorgdrv.py +@@ -0,0 +1,24 @@ ++from leapp.models import fields, Model ++from leapp.topics import SystemFactsTopic ++ ++ ++class XorgDrv(Model): ++ """ ++ Name of the Xorg driver in use and whether it has custom options set. ++ ++ This model is not expected to be used as a message (produced/consumed by actors). ++ It is used from within the XorgDrvFacts model. ++ """ ++ topic = SystemFactsTopic ++ ++ driver = fields.String() ++ has_options = fields.Boolean(default=False) ++ ++ ++class XorgDrvFacts(Model): ++ """ ++ List of Xorg drivers. ++ """ ++ topic = SystemFactsTopic ++ ++ xorg_drivers = fields.List(fields.Model(XorgDrv)) +-- +2.40.1 + diff --git a/leapp-repository.spec b/leapp-repository.spec index 934f385..7bc34a7 100644 --- a/leapp-repository.spec +++ b/leapp-repository.spec @@ -42,7 +42,7 @@ py2_byte_compile "%1" "%2"} Name: leapp-repository Version: 0.18.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Repositories for leapp License: ASL 2.0 @@ -55,13 +55,36 @@ BuildArch: noarch ### PATCHES HERE # Patch0001: filename.patch -Patch0001: 0001-Introduce-leapp-data-in-the-RPM-repository.patch -Patch0002: 0002-Add-el8toel9-actor-to-handle-directory-symlink.patch -Patch0003: 0003-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch -Patch0004: 0004-Change-the-upgrade-paths-for-SAP-HANA.patch -Patch0005: 0005-Update-the-repomap.json-file-for-RHUI-Azure.patch - - +Patch0001: 0001-Add-leapp-pkgs-rpm-verification-into-the-breadcrumbs.patch +Patch0002: 0002-Update-codespell-ignorelist-couldn-repositor.patch +Patch0003: 0003-Fix-dead-link-in-checkipaserver-actor.patch +Patch0004: 0004-checkhybridimage-Fix-the-produce-of-the-report.patch +Patch0005: 0005-Upgrade-packit.yaml-config-to-have-integration-tests.patch +Patch0006: 0006-Update-packit-config-to-match-the-leapp-repositoyr-t.patch +Patch0007: 0007-Add-new-environment-variable-to-8.8to9.2.patch +Patch0008: 0008-Stop-mentioning-the-releasever-file-removal.patch +Patch0009: 0009-Fix-trace-with-impossible-LEAPP_DEVEL_TARGET_RELEASE.patch +Patch0010: 0010-Make-copr-build-functioning-again.patch +Patch0011: 0011-Add-tag-in-packit.yaml-to-enable-cost-metrics-collec.patch +Patch0012: 0012-Workaround-packit-2010-issue.patch +Patch0013: 0013-Improve-the-checkgrubcore-report-message.patch +Patch0014: 0014-Update-pr-welcome-msg-with-packit-tests-info.patch +Patch0015: 0015-Further-tune-welcome-bot-message.patch +Patch0016: 0016-Remove-note-about-leapp-ci-build.patch +Patch0017: 0017-Fix-false-positive-non-utf-symlinks-reported.patch +Patch0018: 0018-Refactor-rootscanner-to-use-library.patch +Patch0019: 0019-update-.pylintrc.patch +Patch0020: 0020-Set-encoding-for-tests.patch +Patch0021: 0021-Introduce-leapp-data-in-the-RPM-repository.patch +Patch0022: 0022-Add-el8toel9-actor-to-handle-directory-symlink-with-.patch +Patch0023: 0023-Enable-8-9-upgrades-with-FIPS-enabled-1053.patch +Patch0024: 0024-Change-the-upgrade-paths-for-SAP-HANA.patch +Patch0025: 0025-Inhibit-unsupported-x86-64-microarchitecture-RHEL9.patch +Patch0026: 0026-Fix-doc-link-in-checktargetrepos.py.patch +Patch0027: 0027-Update-the-repomap.json-file-to-address-changes-in-R.patch +Patch0028: 0028-Add-prod-certs-and-upgrade-paths-for-8.9-9.3.patch +Patch0029: 0029-Update-leapp-data-files-1.1-2.0-and-requires-repomap.patch +Patch0030: 0030-el8toel9-Warn-about-deprecated-Xorg-drivers.patch %description @@ -209,6 +232,31 @@ Requires: python3-gobject-base %patch0003 -p1 %patch0004 -p1 %patch0005 -p1 +%patch0006 -p1 +%patch0007 -p1 +%patch0008 -p1 +%patch0009 -p1 +%patch0010 -p1 +%patch0011 -p1 +%patch0012 -p1 +%patch0013 -p1 +%patch0014 -p1 +%patch0015 -p1 +%patch0016 -p1 +%patch0017 -p1 +%patch0018 -p1 +%patch0019 -p1 +%patch0020 -p1 +%patch0021 -p1 +%patch0022 -p1 +%patch0023 -p1 +%patch0024 -p1 +%patch0025 -p1 +%patch0026 -p1 +%patch0027 -p1 +%patch0028 -p1 +%patch0029 -p1 +%patch0030 -p1 %build @@ -286,6 +334,15 @@ done; # no files here %changelog +* Mon Jun 19 2023 Petr Stodulka - 0.18.0-4 +- Introduce new upgrade path RHEL 8.9 -> 9.3 +- Update leapp data files to reflect new changes between systems +- Detect and report use of deprecated Xorg drivers +- Minor improvements of generated reports +- Fix false positive report about invalid symlinks +- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected +- Resolves: rhbz#2215997 + * Mon Jun 05 2023 Petr Stodulka - 0.18.0-3 - Update the repomap.json file to address planned changes on RHUI Azure - Resolves: rhbz#2203800