From b71dc1da3a44978fc1ed1ba992b73a593b97a989 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Tue, 24 Jun 2025 11:34:57 +0000 Subject: [PATCH] Import from CS git --- ...o-exit-code-on-failed-tests-in-conta.patch | 91 + ...-tests-Rename-tasks-tests-executions.patch | 82 + ...40-Fix-parsing-of-the-kernel-cmdline.patch | 166 + ...Process-repositories-based-on-distro.patch | 1142 +++ ...te-the-upgrade-data-files-stream-4.0.patch | 8925 +++++++++++++++++ ...ess-deprecation-warning-for-is_rhel_.patch | 28 + SPECS/leapp-repository.spec | 21 +- 7 files changed, 10454 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0038-Makefile-Non-zero-exit-code-on-failed-tests-in-conta.patch create mode 100644 SOURCES/0039-CI-Unit-tests-Rename-tasks-tests-executions.patch create mode 100644 SOURCES/0040-Fix-parsing-of-the-kernel-cmdline.patch create mode 100644 SOURCES/0041-repomap-Process-repositories-based-on-distro.patch create mode 100644 SOURCES/0042-Update-the-upgrade-data-files-stream-4.0.patch create mode 100644 SOURCES/0043-unit-tests-suppress-deprecation-warning-for-is_rhel_.patch diff --git a/SOURCES/0038-Makefile-Non-zero-exit-code-on-failed-tests-in-conta.patch b/SOURCES/0038-Makefile-Non-zero-exit-code-on-failed-tests-in-conta.patch new file mode 100644 index 0000000..6d8f551 --- /dev/null +++ b/SOURCES/0038-Makefile-Non-zero-exit-code-on-failed-tests-in-conta.patch @@ -0,0 +1,91 @@ +From 397975d6b63ff70755ea41b8ec8fc413966218e4 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Fri, 30 May 2025 14:13:35 +0200 +Subject: [PATCH 38/43] Makefile: Non-zero exit code on failed tests in + container + +Previously all exit codes from execution of tests inside +container have been ignored and make command ended with zero always. + +Also drop testing of el7toel8 repository for Python 3.6 on RHEL 8. +The test started to fail for unknown reason (changes in pytest or +another nonstandard python module?). As we are in the middle of +dropping all el7toel8 and python2 related content, let's just drop +it. Keeping the full removal of Py2 and el7toel8 content on separate +PR. +--- + Makefile | 29 ++++++++++++++++------------- + 1 file changed, 16 insertions(+), 13 deletions(-) + +diff --git a/Makefile b/Makefile +index ceb013ab..6769b2f3 100644 +--- a/Makefile ++++ b/Makefile +@@ -164,9 +164,9 @@ help: + @echo " PR=7 SUFFIX='my_additional_suffix' make " + @echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' make " + @echo " ACTOR= TEST_LIBS=y make test" +- @echo " BUILD_CONTAINER=el7 make build_container" ++ @echo " BUILD_CONTAINER=rhel8 make build_container" + @echo " TEST_CONTAINER=f34 make test_container" +- @echo " CONTAINER_TOOL=docker TEST_CONTAINER=rhel7 make test_container_no_lint" ++ @echo " CONTAINER_TOOL=docker TEST_CONTAINER=rhel8 make test_container_no_lint" + @echo "" + + clean: +@@ -459,30 +459,33 @@ test_container: + $(_CONTAINER_TOOL) ps -q -f name=$$_CONT_NAME && { $(_CONTAINER_TOOL) kill $$_CONT_NAME; $(_CONTAINER_TOOL) rm $$_CONT_NAME; }; \ + $(_CONTAINER_TOOL) run -di --name $$_CONT_NAME -v "$$PWD":/repo:Z -e PYTHON_VENV=$$_VENV $$TEST_IMAGE && \ + $(_CONTAINER_TOOL) exec $$_CONT_NAME rsync -aur --delete --exclude "tut*" /repo/ /repocopy && \ ++ export res=0; \ + case $$_VENV in \ + python2.7) \ +- TEST_CONT_IPU=el7toel8 $(MAKE) _test_container_ipu; \ ++ TEST_CONT_IPU=el7toel8 $(MAKE) _test_container_ipu || res=1; \ + ;;\ + python3.6) \ +- TEST_CONT_IPU=el7toel8 $(MAKE) _test_container_ipu; \ +- TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \ ++ echo "INFO: Skipping testing of el7toel8 repository. Obsoleted"; \ ++ TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu || res=1; \ + ;; \ + python3.9) \ +- TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \ +- TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \ ++ TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu || res=1; \ ++ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu || res=1; \ + ;; \ + python3.12) \ +- TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \ ++ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu || res=1; \ + ;; \ + *) \ +- TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \ +- ;;\ ++ TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu || res=1; \ ++ ;; \ + esac; \ + $(_CONTAINER_TOOL) kill $$_CONT_NAME; \ +- $(_CONTAINER_TOOL) rm $$_CONT_NAME ++ $(_CONTAINER_TOOL) rm $$_CONT_NAME; \ ++ [ $$res -ne 0 ] && echo "TIP: If you do not see an error in the end of logs, scroll up. Multiple tests could be executed." ; \ ++ exit $$res + + test_container_all: +- @for container in "f34" "rhel7" "rhel8"; do \ ++ @for container in "f34" "rhel7" "rhel8" "rhel9"; do \ + TEST_CONTAINER=$$container $(MAKE) test_container || exit 1; \ + done + +@@ -490,7 +493,7 @@ test_container_no_lint: + @_TEST_CONT_TARGET="test_no_lint" $(MAKE) test_container + + test_container_all_no_lint: +- @for container in "f34" "rhel7" "rhel8"; do \ ++ @for container in "f34" "rhel7" "rhel8" "rhel9"; do \ + TEST_CONTAINER=$$container $(MAKE) test_container_no_lint || exit 1; \ + done + +-- +2.49.0 + diff --git a/SOURCES/0039-CI-Unit-tests-Rename-tasks-tests-executions.patch b/SOURCES/0039-CI-Unit-tests-Rename-tasks-tests-executions.patch new file mode 100644 index 0000000..37e991d --- /dev/null +++ b/SOURCES/0039-CI-Unit-tests-Rename-tasks-tests-executions.patch @@ -0,0 +1,82 @@ +From 4e87908b2e17d87b69bcec29ba1e9b777439a0fe Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Fri, 30 May 2025 15:02:53 +0200 +Subject: [PATCH 39/43] CI: Unit-tests: Rename tasks & tests executions + +Previous name have been very long, repeating, and it has been +problem to read the whole informatino about what tests are performed +as the description has been shortened in WebUI, e.g.: + + Unit Tests / Run unit tests in containers (Run python linters for el8toel9 and common repositories on p... + +Let's change the name so it's shortened and easier read what test +has been actually performed. Also, no need to mention that tests are +running in container anymore, as we are not running unit-tests outside +of the container in upstream. Example of new style names: + + Unit Tests / Run: Linters (python:3.9; repos:el9toel10,common) (pull_request) + Unit Tests / Run: Unit Tests (python:3.9; repos:el9toel10,common) (pull_request) +--- + .github/workflows/unit-tests.yml | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml +index 37748396..ed82e0e5 100644 +--- a/.github/workflows/unit-tests.yml ++++ b/.github/workflows/unit-tests.yml +@@ -9,43 +9,43 @@ on: + + jobs: + test: +- name: Run unit tests in containers ++ name: 'Run: ${{ matrix.scenarios.name }}' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + scenarios: + # 9to10 +- - name: Run unit tests for el9toel10 and common repositories on python 3.12 ++ - name: 'Unit tests (python:3.12; repos:el9toel10,common)' + python: python3.12 + repos: 'el9toel10,common' + container: ubi9 +- - name: Run python linters for el9toel10 and common repositories on python 3.12 ++ - name: 'Linters (python:3.12; repos:el9toel10,common)' + python: python3.12 + repos: 'el9toel10,common' + container: ubi9-lint +- - name: Run unit tests for el9toel10 and common repositories on python 3.9 ++ - name: 'Unit tests (python:3.9; repos:el9toel10,common)' + python: python3.9 + repos: 'el9toel10,common' + container: ubi9 +- - name: Run python linters for el9toel10 and common repositories on python 3.9 ++ - name: 'Linters (python:3.9; repos:el9toel10,common)' + python: python3.9 + repos: 'el9toel10,common' + container: ubi9-lint + # 8to9 +- - name: Run unit tests for el8toel9 and common repositories on python 3.9 ++ - name: 'Unit tests (python:3.9; repos:el8toel9,common)' + python: python3.9 + repos: 'el8toel9,common' + container: ubi9 +- - name: Run python linters for el8toel9 and common repositories on python 3.9 ++ - name: 'Linters (python:3.9; repos:el8toel9,common)' + python: python3.9 + repos: 'el8toel9,common' + container: ubi9-lint +- - name: Run unit tests for el8toel9 and common repositories on python 3.6 ++ - name: 'Unit tests (python:3.6; repos:el8toel9,common)' + python: python3.6 + repos: 'el8toel9,common' + container: ubi8 +- - name: Run python linters for el8toel9 and common repositories on python 3.6 ++ - name: 'Linters (python:3.6; repos:el8toel9,common)' + python: python3.6 + repos: 'el8toel9,common' + container: ubi8-lint +-- +2.49.0 + diff --git a/SOURCES/0040-Fix-parsing-of-the-kernel-cmdline.patch b/SOURCES/0040-Fix-parsing-of-the-kernel-cmdline.patch new file mode 100644 index 0000000..948d885 --- /dev/null +++ b/SOURCES/0040-Fix-parsing-of-the-kernel-cmdline.patch @@ -0,0 +1,166 @@ +From 2646484407bef15688fb4838c2f61d06f2098f81 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Wed, 30 Apr 2025 12:54:22 +0200 +Subject: [PATCH 40/43] Fix parsing of the kernel cmdline + +Original parsing has been splitting string tokens by "=" without a +limit, means that e.g. + root=UUID=some-id +has been split to + (root, UUID, some-id) +and and stored just "root" and "UUID" strings in the parsed msg, +instead of "root" and "UUID=some-id". + +So split the key=value just based on the first occurence of "=" +instead. + +JIRA: RHELMISC-12490 + +Co-Authored-By: Karolina Kula +--- + .../common/actors/scankernelcmdline/actor.py | 16 ++--- + .../libraries/scankernelcmdline.py | 23 +++++++ + .../tests/test_scankernelcmdline.py | 67 +++++++++++++++++++ + 3 files changed, 94 insertions(+), 12 deletions(-) + create mode 100644 repos/system_upgrade/common/actors/scankernelcmdline/libraries/scankernelcmdline.py + create mode 100644 repos/system_upgrade/common/actors/scankernelcmdline/tests/test_scankernelcmdline.py + +diff --git a/repos/system_upgrade/common/actors/scankernelcmdline/actor.py b/repos/system_upgrade/common/actors/scankernelcmdline/actor.py +index 9f8fef30..2f1a5ae2 100644 +--- a/repos/system_upgrade/common/actors/scankernelcmdline/actor.py ++++ b/repos/system_upgrade/common/actors/scankernelcmdline/actor.py +@@ -1,12 +1,12 @@ + from leapp.actors import Actor +-from leapp.libraries.stdlib import run +-from leapp.models import KernelCmdline, KernelCmdlineArg ++from leapp.libraries.actor import scankernelcmdline ++from leapp.models import KernelCmdline + from leapp.tags import FactsPhaseTag, IPUWorkflowTag + + + class ScanKernelCmdline(Actor): + """ +- No documentation has been provided for the scan_kernel_cmdline actor. ++ Scan the kernel command line of the booted system. + """ + + name = 'scan_kernel_cmdline' +@@ -15,12 +15,4 @@ class ScanKernelCmdline(Actor): + tags = (FactsPhaseTag, IPUWorkflowTag) + + def process(self): +- cmdline = run(['cat', '/proc/cmdline'])['stdout'].strip() +- parameters = [] +- for parameter in cmdline.split(' '): +- if '=' in parameter: +- kv = parameter.split('=') +- parameters.append(KernelCmdlineArg(key=kv[0], value=kv[1])) +- else: +- parameters.append(KernelCmdlineArg(key=parameter)) +- self.produce(KernelCmdline(parameters=parameters)) ++ scankernelcmdline.parse_cmdline_input() +diff --git a/repos/system_upgrade/common/actors/scankernelcmdline/libraries/scankernelcmdline.py b/repos/system_upgrade/common/actors/scankernelcmdline/libraries/scankernelcmdline.py +new file mode 100644 +index 00000000..9cffa70e +--- /dev/null ++++ b/repos/system_upgrade/common/actors/scankernelcmdline/libraries/scankernelcmdline.py +@@ -0,0 +1,23 @@ ++from leapp.libraries.stdlib import api, CalledProcessError, run ++from leapp.models import KernelCmdline, KernelCmdlineArg ++ ++ ++def get_cmdline_input(): ++ try: ++ cmdline_input = run(['cat', '/proc/cmdline'])['stdout'].strip() ++ return cmdline_input ++ except (OSError, CalledProcessError): ++ api.current_logger().debug('Executing `cat /proc/cmdline` failed', exc_info=True) ++ return '' ++ ++ ++def parse_cmdline_input(): ++ cmdline = get_cmdline_input() ++ parameters = [] ++ for parameter in cmdline.split(' '): ++ if '=' in parameter: ++ kv = parameter.split('=', 1) ++ parameters.append(KernelCmdlineArg(key=kv[0], value=kv[1])) ++ else: ++ parameters.append(KernelCmdlineArg(key=parameter)) ++ api.produce(KernelCmdline(parameters=parameters)) +diff --git a/repos/system_upgrade/common/actors/scankernelcmdline/tests/test_scankernelcmdline.py b/repos/system_upgrade/common/actors/scankernelcmdline/tests/test_scankernelcmdline.py +new file mode 100644 +index 00000000..ff79054f +--- /dev/null ++++ b/repos/system_upgrade/common/actors/scankernelcmdline/tests/test_scankernelcmdline.py +@@ -0,0 +1,67 @@ ++import pytest ++ ++from leapp.libraries.actor import scankernelcmdline ++from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked ++from leapp.libraries.stdlib import api, CalledProcessError ++from leapp.models import KernelCmdline, KernelCmdlineArg ++ ++ ++def mock_cmd_output(): ++ expected_cmd_output = ( ++ 'BOOT_IMAGE=(hd0,msdos1)/vmlinuz-xxx root=UUID=some_uid ro console=tty0' ++ ' console=ttyS0,115200 rd_NO_PLYMOUTH biosdevname=0 net.ifnames=0 crashkernel=auto' ++ ) ++ return expected_cmd_output ++ ++ ++def test_cmdline_output(monkeypatch): ++ ++ monkeypatch.setattr(scankernelcmdline, 'get_cmdline_input', mock_cmd_output) ++ current_actor = CurrentActorMocked(src_ver='8.10', dst_ver='9.6') ++ monkeypatch.setattr(api, 'current_actor', current_actor) ++ monkeypatch.setattr(api, 'produce', produce_mocked()) ++ ++ scankernelcmdline.parse_cmdline_input() ++ ++ expected_params = [KernelCmdlineArg(key=k, value=v) for k, v in [ ++ ('BOOT_IMAGE', '(hd0,msdos1)/vmlinuz-xxx'), ++ ('root', 'UUID=some_uid'), ++ ('ro', None), ++ ('console', 'tty0'), ++ ('console', 'ttyS0,115200'), ++ ('rd_NO_PLYMOUTH', None), ++ ('biosdevname', '0'), ++ ('net.ifnames', '0'), ++ ('crashkernel', 'auto')]] ++ ++ expected_output_msg = KernelCmdline(parameters=expected_params) ++ assert api.produce.model_instances ++ assert expected_output_msg == api.produce.model_instances[0] ++ ++ ++def test_cmdline_content(monkeypatch): ++ ++ def run_mocked(cmd, **kwargs): ++ assert cmd == ['cat', '/proc/cmdline'] ++ output = mock_cmd_output() ++ return {'stdout': output} ++ ++ monkeypatch.setattr(scankernelcmdline, 'run', run_mocked) ++ cmd_output = scankernelcmdline.get_cmdline_input() ++ expected_cmd_output = mock_cmd_output() ++ ++ assert cmd_output == expected_cmd_output ++ ++ ++@pytest.mark.parametrize('is_os_error', [True, False]) ++def test_cmdline_run_failed(monkeypatch, is_os_error): ++ ++ def run_mocked_error(cmd, **kwargs): ++ assert cmd == ['cat', '/proc/cmdline'] ++ if is_os_error: ++ raise OSError('OSError raised') ++ raise CalledProcessError("CalledProcessError raised", cmd, "result") ++ ++ monkeypatch.setattr(scankernelcmdline, 'run', run_mocked_error) ++ cmd_output = scankernelcmdline.get_cmdline_input() ++ assert cmd_output == '' +-- +2.49.0 + diff --git a/SOURCES/0041-repomap-Process-repositories-based-on-distro.patch b/SOURCES/0041-repomap-Process-repositories-based-on-distro.patch new file mode 100644 index 0000000..ed8740c --- /dev/null +++ b/SOURCES/0041-repomap-Process-repositories-based-on-distro.patch @@ -0,0 +1,1142 @@ +From ff21cc8f8d81766658bc63f23dcf7914cef978e1 Mon Sep 17 00:00:00 2001 +From: Matej Matuska +Date: Mon, 28 Apr 2025 15:07:22 +0200 +Subject: [PATCH 41/43] repomap: Process repositories based on distro + +The original solution expect just IPU of RHEL systems and so only +source RHEL DNF repositories have been mapped to the target RHEL +repositories. Making this more distro agnostic for CentOS-like +systems, the mapping needs to be updated to respect distro specific +repositories. + +Hence a 'distro' field has been added in the 1.3.0 version of the +repomap.json format. The field is required for all the `repositories` +entries. RepomapDataHandler now takes in distro as a constructor +parameter and only consider entries with the matching distro value. + +Reflects also changes in the repomap json schema for version 1.3.0, +which drops enumeration for the `rhui` field and replace it by simple +String type to make the solution more scalable. This also means that +vendor of the repomap data file must validate this field "manually". + +All related unit-tests have been updated. As the commit is already +large, keeping the update of data files on a separate commit. + +Update the PESIDRepositoryEntry model: + * add the distro field represented by String + * change rhui type from StringEnum to String + +Jira: RHEL-80336 + +WIP setuptarget repos tests for distro + +Add repositories mapping unit tests for distro +--- + .../libraries/pes_events_scanner.py | 1 + + .../libraries/peseventsscanner_repomap.py | 51 +++- + .../tests/test_pes_event_scanner.py | 4 +- + .../tests/test_repositoriesblacklist.py | 6 +- + .../libraries/repositoriesmapping.py | 5 +- + .../tests/files/repomap_example.json | 43 ++- + .../tests/unit_test_repositoriesmapping.py | 37 ++- + .../common/actors/setuptargetrepos/actor.py | 13 +- + .../libraries/setuptargetrepos_repomap.py | 51 +++- + .../tests/test_repomapping.py | 265 ++++++++++++++---- + .../tests/test_setuptargetrepos.py | 18 +- + .../common/models/repositoriesmap.py | 7 +- + 12 files changed, 397 insertions(+), 104 deletions(-) + +diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py +index 50336150..e6741293 100644 +--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py ++++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py +@@ -400,6 +400,7 @@ def get_pesid_to_repoid_map(target_pesids): + repo_type='rpm', + channel='ga', + rhui='', ++ distro=api.current_actor().configuration.os_release.release_id, + ) + + for pesid in target_pesids: +diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py +index c2976ddf..37be03f1 100644 +--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py ++++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py +@@ -23,7 +23,7 @@ class RepoMapDataHandler(object): + Provide the basic functionality to work with the repository data easily. + """ + +- def __init__(self, repo_map, cloud_provider='', default_channels=None): ++ def __init__(self, repo_map, distro='', cloud_provider='', default_channels=None): + """ + Initialize the object based on the given RepositoriesMapping msg. + +@@ -32,6 +32,8 @@ class RepoMapDataHandler(object): + + :param repo_map: A valid RepositoryMapping message. + :type repo_map: RepositoryMapping ++ :param distro: Which distribution's mappings to use, default to current ++ :type distro: str + :param default_channels: A list of default channels to use when a target repository + equivalent exactly matching a source repository was not found. + :type default_channels: List[str] +@@ -42,6 +44,7 @@ class RepoMapDataHandler(object): + # ideal for work, but there is not any significant impact.. + self.repositories = repo_map.repositories + self.mapping = repo_map.mapping ++ self.distro = distro or api.current_actor().configuration.os_release.release_id + # FIXME(pstodulk): what about default_channel -> fallback_channel + # hardcoded always as ga? instead of list of channels.. + # it'd be possibly confusing naming now... +@@ -93,6 +96,8 @@ class RepoMapDataHandler(object): + If multiple pesid repo entries with the same repoid were found, the entry with rhui matching the source + system's rhui info will be returned. If no entry with matching rhui exists, the CDN one is returned if any. + ++ Note that repositories are automatically filtered based on the specified OS release ID (self.distro). ++ + :param repoid: RepoID that should the PESIDRepositoryEntry match. + :type repoid: str + :param major_version: RepoID that should the PESIDRepositoryEntry match. +@@ -103,9 +108,23 @@ class RepoMapDataHandler(object): + """ + matching_pesid_repos = [] + for pesid_repo in self.repositories: +- if pesid_repo.repoid == repoid and pesid_repo.major_version == major_version: ++ # FIXME(pstodulk): Why we do not check actually architecture here? ++ # It seems obvious we should check it but the fixme comment below ++ # suggests that it's expected - for not obvious reason. ++ # For the investigation: ++ # # check repoids matching various architectures ++ # # check repoids without $arch in substring on how many architectures they are present ++ # Investigate and: add a comment with an explanation or fix the ++ # condition. ++ if ( ++ pesid_repo.repoid == repoid ++ and pesid_repo.major_version == major_version ++ and pesid_repo.distro == self.distro ++ ): + matching_pesid_repos.append(pesid_repo) + ++ # FIXME: when a PESID is present for multiple architectures, there ++ # multiple matching repos even though there should really be just one + if len(matching_pesid_repos) == 1: + # Perform no heuristics if only a single pesid repository with matching repoid found + return matching_pesid_repos[0] +@@ -136,27 +155,34 @@ class RepoMapDataHandler(object): + pesids.update(repomap.target) + return sorted(pesids) + +- def get_pesid_repos(self, pesid, major_version): ++ def get_pesid_repos(self, pesid, major_version, distro): + """ +- Get the list of PESIDRepositoryEntry with the specified PES ID and OS major version. ++ Get the list of PESIDRepositoryEntry with the specified PES ID, ++ OS major version, and OS release ID. + + :param pesid: PES ID of the repositories to be retrieved. + :type pesid: str +- :param major_version: OS major version of the repositories to be retrieved. ++ :param major_version: OS major version of repositories to be retrieved. + :type major_version: str +- :return: A list of PESIDRepositoryEntries that match the provided PES ID and OS major version. ++ :param distro: OS release ID of repositories to be retrieved, ++ :type distro: str ++ :return: A list of PESIDRepositoryEntries that match the provided PES ID, OS major version, and OS release ID. + :rtype: List[PESIDRepositoryEntry] + """ + pesid_repos = [] + for pesid_repo in self.repositories: +- if pesid_repo.pesid == pesid and pesid_repo.major_version == major_version: ++ if ( ++ pesid_repo.pesid == pesid ++ and pesid_repo.major_version == major_version ++ and pesid_repo.distro == distro ++ ): + pesid_repos.append(pesid_repo) + return pesid_repos + + def get_source_pesid_repos(self, pesid): + """ + Return the list of PESIDRepositoryEntry objects for a specified PES ID +- matching the source OS major version. ++ matching the source OS. + + :param pesid: The PES ID for which to retrieve PESIDRepositoryEntries. + :type pesid: str +@@ -164,12 +190,12 @@ class RepoMapDataHandler(object): + the OS Major version same as the source OS. + :rtype: List[PESIDRepositoryEntry] + """ +- return self.get_pesid_repos(pesid, get_source_major_version()) ++ return self.get_pesid_repos(pesid, get_source_major_version(), self.distro) + + def get_target_pesid_repos(self, pesid): + """ + Return the list of PESIDRepositoryEntry objects for a specified PES ID +- matching the target OS major version. ++ matching the target OS. + + :param pesid: The PES ID for which to retrieve PESIDRepositoryEntries. + :type pesid: str +@@ -177,7 +203,7 @@ class RepoMapDataHandler(object): + the OS Major version same as the target OS. + :rtype: List[PESIDRepositoryEntry] + """ +- return self.get_pesid_repos(pesid, get_target_major_version()) ++ return self.get_pesid_repos(pesid, get_target_major_version(), self.distro) + + def _find_repository_target_equivalent(self, src_pesidrepo, target_pesid): + """ +@@ -197,8 +223,9 @@ class RepoMapDataHandler(object): + matches_rhui = candidate.rhui == src_pesidrepo.rhui + matches_repo_type = candidate.repo_type == 'rpm' + matches_arch = candidate.arch == api.current_actor().configuration.architecture ++ matches_distro = candidate.distro == self.distro + +- if matches_rhui and matches_arch and matches_repo_type: ++ if matches_rhui and matches_arch and matches_distro and matches_repo_type: + # user can specify in future the specific channel should be + # prioritized always (e.g. want to go to EUS...). + channel = self.prio_channel or src_pesidrepo.channel +diff --git a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py +index 9a499baa..09a1e82d 100644 +--- a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py ++++ b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py +@@ -246,9 +246,9 @@ def test_actor_performs(monkeypatch): + ], + repositories=[ + PESIDRepositoryEntry(pesid='rhel7-base', major_version='7', repoid='rhel7-repo', arch='x86_64', +- repo_type='rpm', channel='ga', rhui=''), ++ repo_type='rpm', channel='ga', rhui='', distro='rhel'), + PESIDRepositoryEntry(pesid='rhel8-BaseOS', major_version='8', repoid='rhel8-repo', arch='x86_64', +- repo_type='rpm', channel='ga', rhui='')] ++ repo_type='rpm', channel='ga', rhui='', distro='rhel')] + ) + + enabled_modules = EnabledModules(modules=[]) +diff --git a/repos/system_upgrade/common/actors/repositoriesblacklist/tests/test_repositoriesblacklist.py b/repos/system_upgrade/common/actors/repositoriesblacklist/tests/test_repositoriesblacklist.py +index 28da781e..c4f9a36e 100644 +--- a/repos/system_upgrade/common/actors/repositoriesblacklist/tests/test_repositoriesblacklist.py ++++ b/repos/system_upgrade/common/actors/repositoriesblacklist/tests/test_repositoriesblacklist.py +@@ -6,7 +6,6 @@ from leapp.libraries.common.testutils import create_report_mocked, CurrentActorM + from leapp.libraries.stdlib import api + from leapp.models import ( + CustomTargetRepository, +- EnvVar, + PESIDRepositoryEntry, + RepoMapEntry, + RepositoriesBlacklisted, +@@ -42,6 +41,7 @@ def rhel7_optional_pesidrepo(): + arch='x86_64', + channel='ga', + repo_type='rpm', ++ distro='rhel', + ) + + +@@ -54,7 +54,9 @@ def rhel8_crb_pesidrepo(): + rhui='', + arch='x86_64', + channel='ga', +- repo_type='rpm') ++ repo_type='rpm', ++ distro='rhel', ++ ) + + + @pytest.fixture +diff --git a/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py b/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py +index 58089195..d4a64793 100644 +--- a/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py ++++ b/repos/system_upgrade/common/actors/repositoriesmapping/libraries/repositoriesmapping.py +@@ -17,7 +17,7 @@ REPOMAP_FILE = 'repomap.json' + + + class RepoMapData(object): +- VERSION_FORMAT = '1.2.1' ++ VERSION_FORMAT = '1.3.0' + + def __init__(self): + self.repositories = [] +@@ -40,7 +40,8 @@ class RepoMapData(object): + repo_type=data['repo_type'], + arch=data['arch'], + major_version=data['major_version'], +- pesid=pesid ++ pesid=pesid, ++ distro=data['distro'], + )) + + def get_repositories(self, valid_major_versions): +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 a5fc5fe1..1f04d72d 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,6 @@ + { + "datetime": "202107141655Z", +- "version_format": "1.2.1", ++ "version_format": "1.3.0", + "mapping": [ + { + "source_major_version": "7", +@@ -38,7 +38,8 @@ + "repoid": "some-rhel-7-repoid", + "arch": "x86_64", + "repo_type": "rpm", +- "channel": "eus" ++ "channel": "eus", ++ "distro": "rhel" + } + ] + }, +@@ -50,7 +51,8 @@ + "repoid": "some-rhel-8-repoid1", + "arch": "x86_64", + "repo_type": "rpm", +- "channel": "eus" ++ "channel": "eus", ++ "distro": "rhel" + } + ] + }, +@@ -62,7 +64,8 @@ + "repoid": "some-rhel-8-repoid2", + "arch": "x86_64", + "repo_type": "rpm", +- "channel": "eus" ++ "channel": "eus", ++ "distro": "rhel" + } + ] + }, +@@ -74,7 +77,8 @@ + "repoid": "some-rhel-9-repo1", + "arch": "x86_64", + "repo_type": "rpm", +- "channel": "eus" ++ "channel": "eus", ++ "distro": "rhel" + } + ] + }, +@@ -86,7 +90,34 @@ + "repoid": "some-rhel-9-repo2", + "arch": "x86_64", + "repo_type": "rpm", +- "channel": "eus" ++ "channel": "eus", ++ "distro": "rhel" ++ } ++ ] ++ }, ++ { ++ "pesid": "pesid6", ++ "entries": [ ++ { ++ "major_version": "7", ++ "repoid": "some-centos-9-repoid1", ++ "arch": "x86_64", ++ "repo_type": "rpm", ++ "channel": "ga", ++ "distro": "centos" ++ } ++ ] ++ }, ++ { ++ "pesid": "pesid7", ++ "entries": [ ++ { ++ "major_version": "8", ++ "repoid": "some-centos-10-repoid1", ++ "arch": "x86_64", ++ "repo_type": "rpm", ++ "channel": "ga", ++ "distro": "centos" + } + ] + } +diff --git a/repos/system_upgrade/common/actors/repositoriesmapping/tests/unit_test_repositoriesmapping.py b/repos/system_upgrade/common/actors/repositoriesmapping/tests/unit_test_repositoriesmapping.py +index 243b8809..9d781125 100644 +--- a/repos/system_upgrade/common/actors/repositoriesmapping/tests/unit_test_repositoriesmapping.py ++++ b/repos/system_upgrade/common/actors/repositoriesmapping/tests/unit_test_repositoriesmapping.py +@@ -7,10 +7,9 @@ import requests + from leapp.exceptions import StopActorExecutionError + from leapp.libraries.actor import repositoriesmapping + from leapp.libraries.common import fetch +-from leapp.libraries.common.config import architecture, version + from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked + from leapp.libraries.stdlib import api +-from leapp.models import ConsumedDataAsset, PESIDRepositoryEntry, RPM ++from leapp.models import ConsumedDataAsset, PESIDRepositoryEntry + + CUR_DIR = os.path.dirname(os.path.abspath(__file__)) + +@@ -53,7 +52,7 @@ def test_scan_existing_valid_data(monkeypatch, adjust_cwd): + # 2. Verify that only repositories valid for the current IPU are produced + pesid_repos = repo_mapping.repositories + fail_description = 'Actor produced incorrect number of IPU-relevant pesid repos.' +- assert len(pesid_repos) == 3, fail_description ++ assert len(pesid_repos) == 5, fail_description + + expected_pesid_repos = [ + PESIDRepositoryEntry( +@@ -63,7 +62,8 @@ def test_scan_existing_valid_data(monkeypatch, adjust_cwd): + arch='x86_64', + repo_type='rpm', + channel='eus', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='pesid2', +@@ -72,7 +72,8 @@ def test_scan_existing_valid_data(monkeypatch, adjust_cwd): + arch='x86_64', + repo_type='rpm', + channel='eus', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='pesid3', +@@ -81,7 +82,28 @@ def test_scan_existing_valid_data(monkeypatch, adjust_cwd): + arch='x86_64', + repo_type='rpm', + channel='eus', +- rhui='' ++ rhui='', ++ distro='rhel', ++ ), ++ PESIDRepositoryEntry( ++ pesid='pesid6', ++ major_version='7', ++ repoid='some-centos-9-repoid1', ++ arch='x86_64', ++ repo_type='rpm', ++ channel='ga', ++ rhui='', ++ distro='centos', ++ ), ++ PESIDRepositoryEntry( ++ pesid='pesid7', ++ major_version='8', ++ repoid='some-centos-10-repoid1', ++ arch='x86_64', ++ repo_type='rpm', ++ channel='ga', ++ rhui='', ++ distro='centos', + ), + ] + +@@ -177,7 +199,8 @@ def test_scan_repositories_with_mapping_to_pesid_without_repos(monkeypatch): + 'repoid': 'some-rhel-7-repo', + 'arch': 'x86_64', + 'repo_type': 'rpm', +- 'channel': 'eus' ++ 'channel': 'eus', ++ 'distro': 'rhel', + } + ] + } +diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/actor.py b/repos/system_upgrade/common/actors/setuptargetrepos/actor.py +index 767fa00c..91855818 100644 +--- a/repos/system_upgrade/common/actors/setuptargetrepos/actor.py ++++ b/repos/system_upgrade/common/actors/setuptargetrepos/actor.py +@@ -17,11 +17,16 @@ from leapp.tags import FactsPhaseTag, IPUWorkflowTag + + class SetupTargetRepos(Actor): + """ +- Produces list of repositories that should be available to be used by Upgrade process. ++ Produces list of repositories that should be available to be used during IPU process. + +- Based on current set of Red Hat Enterprise Linux repositories, produces the list of target +- repositories. Additionally process request to use custom repositories during the upgrade +- transaction. ++ The list of expected target repositories is produced based on: ++ * required custom target repositories, ++ * discovered enabled repositories, ++ * repositories from which originates the installed content, ++ * and the system distribution. ++ ++ The list of repositories can be additionally affected in case of RHEL by ++ required channel (e.g. eus) or by detected use of RHUI. + """ + + name = 'setuptargetrepos' +diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py +index c2976ddf..37be03f1 100644 +--- a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py ++++ b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py +@@ -23,7 +23,7 @@ class RepoMapDataHandler(object): + Provide the basic functionality to work with the repository data easily. + """ + +- def __init__(self, repo_map, cloud_provider='', default_channels=None): ++ def __init__(self, repo_map, distro='', cloud_provider='', default_channels=None): + """ + Initialize the object based on the given RepositoriesMapping msg. + +@@ -32,6 +32,8 @@ class RepoMapDataHandler(object): + + :param repo_map: A valid RepositoryMapping message. + :type repo_map: RepositoryMapping ++ :param distro: Which distribution's mappings to use, default to current ++ :type distro: str + :param default_channels: A list of default channels to use when a target repository + equivalent exactly matching a source repository was not found. + :type default_channels: List[str] +@@ -42,6 +44,7 @@ class RepoMapDataHandler(object): + # ideal for work, but there is not any significant impact.. + self.repositories = repo_map.repositories + self.mapping = repo_map.mapping ++ self.distro = distro or api.current_actor().configuration.os_release.release_id + # FIXME(pstodulk): what about default_channel -> fallback_channel + # hardcoded always as ga? instead of list of channels.. + # it'd be possibly confusing naming now... +@@ -93,6 +96,8 @@ class RepoMapDataHandler(object): + If multiple pesid repo entries with the same repoid were found, the entry with rhui matching the source + system's rhui info will be returned. If no entry with matching rhui exists, the CDN one is returned if any. + ++ Note that repositories are automatically filtered based on the specified OS release ID (self.distro). ++ + :param repoid: RepoID that should the PESIDRepositoryEntry match. + :type repoid: str + :param major_version: RepoID that should the PESIDRepositoryEntry match. +@@ -103,9 +108,23 @@ class RepoMapDataHandler(object): + """ + matching_pesid_repos = [] + for pesid_repo in self.repositories: +- if pesid_repo.repoid == repoid and pesid_repo.major_version == major_version: ++ # FIXME(pstodulk): Why we do not check actually architecture here? ++ # It seems obvious we should check it but the fixme comment below ++ # suggests that it's expected - for not obvious reason. ++ # For the investigation: ++ # # check repoids matching various architectures ++ # # check repoids without $arch in substring on how many architectures they are present ++ # Investigate and: add a comment with an explanation or fix the ++ # condition. ++ if ( ++ pesid_repo.repoid == repoid ++ and pesid_repo.major_version == major_version ++ and pesid_repo.distro == self.distro ++ ): + matching_pesid_repos.append(pesid_repo) + ++ # FIXME: when a PESID is present for multiple architectures, there ++ # multiple matching repos even though there should really be just one + if len(matching_pesid_repos) == 1: + # Perform no heuristics if only a single pesid repository with matching repoid found + return matching_pesid_repos[0] +@@ -136,27 +155,34 @@ class RepoMapDataHandler(object): + pesids.update(repomap.target) + return sorted(pesids) + +- def get_pesid_repos(self, pesid, major_version): ++ def get_pesid_repos(self, pesid, major_version, distro): + """ +- Get the list of PESIDRepositoryEntry with the specified PES ID and OS major version. ++ Get the list of PESIDRepositoryEntry with the specified PES ID, ++ OS major version, and OS release ID. + + :param pesid: PES ID of the repositories to be retrieved. + :type pesid: str +- :param major_version: OS major version of the repositories to be retrieved. ++ :param major_version: OS major version of repositories to be retrieved. + :type major_version: str +- :return: A list of PESIDRepositoryEntries that match the provided PES ID and OS major version. ++ :param distro: OS release ID of repositories to be retrieved, ++ :type distro: str ++ :return: A list of PESIDRepositoryEntries that match the provided PES ID, OS major version, and OS release ID. + :rtype: List[PESIDRepositoryEntry] + """ + pesid_repos = [] + for pesid_repo in self.repositories: +- if pesid_repo.pesid == pesid and pesid_repo.major_version == major_version: ++ if ( ++ pesid_repo.pesid == pesid ++ and pesid_repo.major_version == major_version ++ and pesid_repo.distro == distro ++ ): + pesid_repos.append(pesid_repo) + return pesid_repos + + def get_source_pesid_repos(self, pesid): + """ + Return the list of PESIDRepositoryEntry objects for a specified PES ID +- matching the source OS major version. ++ matching the source OS. + + :param pesid: The PES ID for which to retrieve PESIDRepositoryEntries. + :type pesid: str +@@ -164,12 +190,12 @@ class RepoMapDataHandler(object): + the OS Major version same as the source OS. + :rtype: List[PESIDRepositoryEntry] + """ +- return self.get_pesid_repos(pesid, get_source_major_version()) ++ return self.get_pesid_repos(pesid, get_source_major_version(), self.distro) + + def get_target_pesid_repos(self, pesid): + """ + Return the list of PESIDRepositoryEntry objects for a specified PES ID +- matching the target OS major version. ++ matching the target OS. + + :param pesid: The PES ID for which to retrieve PESIDRepositoryEntries. + :type pesid: str +@@ -177,7 +203,7 @@ class RepoMapDataHandler(object): + the OS Major version same as the target OS. + :rtype: List[PESIDRepositoryEntry] + """ +- return self.get_pesid_repos(pesid, get_target_major_version()) ++ return self.get_pesid_repos(pesid, get_target_major_version(), self.distro) + + def _find_repository_target_equivalent(self, src_pesidrepo, target_pesid): + """ +@@ -197,8 +223,9 @@ class RepoMapDataHandler(object): + matches_rhui = candidate.rhui == src_pesidrepo.rhui + matches_repo_type = candidate.repo_type == 'rpm' + matches_arch = candidate.arch == api.current_actor().configuration.architecture ++ matches_distro = candidate.distro == self.distro + +- if matches_rhui and matches_arch and matches_repo_type: ++ if matches_rhui and matches_arch and matches_distro and matches_repo_type: + # user can specify in future the specific channel should be + # prioritized always (e.g. want to go to EUS...). + channel = self.prio_channel or src_pesidrepo.channel +diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_repomapping.py b/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_repomapping.py +index ba5906f4..af40c443 100644 +--- a/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_repomapping.py ++++ b/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_repomapping.py +@@ -5,12 +5,21 @@ import pytest + + from leapp.libraries.actor import setuptargetrepos_repomap + from leapp.libraries.actor.setuptargetrepos_repomap import get_default_repository_channels, RepoMapDataHandler +-from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked ++from leapp.libraries.common.testutils import CurrentActorMocked + from leapp.libraries.stdlib import api + from leapp.models import PESIDRepositoryEntry, RepoMapEntry, RepositoriesMapping + + +-def make_pesid_repo(pesid, major_version, repoid, arch='x86_64', repo_type='rpm', channel='ga', rhui=''): ++def make_pesid_repo( ++ pesid, ++ major_version, ++ repoid, ++ arch='x86_64', ++ repo_type='rpm', ++ channel='ga', ++ rhui='', ++ distro='rhel', ++): + """ + PESIDRepositoryEntry factory function allowing shorter data description in tests by providing default values. + """ +@@ -21,7 +30,8 @@ def make_pesid_repo(pesid, major_version, repoid, arch='x86_64', repo_type='rpm' + arch=arch, + repo_type=repo_type, + channel=channel, +- rhui=rhui ++ rhui=rhui, ++ distro=distro, + ) + + +@@ -49,6 +59,27 @@ def repomap_data_for_pesid_repo_retrieval(): + return repomap_data + + ++@pytest.fixture ++def repomap_data_multiple_distros(): ++ repomap_data = RepositoriesMapping( ++ mapping=[ ++ RepoMapEntry(source="pesid1", target=["pesid3", "pesid2"]), ++ ], ++ repositories=[ ++ make_pesid_repo("pesid1", "9", "pesid1-repoid"), ++ make_pesid_repo("pesid1", "9", "pesid1-repoid-eus", channel="eus"), ++ make_pesid_repo("pesid1", "9", "pesid1-repoid-centos", distro="centos"), ++ make_pesid_repo("pesid2", "10", "pesid2-repoid"), ++ make_pesid_repo("pesid2", "10", "pesid2-repoid-centos", distro="centos"), ++ make_pesid_repo("pesid3", "10", "pesid3-repoid"), ++ make_pesid_repo("pesid3", "10", "pesid3-repoid-eus", channel="eus"), ++ make_pesid_repo("pesid3", "10", "pesid3-repoid-aws", rhui="aws"), ++ make_pesid_repo("pesid3", "10", "pesid3-repoid-centos", distro="centos"), ++ ], ++ ) ++ return repomap_data ++ ++ + def test_get_pesid_repo_entry(monkeypatch, repomap_data_for_pesid_repo_retrieval): + """ + Test for the RepoMapDataHandler.get_pesid_repo_entry method. +@@ -75,6 +106,40 @@ def test_get_pesid_repo_entry(monkeypatch, repomap_data_for_pesid_repo_retrieval + assert handler.get_pesid_repo_entry('nonexisting-repo', '7') is None, fail_description + + ++@pytest.mark.parametrize('distro', ('rhel', 'centos')) ++def test_get_pesid_repo_entry_distro( ++ monkeypatch, repomap_data_multiple_distros, distro ++): ++ """ ++ Test for the RepoMapDataHandler.get_pesid_repo_entry method. ++ ++ Verifies that the method correctly retrieves PESIDRepositoryEntry that are ++ matching the OS major version, repoid and the distro. ++ """ ++ monkeypatch.setattr( ++ api, ++ "current_actor", ++ CurrentActorMocked( ++ arch="x86_64", src_ver="9.6", dst_ver="10.2", release_id=distro ++ ), ++ ) ++ handler = RepoMapDataHandler(repomap_data_multiple_distros) ++ repositories = [ ++ repo ++ for repo in repomap_data_multiple_distros.repositories ++ if repo.distro == distro ++ ] ++ ++ fail_description = ( ++ "get_pesid_repo_entry method failed to find correct pesid repository that matches given parameters." ++ ) ++ for exp_repo in repositories: ++ result_repo = handler.get_pesid_repo_entry( ++ exp_repo.repoid, exp_repo.major_version ++ ) ++ assert result_repo == exp_repo, fail_description ++ ++ + def test_get_target_pesids(monkeypatch, repomap_data_for_pesid_repo_retrieval): + """ + Test for the RepoMapDataHandler.get_target_pesids method. +@@ -98,54 +163,112 @@ def test_get_target_pesids(monkeypatch, repomap_data_for_pesid_repo_retrieval): + assert [] == handler.get_target_pesids('pesid_no_mapping'), fail_description + + +-def test_get_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retrieval): ++@pytest.mark.parametrize('distro', ('rhel', 'centos')) ++def test_get_target_pesids_distro( ++ monkeypatch, repomap_data_multiple_distros, distro ++): ++ """ ++ Test for the RepoMapDataHandler.get_target_pesids method. ++ ++ Verifies that the method correctly tells what target pesids is the given source pesid mapped to. ++ """ ++ monkeypatch.setattr( ++ api, ++ "current_actor", ++ CurrentActorMocked( ++ arch="x86_64", src_ver="7.9", dst_ver="8.4", release_id=distro ++ ), ++ ) ++ handler = RepoMapDataHandler(repomap_data_multiple_distros) ++ ++ expected_target_pesids = ['pesid2', 'pesid3'] ++ actual_target_pesids = handler.get_target_pesids('pesid1') ++ ++ fail_description = ( ++ 'The get_target_pesids method did not correctly identify what is the given source pesid mapped to.') ++ assert expected_target_pesids == actual_target_pesids, fail_description ++ ++ fail_description = ( ++ 'The get_target_pesids method found target pesids even if the source repository is not mapped.') ++ assert [] == handler.get_target_pesids('pesid2'), fail_description ++ assert [] == handler.get_target_pesids('pesid_no_mapping'), fail_description ++ ++ ++@pytest.mark.parametrize( ++ 'distro,expect_pesid3,expect_pesid1', ++ [ ++ ('rhel', [5, 6, 7], [0, 1]), ++ ('centos', [8], [2]), ++ ] ++) ++def test_get_pesid_repos( ++ monkeypatch, repomap_data_multiple_distros, distro, expect_pesid3, expect_pesid1 ++): + """ + Test for the RepoMapDataHandler.get_pesid_repos method. + + Verifies that the method is able to collect all PESIDRepositoryEntry present in the repomap data that +- match the given OS major version and the given pesid. +- """ +- monkeypatch.setattr(api, 'current_actor', +- CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) +- handler = RepoMapDataHandler(repomap_data_for_pesid_repo_retrieval) +- repositories = repomap_data_for_pesid_repo_retrieval.repositories ++ matches ++ * the given OS major version, ++ * the given pesid, ++ * and the given distro. ++ """ ++ monkeypatch.setattr( ++ api, ++ "current_actor", ++ CurrentActorMocked( ++ arch="x86_64", src_ver="9.6", dst_ver="10.4", release_id=distro ++ ), ++ ) ++ handler = RepoMapDataHandler(repomap_data_multiple_distros) + +- actual_pesid_repos = handler.get_pesid_repos('pesid3', '8') +- expected_pesid_repos = [repositories[3], repositories[4], repositories[5]] ++ actual_pesid_repos = handler.get_pesid_repos('pesid3', '10', distro) ++ expected_pesid_repos = [ ++ repomap_data_multiple_distros.repositories[repo] for repo in expect_pesid3 ++ ] + fail_description = 'The get_pesid_repos failed to find pesid repos matching the given criteria.' + assert len(expected_pesid_repos) == len(actual_pesid_repos), fail_description + for actual_pesid_repo in actual_pesid_repos: + assert actual_pesid_repo in expected_pesid_repos, fail_description + +- actual_pesid_repos = handler.get_pesid_repos('pesid1', '7') +- expected_pesid_repos = [repositories[0], repositories[1]] ++ actual_pesid_repos = handler.get_pesid_repos('pesid1', '9', distro) ++ expected_pesid_repos = [ ++ repomap_data_multiple_distros.repositories[repo] for repo in expect_pesid1 ++ ] + assert len(expected_pesid_repos) == len(actual_pesid_repos), fail_description + for actual_pesid_repo in actual_pesid_repos: + assert actual_pesid_repo in expected_pesid_repos, fail_description + + fail_description = ( + 'The get_pesid_repos found some pesid repositories matching criteria, but there are no such repositories.') +- assert [] == handler.get_pesid_repos('pesid3', '7'), fail_description +- assert [] == handler.get_pesid_repos('pesid1', '8'), fail_description +- assert [] == handler.get_pesid_repos('nonexisting_pesid', '7'), fail_description ++ assert [] == handler.get_pesid_repos('pesid3', '7', 'rhel'), fail_description ++ assert [] == handler.get_pesid_repos('pesid1', '8', 'rhel'), fail_description ++ assert [] == handler.get_pesid_repos('nonexisting_pesid', '7', 'rhel'), fail_description + + +-def test_get_source_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retrieval): ++@pytest.mark.parametrize( ++ 'distro,expected_repos_index', ++ [ ++ ('rhel', [0, 1]), ++ ('centos', []), ++ ] ++) ++def test_get_source_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retrieval, distro, expected_repos_index): + """ + Test for the RepoMapDataHandler.get_source_pesid_repos method. + + Verifies that the method is able to collect all PESIDRepositoryEntry that match the given PES ID and +- have the major version same as the source system. ++ have the same major version and distro as the source system. + """ + monkeypatch.setattr(api, 'current_actor', +- CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) ++ CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4', release_id=distro)) + handler = RepoMapDataHandler(repomap_data_for_pesid_repo_retrieval) + repositories = repomap_data_for_pesid_repo_retrieval.repositories + + fail_description = ( + 'The get_source_pesid_repos method failed to retrieve all pesid repos that match given pesid ' +- 'and have the major version same as the source system.') +- expected_pesid_repos = [repositories[0], repositories[1]] ++ 'and have the same major version and distro as the source system.') ++ expected_pesid_repos = [repositories[i] for i in expected_repos_index] + actual_pesid_repos = handler.get_source_pesid_repos('pesid1') + assert len(expected_pesid_repos) == len(actual_pesid_repos), fail_description + for actual_pesid_repo in actual_pesid_repos: +@@ -163,22 +286,29 @@ def test_get_source_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retriev + assert [] == handler.get_source_pesid_repos('nonexisting_pesid'), fail_description + + +-def test_get_target_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retrieval): ++@pytest.mark.parametrize( ++ 'distro,expected_repos_index', ++ [ ++ ('rhel', [3, 4, 5]), ++ ('centos', []), ++ ] ++) ++def test_get_target_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retrieval, distro, expected_repos_index): + """ + Test for the RepoMapDataHandler.get_target_pesid_repos method. + + Verifies that the method is able to collect all PESIDRepositoryEntry that match the given PES ID and +- have the major version same as the source system. ++ have the same major version and distro as the source system. + """ + monkeypatch.setattr(api, 'current_actor', +- CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) ++ CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4', release_id=distro)) + handler = RepoMapDataHandler(repomap_data_for_pesid_repo_retrieval) + repositories = repomap_data_for_pesid_repo_retrieval.repositories + + fail_description = ( + 'The get_target_pesid_repos method failed to retrieve all pesid repos that match given pesid ' +- 'and have the major version same as the target system.') +- expected_pesid_repos = [repositories[3], repositories[4], repositories[5]] ++ 'and have the same major version and distro as the target system.') ++ expected_pesid_repos = [repositories[i] for i in expected_repos_index] + actual_pesid_repos = handler.get_target_pesid_repos('pesid3') + assert len(expected_pesid_repos) == len(actual_pesid_repos), fail_description + for actual_pesid_repo in actual_pesid_repos: +@@ -188,7 +318,7 @@ def test_get_target_pesid_repos(monkeypatch, repomap_data_for_pesid_repo_retriev + 'The get_target_pesid_repos method doesn\'t take into account the target system version correctly.' + ) + monkeypatch.setattr(api, 'current_actor', +- CurrentActorMocked(arch='x86_64', src_ver='9.4', dst_ver='10.0')) ++ CurrentActorMocked(arch='x86_64', src_ver='9.4', dst_ver='10.0', release_id=distro)) + + # Repeat the same test as above to make sure it respects the target OS major version + assert [] == handler.get_target_pesid_repos('pesid3'), fail_description +@@ -202,6 +332,7 @@ def mapping_data_for_find_repository_equiv(): + repositories = [ + make_pesid_repo('pesid1', '7', 'pesid1-repoid'), + make_pesid_repo('pesid1', '7', 'pesid1-repoid', channel='e4s', rhui='aws'), ++ make_pesid_repo('pesid2', '8', 'pesid2-repoid1-centos', distro='centos'), + make_pesid_repo('pesid2', '8', 'pesid2-repoid1'), + make_pesid_repo('pesid2', '8', 'pesid2-repoid2-s390x', arch='s390x'), + # This repository is a better candidate than the full match equivalent, but _find_repository_target_equivalent +@@ -218,18 +349,28 @@ def mapping_data_for_find_repository_equiv(): + ) + + +-def test_find_repository_target_equivalent_fullmatch(monkeypatch, mapping_data_for_find_repository_equiv): ++@pytest.mark.parametrize( ++ 'distro,expected_repo_index', ++ [ ++ ('rhel', 3), ++ ('centos', 2), ++ ] ++) ++def test_find_repository_target_equivalent_fullmatch( ++ monkeypatch, mapping_data_for_find_repository_equiv, distro, expected_repo_index ++): + """ + Test for the RepoMapDataHandler._find_repository_target_equivalent method. + + Verifies that the method can find the target equivalent for a repository that matches the source + pesid repo parameters exactly when such repository is available in the repository mapping data. + """ +- monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) ++ monkeypatch.setattr(api, 'current_actor', ++ CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4', release_id=distro)) + + handler = RepoMapDataHandler(mapping_data_for_find_repository_equiv) + +- expected_target_equivalent = mapping_data_for_find_repository_equiv.repositories[2] ++ expected_target_equivalent = mapping_data_for_find_repository_equiv.repositories[expected_repo_index] + actual_target_equivalent = handler._find_repository_target_equivalent( + mapping_data_for_find_repository_equiv.repositories[0], 'pesid2') + +@@ -239,6 +380,11 @@ def test_find_repository_target_equivalent_fullmatch(monkeypatch, mapping_data_f + assert expected_target_equivalent == actual_target_equivalent, fail_description + + ++# ############################################################################# ++# Note that tests below cover usually only distro 'rhel' as the tested ++# functionality is not relevant for other distributions (RHUI and different ++# channels are relevant only for RHEL). ++ + def test_find_repository_target_equivalent_fallback_to_default(monkeypatch, + mapping_data_for_find_repository_equiv): + """ +@@ -255,13 +401,13 @@ def test_find_repository_target_equivalent_fallback_to_default(monkeypatch, + + fail_description = ( + 'The _find_repository_target_equivalent failed to find repository with some of the fallback channels.') +- expected_target_equivalent = repositories[6] ++ expected_target_equivalent = repositories[7] + actual_target_equivalent = handler._find_repository_target_equivalent(repositories[1], 'pesid2') + assert expected_target_equivalent == actual_target_equivalent, fail_description + + handler.set_default_channels(['eus', 'ga']) + +- expected_target_equivalent = repositories[7] ++ expected_target_equivalent = repositories[8] + actual_target_equivalent = handler._find_repository_target_equivalent(repositories[1], 'pesid2') + assert expected_target_equivalent == actual_target_equivalent, fail_description + +@@ -301,12 +447,18 @@ def test_get_mapped_target_pesid_repos(monkeypatch, mapping_data_for_find_reposi + 'The get_mapped_target_pesid_repos failed to build a map mapping the target pesid ' + 'to the best pesid repository candidate.') + target_pesid_repos_map = handler.get_mapped_target_pesid_repos(repositories[0]) +- expected_pesid_to_best_candidate_map = {'pesid2': repositories[2], 'pesid3': repositories[8]} ++ expected_pesid_to_best_candidate_map = { ++ 'pesid2': repositories[3], ++ 'pesid3': repositories[9] ++ } + assert target_pesid_repos_map == expected_pesid_to_best_candidate_map, fail_description + + # The pesid3 does not have an equivalent for provided source pesid repository (due to not having any rhui repos) + target_pesid_repos_map = handler.get_mapped_target_pesid_repos(repositories[1]) +- expected_pesid_to_best_candidate_map = {'pesid2': repositories[6], 'pesid3': None} ++ expected_pesid_to_best_candidate_map = { ++ 'pesid2': repositories[7], ++ 'pesid3': None ++ } + assert target_pesid_repos_map == expected_pesid_to_best_candidate_map, fail_description + + +@@ -315,6 +467,10 @@ def test_get_mapped_target_repoids(monkeypatch, mapping_data_for_find_repository + Test for the RepoMapDataHandler.get_mapped_target_repoids method. + + Verifies that the method returns a correct list of repoids that should be present on the target system. ++ ++ Note the test covers only distro 'rhel' as this part of the tested function ++ does not seem to be relevant for other distributions (RHUI and different ++ channels are relevant only for RHEL) + """ + monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) + +@@ -326,7 +482,7 @@ def test_get_mapped_target_repoids(monkeypatch, mapping_data_for_find_repository + 'to be enabled on the target system.') + # Both pesid2 and pesid3 have an equivalent for provided source pesid repository + actual_target_repoids = handler.get_mapped_target_repoids(repositories[0]) +- expected_target_repoids = {repositories[2].repoid, repositories[8].repoid} ++ expected_target_repoids = {repositories[3].repoid, repositories[9].repoid} + assert len(actual_target_repoids) == len(expected_target_repoids), fail_description + assert set(actual_target_repoids) == expected_target_repoids, fail_description + +@@ -401,6 +557,9 @@ def test_get_expected_target_repoids_fallback(monkeypatch): + map that maps target pesid to the best candidate pesid repository when there is a repository + on the source system that does not have exact match equivalent and some other with a fallback channel + must be found. ++ ++ No need a distro specific testing - the fallback mechanism works with ++ filtered repositories and that's covered already in previous tests. + """ + monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.4')) + +@@ -639,20 +798,26 @@ def test_multiple_repoids_in_repomapping(monkeypatch, rhui): + + monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.6')) + +- mk_rhui_el7_pesid_repo = functools.partial(PESIDRepositoryEntry, +- pesid='rhel7-rhui', +- major_version='7', +- repoid='repoid7-rhui', +- repo_type='rpm', +- arch='x86_64', +- channel='ga') +- +- mk_rhui_el8_pesid_repo = functools.partial(PESIDRepositoryEntry, +- pesid='rhel8-rhui', +- major_version='8', +- repo_type='rpm', +- arch='x86_64', +- channel='ga') ++ mk_rhui_el7_pesid_repo = functools.partial( ++ PESIDRepositoryEntry, ++ pesid='rhel7-rhui', ++ major_version='7', ++ repoid='repoid7-rhui', ++ repo_type='rpm', ++ arch='x86_64', ++ channel='ga', ++ distro='rhel' ++ ) ++ ++ mk_rhui_el8_pesid_repo = functools.partial( ++ PESIDRepositoryEntry, ++ pesid='rhel8-rhui', ++ major_version='8', ++ repo_type='rpm', ++ arch='x86_64', ++ channel='ga', ++ distro='rhel', ++ ) + + repomap = RepositoriesMapping( + mapping=[RepoMapEntry(source='rhel7-rhui', target=['rhel8-rhui'])], +diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_setuptargetrepos.py b/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_setuptargetrepos.py +index ac7f49ec..91d9cd24 100644 +--- a/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_setuptargetrepos.py ++++ b/repos/system_upgrade/common/actors/setuptargetrepos/tests/test_setuptargetrepos.py +@@ -127,7 +127,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='rhel8-baseos', +@@ -136,7 +137,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='rhel8-appstream', +@@ -145,7 +147,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='rhel8-blacklist', +@@ -154,7 +157,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='rhel7-satellite-extras', +@@ -163,7 +167,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + PESIDRepositoryEntry( + pesid='rhel8-satellite-extras', +@@ -172,7 +177,8 @@ def test_repos_mapping(monkeypatch): + arch='x86_64', + repo_type='rpm', + channel='ga', +- rhui='' ++ rhui='', ++ distro='rhel', + ), + ] + ) +diff --git a/repos/system_upgrade/common/models/repositoriesmap.py b/repos/system_upgrade/common/models/repositoriesmap.py +index 7192a60d..842cd807 100644 +--- a/repos/system_upgrade/common/models/repositoriesmap.py ++++ b/repos/system_upgrade/common/models/repositoriesmap.py +@@ -71,13 +71,18 @@ class PESIDRepositoryEntry(Model): + purposes. The other channels indicate premium repositories. + """ + +- rhui = fields.StringEnum(['', 'aws', 'azure', 'google', 'alibaba']) ++ rhui = fields.String(default='') + """ + Specifies what cloud provider (RHUI) is the repository specific to. + + Empty string denotes that the repository is not specific to any cloud provider. + """ + ++ distro = fields.String() ++ """ ++ Specifies what distribution is the repository specific to. ++ """ ++ + + class RepositoriesMapping(Model): + """ +-- +2.49.0 + diff --git a/SOURCES/0042-Update-the-upgrade-data-files-stream-4.0.patch b/SOURCES/0042-Update-the-upgrade-data-files-stream-4.0.patch new file mode 100644 index 0000000..c2c1714 --- /dev/null +++ b/SOURCES/0042-Update-the-upgrade-data-files-stream-4.0.patch @@ -0,0 +1,8925 @@ +From 2544f574969626bfe99cfd8aadd8eef36ecb2841 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Tue, 20 May 2025 16:47:49 +0200 +Subject: [PATCH 42/43] Update the upgrade data files (stream 4.0) + +The repomap file has the new format version 1.3.0 which is incompatible +with previous versions. At this point, let's draw a line here to switch +to require data stream 4.0+ to omit possible issues with previous data +files. + +Signed-off-by: Petr Stodulka +--- + .../files/device_driver_deprecation_data.json | 2 +- + etc/leapp/files/pes-events.json | 1282 ++++++++++--- + etc/leapp/files/repomap.json | 1674 +++++++++++++---- + .../common/libraries/config/__init__.py | 2 +- + 4 files changed, 2246 insertions(+), 714 deletions(-) + +diff --git a/etc/leapp/files/device_driver_deprecation_data.json b/etc/leapp/files/device_driver_deprecation_data.json +index 3a0d8c51..4531fb08 100644 +--- a/etc/leapp/files/device_driver_deprecation_data.json ++++ b/etc/leapp/files/device_driver_deprecation_data.json +@@ -1,6 +1,6 @@ + { + "provided_data_streams": [ +- "3.3" ++ "4.0" + ], + "data": [ + { +diff --git a/etc/leapp/files/pes-events.json b/etc/leapp/files/pes-events.json +index 0a8ea577..e9da4873 100644 +--- a/etc/leapp/files/pes-events.json ++++ b/etc/leapp/files/pes-events.json +@@ -1,7 +1,7 @@ + { +-"timestamp": "202505091506Z", ++"timestamp": "202505191506Z", + "provided_data_streams": [ +-"3.3" ++"4.0" + ], + "packageinfo": [ + { +@@ -147938,7 +147938,10 @@ null + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "httpcomponents-client-cache", + "repository": "rhel8-CRB" +@@ -147946,7 +147949,11 @@ null + ], + "set_id": 6640 + }, +-"initial_release": null, ++"initial_release": { ++"major_version": 7, ++"minor_version": 9, ++"os_name": "RHEL" ++}, + "modulestream_maps": [], + "out_packageset": null, + "release": { +@@ -148008,7 +148015,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -148034,14 +148040,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "httpcomponents-core-javadoc", + "repository": "rhel8-CRB" +@@ -148058,7 +148070,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -148084,14 +148095,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "httpcomponents-project", + "repository": "rhel8-CRB" +@@ -148415,9 +148432,7 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", +-"s390x", + "x86_64" + ], + "id": 4131, +@@ -148441,14 +148456,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "pki-deps", ++"stream": "10.6" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "pki-deps", ++"stream": "10.6" ++} + ], + "name": "jakarta-commons-httpclient", + "repository": "rhel8-AppStream" +@@ -148465,7 +148486,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -148491,14 +148511,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "pki-deps", ++"stream": "10.6" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "pki-deps", ++"stream": "10.6" ++} + ], + "name": "jakarta-commons-httpclient-demo", + "repository": "rhel8-AppStream" +@@ -148515,7 +148541,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -148541,14 +148566,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "pki-deps", ++"stream": "10.6" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "pki-deps", ++"stream": "10.6" ++} + ], + "name": "jakarta-commons-httpclient-javadoc", + "repository": "rhel8-AppStream" +@@ -148565,7 +148596,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -148591,14 +148621,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "pki-deps", ++"stream": "10.6" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "pki-deps", ++"stream": "10.6" ++} + ], + "name": "jakarta-commons-httpclient-manual", + "repository": "rhel8-AppStream" +@@ -149164,7 +149200,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149190,14 +149225,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javacc", + "repository": "rhel8-CRB" +@@ -149214,7 +149255,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149240,14 +149280,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javacc-demo", + "repository": "rhel8-CRB" +@@ -149264,7 +149310,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149290,14 +149335,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javacc-javadoc", + "repository": "rhel8-CRB" +@@ -149314,7 +149365,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149340,14 +149390,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javacc-manual", + "repository": "rhel8-CRB" +@@ -149364,7 +149420,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149390,14 +149445,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javacc-maven-plugin", + "repository": "rhel8-CRB" +@@ -149579,7 +149640,6 @@ null + { + "action": 4, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149605,28 +149665,40 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "ivy-local", + "repository": "rhel8-CRB" + }, + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javapackages-filesystem", + "repository": "rhel8-CRB" + }, + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javapackages-tools", + "repository": "rhel8-CRB" +@@ -149643,7 +149715,6 @@ null + { + "action": 4, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149669,21 +149740,30 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "javapackages-local", + "repository": "rhel8-CRB" + }, + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-local", + "repository": "rhel8-CRB" +@@ -149865,9 +149945,7 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", +-"s390x", + "x86_64" + ], + "id": 4159, +@@ -149891,14 +149969,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jaxen", + "repository": "rhel8-CRB" +@@ -149915,7 +149999,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -149941,14 +150024,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jaxen-demo", + "repository": "rhel8-CRB" +@@ -150524,7 +150613,10 @@ null + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jdom2", + "repository": "rhel8-CRB" +@@ -150532,7 +150624,11 @@ null + ], + "set_id": 6737 + }, +-"initial_release": null, ++"initial_release": { ++"major_version": 7, ++"minor_version": 9, ++"os_name": "RHEL" ++}, + "modulestream_maps": [], + "out_packageset": null, + "release": { +@@ -152196,7 +152292,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -152222,14 +152317,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jflex", + "repository": "rhel8-CRB" +@@ -152246,7 +152347,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -152272,14 +152372,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jflex-javadoc", + "repository": "rhel8-CRB" +@@ -153238,7 +153344,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153264,14 +153369,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "junit-javadoc", + "repository": "rhel8-CRB" +@@ -153288,7 +153399,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153314,14 +153424,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "junit-manual", + "repository": "rhel8-CRB" +@@ -153371,9 +153487,7 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", +-"s390x", + "x86_64" + ], + "id": 4250, +@@ -153397,14 +153511,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jvnet-parent", + "repository": "rhel8-CRB" +@@ -153421,7 +153541,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153447,14 +153566,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jzlib", + "repository": "rhel8-CRB" +@@ -153471,7 +153596,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153497,14 +153621,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jzlib-demo", + "repository": "rhel8-CRB" +@@ -153521,7 +153651,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153547,14 +153676,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "jzlib-javadoc", + "repository": "rhel8-CRB" +@@ -153836,7 +153971,6 @@ null + { + "action": 4, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153862,21 +153996,30 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "maven", ++"stream": "3.5" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "maven", ++"stream": "3.5" ++} + ], + "name": "maven", + "repository": "rhel8-AppStream" + }, + { + "modulestreams": [ +-null ++{ ++"name": "maven", ++"stream": "3.5" ++} + ], + "name": "maven-lib", + "repository": "rhel8-AppStream" +@@ -153893,7 +154036,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153919,14 +154061,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-javadoc", + "repository": "rhel8-CRB" +@@ -153943,7 +154091,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -153969,14 +154116,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-antrun-plugin", + "repository": "rhel8-CRB" +@@ -153993,7 +154146,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154019,14 +154171,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-antrun-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -154043,7 +154201,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154069,14 +154226,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-archiver", + "repository": "rhel8-CRB" +@@ -154093,7 +154256,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154119,14 +154281,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-archiver-javadoc", + "repository": "rhel8-CRB" +@@ -154143,7 +154311,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154169,14 +154336,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-artifact-resolver", + "repository": "rhel8-CRB" +@@ -154193,7 +154366,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154219,14 +154391,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-artifact-resolver-javadoc", + "repository": "rhel8-CRB" +@@ -154243,7 +154421,6 @@ null + { + "action": 3, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154269,14 +154446,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-artifact-transfer", + "repository": "rhel8-CRB" +@@ -154293,7 +154476,6 @@ null + { + "action": 3, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154319,14 +154501,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-artifact-transfer-javadoc", + "repository": "rhel8-CRB" +@@ -154343,7 +154531,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154369,14 +154556,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-assembly-plugin", + "repository": "rhel8-CRB" +@@ -154393,7 +154586,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154419,14 +154611,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-assembly-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -154509,7 +154707,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154535,14 +154732,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-clean-plugin", + "repository": "rhel8-CRB" +@@ -154559,7 +154762,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154585,14 +154787,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-clean-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -154609,7 +154817,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154635,14 +154842,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-common-artifact-filters", + "repository": "rhel8-CRB" +@@ -154659,7 +154872,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154685,14 +154897,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-common-artifact-filters-javadoc", + "repository": "rhel8-CRB" +@@ -154709,7 +154927,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154735,14 +154952,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-compiler-plugin", + "repository": "rhel8-CRB" +@@ -154759,7 +154982,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154785,14 +155007,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-compiler-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -154809,7 +155037,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154835,14 +155062,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-analyzer", + "repository": "rhel8-CRB" +@@ -154859,7 +155092,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154885,14 +155117,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-analyzer-javadoc", + "repository": "rhel8-CRB" +@@ -154909,7 +155147,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154935,14 +155172,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-plugin", + "repository": "rhel8-CRB" +@@ -154959,7 +155202,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -154985,14 +155227,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -155009,7 +155257,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155035,14 +155282,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-tree", + "repository": "rhel8-CRB" +@@ -155059,7 +155312,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155085,14 +155337,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-dependency-tree-javadoc", + "repository": "rhel8-CRB" +@@ -155175,7 +155433,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155201,14 +155458,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia", + "repository": "rhel8-CRB" +@@ -155225,7 +155488,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155251,14 +155513,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-core", + "repository": "rhel8-CRB" +@@ -155275,7 +155543,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155301,14 +155568,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-javadoc", + "repository": "rhel8-CRB" +@@ -155325,7 +155598,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155351,14 +155623,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-logging-api", + "repository": "rhel8-CRB" +@@ -155375,7 +155653,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155401,14 +155678,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-apt", + "repository": "rhel8-CRB" +@@ -155425,7 +155708,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155451,14 +155733,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-confluence", + "repository": "rhel8-CRB" +@@ -155475,7 +155763,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155501,14 +155788,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-docbook-simple", + "repository": "rhel8-CRB" +@@ -155525,7 +155818,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155551,14 +155843,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-fml", + "repository": "rhel8-CRB" +@@ -155575,7 +155873,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155601,14 +155898,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-latex", + "repository": "rhel8-CRB" +@@ -155625,7 +155928,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155651,14 +155953,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-rtf", + "repository": "rhel8-CRB" +@@ -155675,7 +155983,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155701,14 +156008,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-twiki", + "repository": "rhel8-CRB" +@@ -155725,7 +156038,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155751,14 +156063,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-xdoc", + "repository": "rhel8-CRB" +@@ -155775,7 +156093,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155801,14 +156118,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-module-xhtml", + "repository": "rhel8-CRB" +@@ -155825,7 +156148,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155851,14 +156173,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-modules", + "repository": "rhel8-CRB" +@@ -155875,7 +156203,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155901,14 +156228,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-sink-api", + "repository": "rhel8-CRB" +@@ -155925,7 +156258,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -155951,14 +156283,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-test-docs", + "repository": "rhel8-CRB" +@@ -155975,7 +156313,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156001,14 +156338,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-tests", + "repository": "rhel8-CRB" +@@ -156058,7 +156401,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156084,14 +156426,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-sitetools", + "repository": "rhel8-CRB" +@@ -156108,7 +156456,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156134,14 +156481,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-sitetools-javadoc", + "repository": "rhel8-CRB" +@@ -156158,7 +156511,6 @@ null + { + "action": 3, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156184,14 +156536,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-sitetools", + "repository": "rhel8-CRB" +@@ -156208,7 +156566,6 @@ null + { + "action": 3, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156234,14 +156591,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-doxia-sitetools-javadoc", + "repository": "rhel8-CRB" +@@ -156258,7 +156621,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156284,14 +156646,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-enforcer", + "repository": "rhel8-CRB" +@@ -156308,7 +156676,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156334,14 +156701,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-enforcer-api", + "repository": "rhel8-CRB" +@@ -156358,7 +156731,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156384,14 +156756,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-enforcer-javadoc", + "repository": "rhel8-CRB" +@@ -156408,7 +156786,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156434,14 +156811,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-enforcer-plugin", + "repository": "rhel8-CRB" +@@ -156458,7 +156841,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156484,14 +156866,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-enforcer-rules", + "repository": "rhel8-CRB" +@@ -156508,7 +156896,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156534,14 +156921,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-file-management", + "repository": "rhel8-CRB" +@@ -156558,7 +156951,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156584,14 +156976,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-file-management-javadoc", + "repository": "rhel8-CRB" +@@ -156608,7 +157006,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156634,14 +157031,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-filtering", + "repository": "rhel8-CRB" +@@ -156658,7 +157061,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156684,14 +157086,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-filtering-javadoc", + "repository": "rhel8-CRB" +@@ -156774,7 +157182,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156800,14 +157207,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-install-plugin", + "repository": "rhel8-CRB" +@@ -156824,7 +157237,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156850,14 +157262,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-install-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -156874,7 +157292,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156900,14 +157317,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-invoker", + "repository": "rhel8-CRB" +@@ -156924,7 +157347,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -156950,14 +157372,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-invoker-javadoc", + "repository": "rhel8-CRB" +@@ -156974,7 +157402,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157000,14 +157427,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-invoker-plugin", + "repository": "rhel8-CRB" +@@ -157024,7 +157457,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157050,14 +157482,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-invoker-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -157074,7 +157512,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157100,14 +157537,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-jar-plugin", + "repository": "rhel8-CRB" +@@ -157124,7 +157567,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157150,14 +157592,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-jar-plugin-javadoc", + "repository": "rhel8-CRB" +@@ -157471,7 +157919,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157497,14 +157944,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-parent", + "repository": "rhel8-CRB" +@@ -157521,7 +157974,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157547,14 +157999,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-build-helper", + "repository": "rhel8-CRB" +@@ -157571,7 +158029,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157597,14 +158054,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-build-helper-javadoc", + "repository": "rhel8-CRB" +@@ -157621,7 +158084,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157647,14 +158109,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-bundle", + "repository": "rhel8-CRB" +@@ -157671,7 +158139,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157697,14 +158164,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-bundle-javadoc", + "repository": "rhel8-CRB" +@@ -157721,7 +158194,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157747,14 +158219,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-testing", + "repository": "rhel8-CRB" +@@ -157771,7 +158249,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157797,14 +158274,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-testing-harness", + "repository": "rhel8-CRB" +@@ -157821,7 +158304,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157847,14 +158329,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-testing-javadoc", + "repository": "rhel8-CRB" +@@ -157871,7 +158359,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157897,14 +158384,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-plugin-testing-tools", + "repository": "rhel8-CRB" +@@ -157921,7 +158414,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -157947,14 +158439,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-test-tools", + "repository": "rhel8-CRB" +@@ -159119,7 +159617,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -159145,14 +159642,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-reporting-api-javadoc", + "repository": "rhel8-CRB" +@@ -159882,7 +160385,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -159908,14 +160410,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-shared-incremental-javadoc", + "repository": "rhel8-CRB" +@@ -159932,7 +160440,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -159958,14 +160465,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-shared-io", + "repository": "rhel8-CRB" +@@ -159982,7 +160495,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -160008,14 +160520,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-shared-io-javadoc", + "repository": "rhel8-CRB" +@@ -160148,7 +160666,6 @@ null + { + "action": 6, + "architectures": [ +-"aarch64", + "ppc64le", + "s390x", + "x86_64" +@@ -160174,14 +160691,20 @@ null + "modulestream_maps": [ + { + "in_modulestream": null, +-"out_modulestream": null ++"out_modulestream": { ++"name": "javapackages-tools", ++"stream": "201801" ++} + } + ], + "out_packageset": { + "package": [ + { + "modulestreams": [ +-null ++{ ++"name": "javapackages-tools", ++"stream": "201801" ++} + ], + "name": "maven-shared-utils-javadoc", + "repository": "rhel8-CRB" +@@ -694956,6 +695479,139 @@ null + "minor_version": 5, + "os_name": "RHEL" + } ++}, ++{ ++"action": 1, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"x86_64" ++], ++"id": 19561, ++"in_packageset": { ++"package": [ ++{ ++"modulestreams": [ ++null ++], ++"name": "dyninst-testsuite", ++"repository": "rhel10-CRB" ++} ++], ++"set_id": 26167 ++}, ++"initial_release": { ++"major_version": 10, ++"minor_version": 0, ++"os_name": "RHEL" ++}, ++"modulestream_maps": [], ++"out_packageset": null, ++"release": { ++"major_version": 10, ++"minor_version": 1, ++"os_name": "RHEL" ++} ++}, ++{ ++"action": 1, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"x86_64" ++], ++"id": 19562, ++"in_packageset": { ++"package": [ ++{ ++"modulestreams": [ ++null ++], ++"name": "dyninst-testsuite", ++"repository": "rhel9-CRB" ++} ++], ++"set_id": 26168 ++}, ++"initial_release": { ++"major_version": 9, ++"minor_version": 6, ++"os_name": "RHEL" ++}, ++"modulestream_maps": [], ++"out_packageset": null, ++"release": { ++"major_version": 9, ++"minor_version": 7, ++"os_name": "RHEL" ++} ++}, ++{ ++"action": 0, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"x86_64" ++], ++"id": 19563, ++"in_packageset": { ++"package": [ ++{ ++"modulestreams": [ ++null ++], ++"name": "dyninst-testsuite", ++"repository": "rhel10-CRB" ++} ++], ++"set_id": 26169 ++}, ++"initial_release": { ++"major_version": 9, ++"minor_version": 7, ++"os_name": "RHEL" ++}, ++"modulestream_maps": [], ++"out_packageset": null, ++"release": { ++"major_version": 10, ++"minor_version": 0, ++"os_name": "RHEL" ++} ++}, ++{ ++"action": 0, ++"architectures": [ ++"aarch64", ++"ppc64le", ++"s390x", ++"x86_64" ++], ++"id": 19564, ++"in_packageset": { ++"package": [ ++{ ++"modulestreams": [ ++null ++], ++"name": "rpm-plugin-dbus-announce", ++"repository": "rhel10-AppStream" ++} ++], ++"set_id": 26170 ++}, ++"initial_release": { ++"major_version": 9, ++"minor_version": 7, ++"os_name": "RHEL" ++}, ++"modulestream_maps": [], ++"out_packageset": null, ++"release": { ++"major_version": 10, ++"minor_version": 0, ++"os_name": "RHEL" ++} + } + ] + } +diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json +index 2fc6581f..fc0c42f1 100644 +--- a/etc/leapp/files/repomap.json ++++ b/etc/leapp/files/repomap.json +@@ -1,8 +1,8 @@ + { +- "datetime": "202505021842Z", +- "version_format": "1.2.1", ++ "datetime": "202505201636Z", ++ "version_format": "1.3.0", + "provided_data_streams": [ +- "3.3" ++ "4.0" + ], + "mapping": [ + { +@@ -302,12 +302,45 @@ + { + "pesid": "rhel10-BaseOS", + "entries": [ ++ { ++ "major_version": "10", ++ "repoid": "baseos", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "baseos", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "baseos", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "baseos", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "10", + "repoid": "rhel-10-baseos-rhui-rpms", + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -316,6 +349,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -323,124 +357,173 @@ + "repoid": "rhel-10-for-aarch64-baseos-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-baseos-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-baseos-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-baseos-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-baseos-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-baseos-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-baseos-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-baseos-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-baseos-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-baseos-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-baseos-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-baseos-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-baseos-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-baseos-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-baseos-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-baseos-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, + { + "pesid": "rhel10-AppStream", + "entries": [ ++ { ++ "major_version": "10", ++ "repoid": "appstream", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "appstream", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "appstream", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "appstream", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "10", + "repoid": "rhel-10-appstream-rhui-rpms", + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -449,6 +532,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -456,112 +540,128 @@ + "repoid": "rhel-10-for-aarch64-appstream-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-appstream-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-appstream-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-appstream-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-appstream-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-appstream-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-appstream-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-appstream-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-appstream-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-appstream-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-appstream-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-appstream-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-appstream-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-appstream-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-appstream-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-appstream-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -573,56 +673,64 @@ + "repoid": "codeready-builder-beta-for-rhel-10-aarch64-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-beta-for-rhel-10-ppc64le-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-beta-for-rhel-10-s390x-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-beta-for-rhel-10-x86_64-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-aarch64-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-aarch64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-ppc64le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-ppc64le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", +@@ -630,6 +738,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -638,6 +747,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -645,28 +755,64 @@ + "repoid": "codeready-builder-for-rhel-10-s390x-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-s390x-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-x86_64-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "codeready-builder-for-rhel-10-x86_64-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "crb", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "crb", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "crb", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "crb", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" + } + ] + }, +@@ -678,84 +824,96 @@ + "repoid": "rhel-10-for-aarch64-supplementary-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-supplementary-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-supplementary-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-supplementary-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-supplementary-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-supplementary-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-supplementary-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-supplementary-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-supplementary-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-supplementary-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-supplementary-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-supplementary-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", +@@ -763,6 +921,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -775,82 +934,109 @@ + "repoid": "rhel-10-for-aarch64-rt-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-rt-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-rt-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-rt-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-rt-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-rt-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "rt", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" + } + ] + }, + { + "pesid": "rhel10-NFV", + "entries": [ ++ { ++ "major_version": "10", ++ "repoid": "nfv", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-nfv-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-nfv-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-nfv-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-nfv-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-nfv-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -862,84 +1048,96 @@ + "repoid": "rhel-10-for-ppc64le-sap-netweaver-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-sap-netweaver-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-sap-netweaver-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-sap-netweaver-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-sap-netweaver-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-sap-netweaver-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-sap-netweaver-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-sap-netweaver-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-netweaver-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-netweaver-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-netweaver-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-netweaver-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -951,145 +1149,197 @@ + "repoid": "rhel-10-for-ppc64le-sap-solutions-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-sap-solutions-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-solutions-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-sap-solutions-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, + { + "pesid": "rhel10-HighAvailability", + "entries": [ ++ { ++ "major_version": "10", ++ "repoid": "highavailability", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "highavailability", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "highavailability", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "10", ++ "repoid": "highavailability", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-highavailability-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-highavailability-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-highavailability-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-aarch64-highavailability-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-highavailability-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-highavailability-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-highavailability-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-ppc64le-highavailability-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-highavailability-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-highavailability-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-highavailability-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-s390x-highavailability-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-highavailability-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-highavailability-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-highavailability-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "10", + "repoid": "rhel-10-for-x86_64-highavailability-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -1102,6 +1352,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1109,98 +1360,112 @@ + "repoid": "rhel-7-for-arm-64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-9-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-els-rpms", + "arch": "ppc64le", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-a-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-els-rpms", + "arch": "s390x", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-aus-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1208,6 +1473,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1215,21 +1481,24 @@ + "repoid": "rhel-7-server-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-els-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1237,6 +1506,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1245,6 +1515,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1253,6 +1524,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1261,6 +1533,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1268,7 +1541,8 @@ + "repoid": "rhel-7-server-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1276,6 +1550,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1284,6 +1559,7 @@ + "arch": "x86_64", + "channel": "els", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1292,6 +1568,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1300,6 +1577,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1308,6 +1586,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -1320,7 +1599,8 @@ + "repoid": "rhel-7-for-arm-64-optional-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1328,6 +1608,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1335,84 +1616,96 @@ + "repoid": "rhel-7-for-power-9-optional-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-e4s-optional-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-els-optional-rpms", + "arch": "ppc64le", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-eus-optional-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-optional-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-optional-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-a-optional-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-els-optional-rpms", + "arch": "s390x", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-eus-optional-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-optional-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-optional-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-aus-optional-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1420,6 +1713,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1427,35 +1721,40 @@ + "repoid": "rhel-7-server-e4s-optional-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-els-optional-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-eus-optional-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-optional-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-optional-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1463,6 +1762,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1471,6 +1771,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1479,6 +1780,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1487,6 +1789,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1495,6 +1798,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1503,6 +1807,7 @@ + "arch": "x86_64", + "channel": "els", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1511,6 +1816,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1519,6 +1825,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -1531,42 +1838,48 @@ + "repoid": "rhel-7-for-power-9-supplementary-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-eus-supplementary-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-supplementary-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-eus-supplementary-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-supplementary-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-eus-supplementary-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1574,6 +1887,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1582,6 +1896,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1590,6 +1905,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1597,7 +1913,8 @@ + "repoid": "rhel-7-server-supplementary-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1605,6 +1922,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -1617,7 +1935,8 @@ + "repoid": "rhel-7-for-arm-64-extras-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1625,6 +1944,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1632,77 +1952,88 @@ + "repoid": "rhel-7-for-arm-64-extras-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-9-extras-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-9-extras-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-extras-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-power-le-extras-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-a-extras-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-a-extras-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-extras-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-for-system-z-extras-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-extras-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-extras-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1710,6 +2041,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1718,6 +2050,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1726,6 +2059,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1734,6 +2068,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -1746,28 +2081,32 @@ + "repoid": "rhel-7-server-eus-rt-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-rt-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-rt-els-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-7-server-rt-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -1779,7 +2118,8 @@ + "repoid": "rhel-7-server-nfv-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -1791,77 +2131,88 @@ + "repoid": "rhel-sap-for-rhel-7-for-power-le-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-power-le-els-rpms", + "arch": "ppc64le", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-power-le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-power-le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-system-z-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-system-z-els-rpms", + "arch": "s390x", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-system-z-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-for-system-z-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-server-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-server-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-for-rhel-7-server-els-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1869,6 +2220,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1876,7 +2228,8 @@ + "repoid": "rhel-sap-for-rhel-7-server-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1884,6 +2237,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1892,6 +2246,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1900,6 +2255,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -1907,7 +2263,8 @@ + "repoid": "rhel-sap-for-rhel-7-server-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1915,6 +2272,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -1923,6 +2281,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -1935,49 +2294,56 @@ + "repoid": "rhel-sap-hana-for-rhel-7-for-power-le-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-for-power-le-els-rpms", + "arch": "ppc64le", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-for-power-le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-for-power-le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-server-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-server-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-sap-hana-for-rhel-7-server-els-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -1985,6 +2351,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -1992,7 +2359,8 @@ + "repoid": "rhel-sap-hana-for-rhel-7-server-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2000,6 +2368,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2008,6 +2377,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2016,6 +2386,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2023,7 +2394,8 @@ + "repoid": "rhel-sap-hana-for-rhel-7-server-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2031,6 +2403,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2039,6 +2412,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -2051,21 +2425,24 @@ + "repoid": "rhel-ha-for-rhel-7-for-system-z-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-ha-for-rhel-7-for-system-z-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-ha-for-rhel-7-server-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2073,6 +2450,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2080,14 +2458,16 @@ + "repoid": "rhel-ha-for-rhel-7-server-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", + "repoid": "rhel-ha-for-rhel-7-server-els-rpms", + "arch": "x86_64", + "channel": "els", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2095,6 +2475,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2102,7 +2483,8 @@ + "repoid": "rhel-ha-for-rhel-7-server-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2110,6 +2492,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2118,6 +2501,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2125,7 +2509,8 @@ + "repoid": "rhel-ha-for-rhel-7-server-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "7", +@@ -2133,6 +2518,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -2146,6 +2532,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -2159,6 +2546,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2167,6 +2555,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -2180,6 +2569,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -2193,6 +2583,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2201,6 +2592,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -2214,6 +2606,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -2227,6 +2620,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -2240,6 +2634,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -2253,6 +2648,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -2266,6 +2662,7 @@ + "arch": "aarch64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2274,6 +2671,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2282,6 +2680,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2290,6 +2689,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2297,98 +2697,112 @@ + "repoid": "rhel-8-for-aarch64-baseos-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-baseos-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-baseos-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-baseos-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-baseos-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-baseos-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-baseos-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-baseos-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-baseos-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-baseos-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-baseos-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-baseos-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-baseos-aus-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-baseos-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2396,6 +2810,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2404,6 +2819,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2411,7 +2827,8 @@ + "repoid": "rhel-8-for-x86_64-baseos-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2419,6 +2836,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2427,6 +2845,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2434,7 +2853,8 @@ + "repoid": "rhel-8-for-x86_64-baseos-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2442,6 +2862,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2449,7 +2870,8 @@ + "repoid": "rhel-8-for-x86_64-baseos-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2457,6 +2879,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -2465,6 +2888,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2473,6 +2897,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2481,6 +2906,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2489,6 +2915,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -2502,6 +2929,7 @@ + "arch": "aarch64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2510,6 +2938,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2518,6 +2947,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2526,6 +2956,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2533,98 +2964,112 @@ + "repoid": "rhel-8-for-aarch64-appstream-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-appstream-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-appstream-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-appstream-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-appstream-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-appstream-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-appstream-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-appstream-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-appstream-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-appstream-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-appstream-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-appstream-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-appstream-aus-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-appstream-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2632,6 +3077,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2640,6 +3086,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2647,7 +3094,8 @@ + "repoid": "rhel-8-for-x86_64-appstream-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2655,6 +3103,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2663,6 +3112,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2670,7 +3120,8 @@ + "repoid": "rhel-8-for-x86_64-appstream-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2678,6 +3129,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2685,7 +3137,8 @@ + "repoid": "rhel-8-for-x86_64-appstream-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2693,6 +3146,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -2701,6 +3155,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2709,6 +3164,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2717,6 +3173,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2725,6 +3182,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -2737,56 +3195,64 @@ + "repoid": "codeready-builder-beta-for-rhel-8-aarch64-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-beta-for-rhel-8-ppc64le-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-beta-for-rhel-8-s390x-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-beta-for-rhel-8-x86_64-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-for-rhel-8-aarch64-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-for-rhel-8-aarch64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-for-rhel-8-ppc64le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-for-rhel-8-ppc64le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2794,6 +3260,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2802,6 +3269,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2809,14 +3277,16 @@ + "repoid": "codeready-builder-for-rhel-8-s390x-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "codeready-builder-for-rhel-8-s390x-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2824,6 +3294,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2831,7 +3302,8 @@ + "repoid": "codeready-builder-for-rhel-8-x86_64-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2839,6 +3311,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2846,7 +3319,8 @@ + "repoid": "codeready-builder-for-rhel-8-x86_64-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2854,6 +3328,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -2862,6 +3337,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -2870,6 +3346,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -2882,77 +3359,88 @@ + "repoid": "rhel-8-for-aarch64-supplementary-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-supplementary-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-supplementary-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-supplementary-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-supplementary-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-supplementary-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-supplementary-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-supplementary-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-supplementary-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-supplementary-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-supplementary-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2960,6 +3448,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -2967,7 +3456,8 @@ + "repoid": "rhel-8-for-x86_64-supplementary-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -2975,6 +3465,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2983,6 +3474,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -2991,6 +3483,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -2999,6 +3492,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3007,6 +3501,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -3015,6 +3510,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -3027,14 +3523,16 @@ + "repoid": "rhel-8-for-x86_64-rt-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-rt-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -3046,21 +3544,24 @@ + "repoid": "rhel-8-for-x86_64-nfv-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-nfv-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-nfv-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -3072,56 +3573,64 @@ + "repoid": "rhel-8-for-ppc64le-sap-netweaver-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-netweaver-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-netweaver-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-netweaver-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-sap-netweaver-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-sap-netweaver-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-sap-netweaver-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-sap-netweaver-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3129,6 +3638,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3137,6 +3647,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3144,7 +3655,8 @@ + "repoid": "rhel-8-for-x86_64-sap-netweaver-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3152,6 +3664,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3160,6 +3673,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3167,14 +3681,16 @@ + "repoid": "rhel-8-for-x86_64-sap-netweaver-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-sap-netweaver-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3182,6 +3698,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -3194,35 +3711,40 @@ + "repoid": "rhel-8-for-ppc64le-sap-solutions-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-solutions-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-solutions-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-sap-solutions-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-sap-solutions-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3230,6 +3752,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3238,6 +3761,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3245,7 +3769,8 @@ + "repoid": "rhel-8-for-x86_64-sap-solutions-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3253,6 +3778,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3260,14 +3786,16 @@ + "repoid": "rhel-8-for-x86_64-sap-solutions-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-sap-solutions-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3275,6 +3803,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -3287,77 +3816,88 @@ + "repoid": "rhel-8-for-aarch64-highavailability-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-highavailability-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-aarch64-highavailability-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-highavailability-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-highavailability-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-highavailability-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-ppc64le-highavailability-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-highavailability-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-highavailability-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-s390x-highavailability-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "rhel-8-for-x86_64-highavailability-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3365,6 +3905,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3373,6 +3914,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3380,7 +3922,8 @@ + "repoid": "rhel-8-for-x86_64-highavailability-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3388,6 +3931,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3395,7 +3939,8 @@ + "repoid": "rhel-8-for-x86_64-highavailability-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3403,6 +3948,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3410,7 +3956,8 @@ + "repoid": "rhel-8-for-x86_64-highavailability-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", +@@ -3418,6 +3965,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -3426,6 +3974,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -3434,6 +3983,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -3447,6 +3997,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -3460,6 +4011,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3468,6 +4020,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -3481,6 +4034,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -3494,6 +4048,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3502,6 +4057,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -3515,6 +4071,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -3528,6 +4085,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -3541,6 +4099,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -3554,6 +4113,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -3567,6 +4127,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -3579,49 +4140,56 @@ + "repoid": "advanced-virt-for-rhel-8-aarch64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-ppc64le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-ppc64le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-s390x-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-s390x-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-x86_64-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-for-rhel-8-x86_64-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -3633,28 +4201,32 @@ + "repoid": "advanced-virt-crb-for-rhel-8-aarch64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-crb-for-rhel-8-ppc64le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-crb-for-rhel-8-s390x-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "8", + "repoid": "advanced-virt-crb-for-rhel-8-x86_64-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -3667,6 +4239,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -3675,6 +4248,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -3682,12 +4256,45 @@ + { + "pesid": "rhel9-BaseOS", + "entries": [ ++ { ++ "major_version": "9", ++ "repoid": "baseos", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "baseos", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "baseos", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "baseos", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "9", + "repoid": "rhel-9-baseos-beta-rhui-rpms", + "arch": "aarch64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3696,6 +4303,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3704,6 +4312,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3712,6 +4321,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3719,98 +4329,112 @@ + "repoid": "rhel-9-for-aarch64-baseos-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-baseos-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-baseos-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-baseos-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-baseos-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-baseos-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-baseos-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-baseos-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-baseos-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-baseos-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-baseos-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-baseos-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-baseos-aus-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-baseos-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -3818,6 +4442,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3826,6 +4451,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3833,7 +4459,8 @@ + "repoid": "rhel-9-for-x86_64-baseos-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -3841,6 +4468,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3848,7 +4476,8 @@ + "repoid": "rhel-9-for-x86_64-baseos-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -3856,6 +4485,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -3863,7 +4493,8 @@ + "repoid": "rhel-9-for-x86_64-baseos-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -3871,6 +4502,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -3879,6 +4511,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -3887,6 +4520,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -3895,6 +4529,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -3902,12 +4537,45 @@ + { + "pesid": "rhel9-AppStream", + "entries": [ ++ { ++ "major_version": "9", ++ "repoid": "appstream", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "appstream", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "appstream", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "appstream", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "9", + "repoid": "rhel-9-appstream-beta-rhui-rpms", + "arch": "aarch64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3916,6 +4584,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3924,6 +4593,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3932,6 +4602,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -3939,98 +4610,112 @@ + "repoid": "rhel-9-for-aarch64-appstream-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-appstream-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-appstream-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-appstream-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-appstream-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-appstream-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-appstream-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-appstream-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-appstream-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-appstream-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-appstream-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-appstream-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-appstream-aus-rpms", + "arch": "x86_64", + "channel": "aus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-appstream-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4038,6 +4723,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4046,6 +4732,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4053,7 +4740,8 @@ + "repoid": "rhel-9-for-x86_64-appstream-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4061,6 +4749,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4068,7 +4757,8 @@ + "repoid": "rhel-9-for-x86_64-appstream-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4076,6 +4766,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4083,7 +4774,8 @@ + "repoid": "rhel-9-for-x86_64-appstream-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4091,6 +4783,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -4099,6 +4792,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4107,6 +4801,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4115,6 +4810,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -4127,56 +4823,64 @@ + "repoid": "codeready-builder-beta-for-rhel-9-aarch64-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-beta-for-rhel-9-ppc64le-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-beta-for-rhel-9-s390x-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-beta-for-rhel-9-x86_64-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-aarch64-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-aarch64-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-ppc64le-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-ppc64le-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4184,6 +4888,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4192,6 +4897,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4199,21 +4905,24 @@ + "repoid": "codeready-builder-for-rhel-9-s390x-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-s390x-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "codeready-builder-for-rhel-9-x86_64-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4221,6 +4930,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4228,7 +4938,40 @@ + "repoid": "codeready-builder-for-rhel-9-x86_64-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "crb", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "crb", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "crb", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "crb", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" + }, + { + "major_version": "9", +@@ -4236,6 +4979,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -4244,6 +4988,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4252,6 +4997,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -4264,84 +5010,96 @@ + "repoid": "rhel-9-for-aarch64-supplementary-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-supplementary-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-supplementary-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-supplementary-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-supplementary-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-supplementary-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-supplementary-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-supplementary-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-supplementary-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-supplementary-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-supplementary-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-supplementary-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4349,6 +5107,7 @@ + "arch": "x86_64", + "channel": "beta", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4357,6 +5116,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4365,6 +5125,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -4373,6 +5134,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4381,6 +5143,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -4393,82 +5156,109 @@ + "repoid": "rhel-9-for-aarch64-rt-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-rt-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-rt-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-rt-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-rt-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-rt-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "rt", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" + } + ] + }, + { + "pesid": "rhel9-NFV", + "entries": [ ++ { ++ "major_version": "9", ++ "repoid": "nfv", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-nfv-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-nfv-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-nfv-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-nfv-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-nfv-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + } + ] + }, +@@ -4480,63 +5270,72 @@ + "repoid": "rhel-9-for-ppc64le-sap-netweaver-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-sap-netweaver-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-sap-netweaver-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-sap-netweaver-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-sap-netweaver-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-sap-netweaver-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-sap-netweaver-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-sap-netweaver-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-sap-netweaver-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4544,6 +5343,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4552,6 +5352,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4559,7 +5360,8 @@ + "repoid": "rhel-9-for-x86_64-sap-netweaver-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4567,6 +5369,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4574,14 +5377,16 @@ + "repoid": "rhel-9-for-x86_64-sap-netweaver-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-sap-netweaver-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4589,6 +5394,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -4601,14 +5407,16 @@ + "repoid": "rhel-9-for-ppc64le-sap-solutions-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-sap-solutions-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4616,6 +5424,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4624,6 +5433,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4631,14 +5441,16 @@ + "repoid": "rhel-9-for-x86_64-sap-solutions-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-sap-solutions-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4646,6 +5458,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -4653,96 +5466,141 @@ + { + "pesid": "rhel9-HighAvailability", + "entries": [ ++ { ++ "major_version": "9", ++ "repoid": "highavailability", ++ "arch": "aarch64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "highavailability", ++ "arch": "ppc64le", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "highavailability", ++ "arch": "s390x", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, ++ { ++ "major_version": "9", ++ "repoid": "highavailability", ++ "arch": "x86_64", ++ "channel": "ga", ++ "repo_type": "rpm", ++ "distro": "centos" ++ }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-highavailability-beta-rpms", + "arch": "aarch64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-highavailability-e4s-rpms", + "arch": "aarch64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-highavailability-eus-rpms", + "arch": "aarch64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-aarch64-highavailability-rpms", + "arch": "aarch64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-highavailability-beta-rpms", + "arch": "ppc64le", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-highavailability-e4s-rpms", + "arch": "ppc64le", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-highavailability-eus-rpms", + "arch": "ppc64le", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-ppc64le-highavailability-rpms", + "arch": "ppc64le", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-highavailability-beta-rpms", + "arch": "s390x", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-highavailability-e4s-rpms", + "arch": "s390x", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-highavailability-eus-rpms", + "arch": "s390x", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-s390x-highavailability-rpms", + "arch": "s390x", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-highavailability-beta-rpms", + "arch": "x86_64", + "channel": "beta", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4750,6 +5608,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4758,6 +5617,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + }, + { +@@ -4765,21 +5625,24 @@ + "repoid": "rhel-9-for-x86_64-highavailability-e4s-rpms", + "arch": "x86_64", + "channel": "e4s", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-highavailability-eus-rpms", + "arch": "x86_64", + "channel": "eus", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", + "repoid": "rhel-9-for-x86_64-highavailability-rpms", + "arch": "x86_64", + "channel": "ga", +- "repo_type": "rpm" ++ "repo_type": "rpm", ++ "distro": "rhel" + }, + { + "major_version": "9", +@@ -4787,6 +5650,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4795,6 +5659,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + }, + { +@@ -4803,6 +5668,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +@@ -4816,6 +5682,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + }, + { +@@ -4824,6 +5691,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -4837,6 +5705,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "aws" + } + ] +@@ -4850,6 +5719,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -4863,6 +5733,7 @@ + "arch": "x86_64", + "channel": "eus", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -4876,6 +5747,7 @@ + "arch": "x86_64", + "channel": "e4s", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "azure" + } + ] +@@ -4889,6 +5761,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -4902,6 +5775,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "google" + } + ] +@@ -4915,6 +5789,7 @@ + "arch": "aarch64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + }, + { +@@ -4923,6 +5798,7 @@ + "arch": "x86_64", + "channel": "ga", + "repo_type": "rpm", ++ "distro": "rhel", + "rhui": "alibaba" + } + ] +diff --git a/repos/system_upgrade/common/libraries/config/__init__.py b/repos/system_upgrade/common/libraries/config/__init__.py +index 9757948e..38519d7b 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', 'e4s', 'eus', 'aus'} +-CONSUMED_DATA_STREAM_ID = '3.0' ++CONSUMED_DATA_STREAM_ID = '4.0' + + + def get_env(name, default=None): +-- +2.49.0 + diff --git a/SOURCES/0043-unit-tests-suppress-deprecation-warning-for-is_rhel_.patch b/SOURCES/0043-unit-tests-suppress-deprecation-warning-for-is_rhel_.patch new file mode 100644 index 0000000..be8236d --- /dev/null +++ b/SOURCES/0043-unit-tests-suppress-deprecation-warning-for-is_rhel_.patch @@ -0,0 +1,28 @@ +From 6c205281850c28068edc7fc5ab453c65398b7054 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Fri, 30 May 2025 18:28:25 +0200 +Subject: [PATCH 43/43] unit-tests: suppress deprecation warning for + is_rhel_alt() + +The deprecation warning is not wanted in unit-tests. Supress it. + +Signed-off-by: Petr Stodulka +--- + .../system_upgrade/common/libraries/config/tests/test_version.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/repos/system_upgrade/common/libraries/config/tests/test_version.py b/repos/system_upgrade/common/libraries/config/tests/test_version.py +index 420571c0..d51f8098 100644 +--- a/repos/system_upgrade/common/libraries/config/tests/test_version.py ++++ b/repos/system_upgrade/common/libraries/config/tests/test_version.py +@@ -108,6 +108,7 @@ def test_matches_target_version(monkeypatch, result, version_list): + (False, '4.14.0-100.8.2.el8.x86_64', 'rhel', '8.1'), + (False, '4.14.0-100.8.2.el9.x86_64', 'rhel', '9.1'), + ]) ++@suppress_deprecation(version.is_rhel_alt) + def test_is_rhel_alt(monkeypatch, result, kernel, release_id, src_ver): + monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(src_ver=src_ver, kernel=kernel, + release_id=release_id)) +-- +2.49.0 + diff --git a/SPECS/leapp-repository.spec b/SPECS/leapp-repository.spec index 607fd0b..0fd1e11 100644 --- a/SPECS/leapp-repository.spec +++ b/SPECS/leapp-repository.spec @@ -52,7 +52,7 @@ py2_byte_compile "%1" "%2"} Name: leapp-repository Version: 0.22.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Repositories for leapp License: ASL 2.0 @@ -104,6 +104,13 @@ Patch0035: 0035-Add-official-Centos-Stream-9-and-10-RPM-GPG-keys.patch Patch0036: 0036-Deprecate-is_rhel_alt-from-share-libraries.patch Patch0037: 0037-data-update-data-files-stream-3.3-1380.patch +# CTC1 Candidate2 +Patch0038: 0038-Makefile-Non-zero-exit-code-on-failed-tests-in-conta.patch +Patch0039: 0039-CI-Unit-tests-Rename-tasks-tests-executions.patch +Patch0040: 0040-Fix-parsing-of-the-kernel-cmdline.patch +Patch0041: 0041-repomap-Process-repositories-based-on-distro.patch +Patch0042: 0042-Update-the-upgrade-data-files-stream-4.0.patch +Patch0043: 0043-unit-tests-suppress-deprecation-warning-for-is_rhel_.patch %description %{summary} @@ -308,6 +315,12 @@ Requires: libdb-utils %patch -P 0035 -p1 %patch -P 0036 -p1 %patch -P 0037 -p1 +%patch -P 0038 -p1 +%patch -P 0039 -p1 +%patch -P 0040 -p1 +%patch -P 0041 -p1 +%patch -P 0042 -p1 +%patch -P 0043 -p1 %build @@ -389,6 +402,12 @@ done; # no files here %changelog +* Thu Jun 05 2025 Karolina Kula - 0.22.0-4 +- Fix parsing of the kernel cmdline +- Require leapp data with provided_data_streams 4.0+ +- Resolves: RHEL-67627 + + * Wed May 14 2025 Petr Stodulka - 0.22.0-3 - Rebuild