CTC2 candidate 1 (Release for 8.10/9.5)
- Improve set_systemd_services_states logging - [IPU 7 -> 8] Fix detection of bootable device on RAID - Fix detection of valid sshd config with internal-sftp subsystem in Leapp - Handle a false positive GPG check error when TargetUserSpaceInfo is missing - Fix failing "update-ca-trust" command caused by missing util-linux package - Improve report when a system is unsupported - Fix handling of versions in RHUI configuration for ELS and SAP upgrades - Add missing RHUI GCP config info for RHEL for SAP - Resolves: RHEL-33902, RHEL-30573, RHEL-43978, RHEL-39046, RHEL-39047, RHEL-39049
This commit is contained in:
parent
b4aed63dad
commit
d9029cec24
61
0050-packit-Enable-8.10to9.5-tests.patch
Normal file
61
0050-packit-Enable-8.10to9.5-tests.patch
Normal file
@ -0,0 +1,61 @@
|
||||
From 281b59832182679e8a8dc609b6b433673bcd1d39 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Tue, 28 May 2024 14:49:12 +0200
|
||||
Subject: [PATCH 50/92] packit: Enable 8.10to9.5 tests
|
||||
|
||||
---
|
||||
.packit.yaml | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 41 insertions(+)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index dc9b9431..dd97c6ee 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -552,3 +552,44 @@ jobs:
|
||||
TARGET_RELEASE: "9.4"
|
||||
RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
LEAPPDATA_BRANCH: "upstream"
|
||||
+
|
||||
+
|
||||
+# Tests: 8.10 -> 9.5
|
||||
+- &sanity-810to95
|
||||
+ <<: *sanity-abstract-8to9
|
||||
+ trigger: pull_request
|
||||
+ identifier: sanity-8.10to9.5
|
||||
+ env:
|
||||
+ SOURCE_RELEASE: "8.10"
|
||||
+ TARGET_RELEASE: "9.5"
|
||||
+ RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
+ LEAPPDATA_BRANCH: "upstream"
|
||||
+
|
||||
+# On-demand minimal beaker tests
|
||||
+- &beaker-minimal-810to95
|
||||
+ <<: *beaker-minimal-8to9-abstract-ondemand
|
||||
+ trigger: pull_request
|
||||
+ labels:
|
||||
+ - beaker-minimal
|
||||
+ - beaker-minimal-8.10to9.5
|
||||
+ - 8.10to9.5
|
||||
+ identifier: sanity-8.10to9.5-beaker-minimal-ondemand
|
||||
+ env:
|
||||
+ SOURCE_RELEASE: "8.10"
|
||||
+ TARGET_RELEASE: "9.5"
|
||||
+ LEAPPDATA_BRANCH: "upstream"
|
||||
+
|
||||
+# On-demand kernel-rt tests
|
||||
+- &kernel-rt-810to95
|
||||
+ <<: *kernel-rt-abstract-8to9-ondemand
|
||||
+ trigger: pull_request
|
||||
+ labels:
|
||||
+ - kernel-rt
|
||||
+ - kernel-rt-8.10to9.5
|
||||
+ - 8.10to9.5
|
||||
+ identifier: sanity-8.10to9.5-kernel-rt-ondemand
|
||||
+ env:
|
||||
+ SOURCE_RELEASE: "8.10"
|
||||
+ TARGET_RELEASE: "9.5"
|
||||
+ RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
+ LEAPPDATA_BRANCH: "upstream"
|
||||
--
|
||||
2.42.0
|
||||
|
41
0051-dnf-plugin-data-sort-intput-lists.patch
Normal file
41
0051-dnf-plugin-data-sort-intput-lists.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 7ee37486990d36a710f1573845f21deab45ba2b6 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Tue, 14 May 2024 12:03:30 +0200
|
||||
Subject: [PATCH 51/92] dnf-plugin-data: sort intput lists
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously to_install, to_remove, to_upgrade, ... lists have been
|
||||
unsorted. Having these lists sorted is helpful when checking these
|
||||
tasks manually (e.g. during investigations).
|
||||
|
||||
Co-authored-by: Michal Hečko <michal.sk.com@gmail.com>
|
||||
---
|
||||
repos/system_upgrade/common/libraries/dnfplugin.py | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/dnfplugin.py b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
index e59168ef..6f056a33 100644
|
||||
--- a/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
+++ b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
@@ -85,11 +85,11 @@ def build_plugin_data(target_repoids, debug, test, tasks, on_aws):
|
||||
# get list of repo IDs of target repositories that should be used for upgrade
|
||||
data = {
|
||||
'pkgs_info': {
|
||||
- 'local_rpms': [os.path.join('/installroot', pkg.lstrip('/')) for pkg in tasks.local_rpms],
|
||||
- 'to_install': tasks.to_install,
|
||||
- 'to_remove': tasks.to_remove,
|
||||
- 'to_upgrade': tasks.to_upgrade,
|
||||
- 'modules_to_enable': ['{}:{}'.format(m.name, m.stream) for m in tasks.modules_to_enable],
|
||||
+ 'local_rpms': sorted(os.path.join('/installroot', pkg.lstrip('/')) for pkg in tasks.local_rpms),
|
||||
+ 'to_install': sorted(tasks.to_install),
|
||||
+ 'to_remove': sorted(tasks.to_remove),
|
||||
+ 'to_upgrade': sorted(tasks.to_upgrade),
|
||||
+ 'modules_to_enable': sorted(['{}:{}'.format(m.name, m.stream) for m in tasks.modules_to_enable]),
|
||||
},
|
||||
'dnf_conf': {
|
||||
'allow_erasing': True,
|
||||
--
|
||||
2.42.0
|
||||
|
37
0052-rhui-setups-support-alibaba-cloud.patch
Normal file
37
0052-rhui-setups-support-alibaba-cloud.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 76ac12560c4ea8223a59ec5a8233a86412dbf158 Mon Sep 17 00:00:00 2001
|
||||
From: "jinkangkang.jkk" <jinkangkang.jkk@alibaba-inc.com>
|
||||
Date: Mon, 3 Jun 2024 17:12:02 +0800
|
||||
Subject: [PATCH 52/92] rhui setups support alibaba cloud
|
||||
|
||||
---
|
||||
repos/system_upgrade/common/libraries/rhui.py | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 2dfb209c..ab6a27f8 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -290,7 +290,19 @@ RHUI_SETUPS = {
|
||||
RHUIFamily(RHUIProvider.ALIBABA, client_files_folder='alibaba'): [
|
||||
mk_rhui_setup(clients={'client-rhel7'}, os_version='7'),
|
||||
mk_rhui_setup(clients={'aliyun_rhui_rhel8'}, leapp_pkg='leapp-rhui-alibaba',
|
||||
- mandatory_files=[('leapp-alibaba.repo', YUM_REPOS_PATH)], os_version='8'),
|
||||
+ mandatory_files=[('leapp-alibaba.repo', YUM_REPOS_PATH)],
|
||||
+ optional_files=[
|
||||
+ ('key.pem', RHUI_PKI_DIR),
|
||||
+ ('content.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
+ ],
|
||||
+ os_version='8'),
|
||||
+ mk_rhui_setup(clients={'aliyun_rhui_rhel9'}, leapp_pkg='leapp-rhui-alibaba',
|
||||
+ mandatory_files=[('leapp-alibaba.repo', YUM_REPOS_PATH)],
|
||||
+ optional_files=[
|
||||
+ ('key.pem', RHUI_PKI_DIR),
|
||||
+ ('content.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
+ ],
|
||||
+ os_version='9'),
|
||||
]
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
409
0053-check_rhui-allow-minor-versions-in-the-RHUI-table.patch
Normal file
409
0053-check_rhui-allow-minor-versions-in-the-RHUI-table.patch
Normal file
@ -0,0 +1,409 @@
|
||||
From 986fa6f90f68a7d3e5d9173d8496dd222d5f7884 Mon Sep 17 00:00:00 2001
|
||||
From: mhecko <mhecko@redhat.com>
|
||||
Date: Thu, 23 May 2024 15:28:12 +0200
|
||||
Subject: [PATCH 53/92] check_rhui: allow minor versions in the RHUI table
|
||||
|
||||
With RHEL8.10, different target RHUI clients have to be installed,
|
||||
depending on the target minor version. The RHUI_SETUPS structure
|
||||
used for navigating upgrades on RHUI and associated infrastructure
|
||||
did not allow to setups based on their minor version. RHUI_SETUPS
|
||||
is used to both determine what RHUI variant are we running on and what
|
||||
is the target setup. Therefore, any solution would have to:
|
||||
- ensure that when we are on RHEL8.10, we will look for correct client
|
||||
(this point is fairly easy, and it would be sufficient to just declare
|
||||
another setup description in RHUI_SETUPS)
|
||||
- determine what target client to install depending on whether we are
|
||||
targetting RHEL8.10 or, e.g., RHEL8.8
|
||||
Introducing another setup to the map causes multiple target variants
|
||||
to be eligible, and, thus, leapp would error due to not being able to
|
||||
pick the target setup. Therefore, a solution has to include such
|
||||
conflict resolution based on target minor version.
|
||||
|
||||
Given the above description of the solution space, this patch allows
|
||||
specifying minor versions in the RHUI_SETUPS table used to resolve
|
||||
conflicts when multiple target setups matching the major version are
|
||||
eligable. Identification of the source and corresponding target RHUI
|
||||
variant works by using the entry with the closest (younger) minor
|
||||
version. For example, when 8.4 and 8.8 are suitable target setups (based
|
||||
on the installed clients), 8.4 will be used when the upgrade taget is
|
||||
8.6. The minor versions in the RHUI_SETUPS table, therefore, are
|
||||
in a sense a "changelog" of leapp's RHUI knowledge. If the table
|
||||
contains an entry A with version 8.0, and an entry B with version
|
||||
8.8, this can be understood as:
|
||||
Since 8.0, we know that the setups use this client and we need to do
|
||||
these things to access target content. Since 8.8 onwards, we know
|
||||
that we need to use a different client etc.
|
||||
---
|
||||
.../libraries/checkhybridimage.py | 3 +-
|
||||
.../cloud/checkrhui/libraries/checkrhui.py | 165 ++++++++++++++----
|
||||
.../tests/component_test_checkrhui.py | 48 +++++
|
||||
repos/system_upgrade/common/libraries/rhui.py | 44 ++++-
|
||||
4 files changed, 222 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/cloud/checkhybridimage/libraries/checkhybridimage.py b/repos/system_upgrade/common/actors/cloud/checkhybridimage/libraries/checkhybridimage.py
|
||||
index e2b7f5b2..a4eb6fa1 100644
|
||||
--- a/repos/system_upgrade/common/actors/cloud/checkhybridimage/libraries/checkhybridimage.py
|
||||
+++ b/repos/system_upgrade/common/actors/cloud/checkhybridimage/libraries/checkhybridimage.py
|
||||
@@ -28,7 +28,8 @@ def is_azure_agent_installed():
|
||||
|
||||
agent_pkg = None
|
||||
for setup in azure_setups:
|
||||
- if setup.os_version == src_ver_major:
|
||||
+ setup_major_ver = str(setup.os_version[0])
|
||||
+ if setup_major_ver == src_ver_major:
|
||||
agent_pkg = setup.extra_info.get('agent_pkg')
|
||||
break
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py b/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
|
||||
index e1c158c7..3b217917 100644
|
||||
--- a/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
|
||||
+++ b/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
|
||||
@@ -30,8 +30,98 @@ def into_set(pkgs):
|
||||
return set(pkgs)
|
||||
|
||||
|
||||
+def fmt_matching_rhui_setups(setups):
|
||||
+ def fmt_matching_rhui_setup(matching_setup):
|
||||
+ if isinstance(matching_setup, MatchingSetup):
|
||||
+ return '(ver={os_ver}, variant={variant}, clients={clients})'.format(
|
||||
+ os_ver=matching_setup.description.os_version,
|
||||
+ variant=matching_setup.family,
|
||||
+ clients=matching_setup.description.clients
|
||||
+ )
|
||||
+ # Just a RHUISetup
|
||||
+ return '(ver={os_ver}, clients={clients})'.format(
|
||||
+ os_ver=matching_setup.os_version,
|
||||
+ clients=matching_setup.clients
|
||||
+ )
|
||||
+
|
||||
+ return ', '.join(fmt_matching_rhui_setup(setup) for setup in setups)
|
||||
+
|
||||
+
|
||||
+def select_chronologically_closest_setups(matching_setups, optimal_minor_ver, minor_ver_extractor, system_role):
|
||||
+ if not matching_setups:
|
||||
+ return None
|
||||
+
|
||||
+ # Select only setups that are chronologically closest
|
||||
+ highest_minor_less_than_optimal = 0
|
||||
+ for setup in matching_setups:
|
||||
+ setup_minor = minor_ver_extractor(setup)
|
||||
+
|
||||
+ less_than_src_minor = (setup_minor <= optimal_minor_ver) if optimal_minor_ver else True
|
||||
+ higher_than_previous = setup_minor > highest_minor_less_than_optimal
|
||||
+ if less_than_src_minor and higher_than_previous:
|
||||
+ highest_minor_less_than_optimal = setup_minor
|
||||
+
|
||||
+ msg = 'RHUI setups matching installed clients and %s major version: %s'
|
||||
+ api.current_logger().debug(msg, system_role, fmt_matching_rhui_setups(matching_setups))
|
||||
+
|
||||
+ chronologically_closest_setups = [
|
||||
+ setup for setup in matching_setups if minor_ver_extractor(setup) == highest_minor_less_than_optimal
|
||||
+ ]
|
||||
+ if chronologically_closest_setups:
|
||||
+ matching_setups = chronologically_closest_setups
|
||||
+ msg = 'Further narrowed matching setups based on their %s minor version: %s'
|
||||
+ api.current_logger().debug(msg, system_role, fmt_matching_rhui_setups(matching_setups))
|
||||
+ else:
|
||||
+ newest_minor = max(matching_setups, key=minor_ver_extractor).os_version[1]
|
||||
+ matching_setups = [setup for setup in matching_setups if minor_ver_extractor(setup) == newest_minor]
|
||||
+ api.current_logger().warning(
|
||||
+ 'The %s predates any of the setups that match the installed clients. Using newest matching: %s',
|
||||
+ system_role,
|
||||
+ fmt_matching_rhui_setups(matching_setups)
|
||||
+ )
|
||||
+ return matching_setups
|
||||
+
|
||||
+
|
||||
+def error_due_to_ambiguous_source_setups(match0, match1):
|
||||
+ msg = 'Could not identify the source RHUI setup (ambiguous setup)'
|
||||
+
|
||||
+ variant_detail_table = {
|
||||
+ rhui.RHUIVariant.ORDINARY: '',
|
||||
+ rhui.RHUIVariant.SAP: ' for SAP',
|
||||
+ rhui.RHUIVariant.SAP_APPS: ' for SAP Applications',
|
||||
+ rhui.RHUIVariant.SAP_HA: ' for SAP HA',
|
||||
+ }
|
||||
+
|
||||
+ variant0_detail = variant_detail_table[match0.family.variant]
|
||||
+ clients0 = ' '.join(match0.description.clients)
|
||||
+
|
||||
+ variant1_detail = variant_detail_table[match1.family.variant]
|
||||
+ clients1 = ' '.join(match1.description.clients)
|
||||
+
|
||||
+ details = ('Leapp uses client-based identification of the used RHUI setup in order to determine what the '
|
||||
+ 'target RHEL content should be. According to the installed RHUI clients the system should be '
|
||||
+ 'RHEL {os_major}{variant0_detail} ({provider0}) (identified by clients {clients0}) but also '
|
||||
+ 'RHEL {os_major}{variant1_detail} ({provider1}) (identified by clients {clients1}).')
|
||||
+ details = details.format(os_major=version.get_source_major_version(),
|
||||
+ variant0_detail=variant0_detail, clients0=clients0, provider0=match0.family.provider,
|
||||
+ variant1_detail=variant1_detail, clients1=clients1, provider1=match1.family.provider)
|
||||
+
|
||||
+ raise StopActorExecutionError(message=msg, details={'details': details})
|
||||
+
|
||||
+
|
||||
+def _get_canonical_version_tuple(version):
|
||||
+ ver_fragments = version.split('.')
|
||||
+ major = int(ver_fragments[0])
|
||||
+ try:
|
||||
+ minor = int(ver_fragments[1]) if len(ver_fragments) > 1 else None
|
||||
+ except ValueError as error:
|
||||
+ api.current_logger().debug('Failed to convert minor version into integer: %s', error)
|
||||
+ minor = None # Unlikely, the code using this can handle None as minor
|
||||
+ return (major, minor)
|
||||
+
|
||||
+
|
||||
def find_rhui_setup_matching_src_system(installed_pkgs, rhui_map):
|
||||
- src_ver = version.get_source_major_version()
|
||||
+ src_major_ver, src_minor_ver = _get_canonical_version_tuple(version.get_source_version())
|
||||
arch = api.current_actor().configuration.architecture
|
||||
|
||||
matching_setups = []
|
||||
@@ -40,8 +130,9 @@ def find_rhui_setup_matching_src_system(installed_pkgs, rhui_map):
|
||||
continue
|
||||
|
||||
for setup in family_setups:
|
||||
- if setup.os_version != src_ver:
|
||||
+ if setup.os_version[0] != src_major_ver:
|
||||
continue
|
||||
+
|
||||
if setup.clients.issubset(installed_pkgs):
|
||||
matching_setups.append(MatchingSetup(family=rhui_family, description=setup))
|
||||
|
||||
@@ -50,50 +141,54 @@ def find_rhui_setup_matching_src_system(installed_pkgs, rhui_map):
|
||||
|
||||
# In case that a RHUI variant uses a combination of clients identify the maximal client set
|
||||
matching_setups_by_size = sorted(matching_setups, key=lambda match: -len(match.description.clients))
|
||||
+ max_client_cnt = len(matching_setups_by_size[0].description.clients)
|
||||
+ matching_setups = tuple(
|
||||
+ setup for setup in matching_setups if len(setup.description.clients) == max_client_cnt
|
||||
+ )
|
||||
+ msg = 'Identified RHUI setups with the largest installed client sets: %s'
|
||||
+ api.current_logger().debug(msg, fmt_matching_rhui_setups(matching_setups))
|
||||
|
||||
- match = matching_setups_by_size[0] # Matching setup with the highest number of clients
|
||||
- if len(matching_setups) == 1:
|
||||
- return match
|
||||
+ if not matching_setups:
|
||||
+ return None
|
||||
|
||||
- if len(matching_setups_by_size[0].description.clients) == len(matching_setups_by_size[1].description.clients):
|
||||
- # Should not happen as no cloud providers use multi-client setups (at the moment)
|
||||
- msg = 'Could not identify the source RHUI setup (ambiguous setup)'
|
||||
+ # Since we allow minor versions in RHUI table, we might have multiple entries that are identified by the
|
||||
+ # same clients. E.g.:
|
||||
+ # RHEL8.4 with client X
|
||||
+ # RHEL8.9 with client X (but with some modified setup info)
|
||||
+ # If upgrading from 8.6, select 8.4. If upgrading from 8.10, select 8.9
|
||||
+ matching_setups = select_chronologically_closest_setups(matching_setups,
|
||||
+ src_minor_ver,
|
||||
+ lambda setup: setup.description.os_version[1],
|
||||
+ 'source')
|
||||
|
||||
- variant_detail_table = {
|
||||
- rhui.RHUIVariant.ORDINARY: '',
|
||||
- rhui.RHUIVariant.SAP: ' for SAP',
|
||||
- rhui.RHUIVariant.SAP_APPS: ' for SAP Applications',
|
||||
- rhui.RHUIVariant.SAP_HA: ' for SAP HA',
|
||||
- }
|
||||
+ # If we fail to identify chronologically proper setup, we always return a nonempty list
|
||||
|
||||
- match0 = matching_setups_by_size[0]
|
||||
- variant0_detail = variant_detail_table[match0.family.variant]
|
||||
- clients0 = ' '.join(match0.description.clients)
|
||||
+ match = matching_setups[0] # Matching setup with the highest number of clients
|
||||
+ if len(matching_setups) == 1:
|
||||
+ return match
|
||||
|
||||
- match1 = matching_setups_by_size[1]
|
||||
- variant1_detail = variant_detail_table[match1.family.variant]
|
||||
- clients1 = ' '.join(match1.description.clients)
|
||||
+ other_match = matching_setups[1]
|
||||
+ error_due_to_ambiguous_source_setups(match, other_match)
|
||||
+ return None # Unreachable
|
||||
|
||||
- details = ('Leapp uses client-based identification of the used RHUI setup in order to determine what the '
|
||||
- 'target RHEL content should be. According to the installed RHUI clients the system should be '
|
||||
- 'RHEL {os_major}{variant0_detail} ({provider0}) (identified by clients {clients0}) but also '
|
||||
- 'RHEL {os_major}{variant1_detail} ({provider1}) (identified by clients {clients1}).')
|
||||
- details = details.format(os_major=version.get_source_major_version(),
|
||||
- variant0_detail=variant0_detail, clients0=clients0, provider0=match0.family.provider,
|
||||
- variant1_detail=variant1_detail, clients1=clients1, provider1=match1.family.provider)
|
||||
|
||||
- raise StopActorExecutionError(message=msg, details={'details': details})
|
||||
+def determine_target_setup_desc(cloud_map, rhui_family):
|
||||
+ variant_setups = cloud_map[rhui_family]
|
||||
|
||||
- return match
|
||||
+ target_major, target_minor = _get_canonical_version_tuple(version.get_target_version())
|
||||
|
||||
+ matching_setups = [setup for setup in variant_setups if setup.os_version[0] == target_major]
|
||||
+ msg = 'Identified target RHUI setups matching target major: %s'
|
||||
+ api.current_logger().debug(msg, fmt_matching_rhui_setups(matching_setups))
|
||||
|
||||
-def determine_target_setup_desc(cloud_map, rhui_family):
|
||||
- variant_setups = cloud_map[rhui_family]
|
||||
- target_major = version.get_target_major_version()
|
||||
+ matching_setups = select_chronologically_closest_setups(matching_setups,
|
||||
+ target_minor,
|
||||
+ lambda setup: setup.os_version[1],
|
||||
+ 'target')
|
||||
+
|
||||
+ if matching_setups:
|
||||
+ return next(iter(matching_setups))
|
||||
|
||||
- for setup in variant_setups:
|
||||
- if setup.os_version == target_major:
|
||||
- return setup
|
||||
return None
|
||||
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py b/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
|
||||
index aa0089b6..27e70eea 100644
|
||||
--- a/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
|
||||
+++ b/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
|
||||
@@ -326,3 +326,51 @@ def test_unknown_target_rhui_setup(monkeypatch, is_target_setup_known):
|
||||
else:
|
||||
with pytest.raises(StopActorExecutionError):
|
||||
checkrhui_lib.process()
|
||||
+
|
||||
+
|
||||
+@pytest.mark.parametrize(
|
||||
+ ('setups', 'desired_minor', 'expected_setup'),
|
||||
+ [
|
||||
+ (
|
||||
+ [
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.4', leapp_pkg='leapp-A'),
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ],
|
||||
+ 8,
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ),
|
||||
+ (
|
||||
+ [
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.4', leapp_pkg='leapp-A'),
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ],
|
||||
+ 6,
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ),
|
||||
+ (
|
||||
+ [
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.4', leapp_pkg='leapp-A'),
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ],
|
||||
+ 5,
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.4', leapp_pkg='leapp-A'),
|
||||
+ ),
|
||||
+ (
|
||||
+ [
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.4', leapp_pkg='leapp-A'),
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ ],
|
||||
+ 3,
|
||||
+ mk_rhui_setup(clients={'A'}, os_version='8.6', leapp_pkg='leapp-B'),
|
||||
+ )
|
||||
+ ]
|
||||
+)
|
||||
+def test_select_chronologically_closest(monkeypatch, setups, desired_minor, expected_setup):
|
||||
+ setups = checkrhui_lib.select_chronologically_closest_setups(setups,
|
||||
+ desired_minor,
|
||||
+ lambda setup: setup.os_version[1],
|
||||
+ 'source')
|
||||
+ assert len(setups) == 1
|
||||
+ setup = setups[0]
|
||||
+
|
||||
+ assert setup == expected_setup
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index ab6a27f8..a0669ec4 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -101,8 +101,15 @@ class RHUIFamily(object):
|
||||
|
||||
|
||||
def mk_rhui_setup(clients=None, leapp_pkg='', mandatory_files=None, optional_files=None,
|
||||
- extra_info=None, os_version='7', arch=arch.ARCH_X86_64, content_channel=ContentChannel.GA,
|
||||
+ extra_info=None, os_version='7.0', arch=arch.ARCH_X86_64, content_channel=ContentChannel.GA,
|
||||
files_supporting_client_operation=None):
|
||||
+
|
||||
+ os_version_fragments = os_version.split('.')
|
||||
+ if len(os_version_fragments) == 1:
|
||||
+ os_version_tuple = (int(os_version), 0)
|
||||
+ else:
|
||||
+ os_version_tuple = (int(os_version_fragments[0]), int(os_version_fragments[1]))
|
||||
+
|
||||
clients = clients or set()
|
||||
mandatory_files = mandatory_files or []
|
||||
extra_info = extra_info or {}
|
||||
@@ -115,7 +122,7 @@ def mk_rhui_setup(clients=None, leapp_pkg='', mandatory_files=None, optional_fil
|
||||
|
||||
return RHUISetup(clients=clients, leapp_pkg=leapp_pkg, mandatory_files=mandatory_files, arch=arch,
|
||||
content_channel=content_channel, optional_files=optional_files, extra_info=extra_info,
|
||||
- os_version=os_version, files_supporting_client_operation=files_supporting_client_operation)
|
||||
+ os_version=os_version_tuple, files_supporting_client_operation=files_supporting_client_operation)
|
||||
|
||||
|
||||
# This will be the new "cloud map". Essentially a directed graph with edges defined implicitly by OS versions +
|
||||
@@ -186,6 +193,8 @@ RHUI_SETUPS = {
|
||||
mandatory_files=[
|
||||
('rhui-client-config-server-8-sap-bundle.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
('rhui-client-config-server-8-sap-bundle.key', RHUI_PKI_DIR),
|
||||
+ ('content-rhel8-sap-bundle-e4s.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
+ ('content-rhel8-sap-bundle-e4s.key', RHUI_PKI_DIR),
|
||||
(AWS_DNF_PLUGIN_NAME, DNF_PLUGIN_PATH_PY2),
|
||||
('leapp-aws-sap-e4s.repo', YUM_REPOS_PATH)
|
||||
],
|
||||
@@ -195,6 +204,21 @@ RHUI_SETUPS = {
|
||||
('cdn.redhat.com-chain.crt', RHUI_PKI_DIR),
|
||||
('content-rhel8-sap.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
], os_version='8', content_channel=ContentChannel.E4S),
|
||||
+ mk_rhui_setup(clients={'rh-amazon-rhui-client-sap-bundle'}, leapp_pkg='leapp-rhui-aws-sap-e4s',
|
||||
+ mandatory_files=[
|
||||
+ ('rhui-client-config-server-8-sap-bundle.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
+ ('rhui-client-config-server-8-sap-bundle.key', RHUI_PKI_DIR),
|
||||
+ ('content-rhel8-sap-bundle.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
+ ('content-rhel8-sap-bundle.key', RHUI_PKI_DIR),
|
||||
+ (AWS_DNF_PLUGIN_NAME, DNF_PLUGIN_PATH_PY2),
|
||||
+ ('leapp-aws-sap.repo', YUM_REPOS_PATH)
|
||||
+ ],
|
||||
+ files_supporting_client_operation=[AWS_DNF_PLUGIN_NAME],
|
||||
+ optional_files=[
|
||||
+ ('content-rhel8-sap.key', RHUI_PKI_DIR),
|
||||
+ ('cdn.redhat.com-chain.crt', RHUI_PKI_DIR),
|
||||
+ ('content-rhel8-sap.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
+ ], os_version='8.10'),
|
||||
mk_rhui_setup(clients={'rh-amazon-rhui-client-sap-bundle-e4s'}, leapp_pkg='leapp-rhui-aws-sap-e4s',
|
||||
mandatory_files=[
|
||||
('rhui-client-config-server-9-sap-bundle.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
@@ -237,6 +261,14 @@ RHUI_SETUPS = {
|
||||
],
|
||||
extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
os_version='8', content_channel=ContentChannel.EUS),
|
||||
+ mk_rhui_setup(clients={'rhui-azure-rhel8-base-sap-apps'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
+ mandatory_files=[('leapp-azure-sap-apps.repo', YUM_REPOS_PATH)],
|
||||
+ optional_files=[
|
||||
+ ('key-sapapps.pem', RHUI_PKI_DIR),
|
||||
+ ('content-sapapps.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
+ ],
|
||||
+ extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
+ os_version='8.10', content_channel=ContentChannel.GA),
|
||||
mk_rhui_setup(clients={'rhui-azure-rhel9-sapapps'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
mandatory_files=[('leapp-azure-sap-apps.repo', YUM_REPOS_PATH)],
|
||||
optional_files=[
|
||||
@@ -256,6 +288,14 @@ RHUI_SETUPS = {
|
||||
],
|
||||
extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
os_version='8', content_channel=ContentChannel.E4S),
|
||||
+ mk_rhui_setup(clients={'rhui-azure-rhel8-base-sap-ha'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
+ mandatory_files=[('leapp-azure-sap-ha.repo', YUM_REPOS_PATH)],
|
||||
+ optional_files=[
|
||||
+ ('key-sap-ha.pem', RHUI_PKI_DIR),
|
||||
+ ('content-sap-ha.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
+ ],
|
||||
+ extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
+ os_version='8.10'),
|
||||
mk_rhui_setup(clients={'rhui-azure-rhel9-sap-ha'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
mandatory_files=[('leapp-azure-sap-ha.repo', YUM_REPOS_PATH)],
|
||||
optional_files=[
|
||||
--
|
||||
2.42.0
|
||||
|
68
0054-rhui-google-add-RHEL7-ELS-setup-into-RHUI_SETUPS.patch
Normal file
68
0054-rhui-google-add-RHEL7-ELS-setup-into-RHUI_SETUPS.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From 94224a42be57a6da1bd372580b5378b71f45a7f3 Mon Sep 17 00:00:00 2001
|
||||
From: mhecko <mhecko@redhat.com>
|
||||
Date: Tue, 28 May 2024 10:38:02 +0200
|
||||
Subject: [PATCH 54/92] rhui(google): add RHEL7 ELS setup into RHUI_SETUPS
|
||||
|
||||
Add RHEL7 ELS setup into RHUI_SETUPS and modify repomapping
|
||||
accordingly.
|
||||
---
|
||||
etc/leapp/files/repomap.json | 18 +++++++++++++++++-
|
||||
repos/system_upgrade/common/libraries/rhui.py | 1 +
|
||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json
|
||||
index 1ee6c56a..8a490b84 100644
|
||||
--- a/etc/leapp/files/repomap.json
|
||||
+++ b/etc/leapp/files/repomap.json
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
- "datetime": "202404091246Z",
|
||||
+ "datetime": "202405281033Z",
|
||||
"version_format": "1.2.1",
|
||||
"mapping": [
|
||||
{
|
||||
@@ -414,6 +414,14 @@
|
||||
"repo_type": "rpm",
|
||||
"rhui": "google"
|
||||
},
|
||||
+ {
|
||||
+ "major_version": "7",
|
||||
+ "repoid": "rhui-rhel-7-server-els-rhui-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "els",
|
||||
+ "repo_type": "rpm",
|
||||
+ "rhui": "google"
|
||||
+ },
|
||||
{
|
||||
"major_version": "7",
|
||||
"repoid": "rhui-rhel-7-server-rhui-eus-rpms",
|
||||
@@ -618,6 +626,14 @@
|
||||
"repo_type": "rpm",
|
||||
"rhui": "google"
|
||||
},
|
||||
+ {
|
||||
+ "major_version": "7",
|
||||
+ "repoid": "rhui-rhel-7-server-els-optional-rhui-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "els",
|
||||
+ "repo_type": "rpm",
|
||||
+ "rhui": "google"
|
||||
+ },
|
||||
{
|
||||
"major_version": "7",
|
||||
"repoid": "rhui-rhel-7-server-rhui-optional-rpms",
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index a0669ec4..8ae81537 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -307,6 +307,7 @@ RHUI_SETUPS = {
|
||||
],
|
||||
RHUIFamily(RHUIProvider.GOOGLE, client_files_folder='google'): [
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel7'}, os_version='7'),
|
||||
+ mk_rhui_setup(clients={'google-rhui-client-rhel7-els'}, os_version='7'),
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel8'}, leapp_pkg='leapp-rhui-google',
|
||||
mandatory_files=[('leapp-google.repo', YUM_REPOS_PATH)],
|
||||
files_supporting_client_operation=['leapp-google.repo'],
|
||||
--
|
||||
2.42.0
|
||||
|
34
0055-rhui-aws-arm-fix-incorrect-client-names.patch
Normal file
34
0055-rhui-aws-arm-fix-incorrect-client-names.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 40244434a0a9fcf3e368254d1de5737b6fd0cdef Mon Sep 17 00:00:00 2001
|
||||
From: mhecko <mhecko@redhat.com>
|
||||
Date: Wed, 29 May 2024 09:49:48 +0200
|
||||
Subject: [PATCH 55/92] rhui(aws-arm): fix incorrect client names
|
||||
|
||||
---
|
||||
repos/system_upgrade/common/libraries/rhui.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 8ae81537..dc50bf45 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -161,7 +161,7 @@ RHUI_SETUPS = {
|
||||
],
|
||||
RHUIFamily(RHUIProvider.AWS, arch=arch.ARCH_ARM64, client_files_folder='aws'): [
|
||||
mk_rhui_setup(clients={'rh-amazon-rhui-client-arm'}, optional_files=[], os_version='7', arch=arch.ARCH_ARM64),
|
||||
- mk_rhui_setup(clients={'rh-amazon-rhui-client-arm'}, leapp_pkg='leapp-rhui-aws',
|
||||
+ mk_rhui_setup(clients={'rh-amazon-rhui-client'}, leapp_pkg='leapp-rhui-aws',
|
||||
mandatory_files=[
|
||||
('rhui-client-config-server-8.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
('rhui-client-config-server-8.key', RHUI_PKI_DIR),
|
||||
@@ -174,7 +174,7 @@ RHUI_SETUPS = {
|
||||
('cdn.redhat.com-chain.crt', RHUI_PKI_DIR),
|
||||
('content-rhel8.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
], os_version='8', arch=arch.ARCH_ARM64),
|
||||
- mk_rhui_setup(clients={'rh-amazon-rhui-client-arm'}, leapp_pkg='leapp-rhui-aws',
|
||||
+ mk_rhui_setup(clients={'rh-amazon-rhui-client'}, leapp_pkg='leapp-rhui-aws',
|
||||
mandatory_files=[
|
||||
('rhui-client-config-server-9.crt', RHUI_PKI_PRODUCT_DIR),
|
||||
('rhui-client-config-server-9.key', RHUI_PKI_DIR),
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,94 @@
|
||||
From 6f20f5e83eb9ad9fb2ae76e2e499f9e36632b31e Mon Sep 17 00:00:00 2001
|
||||
From: mhecko <mhecko@redhat.com>
|
||||
Date: Thu, 30 May 2024 22:08:37 +0200
|
||||
Subject: [PATCH 56/92] rhui(azure): hardcore client repoids changes for
|
||||
RHEL8.10 SAP
|
||||
|
||||
---
|
||||
.../libraries/setuptargetrepos.py | 27 ++++++++++++++++++-
|
||||
repos/system_upgrade/common/libraries/rhui.py | 4 +--
|
||||
2 files changed, 28 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
index 2b14a29a..a6073aa3 100644
|
||||
--- a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
+++ b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos.py
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
from leapp.libraries.actor import setuptargetrepos_repomap
|
||||
-from leapp.libraries.common.config.version import get_source_major_version
|
||||
+from leapp.libraries.common.config.version import get_source_major_version, get_source_version, get_target_version
|
||||
from leapp.libraries.stdlib import api
|
||||
from leapp.models import (
|
||||
CustomTargetRepository,
|
||||
@@ -16,6 +16,11 @@ from leapp.models import (
|
||||
UsedRepositories
|
||||
)
|
||||
|
||||
+RHUI_CLIENT_REPOIDS_RHEL88_TO_RHEL810 = {
|
||||
+ 'rhui-microsoft-azure-rhel8-sapapps': 'rhui-microsoft-azure-rhel8-base-sap-apps',
|
||||
+ 'rhui-microsoft-azure-rhel8-sap-ha': 'rhui-microsoft-azure-rhel8-base-sap-ha',
|
||||
+}
|
||||
+
|
||||
|
||||
def _get_enabled_repoids():
|
||||
"""
|
||||
@@ -99,6 +104,16 @@ def process():
|
||||
# can be used to upgrade installed packages.
|
||||
repoids_to_map = enabled_repoids.union(repoids_from_installed_packages_with_mapping)
|
||||
|
||||
+ # RHEL8.10 use a different repoid for client repository, but the repomapping mechanism cannot distinguish these
|
||||
+ # as it does not use minor versions. Therefore, we have to hardcode these changes.
|
||||
+ if get_source_version() == '8.10':
|
||||
+ for rhel88_rhui_client_repoid, rhel810_rhui_client_repoid in RHUI_CLIENT_REPOIDS_RHEL88_TO_RHEL810.items():
|
||||
+ if rhel810_rhui_client_repoid in repoids_to_map:
|
||||
+ # Replace RHEL8.10 rhui client repoids with RHEL8.8 repoids,
|
||||
+ # so that they are mapped to target repoids correctly.
|
||||
+ repoids_to_map.remove(rhel810_rhui_client_repoid)
|
||||
+ repoids_to_map.add(rhel88_rhui_client_repoid)
|
||||
+
|
||||
# Set default repository channels for the repomap
|
||||
# TODO(pstodulk): what about skip this completely and keep the default 'ga'..?
|
||||
default_channels = setuptargetrepos_repomap.get_default_repository_channels(repomap, repoids_to_map)
|
||||
@@ -138,6 +153,16 @@ def process():
|
||||
continue
|
||||
target_rhel_repoids.add(repo)
|
||||
|
||||
+ # On 8.10, some RHUI setups have different names than the one computed by repomapping.
|
||||
+ # Although such situation could be avoided (having another client repo when a single
|
||||
+ # repo can hold more than one RPM), we have to deal with it here. This is not a proper
|
||||
+ # solution.
|
||||
+ if get_target_version() == '8.10':
|
||||
+ for pre_810_repoid, post_810_repoid in RHUI_CLIENT_REPOIDS_RHEL88_TO_RHEL810.items():
|
||||
+ if pre_810_repoid in target_rhel_repoids:
|
||||
+ target_rhel_repoids.remove(pre_810_repoid)
|
||||
+ target_rhel_repoids.add(post_810_repoid)
|
||||
+
|
||||
# create the final lists and sort them (for easier testing)
|
||||
rhel_repos = [RHELTargetRepository(repoid=repoid) for repoid in sorted(target_rhel_repoids)]
|
||||
custom_repos = [repo for repo in custom_repos if repo.repoid not in excluded_repoids]
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index dc50bf45..28f1aeee 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -262,7 +262,7 @@ RHUI_SETUPS = {
|
||||
extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
os_version='8', content_channel=ContentChannel.EUS),
|
||||
mk_rhui_setup(clients={'rhui-azure-rhel8-base-sap-apps'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
- mandatory_files=[('leapp-azure-sap-apps.repo', YUM_REPOS_PATH)],
|
||||
+ mandatory_files=[('leapp-azure-base-sap-apps.repo', YUM_REPOS_PATH)],
|
||||
optional_files=[
|
||||
('key-sapapps.pem', RHUI_PKI_DIR),
|
||||
('content-sapapps.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
@@ -289,7 +289,7 @@ RHUI_SETUPS = {
|
||||
extra_info={'agent_pkg': 'WALinuxAgent'},
|
||||
os_version='8', content_channel=ContentChannel.E4S),
|
||||
mk_rhui_setup(clients={'rhui-azure-rhel8-base-sap-ha'}, leapp_pkg='leapp-rhui-azure-sap',
|
||||
- mandatory_files=[('leapp-azure-sap-ha.repo', YUM_REPOS_PATH)],
|
||||
+ mandatory_files=[('leapp-azure-base-sap-ha.repo', YUM_REPOS_PATH)],
|
||||
optional_files=[
|
||||
('key-sap-ha.pem', RHUI_PKI_DIR),
|
||||
('content-sap-ha.crt', RHUI_PKI_PRODUCT_DIR)
|
||||
--
|
||||
2.42.0
|
||||
|
26
0057-fix-rhui-package-collection.patch
Normal file
26
0057-fix-rhui-package-collection.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From f645c520a6bd7ce53e7db2e2a9f58f2554141695 Mon Sep 17 00:00:00 2001
|
||||
From: mhecko <mhecko@redhat.com>
|
||||
Date: Fri, 7 Jun 2024 10:42:01 +0200
|
||||
Subject: [PATCH 57/92] fix rhui package collection
|
||||
|
||||
---
|
||||
repos/system_upgrade/common/libraries/rhui.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 28f1aeee..dbb3d71e 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -594,7 +594,8 @@ def get_all_known_rhui_pkgs_for_current_upg():
|
||||
known_pkgs = set()
|
||||
for setup_family in RHUI_SETUPS.values():
|
||||
for setup in setup_family:
|
||||
- if setup.os_version not in upg_major_versions:
|
||||
+ setup_major = str(setup.os_version[0])
|
||||
+ if setup_major not in upg_major_versions:
|
||||
continue
|
||||
known_pkgs.update(setup.clients)
|
||||
known_pkgs.add(setup.leapp_pkg)
|
||||
--
|
||||
2.42.0
|
||||
|
187
0058-.packit.yaml-update-ENV-variables.patch
Normal file
187
0058-.packit.yaml-update-ENV-variables.patch
Normal file
@ -0,0 +1,187 @@
|
||||
From f417bac7cbc489d713c2102af5a511762ab4c63c Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kluson <mkluson@redhat.com>
|
||||
Date: Tue, 4 Jun 2024 15:26:30 +0200
|
||||
Subject: [PATCH 58/92] .packit.yaml: update ENV variables
|
||||
|
||||
- Remove unused `RHSM_REPOS` and `LEAPPDATA_BRANCH`
|
||||
- Update ENV variables for RHUI tests
|
||||
- enable upgrade path to 8.10 on AWS
|
||||
---
|
||||
.packit.yaml | 50 +++++++++++---------------------------------------
|
||||
1 file changed, 11 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index dd97c6ee..805eb2b5 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -201,10 +201,8 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- RHUI: "aws"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
LEAPP_NO_RHSM: "1"
|
||||
- USE_CUSTOM_REPOS: rhui
|
||||
+ RHUI_HYPERSCALER: aws
|
||||
|
||||
- &sanity-79to88
|
||||
<<: *sanity-abstract-7to8
|
||||
@@ -213,7 +211,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
- &beaker-minimal-79to88
|
||||
<<: *beaker-minimal-7to8-abstract-ondemand
|
||||
@@ -226,7 +223,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
- &kernel-rt-79to88
|
||||
<<: *kernel-rt-abstract-7to8-ondemand
|
||||
@@ -239,7 +235,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
# Tests: 7.9 -> 8.10
|
||||
- &sanity-79to810
|
||||
@@ -249,20 +244,15 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
-
|
||||
-# NOTE(mkluson) RHEL 8.10 content is not publicly available (via RHUI)
|
||||
-#- &sanity-79to810-aws
|
||||
-# <<: *sanity-abstract-7to8-aws
|
||||
-# trigger: pull_request
|
||||
-# identifier: sanity-7.9to8.10-aws
|
||||
-# env:
|
||||
-# SOURCE_RELEASE: "7.9"
|
||||
-# TARGET_RELEASE: "8.10"
|
||||
-# RHUI: "aws"
|
||||
-# LEAPPDATA_BRANCH: "upstream"
|
||||
-# LEAPP_NO_RHSM: "1"
|
||||
-# USE_CUSTOM_REPOS: rhui
|
||||
+
|
||||
+- &sanity-79to810-aws
|
||||
+ <<: *sanity-abstract-7to8-aws
|
||||
+ trigger: pull_request
|
||||
+ identifier: sanity-7.9to8.10-aws
|
||||
+ env:
|
||||
+ SOURCE_RELEASE: "7.9"
|
||||
+ TARGET_RELEASE: "8.10"
|
||||
+ RHUI_HYPERSCALER: aws
|
||||
|
||||
- &beaker-minimal-79to810
|
||||
<<: *beaker-minimal-7to8-abstract-ondemand
|
||||
@@ -275,7 +265,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
- &kernel-rt-79to810
|
||||
<<: *kernel-rt-abstract-7to8-ondemand
|
||||
@@ -288,7 +277,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
|
||||
# ###################################################################### #
|
||||
@@ -420,7 +408,6 @@ jobs:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
RHSM_REPOS_EUS: "eus"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
|
||||
- &sanity-88to92-aws
|
||||
@@ -447,11 +434,8 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-eus-rpms,rhel-8-for-x86_64-baseos-eus-rpms"
|
||||
- RHUI: "aws"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
LEAPP_NO_RHSM: "1"
|
||||
- USE_CUSTOM_REPOS: rhui
|
||||
+ RHUI_HYPERSCALER: aws
|
||||
|
||||
- &beaker-minimal-88to92
|
||||
<<: *beaker-minimal-8to9-abstract-ondemand
|
||||
@@ -480,7 +464,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
|
||||
- &kernel-rt-88to92
|
||||
@@ -509,7 +492,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
|
||||
|
||||
@@ -521,8 +503,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
# On-demand minimal beaker tests
|
||||
- &beaker-minimal-810to94
|
||||
@@ -536,7 +516,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
# On-demand kernel-rt tests
|
||||
- &kernel-rt-810to94
|
||||
@@ -550,8 +529,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
|
||||
# Tests: 8.10 -> 9.5
|
||||
@@ -562,8 +539,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
# On-demand minimal beaker tests
|
||||
- &beaker-minimal-810to95
|
||||
@@ -577,7 +552,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
|
||||
# On-demand kernel-rt tests
|
||||
- &kernel-rt-810to95
|
||||
@@ -591,5 +565,3 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
- RHSM_REPOS: "rhel-8-for-x86_64-appstream-beta-rpms,rhel-8-for-x86_64-baseos-beta-rpms"
|
||||
- LEAPPDATA_BRANCH: "upstream"
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,27 @@
|
||||
From 84e63e6789c15ada85ec9bc615e545da1acf21b5 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kluson <mkluson@redhat.com>
|
||||
Date: Mon, 20 May 2024 12:57:32 +0200
|
||||
Subject: [PATCH 59/92] .packit.yaml: adjust `post_install_script` for RHEL 7.9
|
||||
|
||||
Remove enabling repos step from .packit.yaml, it was moved to TF, where
|
||||
it logically belongs to.
|
||||
---
|
||||
.packit.yaml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index 805eb2b5..0b81a2f1 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
distro: "rhel-7.9"
|
||||
settings:
|
||||
provisioning:
|
||||
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys; yum-config-manager --enable rhel-7-server-rhui-optional-rpms"
|
||||
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
tags:
|
||||
BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
500
0060-Additional-.packit.yaml-fixes.patch
Normal file
500
0060-Additional-.packit.yaml-fixes.patch
Normal file
@ -0,0 +1,500 @@
|
||||
From d23fba228fe7110b8cbac59958f5b549bb5a8567 Mon Sep 17 00:00:00 2001
|
||||
From: Manuel Moran <101399189+mm0ran@users.noreply.github.com>
|
||||
Date: Thu, 6 Jun 2024 08:43:00 +0200
|
||||
Subject: [PATCH 60/92] Additional .packit.yaml fixes
|
||||
|
||||
---
|
||||
.packit.yaml | 253 +++++++++++++++++++++++++++++----------------------
|
||||
1 file changed, 145 insertions(+), 108 deletions(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index 0b81a2f1..81a0cabe 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -111,18 +111,6 @@ jobs:
|
||||
distros: [RHEL-7.9-ZStream]
|
||||
identifier: sanity-abstract-7to8
|
||||
tmt_plan: ""
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:tier0 & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-7.9"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
- &sanity-abstract-7to8-aws
|
||||
<<: *sanity-abstract-7to8
|
||||
@@ -135,19 +123,6 @@ jobs:
|
||||
identifier: sanity-abstract-7to8-aws
|
||||
# NOTE(ivasilev) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
|
||||
# to use plan_filter (can't just specify one section test.tmt.plan_filter, need to specify environments.* as well)
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-7.9"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
# On-demand minimal beaker tests
|
||||
- &beaker-minimal-7to8-abstract-ondemand
|
||||
@@ -156,18 +131,6 @@ jobs:
|
||||
labels:
|
||||
- beaker-minimal
|
||||
identifier: beaker-minimal-7to8-abstract-ondemand
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:partitioning & tag:7to8 & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-7.9"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
# On-demand kernel-rt tests
|
||||
- &kernel-rt-abstract-7to8-ondemand
|
||||
@@ -175,39 +138,48 @@ jobs:
|
||||
labels:
|
||||
- kernel-rt
|
||||
identifier: sanity-7to8-kernel-rt-abstract-ondemand
|
||||
+
|
||||
+# ###################################################################### #
|
||||
+# ######################### Individual tests ########################### #
|
||||
+# ###################################################################### #
|
||||
+
|
||||
+# Tests: 7.9 -> 8.8
|
||||
+- &sanity-79to88-aws
|
||||
+ <<: *sanity-abstract-7to8-aws
|
||||
+ trigger: pull_request
|
||||
+ identifier: sanity-7.9to8.8-aws
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:kernel-rt & tag:7to8 & enabled:true'
|
||||
+ plan_filter: 'tag:7to8 & tag:rhui-tier[0] & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.8"
|
||||
settings:
|
||||
provisioning:
|
||||
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
tags:
|
||||
BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
-
|
||||
-
|
||||
-# ###################################################################### #
|
||||
-# ######################### Individual tests ########################### #
|
||||
-# ###################################################################### #
|
||||
-
|
||||
-# Tests: 7.9 -> 8.8
|
||||
-- &sanity-79to88-aws
|
||||
- <<: *sanity-abstract-7to8-aws
|
||||
- trigger: pull_request
|
||||
- identifier: sanity-7.9to8.8-aws
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- LEAPP_NO_RHSM: "1"
|
||||
RHUI_HYPERSCALER: aws
|
||||
|
||||
- &sanity-79to88
|
||||
<<: *sanity-abstract-7to8
|
||||
trigger: pull_request
|
||||
identifier: sanity-7.9to8.8
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:tier0 & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.8"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -220,6 +192,15 @@ jobs:
|
||||
- beaker-minimal-7.9to8.8
|
||||
- 7.9to8.8
|
||||
identifier: sanity-7.9to8.8-beaker-minimal-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:partitioning & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.8"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -232,6 +213,15 @@ jobs:
|
||||
- kernel-rt-7.9to8.8
|
||||
- 7.9to8.8
|
||||
identifier: sanity-7.9to8.8-kernel-rt-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:kernel-rt & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.8"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -241,6 +231,15 @@ jobs:
|
||||
<<: *sanity-abstract-7to8
|
||||
trigger: pull_request
|
||||
identifier: sanity-7.9to8.10
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:tier0 & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.10"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -249,6 +248,20 @@ jobs:
|
||||
<<: *sanity-abstract-7to8-aws
|
||||
trigger: pull_request
|
||||
identifier: sanity-7.9to8.10-aws
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:rhui-tier[0] & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.10"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -262,6 +275,15 @@ jobs:
|
||||
- beaker-minimal-7.9to8.10
|
||||
- 7.9to8.10
|
||||
identifier: sanity-7.9to8.10-beaker-minimal-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:partitioning & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.10"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -274,6 +296,15 @@ jobs:
|
||||
- kernel-rt-7.9to8.10
|
||||
- 7.9to8.10
|
||||
identifier: sanity-7.9to8.10-kernel-rt-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:7to8 & tag:kernel-rt & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-7.9"
|
||||
+ distro_target: "rhel-8.10"
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -303,18 +334,6 @@ jobs:
|
||||
epel-8-x86_64:
|
||||
distros: [RHEL-8.10.0-Nightly]
|
||||
identifier: sanity-abstract-8to9
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-8.10"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
- &sanity-abstract-8to9-aws
|
||||
<<: *sanity-abstract-8to9
|
||||
@@ -325,19 +344,6 @@ jobs:
|
||||
epel-8-x86_64:
|
||||
distros: [RHEL-8.10-rhui]
|
||||
identifier: sanity-abstract-8to9-aws
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-8.10"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
- &beaker-minimal-8to9-abstract-ondemand
|
||||
<<: *sanity-abstract-8to9
|
||||
@@ -348,37 +354,12 @@ jobs:
|
||||
epel-8-x86_64:
|
||||
distros: [RHEL-8.10.0-Nightly]
|
||||
identifier: beaker-minimal-8to9-abstract-ondemand
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-8.10"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
|
||||
- &kernel-rt-abstract-8to9-ondemand
|
||||
<<: *beaker-minimal-8to9-abstract-ondemand
|
||||
labels:
|
||||
- kernel-rt
|
||||
identifier: sanity-8to9-kernel-rt-abstract-ondemand
|
||||
- tf_extra_params:
|
||||
- test:
|
||||
- tmt:
|
||||
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
|
||||
- environments:
|
||||
- - tmt:
|
||||
- context:
|
||||
- distro: "rhel-8.10"
|
||||
- settings:
|
||||
- provisioning:
|
||||
- tags:
|
||||
- BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
-
|
||||
|
||||
# ###################################################################### #
|
||||
# ######################### Individual tests ########################### #
|
||||
@@ -395,11 +376,12 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:tier0 & tag:8to9 & enabled:true'
|
||||
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
distro: "rhel-8.8"
|
||||
+ distro_target: "rhel-9.2"
|
||||
settings:
|
||||
provisioning:
|
||||
tags:
|
||||
@@ -408,7 +390,6 @@ jobs:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
RHSM_REPOS_EUS: "eus"
|
||||
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
|
||||
- &sanity-88to92-aws
|
||||
<<: *sanity-abstract-8to9-aws
|
||||
@@ -421,11 +402,12 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:upgrade_happy_path & enabled:true'
|
||||
+ plan_filter: 'tag:8to9 & tag:rhui-tier[0] & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
distro: "rhel-8.8"
|
||||
+ distro_target: "rhel-9.2"
|
||||
settings:
|
||||
provisioning:
|
||||
post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
@@ -434,7 +416,6 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- LEAPP_NO_RHSM: "1"
|
||||
RHUI_HYPERSCALER: aws
|
||||
|
||||
- &beaker-minimal-88to92
|
||||
@@ -451,11 +432,12 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:partitioning & tag:8to9 & enabled:true'
|
||||
+ plan_filter: 'tag:8to9 &tag:partitioning & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
distro: "rhel-8.8"
|
||||
+ distro_target: "rhel-9.2"
|
||||
settings:
|
||||
provisioning:
|
||||
post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
|
||||
@@ -464,7 +446,7 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
+ RHSM_REPOS_EUS: "eus"
|
||||
|
||||
- &kernel-rt-88to92
|
||||
<<: *kernel-rt-abstract-8to9-ondemand
|
||||
@@ -480,11 +462,12 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:kernel-rt & tag:8to9 & enabled:true'
|
||||
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
distro: "rhel-8.8"
|
||||
+ distro_target: "rhel-9.2"
|
||||
settings:
|
||||
provisioning:
|
||||
tags:
|
||||
@@ -492,7 +475,7 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "8.8"
|
||||
TARGET_RELEASE: "9.2"
|
||||
- LEAPP_DEVEL_TARGET_RELEASE: "9.2"
|
||||
+ RHSM_REPOS_EUS: "eus"
|
||||
|
||||
|
||||
# Tests: 8.10 -> 9.4
|
||||
@@ -500,6 +483,15 @@ jobs:
|
||||
<<: *sanity-abstract-8to9
|
||||
trigger: pull_request
|
||||
identifier: sanity-8.10to9.4
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.4"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -513,6 +505,15 @@ jobs:
|
||||
- beaker-minimal-8.10to9.4
|
||||
- 8.10to9.4
|
||||
identifier: sanity-8.10to9.4-beaker-minimal-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.4"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -526,6 +527,15 @@ jobs:
|
||||
- kernel-rt-8.10to9.4
|
||||
- 8.10to9.4
|
||||
identifier: sanity-8.10to9.4-kernel-rt-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.4"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -536,6 +546,15 @@ jobs:
|
||||
<<: *sanity-abstract-8to9
|
||||
trigger: pull_request
|
||||
identifier: sanity-8.10to9.5
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.5"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
@@ -549,6 +568,15 @@ jobs:
|
||||
- beaker-minimal-8.10to9.5
|
||||
- 8.10to9.5
|
||||
identifier: sanity-8.10to9.5-beaker-minimal-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.5"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
@@ -562,6 +590,15 @@ jobs:
|
||||
- kernel-rt-8.10to9.5
|
||||
- 8.10to9.5
|
||||
identifier: sanity-8.10to9.5-kernel-rt-ondemand
|
||||
+ tf_extra_params:
|
||||
+ test:
|
||||
+ tmt:
|
||||
+ plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
|
||||
+ environments:
|
||||
+ - tmt:
|
||||
+ context:
|
||||
+ distro: "rhel-8.10"
|
||||
+ distro_target: "rhel-9.5"
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
--
|
||||
2.42.0
|
||||
|
167
0061-Add-PR-review-changes.patch
Normal file
167
0061-Add-PR-review-changes.patch
Normal file
@ -0,0 +1,167 @@
|
||||
From 91f4e3b5d243f957f35d999ebd99ddf270125cb1 Mon Sep 17 00:00:00 2001
|
||||
From: Manuel Moran <101399189+mm0ran@users.noreply.github.com>
|
||||
Date: Fri, 7 Jun 2024 14:02:39 +0200
|
||||
Subject: [PATCH 61/92] Add PR review changes
|
||||
|
||||
- Remove comment connected to deleted lines
|
||||
- Add BusinessUnit to all environments
|
||||
---
|
||||
.packit.yaml | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 48 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index 81a0cabe..a27806f2 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -121,8 +121,6 @@ jobs:
|
||||
epel-7-x86_64:
|
||||
distros: [RHEL-7.9-rhui]
|
||||
identifier: sanity-abstract-7to8-aws
|
||||
- # NOTE(ivasilev) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
|
||||
- # to use plan_filter (can't just specify one section test.tmt.plan_filter, need to specify environments.* as well)
|
||||
|
||||
# On-demand minimal beaker tests
|
||||
- &beaker-minimal-7to8-abstract-ondemand
|
||||
@@ -180,6 +178,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.8"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -201,6 +203,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.8"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -222,6 +228,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.8"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
@@ -240,6 +250,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.10"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -284,6 +298,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.10"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -305,6 +323,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-7.9"
|
||||
distro_target: "rhel-8.10"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
@@ -398,7 +420,6 @@ jobs:
|
||||
epel-8-x86_64:
|
||||
distros: [RHEL-8.8-rhui]
|
||||
identifier: sanity-8.8to9.2-aws
|
||||
- # NOTE(mkluson) Unfortunately to use yaml templates we need to rewrite the whole tf_extra_params dict
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
@@ -492,6 +513,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.4"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -514,6 +539,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.4"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -536,6 +565,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.4"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.4"
|
||||
@@ -555,6 +588,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.5"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
@@ -577,6 +614,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.5"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
@@ -599,6 +640,10 @@ jobs:
|
||||
context:
|
||||
distro: "rhel-8.10"
|
||||
distro_target: "rhel-9.5"
|
||||
+ settings:
|
||||
+ provisioning:
|
||||
+ tags:
|
||||
+ BusinessUnit: sst_upgrades@leapp_upstream_test
|
||||
env:
|
||||
SOURCE_RELEASE: "8.10"
|
||||
TARGET_RELEASE: "9.5"
|
||||
--
|
||||
2.42.0
|
||||
|
67
0062-rhui-gcp-add-SAP-RHEL-8.10-client-1253.patch
Normal file
67
0062-rhui-gcp-add-SAP-RHEL-8.10-client-1253.patch
Normal file
@ -0,0 +1,67 @@
|
||||
From ba46700ed91381458fefe556fb68ca0d2d3b758c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michal=20He=C4=8Dko?= <michal.sk.com@gmail.com>
|
||||
Date: Mon, 10 Jun 2024 22:30:39 +0200
|
||||
Subject: [PATCH 62/92] rhui(gcp): add SAP RHEL 8.10 client (#1253)
|
||||
|
||||
* rhui(gcp): add SAP RHEL 8.10 client
|
||||
|
||||
Add a dedicated entry for SAP RHEL 8.10 on GCP due to the same reasons
|
||||
as with other cloud providers - 8.10 is the last RHEL8 release, thus,
|
||||
there are no content channels. A dedicated client is introduced,
|
||||
providing SAP systems with GA content.
|
||||
|
||||
* Add spaces to message strings
|
||||
|
||||
---------
|
||||
|
||||
Co-authored-by: mhecko <mhecko@redhat.com>
|
||||
Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
|
||||
---
|
||||
.../libraries/userspacegen.py | 15 ++++++++++++++-
|
||||
repos/system_upgrade/common/libraries/rhui.py | 4 ++++
|
||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
index dc93c9a0..6e8214dd 100644
|
||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
@@ -1220,7 +1220,20 @@ def setup_target_rhui_access_if_needed(context, indata):
|
||||
_apply_rhui_access_postinstall_tasks(context, setup_info)
|
||||
|
||||
# Do a cleanup so there are not duplicit repoids
|
||||
- files_owned_by_clients = _query_rpm_for_pkg_files(context, indata.rhui_info.target_client_pkg_names)
|
||||
+ try:
|
||||
+ files_owned_by_clients = _query_rpm_for_pkg_files(context, indata.rhui_info.target_client_pkg_names)
|
||||
+ except CalledProcessError as err: # We failed to rpm -qf PKG, the PKG is most likely not installed
|
||||
+ api.current_logger().critical('Failed to query files owned by target RHUI clients (clients=%s). This is caused'
|
||||
+ ' by failing to install the target clients during the client-swap step.'
|
||||
+ ' Full error: %s', indata.rhui_info.target_client_pkg_names, err)
|
||||
+
|
||||
+ target_major = get_target_major_version()
|
||||
+ plural_suffix = 's' if len(indata.rhui_info.target_client_pkg_names) > 1 else ''
|
||||
+ client_rpms = ', '.join(indata.rhui_info.target_client_pkg_names)
|
||||
+ msg = ('Could not find the RHEL {target_major} RHUI client rpm{plural_suffix} ({client_rpms})'
|
||||
+ ' in the cloud provider\'s client repository.')
|
||||
+ raise StopActorExecutionError(msg.format(target_major=target_major, plural_suffix=plural_suffix,
|
||||
+ client_rpms=client_rpms))
|
||||
|
||||
for copy_task in setup_info.preinstall_tasks.files_to_copy_into_overlay:
|
||||
dest = get_copy_location_from_copy_in_task(context.base_dir, copy_task)
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index dbb3d71e..86f74084 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -323,6 +323,10 @@ RHUI_SETUPS = {
|
||||
mandatory_files=[('leapp-google-sap.repo', YUM_REPOS_PATH)],
|
||||
files_supporting_client_operation=['leapp-google-sap.repo'],
|
||||
os_version='8', content_channel=ContentChannel.E4S),
|
||||
+ mk_rhui_setup(clients={'google-rhui-client-rhel810-sap'}, leapp_pkg='leapp-rhui-google-sap',
|
||||
+ mandatory_files=[('leapp-google-sap.repo', YUM_REPOS_PATH)],
|
||||
+ files_supporting_client_operation=['leapp-google-sap.repo'],
|
||||
+ os_version='8.10', content_channel=ContentChannel.GA),
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel9-sap'}, leapp_pkg='leapp-rhui-google-sap',
|
||||
mandatory_files=[('leapp-google-sap.repo', YUM_REPOS_PATH)],
|
||||
files_supporting_client_operation=['leapp-google-sap.repo'],
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,49 @@
|
||||
From f3913f7b8ee11f5e67354bf18963f05269bb511c Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Mon, 6 May 2024 09:33:34 +0200
|
||||
Subject: [PATCH 63/92] PR welcome msg: update the msg to cover additional
|
||||
Packit cmds
|
||||
|
||||
I found useful to be able to run just failed tests (when they crashed
|
||||
due to infrastructure issues). Updating the welcome msg to provide
|
||||
this info and little bit restructured original statement, to make
|
||||
it more friendly for reading.
|
||||
---
|
||||
.github/workflows/pr-welcome-msg.yml | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
|
||||
index c6527da4..ff9414d2 100644
|
||||
--- a/.github/workflows/pr-welcome-msg.yml
|
||||
+++ b/.github/workflows/pr-welcome-msg.yml
|
||||
@@ -21,16 +21,21 @@ jobs:
|
||||
## **Thank you for contributing to the Leapp project!**
|
||||
Please note that every PR needs to comply with the [Leapp Guidelines](https://leapp.readthedocs.io/en/latest/contributing.html#) and must pass all tests in order to be mergeable.
|
||||
If you want to request a review or rebuild a package in copr, you can use following commands as a comment:
|
||||
- - **review please @oamg/developers** to notify leapp developers of the review request
|
||||
- - **/packit copr-build** to submit a public copr build using packit
|
||||
+ - **`review please @oamg/developers`** to notify leapp developers of the review request
|
||||
+ - **`/packit copr-build`** to submit a public copr build using packit
|
||||
|
||||
- Packit will automatically schedule regression tests for this PR's build and latest upstream leapp build. If you need a different version of leapp, e.g. from PR#42, use `/packit test oamg/leapp#42`
|
||||
- Note that first time contributors cannot run tests automatically - they will be started by a reviewer.
|
||||
+ Packit will automatically schedule regression tests for this PR's build and latest upstream leapp build.
|
||||
+ However, here are additional useful commands for packit:
|
||||
+ - **`/packit test`** to re-run manually the default tests
|
||||
+ - **`/packit retest-failed`** to re-run failed tests manually
|
||||
+ - **`/packit test oamg/leapp#42`** to run tests with leapp builds for the leapp PR#42 (default is latest upstream - master - build)
|
||||
+
|
||||
+ Note that first time contributors cannot run tests automatically - they need to be started by a reviewer.
|
||||
|
||||
It is possible to schedule specific on-demand tests as well. Currently 2 test sets are supported, `beaker-minimal` and `kernel-rt`, both can be used to be run on all upgrade paths or just a couple of specific ones.
|
||||
To launch on-demand tests with packit:
|
||||
- - **/packit test --labels kernel-rt** to schedule `kernel-rt` tests set for all upgrade paths
|
||||
- - **/packit test --labels beaker-minimal-8.10to9.4,kernel-rt-8.10to9.4** to schedule `kernel-rt` and `beaker-minimal` test sets for 8.10->9.4 upgrade path
|
||||
+ - **`/packit test --labels kernel-rt`** to schedule `kernel-rt` tests set for all upgrade paths
|
||||
+ - **`/packit test --labels beaker-minimal-8.10to9.4,kernel-rt-8.10to9.4`** to schedule `kernel-rt` and `beaker-minimal` test sets for 8.10->9.4 upgrade path
|
||||
|
||||
See other labels for particular jobs defined in the `.packit.yaml` file.
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
26
0064-Add-RHEL-7-for-SAP-ELS-to-the-RHUI-config-1254.patch
Normal file
26
0064-Add-RHEL-7-for-SAP-ELS-to-the-RHUI-config-1254.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 4ba0ec3d51126cdff31b47f96312d7c6c0d138ad Mon Sep 17 00:00:00 2001
|
||||
From: "Michal Reznik (mreznik)" <mreznik@redhat.com>
|
||||
Date: Wed, 19 Jun 2024 15:59:01 +0200
|
||||
Subject: [PATCH 64/92] Add RHEL 7 for SAP ELS to the RHUI config (#1254)
|
||||
|
||||
There is going to be a separate ELS RHUI client package for
|
||||
RHEL 7 for SAP.
|
||||
---
|
||||
repos/system_upgrade/common/libraries/rhui.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 86f74084..b2b906c3 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -319,6 +319,7 @@ RHUI_SETUPS = {
|
||||
],
|
||||
RHUIFamily(RHUIProvider.GOOGLE, variant=RHUIVariant.SAP, client_files_folder='google-sap'): [
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel79-sap'}, os_version='7', content_channel=ContentChannel.E4S),
|
||||
+ mk_rhui_setup(clients={'google-rhui-client-rhel7-sap-els'}, os_version='7'),
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel8-sap'}, leapp_pkg='leapp-rhui-google-sap',
|
||||
mandatory_files=[('leapp-google-sap.repo', YUM_REPOS_PATH)],
|
||||
files_supporting_client_operation=['leapp-google-sap.repo'],
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 82d2db8e803c2865c5aea1c0abef75a3dd8c5f1c Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Fri, 21 Jun 2024 12:02:16 +0200
|
||||
Subject: [PATCH 65/92] Revert "Add RHEL 7 for SAP ELS to the RHUI config
|
||||
(#1254)"
|
||||
|
||||
This reverts commit 4ba0ec3d51126cdff31b47f96312d7c6c0d138ad.
|
||||
|
||||
It turned out this change is not needed at the end.
|
||||
---
|
||||
repos/system_upgrade/common/libraries/rhui.py | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index b2b906c3..86f74084 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -319,7 +319,6 @@ RHUI_SETUPS = {
|
||||
],
|
||||
RHUIFamily(RHUIProvider.GOOGLE, variant=RHUIVariant.SAP, client_files_folder='google-sap'): [
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel79-sap'}, os_version='7', content_channel=ContentChannel.E4S),
|
||||
- mk_rhui_setup(clients={'google-rhui-client-rhel7-sap-els'}, os_version='7'),
|
||||
mk_rhui_setup(clients={'google-rhui-client-rhel8-sap'}, leapp_pkg='leapp-rhui-google-sap',
|
||||
mandatory_files=[('leapp-google-sap.repo', YUM_REPOS_PATH)],
|
||||
files_supporting_client_operation=['leapp-google-sap.repo'],
|
||||
--
|
||||
2.42.0
|
||||
|
26
0066-codespell-Use-specific-version-instead-of-master.patch
Normal file
26
0066-codespell-Use-specific-version-instead-of-master.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 0ef7402e1b517dbe58ee004735d995a8e4eab24f Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Mon, 1 Jul 2024 15:30:11 +0200
|
||||
Subject: [PATCH 66/92] codespell: Use specific version instead of master
|
||||
|
||||
Let's not blindly use the master ref, use a specific version instead.
|
||||
---
|
||||
.github/workflows/codespell.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
|
||||
index 002d3774..c2960928 100644
|
||||
--- a/.github/workflows/codespell.yml
|
||||
+++ b/.github/workflows/codespell.yml
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- - uses: codespell-project/actions-codespell@master
|
||||
+ - uses: codespell-project/actions-codespell@v2
|
||||
with:
|
||||
ignore_words_list: ro,fo,couldn,repositor,zeor
|
||||
skip: "./repos/system_upgrade/common/actors/storagescanner/tests/files/mounts,\
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 3d1ee5a63c40628cdd78617f429e036e0b8014ad Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Fri, 26 Apr 2024 09:32:18 +0200
|
||||
Subject: [PATCH 67/92] Demote "Attempted to both enable and disable" message
|
||||
to warning
|
||||
|
||||
---
|
||||
.../libraries/setsystemdservicesstate.py | 2 +-
|
||||
.../tests/test_setsystemdservicesstate.py | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
index 641605db..3f84f59f 100644
|
||||
--- a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
+++ b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
@@ -13,7 +13,7 @@ def process():
|
||||
intersection = services_to_enable.intersection(services_to_disable)
|
||||
for service in intersection:
|
||||
msg = 'Attempted to both enable and disable systemd service "{}", service will be disabled.'.format(service)
|
||||
- api.current_logger().error(msg)
|
||||
+ api.current_logger().warning(msg)
|
||||
|
||||
for service in services_to_enable:
|
||||
try:
|
||||
diff --git a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/tests/test_setsystemdservicesstate.py b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/tests/test_setsystemdservicesstate.py
|
||||
index 14d07537..fa17a94c 100644
|
||||
--- a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/tests/test_setsystemdservicesstate.py
|
||||
+++ b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/tests/test_setsystemdservicesstate.py
|
||||
@@ -94,4 +94,4 @@ def test_enable_disable_conflict_logged(monkeypatch):
|
||||
|
||||
expect_msg = ('Attempted to both enable and disable systemd service "hello.service",'
|
||||
' service will be disabled.')
|
||||
- assert expect_msg in api.current_logger.errmsg
|
||||
+ assert expect_msg in api.current_logger.warnmsg
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,25 @@
|
||||
From 5feeba7b216ec34f9a201f034d2c8f8db1462e6a Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Fri, 26 Apr 2024 09:33:48 +0200
|
||||
Subject: [PATCH 68/92] Don't enable services that will be afterwards disabled
|
||||
|
||||
---
|
||||
.../libraries/setsystemdservicesstate.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
index 3f84f59f..8aeb5c2c 100644
|
||||
--- a/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
+++ b/repos/system_upgrade/common/actors/systemd/setsystemdservicesstates/libraries/setsystemdservicesstate.py
|
||||
@@ -15,7 +15,7 @@ def process():
|
||||
msg = 'Attempted to both enable and disable systemd service "{}", service will be disabled.'.format(service)
|
||||
api.current_logger().warning(msg)
|
||||
|
||||
- for service in services_to_enable:
|
||||
+ for service in services_to_enable - intersection:
|
||||
try:
|
||||
systemd.enable_unit(service)
|
||||
except CalledProcessError:
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,96 @@
|
||||
From 9ec92806e5e4dde455b303dc86269998971b9b19 Mon Sep 17 00:00:00 2001
|
||||
From: Anna Dupliak <adupliak@redhat.com>
|
||||
Date: Fri, 12 Jul 2024 16:43:57 +0200
|
||||
Subject: [PATCH 69/92] Use frozen branch for rhel7 downstream testing (#1263)
|
||||
|
||||
RHEL 7 is EOM and based on that another testing of IPU 7 -> 8 is used only to be able to discover a possible regression. As such, all integration tests for IPU 7 -> 8 should be executed from a frozen rhel7 branch. Updating packig configuration to address that.
|
||||
---
|
||||
.packit.yaml | 23 +++++++++++++++--------
|
||||
1 file changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index a27806f2..7c3799cf 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -88,7 +88,8 @@ jobs:
|
||||
|
||||
# NOTE: to see what envars, targets, .. can be set in tests, see
|
||||
# the configuration of tests here:
|
||||
-# https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml
|
||||
+# 7toX path https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/rhel7/config.yaml
|
||||
+# >7tox path https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml
|
||||
# Available only to RH Employees.
|
||||
|
||||
# ###################################################################### #
|
||||
@@ -102,7 +103,7 @@ jobs:
|
||||
job: tests
|
||||
trigger: ignore
|
||||
fmf_url: "https://gitlab.cee.redhat.com/oamg/leapp-tests"
|
||||
- fmf_ref: "main"
|
||||
+ fmf_ref: "rhel7"
|
||||
use_internal_tf: True
|
||||
labels:
|
||||
- sanity
|
||||
@@ -149,7 +150,7 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:7to8 & tag:rhui-tier[0] & enabled:true'
|
||||
+ plan_filter: 'tag:7to8 & tag:upgrade_happy_path & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
@@ -163,7 +164,10 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.8"
|
||||
- RHUI_HYPERSCALER: aws
|
||||
+ RHUI: "aws"
|
||||
+ LEAPPDATA_BRANCH: "upstream"
|
||||
+ LEAPP_NO_RHSM: "1"
|
||||
+ USE_CUSTOM_REPOS: rhui
|
||||
|
||||
- &sanity-79to88
|
||||
<<: *sanity-abstract-7to8
|
||||
@@ -172,7 +176,7 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:7to8 & tag:tier0 & enabled:true'
|
||||
+ plan_filter: 'tag:7to8 & tag:sanity & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
@@ -244,7 +248,7 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:7to8 & tag:tier0 & enabled:true'
|
||||
+ plan_filter: 'tag:7to8 & tag:sanity & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
@@ -265,7 +269,7 @@ jobs:
|
||||
tf_extra_params:
|
||||
test:
|
||||
tmt:
|
||||
- plan_filter: 'tag:7to8 & tag:rhui-tier[0] & enabled:true'
|
||||
+ plan_filter: 'tag:7to8 & tag:upgrade_happy_path & enabled:true'
|
||||
environments:
|
||||
- tmt:
|
||||
context:
|
||||
@@ -279,7 +283,10 @@ jobs:
|
||||
env:
|
||||
SOURCE_RELEASE: "7.9"
|
||||
TARGET_RELEASE: "8.10"
|
||||
- RHUI_HYPERSCALER: aws
|
||||
+ RHUI: "aws"
|
||||
+ LEAPPDATA_BRANCH: "upstream"
|
||||
+ LEAPP_NO_RHSM: "1"
|
||||
+ USE_CUSTOM_REPOS: rhui
|
||||
|
||||
- &beaker-minimal-79to810
|
||||
<<: *beaker-minimal-7to8-abstract-ondemand
|
||||
--
|
||||
2.42.0
|
||||
|
129
0070-load-obsoleted-gpg-keys-from-gpg-signatures.json.patch
Normal file
129
0070-load-obsoleted-gpg-keys-from-gpg-signatures.json.patch
Normal file
@ -0,0 +1,129 @@
|
||||
From 7e5a5e7088695bcdd4b822b9a057de8cd221d19c Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Mon, 27 May 2024 09:25:20 +0200
|
||||
Subject: [PATCH 70/92] load obsoleted gpg keys from gpg-signatures.json
|
||||
|
||||
---
|
||||
.../libraries/removeobsoleterpmgpgkeys.py | 16 ++++------------
|
||||
.../tests/test_removeobsoleterpmgpgkeys.py | 5 +++++
|
||||
.../files/distro/centos/gpg-signatures.json | 3 ++-
|
||||
.../files/distro/rhel/gpg-signatures.json | 11 ++++++++++-
|
||||
.../system_upgrade/common/libraries/distro.py | 18 ++++++++++++++++++
|
||||
5 files changed, 39 insertions(+), 14 deletions(-)
|
||||
create mode 100644 repos/system_upgrade/common/libraries/distro.py
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
|
||||
index 1cc5d64f..6e84c2e9 100644
|
||||
--- a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
|
||||
+++ b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
|
||||
@@ -1,27 +1,19 @@
|
||||
from leapp.libraries.common.config.version import get_target_major_version
|
||||
+from leapp.libraries.common.distro import get_distribution_data
|
||||
from leapp.libraries.common.rpms import has_package
|
||||
from leapp.libraries.stdlib import api
|
||||
from leapp.models import DNFWorkaround, InstalledRPM
|
||||
|
||||
-# maps target version to keys obsoleted in that version
|
||||
-OBSOLETED_KEYS_MAP = {
|
||||
- 7: [],
|
||||
- 8: [
|
||||
- "gpg-pubkey-2fa658e0-45700c69",
|
||||
- "gpg-pubkey-37017186-45761324",
|
||||
- "gpg-pubkey-db42a60e-37ea5438",
|
||||
- ],
|
||||
- 9: ["gpg-pubkey-d4082792-5b32db75"],
|
||||
-}
|
||||
-
|
||||
|
||||
def _get_obsolete_keys():
|
||||
"""
|
||||
Return keys obsoleted in target and previous versions
|
||||
"""
|
||||
+ distribution = api.current_actor().configuration.os_release.release_id
|
||||
+ obsoleted_keys_map = get_distribution_data(distribution).get('obsoleted-keys', {})
|
||||
keys = []
|
||||
for version in range(7, int(get_target_major_version()) + 1):
|
||||
- for key in OBSOLETED_KEYS_MAP[version]:
|
||||
+ for key in obsoleted_keys_map[str(version)]:
|
||||
name, version, release = key.rsplit("-", 2)
|
||||
if has_package(InstalledRPM, name, version=version, release=release):
|
||||
keys.append(key)
|
||||
diff --git a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
|
||||
index 1d487815..4d9a0e84 100644
|
||||
--- a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
|
||||
+++ b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+import os
|
||||
+
|
||||
import pytest
|
||||
|
||||
from leapp.libraries.actor import removeobsoleterpmgpgkeys
|
||||
@@ -67,6 +69,9 @@ def test_get_obsolete_keys(monkeypatch, version, expected):
|
||||
),
|
||||
)
|
||||
|
||||
+ cur_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
+ monkeypatch.setattr(api, 'get_common_folder_path', lambda folder: os.path.join(cur_dir, '../../../files/', folder))
|
||||
+
|
||||
keys = removeobsoleterpmgpgkeys._get_obsolete_keys()
|
||||
assert set(keys) == set(expected)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json b/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json
|
||||
index cf7f819d..547b13e7 100644
|
||||
--- a/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json
|
||||
+++ b/repos/system_upgrade/common/files/distro/centos/gpg-signatures.json
|
||||
@@ -3,5 +3,6 @@
|
||||
"24c6a8a7f4a80eb5",
|
||||
"05b555b38483c65d",
|
||||
"4eb84e71f2ee9d55"
|
||||
- ]
|
||||
+ ],
|
||||
+ "obsoleted-keys": {}
|
||||
}
|
||||
diff --git a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
index 64d9ed12..0d40e001 100644
|
||||
--- a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
+++ b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
@@ -5,5 +5,14 @@
|
||||
"938a80caf21541eb",
|
||||
"fd372689897da07a",
|
||||
"45689c882fa658e0"
|
||||
- ]
|
||||
+ ],
|
||||
+ "obsoleted-keys": {
|
||||
+ "7": [],
|
||||
+ "8": [
|
||||
+ "gpg-pubkey-2fa658e0-45700c69",
|
||||
+ "gpg-pubkey-37017186-45761324",
|
||||
+ "gpg-pubkey-db42a60e-37ea5438"
|
||||
+ ],
|
||||
+ "9": ["gpg-pubkey-d4082792-5b32db75"]
|
||||
+ }
|
||||
}
|
||||
diff --git a/repos/system_upgrade/common/libraries/distro.py b/repos/system_upgrade/common/libraries/distro.py
|
||||
new file mode 100644
|
||||
index 00000000..2ed5eacd
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/libraries/distro.py
|
||||
@@ -0,0 +1,18 @@
|
||||
+import json
|
||||
+import os
|
||||
+
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.stdlib import api
|
||||
+
|
||||
+
|
||||
+def get_distribution_data(distribution):
|
||||
+ distributions_path = api.get_common_folder_path('distro')
|
||||
+
|
||||
+ distribution_config = os.path.join(distributions_path, distribution, 'gpg-signatures.json')
|
||||
+ if os.path.exists(distribution_config):
|
||||
+ with open(distribution_config) as distro_config_file:
|
||||
+ return json.load(distro_config_file)
|
||||
+ else:
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Cannot find distribution signature configuration.',
|
||||
+ details={'Problem': 'Distribution {} was not found in {}.'.format(distribution, distributions_path)})
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,56 @@
|
||||
From f822cb805ed9efd101fd212eb162544ab29c8fe9 Mon Sep 17 00:00:00 2001
|
||||
From: Evgeni Golov <evgeni@golov.de>
|
||||
Date: Mon, 27 May 2024 11:58:46 +0200
|
||||
Subject: [PATCH 71/92] refactor distributionsignedrpmscanner to use common
|
||||
distro helper
|
||||
|
||||
---
|
||||
.../libraries/distributionsignedrpmscanner.py | 22 ++-----------------
|
||||
1 file changed, 2 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py b/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py
|
||||
index 7898453b..51d6eeb5 100644
|
||||
--- a/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py
|
||||
+++ b/repos/system_upgrade/common/actors/distributionsignedrpmscanner/libraries/distributionsignedrpmscanner.py
|
||||
@@ -1,28 +1,10 @@
|
||||
-import json
|
||||
-import os
|
||||
-
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
from leapp.libraries.common import rhui
|
||||
from leapp.libraries.common.config import get_env
|
||||
+from leapp.libraries.common.distro import get_distribution_data
|
||||
from leapp.libraries.stdlib import api
|
||||
from leapp.models import DistributionSignedRPM, InstalledRedHatSignedRPM, InstalledRPM, InstalledUnsignedRPM
|
||||
|
||||
|
||||
-def get_distribution_data(distribution):
|
||||
- distributions_path = api.get_common_folder_path('distro')
|
||||
-
|
||||
- distribution_config = os.path.join(distributions_path, distribution, 'gpg-signatures.json')
|
||||
- if os.path.exists(distribution_config):
|
||||
- with open(distribution_config) as distro_config_file:
|
||||
- distro_config_json = json.load(distro_config_file)
|
||||
- distro_keys = distro_config_json.get('keys', [])
|
||||
- else:
|
||||
- raise StopActorExecutionError(
|
||||
- 'Cannot find distribution signature configuration.',
|
||||
- details={'Problem': 'Distribution {} was not found in {}.'.format(distribution, distributions_path)})
|
||||
- return distro_keys
|
||||
-
|
||||
-
|
||||
def is_distro_signed(pkg, distro_keys):
|
||||
return any(key in pkg.pgpsig for key in distro_keys)
|
||||
|
||||
@@ -49,7 +31,7 @@ def is_exceptional(pkg, allowlist):
|
||||
|
||||
def process():
|
||||
distribution = api.current_actor().configuration.os_release.release_id
|
||||
- distro_keys = get_distribution_data(distribution)
|
||||
+ distro_keys = get_distribution_data(distribution).get('keys', [])
|
||||
all_signed = get_env('LEAPP_DEVEL_RPMS_ALL_SIGNED', '0') == '1'
|
||||
rhui_pkgs = rhui.get_all_known_rhui_pkgs_for_current_upg()
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
167
0072-IPU-9-10-Initial-preparation-upgrade-paths-and-leapp.patch
Normal file
167
0072-IPU-9-10-Initial-preparation-upgrade-paths-and-leapp.patch
Normal file
@ -0,0 +1,167 @@
|
||||
From dafa6172d046dead08a497bd84283edf6206518f Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Tue, 23 Jan 2024 10:37:56 +0100
|
||||
Subject: [PATCH 72/92] IPU 9 -> 10: Initial preparation: upgrade paths and
|
||||
leapp packages def
|
||||
|
||||
Introducing initial changes needed for IPU 9 -> 10 to prevent abouvious
|
||||
crashes and inhibitors:
|
||||
* Extend the list of supported source versions for the upgrade by el9
|
||||
* Define upgrade paths for IPU 9 -> 10
|
||||
* Add Python path for el 10 (py 3.12)
|
||||
* Introducing el9toel10 repository
|
||||
created .gitkeep files inside empty dirs
|
||||
|
||||
NOTE:
|
||||
Enable upgrade from RHEL 9.4 & 9.5 to RHEL 10.0 for now. For the
|
||||
experiment purposes. These will not be supported for the upgrade at all,
|
||||
but to make testing and experimentations easier, allow it for now.
|
||||
|
||||
TODO:
|
||||
* add RHEL 10 product certificates
|
||||
* add RHEL 10 GPG keys
|
||||
---
|
||||
repos/system_upgrade/common/files/upgrade_paths.json | 8 ++++++--
|
||||
.../common/libraries/config/version.py | 3 +++
|
||||
repos/system_upgrade/common/libraries/dnfplugin.py | 1 +
|
||||
repos/system_upgrade/common/libraries/rpms.py | 12 +++++++++---
|
||||
repos/system_upgrade/el9toel10/.leapp/info | 1 +
|
||||
repos/system_upgrade/el9toel10/.leapp/leapp.conf | 6 ++++++
|
||||
repos/system_upgrade/el9toel10/actors/.gitkeep | 0
|
||||
.../el9toel10/files/bundled-rpms/.gitkeep | 0
|
||||
repos/system_upgrade/el9toel10/libraries/.gitkeep | 0
|
||||
repos/system_upgrade/el9toel10/models/.gitkeep | 0
|
||||
repos/system_upgrade/el9toel10/tools/.gitkeep | 0
|
||||
11 files changed, 26 insertions(+), 5 deletions(-)
|
||||
create mode 100644 repos/system_upgrade/el9toel10/.leapp/info
|
||||
create mode 100644 repos/system_upgrade/el9toel10/.leapp/leapp.conf
|
||||
create mode 100644 repos/system_upgrade/el9toel10/actors/.gitkeep
|
||||
create mode 100644 repos/system_upgrade/el9toel10/files/bundled-rpms/.gitkeep
|
||||
create mode 100644 repos/system_upgrade/el9toel10/libraries/.gitkeep
|
||||
create mode 100644 repos/system_upgrade/el9toel10/models/.gitkeep
|
||||
create mode 100644 repos/system_upgrade/el9toel10/tools/.gitkeep
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/upgrade_paths.json b/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
index 43bd049a..5399f148 100644
|
||||
--- a/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
+++ b/repos/system_upgrade/common/files/upgrade_paths.json
|
||||
@@ -3,14 +3,18 @@
|
||||
"7.9": ["8.8", "8.10"],
|
||||
"8.8": ["9.2"],
|
||||
"8.10": ["9.4", "9.5"],
|
||||
+ "9.6": ["10.0"],
|
||||
"7": ["8.8", "8.10"],
|
||||
- "8": ["9.2", "9.4", "9.5"]
|
||||
+ "8": ["9.2", "9.4", "9.5"],
|
||||
+ "9": ["10.0"]
|
||||
},
|
||||
"saphana": {
|
||||
"7.9": ["8.10", "8.8"],
|
||||
"7": ["8.10", "8.8"],
|
||||
"8.8": ["9.2"],
|
||||
"8.10": ["9.4"],
|
||||
- "8": ["9.4", "9.2"]
|
||||
+ "8": ["9.4", "9.2"],
|
||||
+ "9.6": ["10.0"],
|
||||
+ "9": ["10.0"]
|
||||
}
|
||||
}
|
||||
diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py
|
||||
index fdfeface..152d9112 100644
|
||||
--- a/repos/system_upgrade/common/libraries/config/version.py
|
||||
+++ b/repos/system_upgrade/common/libraries/config/version.py
|
||||
@@ -13,10 +13,13 @@ OP_MAP = {
|
||||
'<=': operator.le
|
||||
}
|
||||
|
||||
+# TODO(pstodulk): drop 9.4 & 9.5 before May 2025 release
|
||||
+# These will not be supported fo IPU 9 -> 10
|
||||
_SUPPORTED_VERSIONS = {
|
||||
# Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x
|
||||
'7': {'rhel': ['7.9'], 'rhel-alt': [], 'rhel-saphana': ['7.9']},
|
||||
'8': {'rhel': ['8.8', '8.10'], 'rhel-saphana': ['8.8', '8.10']},
|
||||
+ '9': {'rhel': ['9.4', '9.5', '9.6'], 'rhel-saphana': ['9.4', '9.6']},
|
||||
}
|
||||
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/dnfplugin.py b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
index 6f056a33..d09cb90a 100644
|
||||
--- a/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
+++ b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
@@ -21,6 +21,7 @@ class _DnfPluginPathStr(str):
|
||||
_PATHS = {
|
||||
"8": os.path.join('/lib/python3.6/site-packages/dnf-plugins', DNF_PLUGIN_NAME),
|
||||
"9": os.path.join('/lib/python3.9/site-packages/dnf-plugins', DNF_PLUGIN_NAME),
|
||||
+ "10": os.path.join('/lib/python3.12/site-packages/dnf-plugins', DNF_PLUGIN_NAME),
|
||||
}
|
||||
|
||||
def __init__(self): # noqa: W0231; pylint: disable=super-init-not-called
|
||||
diff --git a/repos/system_upgrade/common/libraries/rpms.py b/repos/system_upgrade/common/libraries/rpms.py
|
||||
index 2890240f..dde4d2b6 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rpms.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rpms.py
|
||||
@@ -22,18 +22,24 @@ _LEAPP_PACKAGES_MAP = {
|
||||
LeappComponents.FRAMEWORK: {'7': {'pkgs': ['leapp', 'python2-leapp'],
|
||||
'deps': ['leapp-deps']},
|
||||
'8': {'pkgs': ['leapp', 'python3-leapp'],
|
||||
+ 'deps': ['leapp-deps']},
|
||||
+ '9': {'pkgs': ['leapp', 'python3-leapp'],
|
||||
'deps': ['leapp-deps']}
|
||||
},
|
||||
LeappComponents.REPOSITORY: {'7': {'pkgs': ['leapp-upgrade-el7toel8'],
|
||||
'deps': ['leapp-upgrade-el7toel8-deps']},
|
||||
'8': {'pkgs': ['leapp-upgrade-el8toel9'],
|
||||
- 'deps': ['leapp-upgrade-el8toel9-deps']}
|
||||
+ 'deps': ['leapp-upgrade-el8toel9-deps']},
|
||||
+ '9': {'pkgs': ['leapp-upgrade-el9toel10'],
|
||||
+ 'deps': ['leapp-upgrade-el9toel10-deps']}
|
||||
},
|
||||
LeappComponents.COCKPIT: {'7': {'pkgs': ['cockpit-leapp']},
|
||||
- '8': {'pkgs': ['cockpit-leapp']}
|
||||
+ '8': {'pkgs': ['cockpit-leapp']},
|
||||
+ '9': {'pkgs': ['cockpit-leapp']},
|
||||
},
|
||||
LeappComponents.TOOLS: {'7': {'pkgs': ['snactor']},
|
||||
- '8': {'pkgs': ['snactor']}
|
||||
+ '8': {'pkgs': ['snactor']},
|
||||
+ '9': {'pkgs': ['snactor']}
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/repos/system_upgrade/el9toel10/.leapp/info b/repos/system_upgrade/el9toel10/.leapp/info
|
||||
new file mode 100644
|
||||
index 00000000..500087a8
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el9toel10/.leapp/info
|
||||
@@ -0,0 +1 @@
|
||||
+{"name": "system_upgrade_el9toel10", "id": "ba7ab214-d579-4e70-811e-7c30966d8d28", "messages": {}, "repos": ["efcf9016-f2d1-4609-9329-a298e6587b3c", "644900a5-c347-43a3-bfab-f448f46d9647"]}
|
||||
diff --git a/repos/system_upgrade/el9toel10/.leapp/leapp.conf b/repos/system_upgrade/el9toel10/.leapp/leapp.conf
|
||||
new file mode 100644
|
||||
index 00000000..b4591347
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el9toel10/.leapp/leapp.conf
|
||||
@@ -0,0 +1,6 @@
|
||||
+
|
||||
+[repositories]
|
||||
+repo_path=${repository:root_dir}
|
||||
+
|
||||
+[database]
|
||||
+path=${repository:state_dir}/leapp.db
|
||||
diff --git a/repos/system_upgrade/el9toel10/actors/.gitkeep b/repos/system_upgrade/el9toel10/actors/.gitkeep
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/repos/system_upgrade/el9toel10/files/bundled-rpms/.gitkeep b/repos/system_upgrade/el9toel10/files/bundled-rpms/.gitkeep
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/repos/system_upgrade/el9toel10/libraries/.gitkeep b/repos/system_upgrade/el9toel10/libraries/.gitkeep
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/repos/system_upgrade/el9toel10/models/.gitkeep b/repos/system_upgrade/el9toel10/models/.gitkeep
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
diff --git a/repos/system_upgrade/el9toel10/tools/.gitkeep b/repos/system_upgrade/el9toel10/tools/.gitkeep
|
||||
new file mode 100644
|
||||
index 00000000..e69de29b
|
||||
--
|
||||
2.42.0
|
||||
|
199
0073-Packaging-Introduce-EL-9-builds-for-IPU-9-10.patch
Normal file
199
0073-Packaging-Introduce-EL-9-builds-for-IPU-9-10.patch
Normal file
@ -0,0 +1,199 @@
|
||||
From 87012437ad29350c993deb110283702ca2959c30 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Tue, 2 Apr 2024 19:33:04 +0200
|
||||
Subject: [PATCH 73/92] Packaging: Introduce EL 9 builds for IPU 9 -> 10
|
||||
|
||||
SPEC files has been updated and polished to be more friendly when
|
||||
keeping suppoer for building in EL 7, 8, and 9. Also Makefile
|
||||
contains some initial changes But keeping the full solution for a
|
||||
separate commit.
|
||||
|
||||
Packit configuration has been updated to start building for
|
||||
epel-9-x86_64 buildroot.
|
||||
---
|
||||
.packit.yaml | 3 ++
|
||||
Makefile | 14 +++++--
|
||||
packaging/leapp-repository.spec | 42 +++++++++++++------
|
||||
.../other_specs/leapp-el7toel8-deps.spec | 6 ++-
|
||||
4 files changed, 48 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/.packit.yaml b/.packit.yaml
|
||||
index 7c3799cf..d91a47e5 100644
|
||||
--- a/.packit.yaml
|
||||
+++ b/.packit.yaml
|
||||
@@ -34,6 +34,7 @@ jobs:
|
||||
targets:
|
||||
- epel-7-x86_64
|
||||
- epel-8-x86_64
|
||||
+ - epel-9-x86_64
|
||||
actions:
|
||||
create-archive:
|
||||
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
|
||||
@@ -54,6 +55,7 @@ jobs:
|
||||
targets:
|
||||
- epel-7-x86_64
|
||||
- epel-8-x86_64
|
||||
+ - epel-9-x86_64
|
||||
actions:
|
||||
create-archive:
|
||||
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
|
||||
@@ -73,6 +75,7 @@ jobs:
|
||||
targets:
|
||||
- epel-7-x86_64
|
||||
- epel-8-x86_64
|
||||
+ - epel-9-x86_64
|
||||
actions:
|
||||
create-archive:
|
||||
- bash -c "rm -f packaging/deps-pkgs.tar.gz"
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 0de2a86a..a62d0ccc 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -189,8 +189,9 @@ source: prepare
|
||||
@git archive --prefix "$(PKGNAME)-$(VERSION)/" -o "packaging/sources/$(PKGNAME)-$(VERSION).tar.gz" HEAD
|
||||
@echo "--- PREPARE DEPS PKGS ---"
|
||||
mkdir -p packaging/tmp/
|
||||
- @__TIMESTAMP=$(TIMESTAMP) $(MAKE) _build_subpkg
|
||||
- @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=$$(($(DIST_VERSION) + 1)) _build_subpkg
|
||||
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=7 _build_subpkg
|
||||
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=8 _build_subpkg
|
||||
+ @__TIMESTAMP=$(TIMESTAMP) $(MAKE) DIST_VERSION=9 _build_subpkg
|
||||
@tar -czf packaging/sources/deps-pkgs.tar.gz -C packaging/RPMS/noarch `ls -1 packaging/RPMS/noarch | grep -o "[^/]*rpm$$"`
|
||||
@rm -f packaging/RPMS/noarch/*.rpm
|
||||
|
||||
@@ -389,11 +390,14 @@ _test_container_ipu:
|
||||
el8toel9) \
|
||||
export REPOSITORIES="common,el8toel9"; \
|
||||
;; \
|
||||
+ el9toel10) \
|
||||
+ export REPOSITORIES="common,el9toel10"; \
|
||||
+ ;; \
|
||||
"") \
|
||||
echo "TEST_CONT_IPU must be set"; exit 1; \
|
||||
;; \
|
||||
*) \
|
||||
- echo "Only supported TEST_CONT_IPUs are el7toel8, el8toel9"; exit 1; \
|
||||
+ echo "Only supported TEST_CONT_IPUs are el7toel8, el8toel9, el9toel10"; exit 1; \
|
||||
;; \
|
||||
esac && \
|
||||
$(_CONTAINER_TOOL) exec -w /repocopy $$_CONT_NAME make clean && \
|
||||
@@ -449,6 +453,10 @@ test_container:
|
||||
;; \
|
||||
python3.9) \
|
||||
TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \
|
||||
+ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \
|
||||
+ ;; \
|
||||
+ python3.12) \
|
||||
+ TEST_CONT_IPU=el9toel10 $(MAKE) _test_container_ipu; \
|
||||
;; \
|
||||
*) \
|
||||
TEST_CONT_IPU=el8toel9 $(MAKE) _test_container_ipu; \
|
||||
diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
|
||||
index 7c3fe5c6..e813cf14 100644
|
||||
--- a/packaging/leapp-repository.spec
|
||||
+++ b/packaging/leapp-repository.spec
|
||||
@@ -7,9 +7,19 @@
|
||||
%if 0%{?rhel} == 7
|
||||
%define leapp_python_sitelib %{python2_sitelib}
|
||||
%define lpr_name leapp-upgrade-el7toel8
|
||||
+ %define repo_shortname el7toel8
|
||||
+ %define next_major_ver 8
|
||||
%else
|
||||
%define leapp_python_sitelib %{python3_sitelib}
|
||||
- %define lpr_name leapp-upgrade-el8toel9
|
||||
+ %if 0%{?rhel} == 8
|
||||
+ %define lpr_name leapp-upgrade-el8toel9
|
||||
+ %define repo_shortname el8toel9
|
||||
+ %define next_major_ver 9
|
||||
+ %else
|
||||
+ %define lpr_name leapp-upgrade-el9toel10
|
||||
+ %define repo_shortname el9toel10
|
||||
+ %define next_major_ver 10
|
||||
+ %endif
|
||||
|
||||
# This drops autogenerated deps on
|
||||
# - /usr/libexec/platform-python (rhel-8 buildroot)
|
||||
@@ -84,14 +94,24 @@ Obsoletes: leapp-repository-sos-plugin <= 0.9.0
|
||||
Conflicts: leapp-upgrade-el8toel9
|
||||
|
||||
%else
|
||||
-######### RHEL 8 ############
|
||||
+######### RHEL 8+ (and newer) ############
|
||||
BuildRequires: python3-devel
|
||||
Requires: python3-leapp
|
||||
|
||||
+# NOTE(pstodulk): else if / elif has been implemented quite late. as we still
|
||||
+# want to build on RHEL 7 too, go in the old way. Ref:
|
||||
+# https://github.com/rpm-software-management/rpm/issues/311
|
||||
+%if 0%{?rhel} == 8
|
||||
+######### RHEL 8 ############
|
||||
+
|
||||
# Same as the conflict above - we want to be sure our packages are untouched
|
||||
# during the whole IPU process
|
||||
Conflicts: leapp-upgrade-el7toel8
|
||||
-
|
||||
+Conflicts: leapp-upgrade-el9toel10
|
||||
+%else
|
||||
+######### RHEL 9 ############
|
||||
+Conflicts: leapp-upgrade-el8toel9
|
||||
+%endif
|
||||
%endif
|
||||
|
||||
# IMPORTANT: every time the requirements are changed, increment number by one
|
||||
@@ -210,11 +230,7 @@ Requires: python3-gobject-base
|
||||
|
||||
|
||||
%build
|
||||
-%if 0%{?rhel} == 7
|
||||
-cp -a leapp*deps*el8.noarch.rpm repos/system_upgrade/el7toel8/files/bundled-rpms/
|
||||
-%else
|
||||
-cp -a leapp*deps*el9.noarch.rpm repos/system_upgrade/el8toel9/files/bundled-rpms/
|
||||
-%endif
|
||||
+cp -a leapp*deps*el%{next_major_ver}.noarch.rpm repos/system_upgrade/%{repo_shortname}/files/bundled-rpms/
|
||||
|
||||
|
||||
%install
|
||||
@@ -222,6 +238,7 @@ install -m 0755 -d %{buildroot}%{custom_repositorydir}
|
||||
install -m 0755 -d %{buildroot}%{repositorydir}
|
||||
cp -r repos/* %{buildroot}%{repositorydir}/
|
||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d/
|
||||
+# NOTE(pstodulk): drop transaction dir and its content if replaced by config files before RHEL 10
|
||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/transaction/
|
||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
|
||||
install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
|
||||
@@ -234,11 +251,10 @@ rm -rf %{buildroot}%{leapp_python_sitelib}/leapp/cli/commands/tests
|
||||
|
||||
# Remove irrelevant repositories - We don't want to ship them for the particular
|
||||
# RHEL version
|
||||
-%if 0%{?rhel} == 7
|
||||
-rm -rf %{buildroot}%{repositorydir}/system_upgrade/el8toel9
|
||||
-%else
|
||||
-rm -rf %{buildroot}%{repositorydir}/system_upgrade/el7toel8
|
||||
-%endif
|
||||
+for i in el7toel8 el8toel9 el9toel10;
|
||||
+do
|
||||
+ [ "$i" != "%{repo_shortname}" ] && rm -rf %{buildroot}%{repositorydir}/system_upgrade/$i
|
||||
+done
|
||||
|
||||
# remove component/unit tests, Makefiles, ... stuff that related to testing only
|
||||
rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
|
||||
diff --git a/packaging/other_specs/leapp-el7toel8-deps.spec b/packaging/other_specs/leapp-el7toel8-deps.spec
|
||||
index c4e0dd90..d9e94faa 100644
|
||||
--- a/packaging/other_specs/leapp-el7toel8-deps.spec
|
||||
+++ b/packaging/other_specs/leapp-el7toel8-deps.spec
|
||||
@@ -5,7 +5,11 @@
|
||||
%if 0%{?rhel} == 8
|
||||
%define lpr_name_src leapp-upgrade-el7toel8-deps
|
||||
%else
|
||||
- %define lpr_name_src leapp-upgrade-el8toel9-deps
|
||||
+ %if 0%{?rhel} == 9
|
||||
+ %define lpr_name_src leapp-upgrade-el8toel9-deps
|
||||
+ %else
|
||||
+ %define lpr_name_src leapp-upgrade-el9toel10-deps
|
||||
+ %endif
|
||||
%endif
|
||||
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
159
0074-Add-RHEL9-container-for-building-and-testing.patch
Normal file
159
0074-Add-RHEL9-container-for-building-and-testing.patch
Normal file
@ -0,0 +1,159 @@
|
||||
From 953bfb1868595a6100522bfd92f4ea4c47e6be1b Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Mon, 24 Jun 2024 17:00:09 +0200
|
||||
Subject: [PATCH 74/92] Add RHEL9 container for building and testing
|
||||
|
||||
Adding RHEL 9 containers so we can start to test & build packages
|
||||
in RHEL 9 environemnt.
|
||||
|
||||
Since `python3-virtualenv` package is not available in the RHEL 9 UBI,
|
||||
a workaround is introduced `make install-deps-fedora`, which is used by
|
||||
the testing containers. If not able to install the package, `pip install
|
||||
virtualenv` is used as a fallback as this is working in the image.
|
||||
|
||||
The relatively recent Python version used in the container means there
|
||||
is also a relative recent Pylint verision, which introduces 2+ new
|
||||
checks.
|
||||
---
|
||||
Makefile | 31 +++++++++++++++++------
|
||||
utils/container-builds/Containerfile.ubi9 | 10 ++++++++
|
||||
utils/container-tests/Containerfile.rhel9 | 18 +++++++++++++
|
||||
3 files changed, 51 insertions(+), 8 deletions(-)
|
||||
create mode 100644 utils/container-builds/Containerfile.ubi9
|
||||
create mode 100644 utils/container-tests/Containerfile.rhel9
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a62d0ccc..5b2bc4d2 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -111,7 +111,7 @@ help:
|
||||
@echo " packaging"
|
||||
@echo " srpm create the SRPM"
|
||||
@echo " build_container create the RPM in container"
|
||||
- @echo " - set BUILD_CONTAINER to el7 or el8"
|
||||
+ @echo " - set BUILD_CONTAINER to el7, el8 or el9"
|
||||
@echo " - don't run more than one build at the same time"
|
||||
@echo " since containers operate on the same files!"
|
||||
@echo " copr_build create the COPR build using the COPR TOKEN"
|
||||
@@ -164,7 +164,7 @@ help:
|
||||
@echo " PR=7 SUFFIX='my_additional_suffix' make <target>"
|
||||
@echo " MR=6 COPR_CONFIG='path/to/the/config/copr/file' make <target>"
|
||||
@echo " ACTOR=<actor> TEST_LIBS=y make test"
|
||||
- @echo " BUILD_CONTAINER=rhel7 make build_container"
|
||||
+ @echo " BUILD_CONTAINER=el7 make build_container"
|
||||
@echo " TEST_CONTAINER=f34 make test_container"
|
||||
@echo " CONTAINER_TOOL=docker TEST_CONTAINER=rhel7 make test_container_no_lint"
|
||||
@echo ""
|
||||
@@ -258,12 +258,15 @@ build_container:
|
||||
el8) \
|
||||
CONT_FILE="utils/container-builds/Containerfile.ubi8"; \
|
||||
;; \
|
||||
+ el9) \
|
||||
+ CONT_FILE="utils/container-builds/Containerfile.ubi9"; \
|
||||
+ ;; \
|
||||
"") \
|
||||
echo "BUILD_CONTAINER must be set"; \
|
||||
exit 1; \
|
||||
;; \
|
||||
*) \
|
||||
- echo "Available containers are el7, el8"; \
|
||||
+ echo "Available containers are el7, el8, el9"; \
|
||||
exit 1; \
|
||||
;; \
|
||||
esac && \
|
||||
@@ -305,12 +308,20 @@ install-deps:
|
||||
$(VENVNAME)/bin/pip install -I "git+https://github.com/oamg/leapp.git@refs/pull/$(REQ_LEAPP_PR)/head"; \
|
||||
fi
|
||||
$(_PYTHON_VENV) utils/install_actor_deps.py --actor=$(ACTOR) --repos="$(TEST_PATHS)"
|
||||
+
|
||||
install-deps-fedora:
|
||||
@# Check the necessary rpms are installed for py3 (and py2 below)
|
||||
- if ! rpm -q git findutils python3-virtualenv gcc; then \
|
||||
- if ! dnf install -y git findutils python3-virtualenv gcc; then \
|
||||
+ if ! rpm -q git findutils gcc; then \
|
||||
+ if ! dnf install -y git findutils gcc; then \
|
||||
echo 'Please install the following rpms via the command: ' \
|
||||
- 'sudo dnf install -y git findutils python3-virtualenv gcc'; \
|
||||
+ 'sudo dnf install -y git findutils gcc'; \
|
||||
+ exit 1; \
|
||||
+ fi; \
|
||||
+ fi
|
||||
+ if ! command -v virtualenv; then \
|
||||
+ if ! (dnf install -y python3-virtualenv || pip install virtualenv); then \
|
||||
+ echo 'Please install the following packages via the command: ' \
|
||||
+ 'sudo dnf install -y python3-virtualenv or pip install virtualenv'; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi
|
||||
@@ -432,6 +443,10 @@ test_container:
|
||||
export CONT_FILE="utils/container-tests/Containerfile.rhel8"; \
|
||||
export _VENV="python3.6"; \
|
||||
;; \
|
||||
+ rhel9) \
|
||||
+ export CONT_FILE="utils/container-tests/Containerfile.rhel9"; \
|
||||
+ export _VENV="python3.9"; \
|
||||
+ ;; \
|
||||
*) \
|
||||
echo "Error: Available containers are: f34, rhel7, rhel8"; exit 1; \
|
||||
;; \
|
||||
@@ -481,7 +496,7 @@ test_container_all_no_lint:
|
||||
# clean all testing and building containers and their images
|
||||
clean_containers:
|
||||
@for i in "leapp-repo-tests-f34" "leapp-repo-tests-rhel7" "leapp-repo-tests-rhel8" \
|
||||
- "leapp-repo-build-el7" "leapp-repo-build-el8"; do \
|
||||
+ "leapp-repo-tests-rhel9" "leapp-repo-build-el7" "leapp-repo-build-el8"; do \
|
||||
$(_CONTAINER_TOOL) kill "$$i-cont" || :; \
|
||||
$(_CONTAINER_TOOL) rm "$$i-cont" || :; \
|
||||
$(_CONTAINER_TOOL) rmi "$$i" || :; \
|
||||
@@ -492,7 +507,7 @@ fast_lint:
|
||||
FILES_TO_LINT="$$(git diff --name-only $(MASTER_BRANCH) --diff-filter AMR | grep '\.py$$')"; \
|
||||
if [[ -n "$$FILES_TO_LINT" ]]; then \
|
||||
pylint -j 0 $$FILES_TO_LINT $(PYLINT_ARGS) && \
|
||||
- flake8 $$FILES_TO_LINT $(FLAKE8_ARG); \
|
||||
+ flake8 $$FILES_TO_LINT $(FLAKE8_ARGS); \
|
||||
LINT_EXIT_CODE="$$?"; \
|
||||
if [[ "$$LINT_EXIT_CODE" != "0" ]]; then \
|
||||
exit $$LINT_EXIT_CODE; \
|
||||
diff --git a/utils/container-builds/Containerfile.ubi9 b/utils/container-builds/Containerfile.ubi9
|
||||
new file mode 100644
|
||||
index 00000000..53567c08
|
||||
--- /dev/null
|
||||
+++ b/utils/container-builds/Containerfile.ubi9
|
||||
@@ -0,0 +1,10 @@
|
||||
+FROM registry.access.redhat.com/ubi9/ubi:latest
|
||||
+
|
||||
+VOLUME /repo
|
||||
+
|
||||
+RUN dnf update -y && \
|
||||
+ dnf install -y python3-devel rpm-build make git
|
||||
+
|
||||
+WORKDIR /repo
|
||||
+ENV DIST_VERSION 9
|
||||
+ENTRYPOINT make _build_local
|
||||
diff --git a/utils/container-tests/Containerfile.rhel9 b/utils/container-tests/Containerfile.rhel9
|
||||
new file mode 100644
|
||||
index 00000000..2261b2ad
|
||||
--- /dev/null
|
||||
+++ b/utils/container-tests/Containerfile.rhel9
|
||||
@@ -0,0 +1,18 @@
|
||||
+FROM registry.access.redhat.com/ubi9/ubi:latest
|
||||
+
|
||||
+VOLUME /repo
|
||||
+
|
||||
+RUN dnf update -y && \
|
||||
+ dnf install -y python3-setuptools python3-pip make git rsync
|
||||
+
|
||||
+ENV PYTHON_VENV python3.9
|
||||
+
|
||||
+COPY . /repocopy
|
||||
+
|
||||
+WORKDIR /repocopy
|
||||
+
|
||||
+RUN rm -rf tut*
|
||||
+
|
||||
+RUN make clean && make install-deps-fedora
|
||||
+
|
||||
+WORKDIR /
|
||||
--
|
||||
2.42.0
|
||||
|
38
0075-tests-update-pytest-requirements-to-Py3.6-compat.patch
Normal file
38
0075-tests-update-pytest-requirements-to-Py3.6-compat.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 14937bc95928fe72aae7b0735d455f82db5a4320 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Wed, 17 Jul 2024 23:49:32 +0200
|
||||
Subject: [PATCH 75/92] tests: update pytest requirements to Py3.6+ compat
|
||||
|
||||
Currently we use frozen python modules due to compatibility with
|
||||
python2. As we want to keep now still Py2 support due to RHEL 7
|
||||
for a while, we do not want to simply use the newest versions of
|
||||
current modules. However, with Python 3.12 we see it's really old
|
||||
and some of old versions (like pytest) does not work as expected.
|
||||
|
||||
For that reason, adding conditional requirements for pytest. I chose
|
||||
now to stick with pytest 6.2.5 which is compatible with Python3.6+
|
||||
(due to RHEL 8).
|
||||
|
||||
Most likely we will need to revise other requirements too, but I focused
|
||||
now just on obvious issues.
|
||||
---
|
||||
requirements.txt | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/requirements.txt b/requirements.txt
|
||||
index ac6bf9b8..a1bb4725 100644
|
||||
--- a/requirements.txt
|
||||
+++ b/requirements.txt
|
||||
@@ -5,7 +5,8 @@ isort
|
||||
funcsigs==1.0.2
|
||||
mock==2.0.0
|
||||
pylint
|
||||
-pytest==4.6.11
|
||||
+pytest==4.6.11; python_version < '3.0'
|
||||
+pytest==6.2.5; python_version >= '3.6'
|
||||
pyudev==0.22.0
|
||||
distro==1.5.0
|
||||
ipaddress==1.0.23
|
||||
--
|
||||
2.42.0
|
||||
|
364
0076-IPU-9-10-Add-FAKE-RHEL-10-certs-and-GPG-keys.patch
Normal file
364
0076-IPU-9-10-Add-FAKE-RHEL-10-certs-and-GPG-keys.patch
Normal file
@ -0,0 +1,364 @@
|
||||
From 3ab53e7698ee889c7ace8a034419b745aeeafa51 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Fri, 19 Apr 2024 15:08:48 +0200
|
||||
Subject: [PATCH 76/92] IPU 9 -> 10: Add (FAKE) RHEL 10 certs and GPG keys
|
||||
|
||||
* Add RHEL 10.0 Beta product certificates
|
||||
* Add FAKE RHEL 10.0 product certificates
|
||||
* productions certificates for RHEL 10 has not been generated yet,
|
||||
so adding faked certificates for now. In this part development
|
||||
it's expected to test upgrades using internal custom repositories
|
||||
only. Until the testing with RHSM certs are not needed yet.
|
||||
But they will have to be updated for sure before the release.
|
||||
* Add RHEL 10 (+Beta) RPM-GPG-KEY-redhat-release
|
||||
* updated key from RHELBLD-15138 attached
|
||||
|
||||
* TODO: replace faked RHEL 10 product certificates by real ones when
|
||||
available
|
||||
|
||||
Co-authored-by: Michal Reznik (mreznik) <mreznik@redhat.com>
|
||||
Co-authored-by: Matej Matuska <mmatuska@redhat.com>
|
||||
---
|
||||
.../common/files/prod-certs/10.0/362.pem | 37 ++++++++++
|
||||
.../common/files/prod-certs/10.0/363.pem | 37 ++++++++++
|
||||
.../common/files/prod-certs/10.0/433.pem | 37 ++++++++++
|
||||
.../common/files/prod-certs/10.0/479.pem | 35 ++++++++++
|
||||
.../common/files/prod-certs/10.0/486.pem | 37 ++++++++++
|
||||
.../rpm-gpg/10/RPM-GPG-KEY-redhat-release | 69 +++++++++++++++++++
|
||||
.../rpm-gpg/10beta/RPM-GPG-KEY-redhat-release | 30 ++++++++
|
||||
7 files changed, 282 insertions(+)
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/362.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/363.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/433.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/479.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/486.pem
|
||||
create mode 100644 repos/system_upgrade/common/files/rpm-gpg/10/RPM-GPG-KEY-redhat-release
|
||||
create mode 100644 repos/system_upgrade/common/files/rpm-gpg/10beta/RPM-GPG-KEY-redhat-release
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/362.pem b/repos/system_upgrade/common/files/prod-certs/10.0/362.pem
|
||||
new file mode 100644
|
||||
index 00000000..1a794eff
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/10.0/362.pem
|
||||
@@ -0,0 +1,37 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGeDCCBGCgAwIBAgIJALDxRLt/tVHqMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxODA4MTkxNloXDTQzMDcx
|
||||
+ODA4MTkxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxYzVmYTgy
|
||||
+Zi0wMTAwLTQ3OTQtODZkNC1iZDA2NmY3NDMzYzldMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOCAQAwgf0wCQYDVR0TBAIwADBIBgwrBgEEAZIICQGCagEEOAw2UmVkIEhh
|
||||
+dCBFbnRlcnByaXNlIExpbnV4IGZvciBQb3dlciwgbGl0dGxlIGVuZGlhbiBCZXRh
|
||||
+MBsGDCsGAQQBkggJAYJqAgQLDAkxMC4wIEJldGEwGQYMKwYBBAGSCAkBgmoDBAkM
|
||||
+B3BwYzY0bGUwLgYMKwYBBAGSCAkBgmoEBB4MHHJoZWwtMTAscmhlbC0xMC1iZXRh
|
||||
+LXBwYzY0bGUwHQYDVR0OBBYEFGHqILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQY
|
||||
+MBaAFJb9uxxAQP9AhK2yHwsmwcNqb9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQCOCuh5
|
||||
+ogCBWizsby3kZwYvS5QvH2Ciz/NRxgpXcv5aP2YlQyGfwh7xRc/YvlRTKz70Wdor
|
||||
+3xxo0A3ZbVBepQfKLwEKAO3vpMrDciKfwZI0pdbcny3+Nd56qm1Nq7gVO5H1m/cK
|
||||
+r9Oa6YdSwWDEGhiyyEvpoHvcZMkR5KlV8rDnCoq7dIkp3Wcj6E6EFzyytlrWR9MT
|
||||
+Q+4OVfMSjdyMNL7hTLECGqq+mICvtqX22yTL/gt1fcb4zLp41mjLT+Wza43LCRpx
|
||||
+SJQbJiruUhkkqEyEloqFKtXLlBbELfzg/KYu0SK8OnGnqdTmp0pxBBM6lAlOzh++
|
||||
+OjFCec0N5irdHltxdZ/KjLfcePPRn2Z0yPuyGKEBgbgYMDvCHskw3XoUiQ2TkoHO
|
||||
+I76vz3szxQtjrvKhHXSTNoiUqwNEdZQBqAlTnr9vH0IeofM2Vopff6yzHRwNF/5w
|
||||
+DFcCZ2k7ymV04GbRXyd8xi+Cg/Q6YjFiXE+X0e6kOAn1llwaQVh8fiphmU0D+N1S
|
||||
+utZ3TIgA4IE4VL4+ezFBc81m+UtsO0tc6WbitdQn+Dsi0vnTPTvfHlCnhQcz8SiU
|
||||
+VyBrnrItLTy8aIvlc69kap1KLdxetqn2qZZagKZphylT4YHGgfYTTkxZD5cCkxnh
|
||||
+3y2cfONuGFHU6t2D90ccds2fgi0B1tz9jv74kw==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/363.pem b/repos/system_upgrade/common/files/prod-certs/10.0/363.pem
|
||||
new file mode 100644
|
||||
index 00000000..0d8b10fc
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/10.0/363.pem
|
||||
@@ -0,0 +1,37 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGaTCCBFGgAwIBAgIJALDxRLt/tVHpMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxODA4MTkxNloXDTQzMDcx
|
||||
+ODA4MTkxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsyZjVjZTZi
|
||||
+MC0wM2MxLTQ3OWYtYTlhNC00NjQzYmFkNmU4NmZdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOB8jCB7zAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYJrAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NCBCZXRhMBsGDCsGAQQBkggJAYJr
|
||||
+AgQLDAkxMC4wIEJldGEwGQYMKwYBBAGSCAkBgmsDBAkMB2FhcmNoNjQwLgYMKwYB
|
||||
+BAGSCAkBgmsEBB4MHHJoZWwtMTAscmhlbC0xMC1iZXRhLWFhcmNoNjQwHQYDVR0O
|
||||
+BBYEFGHqILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9AhK2y
|
||||
+HwsmwcNqb9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQCuV3lD4fHTaXiG1BF1vfjKm1w1
|
||||
+Yv3LljlB3+F62liLEh8dZjTg4cahJ7YpkC3fGpqbHGs5u5to7SoW3MCfvEqmhAah
|
||||
+QOTvMYGHwgeqLAG8mTYTnOScDsah8UkPzRl3BvZXgF6c3kIcFz6HGjVdzIvKF1A4
|
||||
+di8EsWUlV5zf0muE7gEmG1AFq2j2IHXXGjBLhDlpRBlt9miJF6t0QNEd8C06x/yD
|
||||
+t/dIUKDHgP2oLLW+nBWzzG3GtTjCeGJG/xHLkeVisRGUOUVP2infL+F6rQ3kk3/V
|
||||
+xOCWzBwnLycKuRgaAcP4WZZnmgLkKcH/JQRqXCFHSP+lLpI3X8vHvlGe5KidwB4g
|
||||
+xqRhWQwF4kOHC0eOJ96z7bZZyt5CcmUUBsDylt3/L2BFhbTackJCv6Axb+VhFYFg
|
||||
+HKSixMzBpcSh3ZV+P8STvTBuQnVWIZwQrqWS9qRHS1JVEHa3BPPm1BsMnFKSFDwB
|
||||
+ss20H+5D9FaJxx/kwmDxB37JhD5cw+La7ZVbQQzXNaJH2R/eBqxahdMFysNW0cXz
|
||||
+yPCO5YKds/KYM+j6lzWMR2EKtsAhSAY5mqAPWPOQnZUJHO12pwP3WZ0K49KlWW4g
|
||||
+6hMQvnqXgU2NtldmBwmlAAzscHOK5VA5RTzIGxW3hjY9jM5YhpKPssY2d84qdR/V
|
||||
+3vL/tIdx1BihElHAQA==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/433.pem b/repos/system_upgrade/common/files/prod-certs/10.0/433.pem
|
||||
new file mode 100644
|
||||
index 00000000..b75e22c5
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/10.0/433.pem
|
||||
@@ -0,0 +1,37 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGbDCCBFSgAwIBAgIJALDxRLt/tVHrMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxODA4MTkxNloXDTQzMDcx
|
||||
+ODA4MTkxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtlMjM1MjJj
|
||||
+NC1lZjI0LTQ3YjgtYWQzNC1hNDhkYmVmNmIzMWZdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOB9TCB8jAJBgNVHRMEAjAAMEEGDCsGAQQBkggJAYMxAQQxDC9SZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIElCTSB6IFN5c3RlbXMgQmV0YTAbBgwrBgEE
|
||||
+AZIICQGDMQIECwwJMTAuMCBCZXRhMBcGDCsGAQQBkggJAYMxAwQHDAVzMzkweDAs
|
||||
+BgwrBgEEAZIICQGDMQQEHAwacmhlbC0xMCxyaGVsLTEwLWJldGEtczM5MHgwHQYD
|
||||
+VR0OBBYEFGHqILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9A
|
||||
+hK2yHwsmwcNqb9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQAkusR2vZMDVNZ1RpiYgwFI
|
||||
+/eweuntSHLYU3Lp2XtaoBgv4Nkoj9GrX5tMYCHSOr3ZgSQz7J9CByewXqOFvWZe+
|
||||
+9ZbboJ0p+9OYRgP0S2F2QX3vaCyYZP9qkGSY49dKKmF+cpL5TkW+8lRRzEjjInQm
|
||||
+gbv4Us4FR53WSOhqgsuxh8DPyIiJUQhy0KVQMQFkkaLA5v7jPv0BbHCprSfHjFXL
|
||||
+8IyDwE5+OBWsdiIE+9NMHbFRjbi3O7NrZeglKis/OAk9gWvDWT4MnwLNBpFbaV9y
|
||||
+99Likzu80buFRZoNahUtQNVSbOaygT3pNtRBFx7V9k0uwoqirWy+uXDWGOvtImhA
|
||||
+zDPRoKsWqaTK0+ra6f7wk4Q5S5XrfBJWNjvHi0RScVLwdW8hhXp8LAkrQIPuUMky
|
||||
+NHRl+PeS9d6Z/r217+87HIKZBez1GrnK3DQOb2niLX2o4K1T32KiHTY/1kvRdA5Z
|
||||
+itPT50BTNEzVQsMEDDlQwOcCqAjhNvJEYhkKM705lfytFiN5Twp/5hAUj+tGx5z7
|
||||
+KRPqnKwts/pGav2wRUpcSRtfQNIsn7XIB7qAEqnG9trG8MZN+iVggWJsu2IscJw+
|
||||
+dgDcYo7kV0d6fqN8LE0RaLxg6/NfyvrI3nXSvE4E+fbvDVvNZTmpAmWFOgOYjOyw
|
||||
+j5GU66xmQPJ//rMJZXW/Ug==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/479.pem b/repos/system_upgrade/common/files/prod-certs/10.0/479.pem
|
||||
new file mode 100644
|
||||
index 00000000..1ea1cd3d
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/10.0/479.pem
|
||||
@@ -0,0 +1,35 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGFTCCA/2gAwIBAgIJALDxRLt/tVDQMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxOTE2MzQwOFoXDTQzMDcx
|
||||
+OTE2MzQwOFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxZDg0ZDQ5
|
||||
+Ny1jZmNmLTQxNjEtOTM0YS0zNzk2MDU4M2ZmZGZdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOBnjCBmzAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD
|
||||
+OS40MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM
|
||||
+FHJoZWwtOSxyaGVsLTkteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQCGUDPFBrLs
|
||||
+sK/RITJothRhKhKNX3zu9TWRG0WKxszCx/y7c4yEfH1TV/yd7BNB2RubaoayWz8E
|
||||
+TQjcRW8BnVu9JrlbdpWJm4eN+dOOpcESPilLnkz4Tr0WYDsT1/jk/uiorK4h21S0
|
||||
+EwMicuSuEmm0OUEX0zj2X/IyveFRtpJpH/JktznCkvexysc1JRzqMCbal8GipRX9
|
||||
+Xf7Oko6QiaUpu5GDLN2OXhizYHdR2f3l+Sn2cScsbi3fSVv+DLsnaz6J0kZ4U8q3
|
||||
+lYk/ZYifJjG+/7cv3e+usixpmK/qYlpOvunUDnqOkDfUs4/4bZjH8e8CdqJk4YvU
|
||||
+RRtLr7muXEJsaqF7lxAViXnKxT/z/+1kOgN/+Oyzjs4QDsk2HQpWHFgNYSSG9Mmz
|
||||
+PUS8tk2T0j5sN55X7QRRl5c0oqrBU5XaWyL26QcfONYcR8dBaKawjxg8CI9KzsYY
|
||||
+sb2jjS+fBkB1OI2c6z4OZRd+0N6FQ6gq++KiXOLFvi/QSFNi9Veb56c5tR2l6fBk
|
||||
+0pSH06Gg2s0aQg20NdMIr+HaYsVdJRsE1FgQ2tlfFx9rGkcqhgwV3Za/abgtRb2o
|
||||
+YVwps28DLm41DXf5DnXK+BXFHrtR/3YAZtga+R7OL/RvcF0kc2kudlxqd/8Y33uL
|
||||
+nqnoATy31FTW4J4rEfanJTQgTpatZmbaLQ==
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/486.pem b/repos/system_upgrade/common/files/prod-certs/10.0/486.pem
|
||||
new file mode 100644
|
||||
index 00000000..2be739ff
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/prod-certs/10.0/486.pem
|
||||
@@ -0,0 +1,37 @@
|
||||
+-----BEGIN CERTIFICATE-----
|
||||
+MIIGZzCCBE+gAwIBAgIJALDxRLt/tVHsMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
|
||||
+VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
+YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
+IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
+ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxODA4MTkxNloXDTQzMDcx
|
||||
+ODA4MTkxNlowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtjZDA5Nzdl
|
||||
+Ni0xOWY4LTQ5YTUtODc0My0yODgyNjNhNjA0ZDVdMIICIjANBgkqhkiG9w0BAQEF
|
||||
+AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
+sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
+8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
+RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
+5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
+xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
+QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
+yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
+1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
+5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
+ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
+AwEAAaOB8DCB7TAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYNmAQQqDChSZWQgSGF0
|
||||
+IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NCBCZXRhMBsGDCsGAQQBkggJAYNm
|
||||
+AgQLDAkxMC4wIEJldGEwGAYMKwYBBAGSCAkBg2YDBAgMBng4Nl82NDAtBgwrBgEE
|
||||
+AZIICQGDZgQEHQwbcmhlbC0xMCxyaGVsLTEwLWJldGEteDg2XzY0MB0GA1UdDgQW
|
||||
+BBRh6iC1NXyvZ2Q6/2sI5hB40M0flTAfBgNVHSMEGDAWgBSW/bscQED/QIStsh8L
|
||||
+JsHDam/WfDANBgkqhkiG9w0BAQsFAAOCAgEAHFD1uIi2AXILNB5JKwSJ5boz6/K7
|
||||
+MpIqP5mSXPw9Cr4Ie9FiwlZuQIGPp6AUOb7RcDpLxZt9eNYrsQMmrXzo4qagIax/
|
||||
+NGEYKOrqDxeH4T0r9wLnARxQg1mntXzGkO6kSKIRpiGJlsBXEPAX9k4WaqNlQScu
|
||||
+QWjtTp6E3U3xZLb74TPS708ok+xSm1ZehPJZp53N8JQigtLxfOnv+7xQdBD78YOE
|
||||
+ldPzznhoHP5iJeACRFC+b83asWDwQAEbPv7d4ZoLCfacOvkt28Hm+kXa9zBDqgBD
|
||||
+nUv1wsZS2aPhWMDwnV9qC0UPCdIMbVNH9TjkBe2yoTsz/cmgCe/D85DZyBrZabV7
|
||||
+U36dg0rdKqoR8hRnlfbuzdiNZmmdMAinI56t/U++yGiGYobxmftPOKt46zFpcA3W
|
||||
+Zqdl1Qg2zPcWxyjHV4xF0vtiEIkj1xlm0u2fsp8xfdA1wzj3Cqyn4l8R08eGLUBQ
|
||||
+G4GoKaaxTOjfETU4ASRr+32UJCfervM0PK8GqMgxvOc9Yw3snhJVbG4mMWrR+NVp
|
||||
+7r6DpzfVO9Kfbrc1yLnCK56MxBQCIwh96RDPhHkaO/xPrD2xX6/A5+oMDWVzJW4N
|
||||
+VIhz/i0eBqFX4QINkPLrmo/AHMBpfTBqaIV88pBFHhT5ZWws9kaad0axpBXV4BrT
|
||||
+2LyAgMKD4NjUsM0=
|
||||
+-----END CERTIFICATE-----
|
||||
diff --git a/repos/system_upgrade/common/files/rpm-gpg/10/RPM-GPG-KEY-redhat-release b/repos/system_upgrade/common/files/rpm-gpg/10/RPM-GPG-KEY-redhat-release
|
||||
new file mode 100644
|
||||
index 00000000..a59198ea
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/rpm-gpg/10/RPM-GPG-KEY-redhat-release
|
||||
@@ -0,0 +1,69 @@
|
||||
+The following public key can be used to verify RPM packages built and
|
||||
+signed by Red Hat, Inc. This key is used for packages in Red Hat
|
||||
+products shipped after November 2009, and for all updates to those
|
||||
+products.
|
||||
+
|
||||
+Questions about this key should be sent to security@redhat.com.
|
||||
+
|
||||
+pub 4096R/FD431D51 2009-10-22
|
||||
+ Key fingerprint = 567E 347A D004 4ADE 55BA 8A5F 199E 2F91 FD43 1D51
|
||||
+uid Red Hat, Inc. (release key 2) <security@redhat.com>
|
||||
+
|
||||
+-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
+Version: GnuPG v2.0.22 (GNU/Linux)
|
||||
+
|
||||
+mQINBErgSTsBEACh2A4b0O9t+vzC9VrVtL1AKvUWi9OPCjkvR7Xd8DtJxeeMZ5eF
|
||||
+0HtzIG58qDRybwUe89FZprB1ffuUKzdE+HcL3FbNWSSOXVjZIersdXyH3NvnLLLF
|
||||
+0DNRB2ix3bXG9Rh/RXpFsNxDp2CEMdUvbYCzE79K1EnUTVh1L0Of023FtPSZXX0c
|
||||
+u7Pb5DI5lX5YeoXO6RoodrIGYJsVBQWnrWw4xNTconUfNPk0EGZtEnzvH2zyPoJh
|
||||
+XGF+Ncu9XwbalnYde10OCvSWAZ5zTCpoLMTvQjWpbCdWXJzCm6G+/hx9upke546H
|
||||
+5IjtYm4dTIVTnc3wvDiODgBKRzOl9rEOCIgOuGtDxRxcQkjrC+xvg5Vkqn7vBUyW
|
||||
+9pHedOU+PoF3DGOM+dqv+eNKBvh9YF9ugFAQBkcG7viZgvGEMGGUpzNgN7XnS1gj
|
||||
+/DPo9mZESOYnKceve2tIC87p2hqjrxOHuI7fkZYeNIcAoa83rBltFXaBDYhWAKS1
|
||||
+PcXS1/7JzP0ky7d0L6Xbu/If5kqWQpKwUInXtySRkuraVfuK3Bpa+X1XecWi24JY
|
||||
+HVtlNX025xx1ewVzGNCTlWn1skQN2OOoQTV4C8/qFpTW6DTWYurd4+fE0OJFJZQF
|
||||
+buhfXYwmRlVOgN5i77NTIJZJQfYFj38c/Iv5vZBPokO6mffrOTv3MHWVgQARAQAB
|
||||
+tDNSZWQgSGF0LCBJbmMuIChyZWxlYXNlIGtleSAyKSA8c2VjdXJpdHlAcmVkaGF0
|
||||
+LmNvbT6JAjYEEwEIACACGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCSuBJPAAK
|
||||
+CRAZni+R/UMdUfIkD/9m3HWv07uJG26R3KBexTo2FFu3rmZs+m2nfW8R3dBX+k0o
|
||||
+AOFpgJCsNgKwU81LOPrkMN19G0+Yn/ZTCDD7cIQ7dhYuDyEX97xh4une/EhnnRuh
|
||||
+ASzR+1xYbj/HcYZIL9kbslgpebMn+AhxbUTQF/mziug3hLidR9Bzvygq0Q09E11c
|
||||
+OZL4BU6J2HqxL+9m2F+tnLdfhL7MsAq9nbmWAOpkbGefc5SXBSq0sWfwoes3X3yD
|
||||
+Q8B5Xqr9AxABU7oUB+wRqvY69ZCxi/BhuuJCUxY89ZmwXfkVxeHl1tYfROUwOnJO
|
||||
+GYSbI/o41KBK4DkIiDcT7QqvqvCyudnxZdBjL2QU6OrIJvWmKs319qSF9m3mXRSt
|
||||
+ZzWtB89Pj5LZ6cdtuHvW9GO4qSoBLmAfB313pGkbgi1DE6tqCLHlA0yQ8zv99OWV
|
||||
+cMDGmS7tVTZqfX1xQJ0N3bNORQNtikJC3G+zBCJzIeZleeDlMDQcww00yWU1oE7/
|
||||
+To2UmykMGc7o9iggFWR2g0PIcKsA/SXdRKWPqCHG2uKHBvdRTQGupdXQ1sbV+AHw
|
||||
+ycyA/9H/mp/NUSNM2cqnBDcZ6GhlHt59zWtEveiuU5fpTbp4GVcFXbW8jStj8j8z
|
||||
+1HI3cywZO8+YNPzqyx0JWsidXGkfzkPHyS4jTG84lfu2JG8m/nqLnRSeKpl20Q==
|
||||
+=79bX
|
||||
+-----END PGP PUBLIC KEY BLOCK-----
|
||||
+-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
+
|
||||
+mQINBGIpIp4BEAC/o5e1WzLIsS6/JOQCs4XYATYTcf6B6ALzcP05G0W3uRpUQSrL
|
||||
+FRKNrU8ZCelm/B+XSh2ljJNeklp2WLxYENDOsftDXGoyLr2hEkI5OyK267IHhFNJ
|
||||
+g+BN+T5Cjh4ZiiWij6o9F7x2ZpxISE9M4iI80rwSv1KOnGSw5j2zD2EwoMjTVyVE
|
||||
+/t3s5XJxnDclB7ZqL+cgjv0mWUY/4+b/OoRTkhq7b8QILuZp75Y64pkrndgakm1T
|
||||
+8mAGXV02mEzpNj9DyAJdUqa11PIhMJMxxHOGHJ8CcHZ2NJL2e7yJf4orTj+cMhP5
|
||||
+LzJcVlaXnQYu8Zkqa0V6J1Qdj8ZXL72QsmyicRYXAtK9Jm5pvBHuYU2m6Ja7dBEB
|
||||
+Vkhe7lTKhAjkZC5ErPmANNS9kPdtXCOpwN1lOnmD2m04hks3kpH9OTX7RkTFUSws
|
||||
+eARAfRID6RLfi59B9lmAbekecnsMIFMx7qR7ZKyQb3GOuZwNYOaYFevuxusSwCHv
|
||||
+4FtLDIhk+Fge+EbPdEva+VLJeMOb02gC4V/cX/oFoPkxM1A5LHjkuAM+aFLAiIRd
|
||||
+Np/tAPWk1k6yc+FqkcDqOttbP4ciiXb9JPtmzTCbJD8lgH0rGp8ufyMXC9x7/dqX
|
||||
+TjsiGzyvlMnrkKB4GL4DqRFl8LAR02A3846DD8CAcaxoXggL2bJCU2rgUQARAQAB
|
||||
+tDVSZWQgSGF0LCBJbmMuIChhdXhpbGlhcnkga2V5IDMpIDxzZWN1cml0eUByZWRo
|
||||
+YXQuY29tPokCUgQTAQgAPBYhBH5GJCWMQGU11W1vE1BU5KRaY0CzBQJiKSKeAhsD
|
||||
+BQsJCAcCAyICAQYVCgkICwIEFgIDAQIeBwIXgAAKCRBQVOSkWmNAsyBfEACuTN/X
|
||||
+YR+QyzeRw0pXcTvMqzNE4DKKr97hSQEwZH1/v1PEPs5O3psuVUm2iam7bqYwG+ry
|
||||
+EskAgMHi8AJmY0lioQD5/LTSLTrM8UyQnU3g17DHau1NHIFTGyaW4a7xviU4C2+k
|
||||
+c6X0u1CPHI1U4Q8prpNcfLsldaNYlsVZtUtYSHKPAUcswXWliW7QYjZ5tMSbu8jR
|
||||
+OMOc3mZuf0fcVFNu8+XSpN7qLhRNcPv+FCNmk/wkaQfH4Pv+jVsOgHqkV3aLqJeN
|
||||
+kNUnpyEKYkNqo7mNfNVWOcl+Z1KKKwSkIi3vg8maC7rODsy6IX+Y96M93sqYDQom
|
||||
+aaWue2gvw6thEoH4SaCrCL78mj2YFpeg1Oew4QwVcBnt68KOPfL9YyoOicNs4Vuu
|
||||
+fb/vjU2ONPZAeepIKA8QxCETiryCcP43daqThvIgdbUIiWne3gae6eSj0EuUPoYe
|
||||
+H5g2Lw0qdwbHIOxqp2kvN96Ii7s1DK3VyhMt/GSPCxRnDRJ8oQKJ2W/I1IT5VtiU
|
||||
+zMjjq5JcYzRPzHDxfVzT9CLeU/0XQ+2OOUAiZKZ0dzSyyVn8xbpviT7iadvjlQX3
|
||||
+CINaPB+d2Kxa6uFWh+ZYOLLAgZ9B8NKutUHpXN66YSfe79xFBSFWKkJ8cSIMk13/
|
||||
+Ifs7ApKlKCCRDpwoDqx/sjIaj1cpOfLHYjnefg==
|
||||
+=UZd/
|
||||
+-----END PGP PUBLIC KEY BLOCK-----
|
||||
diff --git a/repos/system_upgrade/common/files/rpm-gpg/10beta/RPM-GPG-KEY-redhat-release b/repos/system_upgrade/common/files/rpm-gpg/10beta/RPM-GPG-KEY-redhat-release
|
||||
new file mode 100644
|
||||
index 00000000..1f46baa1
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/common/files/rpm-gpg/10beta/RPM-GPG-KEY-redhat-release
|
||||
@@ -0,0 +1,30 @@
|
||||
+-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
+Version: GnuPG v1.2.6 (GNU/Linux)
|
||||
+
|
||||
+mQINBEmkAzABEAC2/c7bP1lHQ3XScxbIk0LQWe1YOiibQBRLwf8Si5PktgtuPibT
|
||||
+kKpZjw8p4D+fM7jD1WUzUE0X7tXg2l/eUlMM4dw6XJAQ1AmEOtlwSg7rrMtTvM0A
|
||||
+BEtI7Km6fC6sU6RtBMdcqD1cH/6dbsfh8muznVA7UlX+PRBHVzdWzj6y8h84dBjo
|
||||
+gzcbYu9Hezqgj/lLzicqsSZPz9UdXiRTRAIhp8V30BD8uRaaa0KDDnD6IzJv3D9P
|
||||
+xQWbFM4Z12GN9LyeZqmD7bpKzZmXG/3drvfXVisXaXp3M07t3NlBa3Dt8NFIKZ0D
|
||||
+FRXBz5bvzxRVmdH6DtkDWXDPOt+Wdm1rZrCOrySFpBZQRpHw12eo1M1lirANIov7
|
||||
+Z+V1Qh/aBxj5EUu32u9ZpjAPPNtQF6F/KjaoHHHmEQAuj4DLex4LY646Hv1rcv2i
|
||||
+QFuCdvLKQGSiFBrfZH0j/IX3/0JXQlZzb3MuMFPxLXGAoAV9UP/Sw/WTmAuTzFVm
|
||||
+G13UYFeMwrToOiqcX2VcK0aC1FCcTP2z4JW3PsWvU8rUDRUYfoXovc7eg4Vn5wHt
|
||||
+0NBYsNhYiAAf320AUIHzQZYi38JgVwuJfFu43tJZE4Vig++RQq6tsEx9Ftz3EwRR
|
||||
+fJ9z9mEvEiieZm+vbOvMvIuimFVPSCmLH+bI649K8eZlVRWsx3EXCVb0nQARAQAB
|
||||
+tDBSZWQgSGF0LCBJbmMuIChiZXRhIGtleSAyKSA8c2VjdXJpdHlAcmVkaGF0LmNv
|
||||
+bT6JAjYEEwECACAFAkpSM+cCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCT
|
||||
+ioDK8hVB6/9tEAC0+KmzeKceXQ/GTUoU6jy9vtkFCFrmv+c7ol4XpdTt0QhqBOwy
|
||||
+6m2mKWwmm8KfYfy0cADQ4y/EcoXl7FtFBwYmkCuEQGXhTDn9DvVjhooIq59LEMBQ
|
||||
+OW879RwwzRIZ8ebbjMUjDPF5MfPQqP2LBu9N4KvXlZp4voykwuuaJ+cbsKZR6pZ6
|
||||
+0RQKPHKP+NgUFC0fff7XY9cuOZZWFAeKRhLN2K7bnRHKxp+kELWb6R9ZfrYwZjWc
|
||||
+MIPbTd1khE53L4NTfpWfAnJRtkPSDOKEGVlVLtLq4HEAxQt07kbslqISRWyXER3u
|
||||
+QOJj64D1ZiIMz6t6uZ424VE4ry9rBR0Jz55cMMx5O/ni9x3xzFUgH8Su2yM0r3jE
|
||||
+Rf24+tbOaPf7tebyx4OKe+JW95hNVstWUDyGbs6K9qGfI/pICuO1nMMFTo6GqzQ6
|
||||
+DwLZvJ9QdXo7ujEtySZnfu42aycaQ9ZLC2DOCQCUBY350Hx6FLW3O546TAvpTfk0
|
||||
+B6x+DV7mJQH7MGmRXQsE7TLBJKjq28Cn4tVp04PmybQyTxZdGA/8zY6pPl6xyVMH
|
||||
+V68hSBKEVT/rlouOHuxfdmZva1DhVvUC6Xj7+iTMTVJUAq/4Uyn31P1OJmA2a0PT
|
||||
+CAqWkbJSgKFccsjPoTbLyxhuMSNkEZFHvlZrSK9vnPzmfiRH0Orx3wYpMQ==
|
||||
+=21pb
|
||||
+-----END PGP PUBLIC KEY BLOCK-----
|
||||
+
|
||||
--
|
||||
2.42.0
|
||||
|
68
0077-Install-util-linux-into-the-target-container.patch
Normal file
68
0077-Install-util-linux-into-the-target-container.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From da6f0248c97aed46d519d97d0f334fd7bd44f86e Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Fri, 7 Jun 2024 10:20:35 +0200
|
||||
Subject: [PATCH 77/92] Install util-linux into the target container
|
||||
|
||||
The util-linug RPM is not installed automatically as a dependency
|
||||
when:
|
||||
* upgrading 9 -> 10
|
||||
* or when dnf is configured to: install_weak_deps=False
|
||||
(affecting all upgrade paths)
|
||||
|
||||
Missing util-linux package leads to error due to missing `su` command
|
||||
inside the container.
|
||||
|
||||
jira: https://issues.redhat.com/browse/RHEL-43978
|
||||
---
|
||||
.../actors/targetuserspacecreator/libraries/userspacegen.py | 2 +-
|
||||
.../tests/unit_test_targetuserspacecreator.py | 2 +-
|
||||
repos/system_upgrade/common/libraries/tests/test_rpms.py | 2 +-
|
||||
repos/system_upgrade/el9toel10/actors/.gitkeep | 0
|
||||
4 files changed, 3 insertions(+), 3 deletions(-)
|
||||
delete mode 100644 repos/system_upgrade/el9toel10/actors/.gitkeep
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
index 6e8214dd..4a61ccb4 100644
|
||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
@@ -89,7 +89,7 @@ class _InputData(object):
|
||||
It doesn't consume TargetRepositories, which are consumed in the
|
||||
own function.
|
||||
"""
|
||||
- self.packages = {'dnf', 'dnf-command(config-manager)'}
|
||||
+ self.packages = {'dnf', 'dnf-command(config-manager)', 'util-linux'}
|
||||
self.files = []
|
||||
_cftuples = set()
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/tests/unit_test_targetuserspacecreator.py b/repos/system_upgrade/common/actors/targetuserspacecreator/tests/unit_test_targetuserspacecreator.py
|
||||
index 19b760a1..826ae06d 100644
|
||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/tests/unit_test_targetuserspacecreator.py
|
||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/tests/unit_test_targetuserspacecreator.py
|
||||
@@ -1001,7 +1001,7 @@ def test_consume_data(monkeypatch, raised, no_rhsm, testdata):
|
||||
# do not write never into testdata inside the test !!
|
||||
xfs = testdata.xfs
|
||||
custom_repofiles = testdata.custom_repofiles
|
||||
- _exp_pkgs = {'dnf', 'dnf-command(config-manager)'}
|
||||
+ _exp_pkgs = {'dnf', 'dnf-command(config-manager)', 'util-linux'}
|
||||
_exp_files = []
|
||||
|
||||
def _get_pkgs(msg):
|
||||
diff --git a/repos/system_upgrade/common/libraries/tests/test_rpms.py b/repos/system_upgrade/common/libraries/tests/test_rpms.py
|
||||
index 955ab05c..a527407d 100644
|
||||
--- a/repos/system_upgrade/common/libraries/tests/test_rpms.py
|
||||
+++ b/repos/system_upgrade/common/libraries/tests/test_rpms.py
|
||||
@@ -61,7 +61,7 @@ def test_get_leapp_packages(major_version, component, result, monkeypatch):
|
||||
r"component nosuchcomponent is unknown, available choices are \['cockpit', 'framework', 'repository', 'tools']")
|
||||
),
|
||||
('nosuchversion', "framework",
|
||||
- (ValueError, r"major_version nosuchversion is unknown, available choices are \['7', '8']")),
|
||||
+ (ValueError, r"major_version nosuchversion is unknown, available choices are \['7', '8', '9']")),
|
||||
('nosuchversion', False,
|
||||
(ValueError, r"At least one component must be specified when calling this function,"
|
||||
r" available choices are \['cockpit', 'framework', 'repository', 'tools']")),
|
||||
diff --git a/repos/system_upgrade/el9toel10/actors/.gitkeep b/repos/system_upgrade/el9toel10/actors/.gitkeep
|
||||
deleted file mode 100644
|
||||
index e69de29b..00000000
|
||||
--
|
||||
2.42.0
|
||||
|
38
0078-Fix-LEAPP_IPU_IN_PROGRESS-9to1-9to10.patch
Normal file
38
0078-Fix-LEAPP_IPU_IN_PROGRESS-9to1-9to10.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From b6e4f2b8b793b07b49b13d7d291dd03a27b049f7 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Fri, 28 Jun 2024 20:33:22 +0200
|
||||
Subject: [PATCH 78/92] Fix LEAPP_IPU_IN_PROGRESS (9to1 -> 9to10)
|
||||
|
||||
Implementation of processing versions inside commands/command_utils.py
|
||||
has been bugy. One of function returned string instread of list
|
||||
which led to the situation that only the first character has been
|
||||
returned instead of the first chunk. This has been ok for releases
|
||||
where major version is just one decimal. However since el 10 it has
|
||||
been buggy and generated set envar:
|
||||
LEAPP_IPU_IN_PROGRESS=9to1
|
||||
instead of
|
||||
LEAPP_IPU_IN_PROGRESS=9to10
|
||||
|
||||
Now it should be working correctly again.
|
||||
|
||||
jira: OAMG-11260
|
||||
---
|
||||
commands/command_utils.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/commands/command_utils.py b/commands/command_utils.py
|
||||
index 338978dd..4f6f99eb 100644
|
||||
--- a/commands/command_utils.py
|
||||
+++ b/commands/command_utils.py
|
||||
@@ -26,7 +26,7 @@ def check_version(version):
|
||||
"""
|
||||
if not re.match(VERSION_REGEX, version):
|
||||
raise CommandError('Unexpected format of target version: {}'.format(version))
|
||||
- return version.split('.')[0]
|
||||
+ return version.split('.')
|
||||
|
||||
|
||||
def get_major_version(version):
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 79775dac818a4a2328e19d861d549815c34d9210 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Mon, 15 Jul 2024 06:01:21 +0200
|
||||
Subject: [PATCH 79/92] Add unit tests for config.version.get_major_version()
|
||||
|
||||
Based on the bug fixed in the previuos commit, we are rather adding
|
||||
unit-tests for get_major_version() function in common libraries,
|
||||
to prevent possible issues in future there too.
|
||||
---
|
||||
.../common/libraries/config/tests/test_version.py | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
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 4ef7e506..303e4de5 100644
|
||||
--- a/repos/system_upgrade/common/libraries/config/tests/test_version.py
|
||||
+++ b/repos/system_upgrade/common/libraries/config/tests/test_version.py
|
||||
@@ -121,3 +121,17 @@ def test_is_rhel_realtime(monkeypatch, result, kernel, release_id):
|
||||
monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(src_ver='7.9', kernel=kernel,
|
||||
release_id=release_id))
|
||||
assert version.is_rhel_realtime() == result
|
||||
+
|
||||
+
|
||||
+@pytest.mark.parametrize('result,sys_version', [
|
||||
+ ('7', '7.1.0'),
|
||||
+ ('7', '7.9'),
|
||||
+ ('7', '7'),
|
||||
+ ('8', '8.10'),
|
||||
+ ('10', '10.0'),
|
||||
+ ('10', '10.10.0'),
|
||||
+ ('10', '10.0'),
|
||||
+ ('10', '10'),
|
||||
+])
|
||||
+def test_get_major_version(result, sys_version):
|
||||
+ assert version.get_major_version(sys_version) == result
|
||||
--
|
||||
2.42.0
|
||||
|
504
0080-Add-artificial-9-10-repomaping-data.patch
Normal file
504
0080-Add-artificial-9-10-repomaping-data.patch
Normal file
@ -0,0 +1,504 @@
|
||||
From a1f60899ea72f55ed878b6a5e307dda325d30e28 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Fri, 19 Apr 2024 15:22:18 +0200
|
||||
Subject: [PATCH 80/92] Add artificial 9->10 repomaping data
|
||||
|
||||
Note that the data is artificial, meaning it's not generated through
|
||||
repomapping generator and therefore not verified by it against the
|
||||
source of truth. The assumption is that the repos will be similar to how
|
||||
they are on RHEL 9 and are basically copied (redundant channels and rhui
|
||||
repos are dropped).
|
||||
---
|
||||
etc/leapp/files/repomap.json | 469 +++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 469 insertions(+)
|
||||
|
||||
diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json
|
||||
index 8a490b84..58e6a023 100644
|
||||
--- a/etc/leapp/files/repomap.json
|
||||
+++ b/etc/leapp/files/repomap.json
|
||||
@@ -233,6 +233,66 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
+ },
|
||||
+ {
|
||||
+ "source_major_version": "9",
|
||||
+ "target_major_version": "10",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "source": "rhel9-BaseOS",
|
||||
+ "target": [
|
||||
+ "rhel10-BaseOS"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-AppStream",
|
||||
+ "target": [
|
||||
+ "rhel10-AppStream"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-CRB",
|
||||
+ "target": [
|
||||
+ "rhel10-CRB"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-Supplementary",
|
||||
+ "target": [
|
||||
+ "rhel10-Supplementary"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-RT",
|
||||
+ "target": [
|
||||
+ "rhel10-RT"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-NFV",
|
||||
+ "target": [
|
||||
+ "rhel10-NFV"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-SAP-NetWeaver",
|
||||
+ "target": [
|
||||
+ "rhel10-SAP-NetWeaver"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-SAP-Solutions",
|
||||
+ "target": [
|
||||
+ "rhel10-SAP-Solutions"
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "source": "rhel9-HighAvailability",
|
||||
+ "target": [
|
||||
+ "rhel10-HighAvailability"
|
||||
+ ]
|
||||
+ }
|
||||
+ ]
|
||||
}
|
||||
],
|
||||
"repositories": [
|
||||
@@ -3999,6 +4059,415 @@
|
||||
"rhui": "alibaba"
|
||||
}
|
||||
]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-BaseOS",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-baseos-beta-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-baseos-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-baseos-beta-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-baseos-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-baseos-beta-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-baseos-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-baseos-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-baseos-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-AppStream",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-appstream-beta-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-appstream-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-appstream-beta-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-appstream-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-appstream-beta-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-appstream-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-appstream-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-appstream-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-CRB",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-beta-for-rhel-10-aarch64-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-beta-for-rhel-10-ppc64le-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-beta-for-rhel-10-s390x-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-beta-for-rhel-10-x86_64-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-for-rhel-10-aarch64-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-for-rhel-10-ppc64le-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-for-rhel-10-s390x-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "codeready-builder-for-rhel-10-x86_64-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-Supplementary",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-supplementary-beta-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-supplementary-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-supplementary-beta-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-supplementary-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-supplementary-beta-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-supplementary-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-supplementary-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-supplementary-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-RT",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-rt-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-rt-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-NFV",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-nfv-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-nfv-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-SAP-NetWeaver",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-sap-netweaver-beta-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-sap-netweaver-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-sap-netweaver-beta-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-sap-netweaver-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-sap-netweaver-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-sap-netweaver-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-SAP-Solutions",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-sap-solutions-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-sap-solutions-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
+ },
|
||||
+ {
|
||||
+ "pesid": "rhel10-HighAvailability",
|
||||
+ "entries": [
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-highavailability-beta-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-aarch64-highavailability-rpms",
|
||||
+ "arch": "aarch64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-highavailability-beta-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-ppc64le-highavailability-rpms",
|
||||
+ "arch": "ppc64le",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-highavailability-beta-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-s390x-highavailability-rpms",
|
||||
+ "arch": "s390x",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-highavailability-beta-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "beta",
|
||||
+ "repo_type": "rpm"
|
||||
+ },
|
||||
+ {
|
||||
+ "major_version": "10",
|
||||
+ "repoid": "rhel-10-for-x86_64-highavailability-rpms",
|
||||
+ "arch": "x86_64",
|
||||
+ "channel": "ga",
|
||||
+ "repo_type": "rpm"
|
||||
+ }
|
||||
+ ]
|
||||
}
|
||||
],
|
||||
"provided_data_streams": [
|
||||
--
|
||||
2.42.0
|
||||
|
10254
0081-Update-PES-data.patch
Normal file
10254
0081-Update-PES-data.patch
Normal file
File diff suppressed because it is too large
Load Diff
56
0082-IPU-9-10-Specify-default-PESIDS-for-el10.patch
Normal file
56
0082-IPU-9-10-Specify-default-PESIDS-for-el10.patch
Normal file
@ -0,0 +1,56 @@
|
||||
From 37388072ea221d9dd9dabc5504140c9a1caeed82 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Fri, 19 Apr 2024 15:31:26 +0200
|
||||
Subject: [PATCH 82/92] IPU 9 -> 10: Specify default PESIDS for el10
|
||||
|
||||
---
|
||||
.../peseventsscanner/libraries/peseventsscanner_repomap.py | 3 ++-
|
||||
.../repositoriesblacklist/libraries/repositoriesblacklist.py | 3 ++-
|
||||
.../setuptargetrepos/libraries/setuptargetrepos_repomap.py | 3 ++-
|
||||
3 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
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 64e1346b..c2976ddf 100644
|
||||
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py
|
||||
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/peseventsscanner_repomap.py
|
||||
@@ -5,7 +5,8 @@ from leapp.libraries.stdlib import api
|
||||
DEFAULT_PESID = {
|
||||
'7': 'rhel7-base',
|
||||
'8': 'rhel8-BaseOS',
|
||||
- '9': 'rhel9-BaseOS'
|
||||
+ '9': 'rhel9-BaseOS',
|
||||
+ '10': 'rhel10-BaseOS'
|
||||
}
|
||||
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/repositoriesblacklist/libraries/repositoriesblacklist.py b/repos/system_upgrade/common/actors/repositoriesblacklist/libraries/repositoriesblacklist.py
|
||||
index b5275610..e22fbee0 100644
|
||||
--- a/repos/system_upgrade/common/actors/repositoriesblacklist/libraries/repositoriesblacklist.py
|
||||
+++ b/repos/system_upgrade/common/actors/repositoriesblacklist/libraries/repositoriesblacklist.py
|
||||
@@ -8,7 +8,8 @@ from leapp.models import CustomTargetRepository, RepositoriesBlacklisted, Reposi
|
||||
UNSUPPORTED_PESIDS = {
|
||||
"7": "rhel7-optional",
|
||||
"8": "rhel8-CRB",
|
||||
- "9": "rhel9-CRB"
|
||||
+ "9": "rhel9-CRB",
|
||||
+ "10": "rhel10-CRB"
|
||||
}
|
||||
|
||||
|
||||
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 64e1346b..c2976ddf 100644
|
||||
--- a/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py
|
||||
+++ b/repos/system_upgrade/common/actors/setuptargetrepos/libraries/setuptargetrepos_repomap.py
|
||||
@@ -5,7 +5,8 @@ from leapp.libraries.stdlib import api
|
||||
DEFAULT_PESID = {
|
||||
'7': 'rhel7-base',
|
||||
'8': 'rhel8-BaseOS',
|
||||
- '9': 'rhel9-BaseOS'
|
||||
+ '9': 'rhel9-BaseOS',
|
||||
+ '10': 'rhel10-BaseOS'
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
29
0083-Skip-directory-hash-files.patch
Normal file
29
0083-Skip-directory-hash-files.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 60f500e59bb92fa80a032f663ee889624fa4a95d Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Thu, 6 Jun 2024 18:17:29 +0200
|
||||
Subject: [PATCH 83/92] Skip "directory-hash" files
|
||||
|
||||
They are not owned by any package and can dynamically grow to
|
||||
a huge amount of files causing hitting open files limit
|
||||
---
|
||||
.../actors/targetuserspacecreator/libraries/userspacegen.py | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
index 4a61ccb4..7d9c4d64 100644
|
||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
||||
@@ -313,6 +313,10 @@ def _get_files_owned_by_rpms(context, dirpath, pkgs=None, recursive=False):
|
||||
for root, _, files in os.walk(searchdir):
|
||||
for filename in files:
|
||||
relpath = os.path.relpath(os.path.join(root, filename), searchdir)
|
||||
+ # "directory-hash" files are not owned by any package and can dynamically
|
||||
+ # grow to a huge amount of files causing hitting open files limit
|
||||
+ if 'directory-hash' in relpath:
|
||||
+ continue
|
||||
file_list.append(relpath)
|
||||
else:
|
||||
file_list = os.listdir(searchdir)
|
||||
--
|
||||
2.42.0
|
||||
|
120
0084-IPU-9-10-Migrate-rebuild-RPM-DB.patch
Normal file
120
0084-IPU-9-10-Migrate-rebuild-RPM-DB.patch
Normal file
@ -0,0 +1,120 @@
|
||||
From 10bda0186b680b56fc6b32ac8fcd099c37f4189c Mon Sep 17 00:00:00 2001
|
||||
From: Michal Reznik <mreznik@redhat.com>
|
||||
Date: Sat, 20 Apr 2024 10:46:43 +0200
|
||||
Subject: [PATCH 84/92] IPU 9 -> 10: Migrate & rebuild RPM DB
|
||||
|
||||
The RPM DB has been moved from /var/lib/rpm to /usr/lib/sysimage/rpm
|
||||
in RHEL 10. Apply the change and create symlink in the original
|
||||
path to the new one as expected.
|
||||
|
||||
Also rebuild the RPM DB to ensure it's compatible with the new RPM
|
||||
version. Previously the RPM DB was being rebuilt during IPU 8 -> 9.
|
||||
However after discussion with RPM SMEs it has been decided that this
|
||||
is actually very reasonable to do always. So applying for any upgrade
|
||||
path but IPU 7 -> 8 (let's do not change this one so much when it's
|
||||
kind of finished).
|
||||
|
||||
Co-authored-by: Matej Matuska <mmatuska@redhat.com>
|
||||
---
|
||||
.../common/libraries/dnfplugin.py | 4 +--
|
||||
.../el9toel10/actors/migraterpmdb/actor.py | 30 +++++++++++++++++++
|
||||
.../migraterpmdb/tests/test_migraterpmdb.py | 11 +++++++
|
||||
repos/system_upgrade/el9toel10/tools/.gitkeep | 0
|
||||
.../el9toel10/tools/migraterpmdb | 4 +++
|
||||
5 files changed, 47 insertions(+), 2 deletions(-)
|
||||
create mode 100644 repos/system_upgrade/el9toel10/actors/migraterpmdb/actor.py
|
||||
create mode 100644 repos/system_upgrade/el9toel10/actors/migraterpmdb/tests/test_migraterpmdb.py
|
||||
delete mode 100644 repos/system_upgrade/el9toel10/tools/.gitkeep
|
||||
create mode 100755 repos/system_upgrade/el9toel10/tools/migraterpmdb
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/dnfplugin.py b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
index d09cb90a..4f0c3a99 100644
|
||||
--- a/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
+++ b/repos/system_upgrade/common/libraries/dnfplugin.py
|
||||
@@ -357,7 +357,7 @@ def install_initramdisk_requirements(packages, target_userspace_info, used_repos
|
||||
mount_binds = ['/:/installroot']
|
||||
with _prepare_transaction(used_repos=used_repos, target_userspace_info=target_userspace_info,
|
||||
binds=mount_binds) as (context, target_repoids, _unused):
|
||||
- if get_target_major_version() == '9':
|
||||
+ if int(get_target_major_version()) >= 9:
|
||||
_rebuild_rpm_db(context)
|
||||
repos_opt = [['--enablerepo', repo] for repo in target_repoids]
|
||||
repos_opt = list(itertools.chain(*repos_opt))
|
||||
@@ -446,7 +446,7 @@ def perform_transaction_install(target_userspace_info, storage_info, used_repos,
|
||||
# set like that, however seatbelt is a good thing.
|
||||
dnfconfig.exclude_leapp_rpms(context, disable_plugins)
|
||||
|
||||
- if get_target_major_version() == '9':
|
||||
+ if int(get_target_major_version()) >= 9:
|
||||
_rebuild_rpm_db(context, root='/installroot')
|
||||
_transaction(
|
||||
context=context, stage='upgrade', target_repoids=target_repoids, plugin_info=plugin_info,
|
||||
diff --git a/repos/system_upgrade/el9toel10/actors/migraterpmdb/actor.py b/repos/system_upgrade/el9toel10/actors/migraterpmdb/actor.py
|
||||
new file mode 100644
|
||||
index 00000000..80adbeb3
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el9toel10/actors/migraterpmdb/actor.py
|
||||
@@ -0,0 +1,30 @@
|
||||
+from leapp.actors import Actor
|
||||
+from leapp.models import DNFWorkaround
|
||||
+from leapp.tags import FactsPhaseTag, IPUWorkflowTag
|
||||
+
|
||||
+
|
||||
+class MigrateRPMDB(Actor):
|
||||
+ """
|
||||
+ Register a workaround to migrate RPM DB during the upgrade.
|
||||
+
|
||||
+ The RPM DB has been moved from /var/lib/rpm to /usr/lib/sysimage/rpm
|
||||
+ in RHEL 10. So register "migraterpmdb" script to handle it during various
|
||||
+ parts of the upgrade process. The script moves the dir and create symlink
|
||||
+ /var/lib/rpm -> /usr/lib/sysimage/rpm.
|
||||
+
|
||||
+ Note that we realized we should also rebuild the RPM DB, however this is
|
||||
+ handled already in common upgrade repository. So deal here just with paths.
|
||||
+ """
|
||||
+
|
||||
+ name = 'migrate_rpm_db'
|
||||
+ consumes = ()
|
||||
+ produces = (DNFWorkaround,)
|
||||
+ tags = (IPUWorkflowTag, FactsPhaseTag)
|
||||
+
|
||||
+ def process(self):
|
||||
+ self.produce(
|
||||
+ DNFWorkaround(
|
||||
+ display_name="Migrate RPM DB",
|
||||
+ script_path=self.get_tool_path("migraterpmdb"),
|
||||
+ )
|
||||
+ )
|
||||
diff --git a/repos/system_upgrade/el9toel10/actors/migraterpmdb/tests/test_migraterpmdb.py b/repos/system_upgrade/el9toel10/actors/migraterpmdb/tests/test_migraterpmdb.py
|
||||
new file mode 100644
|
||||
index 00000000..c66ad68e
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el9toel10/actors/migraterpmdb/tests/test_migraterpmdb.py
|
||||
@@ -0,0 +1,11 @@
|
||||
+import os.path
|
||||
+
|
||||
+from leapp.models import DNFWorkaround
|
||||
+
|
||||
+
|
||||
+def test_migraterpmdb(current_actor_context):
|
||||
+ current_actor_context.run()
|
||||
+ assert len(current_actor_context.consume(DNFWorkaround)) == 1
|
||||
+ assert current_actor_context.consume(DNFWorkaround)[0].display_name == 'Migrate RPM DB'
|
||||
+ assert os.path.basename(current_actor_context.consume(DNFWorkaround)[0].script_path) == 'migraterpmdb'
|
||||
+ assert os.path.exists(current_actor_context.consume(DNFWorkaround)[0].script_path)
|
||||
diff --git a/repos/system_upgrade/el9toel10/tools/.gitkeep b/repos/system_upgrade/el9toel10/tools/.gitkeep
|
||||
deleted file mode 100644
|
||||
index e69de29b..00000000
|
||||
diff --git a/repos/system_upgrade/el9toel10/tools/migraterpmdb b/repos/system_upgrade/el9toel10/tools/migraterpmdb
|
||||
new file mode 100755
|
||||
index 00000000..16700645
|
||||
--- /dev/null
|
||||
+++ b/repos/system_upgrade/el9toel10/tools/migraterpmdb
|
||||
@@ -0,0 +1,4 @@
|
||||
+#!/usr/bin/bash
|
||||
+
|
||||
+mv /var/lib/rpm /usr/lib/sysimage/rpm
|
||||
+ln -sfr /usr/lib/sysimage/rpm /var/lib/rpm
|
||||
--
|
||||
2.42.0
|
||||
|
26
0085-Define-empty-obsoleted-RPM-GPG-keys-for-RHEL-10.patch
Normal file
26
0085-Define-empty-obsoleted-RPM-GPG-keys-for-RHEL-10.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From ba58aa90fa500fcbf2d1ca362074192324201ff6 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Thu, 27 Jun 2024 15:42:53 +0200
|
||||
Subject: [PATCH 85/92] Define empty obsoleted RPM GPG keys for RHEL 10
|
||||
|
||||
No keys will be obosoleted, however it's expected to define the list.
|
||||
---
|
||||
.../common/files/distro/rhel/gpg-signatures.json | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
index 0d40e001..8a5471a8 100644
|
||||
--- a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
+++ b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||
@@ -13,6 +13,7 @@
|
||||
"gpg-pubkey-37017186-45761324",
|
||||
"gpg-pubkey-db42a60e-37ea5438"
|
||||
],
|
||||
- "9": ["gpg-pubkey-d4082792-5b32db75"]
|
||||
+ "9": ["gpg-pubkey-d4082792-5b32db75"],
|
||||
+ "10": []
|
||||
}
|
||||
}
|
||||
--
|
||||
2.42.0
|
||||
|
66
0086-Add-9to10-to-GH-unit-test-action.patch
Normal file
66
0086-Add-9to10-to-GH-unit-test-action.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From 4778d9646f8ef333422e772c3222aad7f8a0449c Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Thu, 27 Jun 2024 16:18:31 +0200
|
||||
Subject: [PATCH 86/92] Add 9to10 to GH unit test action
|
||||
|
||||
---
|
||||
.github/workflows/unit-tests.yml | 19 +++++++++++++++----
|
||||
utils/container-tests/Containerfile.ubi9 | 4 +++-
|
||||
2 files changed, 18 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
|
||||
index e4b4d173..f73a61e9 100644
|
||||
--- a/.github/workflows/unit-tests.yml
|
||||
+++ b/.github/workflows/unit-tests.yml
|
||||
@@ -15,18 +15,29 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
scenarios:
|
||||
+ # 9to10
|
||||
+ - name: Run unit tests for el9toel10 and common repositories on python 3.12
|
||||
+ python: python3.12
|
||||
+ repos: 'el9toel10,common'
|
||||
+ container: ubi9
|
||||
+ - name: Run unit tests for el9toel10 and common repositories on python 3.9
|
||||
+ python: python3.9
|
||||
+ repos: 'el9toel10,common'
|
||||
+ container: ubi9
|
||||
+ # 8to9
|
||||
- name: Run unit tests for el8toel9 and common repositories on python 3.9
|
||||
python: python3.9
|
||||
repos: 'el8toel9,common'
|
||||
+ container: ubi9
|
||||
+ - name: Run unit tests for el8toel9 and common repositories on python 3.6
|
||||
+ python: python3.6
|
||||
+ repos: 'el8toel9,common'
|
||||
container: ubi8
|
||||
+ # 7to8
|
||||
- name: Run unit tests for el7toel8 and common repositories on python 3.6
|
||||
python: python3.6
|
||||
repos: 'el7toel8,common'
|
||||
container: ubi8
|
||||
- - name: Run unit tests for el8toel9 and common repositories on python 3.6
|
||||
- python: python3.6
|
||||
- repos: 'el8toel9,common'
|
||||
- container: ubi8
|
||||
- name: Run unit tests for el7toel8 and common repositories on python 2.7
|
||||
python: python2.7
|
||||
repos: 'el7toel8,common'
|
||||
diff --git a/utils/container-tests/Containerfile.ubi9 b/utils/container-tests/Containerfile.ubi9
|
||||
index 4460c748..1e616a99 100644
|
||||
--- a/utils/container-tests/Containerfile.ubi9
|
||||
+++ b/utils/container-tests/Containerfile.ubi9
|
||||
@@ -3,7 +3,9 @@ FROM registry.access.redhat.com/ubi9/ubi:latest
|
||||
VOLUME /payload
|
||||
|
||||
RUN dnf update -y && \
|
||||
- dnf install python3-virtualenv python3-setuptools python3-pip make git -y
|
||||
+ dnf install python3-setuptools python3-pip make git -y
|
||||
+
|
||||
+RUN pip install virtualenv
|
||||
|
||||
WORKDIR /payload
|
||||
ENTRYPOINT make install-deps && make test
|
||||
--
|
||||
2.42.0
|
||||
|
173
0087-Fix-or-TODO-some-version-specific-actions-in-actors.patch
Normal file
173
0087-Fix-or-TODO-some-version-specific-actions-in-actors.patch
Normal file
@ -0,0 +1,173 @@
|
||||
From 117644119f8c48fe5183aa309ad45a8ba9a4bf53 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Fri, 28 Jun 2024 18:53:07 +0200
|
||||
Subject: [PATCH 87/92] Fix or TODO some version specific actions in actors
|
||||
|
||||
---
|
||||
.../common/actors/checkfips/actor.py | 5 ++++-
|
||||
.../checksaphana/libraries/checksaphana.py | 11 +++++++++--
|
||||
.../opensshpermitrootlogincheck/actor.py | 5 +++--
|
||||
.../libraries/checkopensslconf.py | 9 ++++++---
|
||||
.../libraries/repairsystemdsymlinks.py | 19 ++++++-------------
|
||||
repos/system_upgrade/common/libraries/rhui.py | 1 +
|
||||
6 files changed, 29 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/checkfips/actor.py b/repos/system_upgrade/common/actors/checkfips/actor.py
|
||||
index bd09b1b9..73408655 100644
|
||||
--- a/repos/system_upgrade/common/actors/checkfips/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/checkfips/actor.py
|
||||
@@ -41,7 +41,7 @@ class CheckFips(Actor):
|
||||
reporting.ExternalLink(url=fips_7to8_steps_docs_url,
|
||||
title='Planning an upgrade from RHEL 7 to RHEL 8')
|
||||
])
|
||||
- else:
|
||||
+ elif version.get_target_major_version() == '9':
|
||||
# FIXME(mhecko): We include these files manually as they are not included automatically when the fips
|
||||
# module is used due to a bug in dracut. This code should be removed, once the dracut bug is resolved.
|
||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=2176560
|
||||
@@ -53,3 +53,6 @@ class CheckFips(Actor):
|
||||
]
|
||||
self.produce(UpgradeInitramfsTasks(include_files=fips_required_initramfs_files,
|
||||
include_dracut_modules=[DracutModule(name='fips')]))
|
||||
+ elif version.get_target_major_version() == '10':
|
||||
+ # TODO(mmatuska): What to do with FIPS on 9to10? OAMG-11431
|
||||
+ pass
|
||||
diff --git a/repos/system_upgrade/common/actors/checksaphana/libraries/checksaphana.py b/repos/system_upgrade/common/actors/checksaphana/libraries/checksaphana.py
|
||||
index 7cd83de8..498fb7a8 100644
|
||||
--- a/repos/system_upgrade/common/actors/checksaphana/libraries/checksaphana.py
|
||||
+++ b/repos/system_upgrade/common/actors/checksaphana/libraries/checksaphana.py
|
||||
@@ -7,7 +7,8 @@ from leapp.models import SapHanaInfo
|
||||
# Supported architectures for upgrades with SAP HANA to RHEL 'X'
|
||||
SAP_HANA_SUPPORTER_ARCHS = {
|
||||
'8': [architecture.ARCH_X86_64],
|
||||
- '9': [architecture.ARCH_X86_64, architecture.ARCH_PPC64LE]
|
||||
+ '9': [architecture.ARCH_X86_64, architecture.ARCH_PPC64LE],
|
||||
+ '10': [architecture.ARCH_X86_64, architecture.ARCH_PPC64LE],
|
||||
}
|
||||
|
||||
SAP_HANA_MINIMAL_MAJOR_VERSION = 2
|
||||
@@ -186,6 +187,8 @@ def version2_check(info):
|
||||
continue
|
||||
if version.matches_target_version('> 8.6', '< 9.0') or version.matches_target_version('> 9.0'):
|
||||
# if a target release is >=8.8 or >=9.2, the SAP HANA and RHEL versions compatibility is not checked
|
||||
+ # TODO(mmatuska): We don't know whether the check will be skipped on RHEL 10 (9to10) yet,
|
||||
+ # update the method accoridingly then
|
||||
_report_skip_check()
|
||||
return
|
||||
# if a starget release is 8.6 or 9.0 we still check SAP HANA and RHEL versions compatibility
|
||||
@@ -221,6 +224,7 @@ def platform_check():
|
||||
Supported architectures:
|
||||
- IPU 7 -> 8: x86_64
|
||||
- IPU 8 -> 9: x86_64, ppc64le
|
||||
+ - IPU 9 -> 10: x86_64, ppc64le
|
||||
|
||||
In case of the upgrade to a RHEL X version that is not supported for the
|
||||
IPU yet, return False and do not report anything, as the upgrade to
|
||||
@@ -243,7 +247,10 @@ def platform_check():
|
||||
title='How to in-place upgrade SAP environments from RHEL 7 to RHEL 8'),
|
||||
'9': reporting.ExternalLink(
|
||||
url='https://red.ht/how-to-in-place-upgrade-sap-environments-from-rhel-8-to-rhel-9',
|
||||
- title='How to in-place upgrade SAP environments from RHEL 8 to RHEL 9')
|
||||
+ title='How to in-place upgrade SAP environments from RHEL 8 to RHEL 9'),
|
||||
+ '10': reporting.ExternalLink(
|
||||
+ url='https://red.ht/how-to-in-place-upgrade-sap-environments-from-rhel-9-to-rhel-10',
|
||||
+ title='How to in-place upgrade SAP environments from RHEL 9 to RHEL 10'),
|
||||
}
|
||||
|
||||
reporting.create_report([
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
index 7a49622f..9c1a421c 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshpermitrootlogincheck/actor.py
|
||||
@@ -50,9 +50,10 @@ class OpenSshPermitRootLoginCheck(Actor):
|
||||
self.process7to8(config)
|
||||
elif get_source_major_version() == '8':
|
||||
self.process8to9(config)
|
||||
+ elif int(get_source_major_version()) >= 9:
|
||||
+ pass
|
||||
else:
|
||||
- api.current_logger().warning('Unknown source major version: {} (expecting 7 or 8)'
|
||||
- .format(get_source_major_version()))
|
||||
+ api.current_logger().warning('Unknown source major version: {}'.format(get_source_major_version()))
|
||||
|
||||
def process7to8(self, config):
|
||||
# when the config was not modified, we can pass this check and let the
|
||||
diff --git a/repos/system_upgrade/common/actors/openssl/checkopensslconf/libraries/checkopensslconf.py b/repos/system_upgrade/common/actors/openssl/checkopensslconf/libraries/checkopensslconf.py
|
||||
index 06a30fa1..53e803b2 100644
|
||||
--- a/repos/system_upgrade/common/actors/openssl/checkopensslconf/libraries/checkopensslconf.py
|
||||
+++ b/repos/system_upgrade/common/actors/openssl/checkopensslconf/libraries/checkopensslconf.py
|
||||
@@ -5,8 +5,11 @@ from leapp.libraries.stdlib import api
|
||||
from leapp.models import DistributionSignedRPM, TrackedFilesInfoSource
|
||||
|
||||
DEFAULT_OPENSSL_CONF = '/etc/pki/tls/openssl.cnf'
|
||||
-URL_8_CRYPTOPOLICIES = 'https://red.ht/rhel-8-system-wide-crypto-policies'
|
||||
-URL_9_CRYPTOPOLICIES = 'https://red.ht/rhel-9-system-wide-crypto-policies'
|
||||
+URL_CRYPTOPOLICIES = {
|
||||
+ '8': 'https://red.ht/rhel-8-system-wide-crypto-policies',
|
||||
+ '9': 'https://red.ht/rhel-9-system-wide-crypto-policies',
|
||||
+ '10': 'https://red.ht/rhel-10-system-wide-crypto-policies', # TODO actually make the url
|
||||
+}
|
||||
|
||||
|
||||
def check_ibmca():
|
||||
@@ -70,7 +73,7 @@ def check_default_openssl():
|
||||
if not _is_openssl_modified():
|
||||
return
|
||||
|
||||
- crypto_url = URL_8_CRYPTOPOLICIES if version.get_target_major_version == '8' else URL_9_CRYPTOPOLICIES
|
||||
+ crypto_url = URL_CRYPTOPOLICIES[version.get_target_major_version()]
|
||||
|
||||
# TODO(pstodulk): Needs in future some rewording, as OpenSSL engines are
|
||||
# deprecated since "RHEL 8" and people should use OpenSSL providers instead.
|
||||
diff --git a/repos/system_upgrade/common/actors/systemd/repairsystemdsymlinks/libraries/repairsystemdsymlinks.py b/repos/system_upgrade/common/actors/systemd/repairsystemdsymlinks/libraries/repairsystemdsymlinks.py
|
||||
index 884b001e..3fcf4aa6 100644
|
||||
--- a/repos/system_upgrade/common/actors/systemd/repairsystemdsymlinks/libraries/repairsystemdsymlinks.py
|
||||
+++ b/repos/system_upgrade/common/actors/systemd/repairsystemdsymlinks/libraries/repairsystemdsymlinks.py
|
||||
@@ -6,18 +6,11 @@ from leapp.libraries.common.config.version import get_target_major_version
|
||||
from leapp.libraries.stdlib import api, CalledProcessError, run
|
||||
from leapp.models import SystemdBrokenSymlinksSource, SystemdBrokenSymlinksTarget, SystemdServicesInfoSource
|
||||
|
||||
-_INSTALLATION_CHANGED_EL8 = ['rngd.service', 'sysstat.service']
|
||||
-_INSTALLATION_CHANGED_EL9 = []
|
||||
-
|
||||
-
|
||||
-def _get_installation_changed_units():
|
||||
- version = get_target_major_version()
|
||||
- if version == '8':
|
||||
- return _INSTALLATION_CHANGED_EL8
|
||||
- if version == '9':
|
||||
- return _INSTALLATION_CHANGED_EL9
|
||||
-
|
||||
- return []
|
||||
+_INSTALLATION_CHANGED = {
|
||||
+ '8': ['rngd.service', 'sysstat.service'],
|
||||
+ '9': [],
|
||||
+ '10': [],
|
||||
+}
|
||||
|
||||
|
||||
def _service_enabled_source(service_info, name):
|
||||
@@ -49,7 +42,7 @@ def _handle_newly_broken_symlinks(symlinks, service_info):
|
||||
|
||||
|
||||
def _handle_bad_symlinks(service_files):
|
||||
- install_changed_units = _get_installation_changed_units()
|
||||
+ install_changed_units = _INSTALLATION_CHANGED[get_target_major_version()]
|
||||
potentially_bad = [s for s in service_files if s.name in install_changed_units]
|
||||
|
||||
for unit_file in potentially_bad:
|
||||
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||
index 86f74084..51694ac2 100644
|
||||
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||
@@ -553,6 +553,7 @@ RHUI_CLOUD_MAP = {
|
||||
}
|
||||
|
||||
|
||||
+# TODO(mmatuska) deprecate or adjust for 9to10?
|
||||
def get_upg_path():
|
||||
"""
|
||||
Get upgrade path in specific string format
|
||||
--
|
||||
2.42.0
|
||||
|
70
0088-Replace-deprecated-shutil.rmtree-onerror-kwarg.patch
Normal file
70
0088-Replace-deprecated-shutil.rmtree-onerror-kwarg.patch
Normal file
@ -0,0 +1,70 @@
|
||||
From 3f7377b3667d9416ebe4769bd25e0b81d4717ff6 Mon Sep 17 00:00:00 2001
|
||||
From: Matej Matuska <mmatuska@redhat.com>
|
||||
Date: Thu, 11 Jul 2024 15:31:24 +0200
|
||||
Subject: [PATCH 88/92] Replace deprecated shutil.rmtree onerror kwarg
|
||||
|
||||
The `onerror` argument of shutil.rmtree is deprecated and replaced by
|
||||
`onexc` since Python 3.12. It accepts callback with the same arguments
|
||||
except for the last one which is now a subclass of `BaseException`. Our
|
||||
callback `libraries.utils.report_and_ignore_shutil_rmtree_error` is thus
|
||||
modified accordingly.
|
||||
---
|
||||
.../system_upgrade/common/libraries/overlaygen.py | 8 +++++++-
|
||||
repos/system_upgrade/common/libraries/utils.py | 15 +++++++++++----
|
||||
2 files changed, 18 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/overlaygen.py b/repos/system_upgrade/common/libraries/overlaygen.py
|
||||
index 1132cde1..c1ac9ad3 100644
|
||||
--- a/repos/system_upgrade/common/libraries/overlaygen.py
|
||||
+++ b/repos/system_upgrade/common/libraries/overlaygen.py
|
||||
@@ -1,6 +1,7 @@
|
||||
import contextlib
|
||||
import os
|
||||
import shutil
|
||||
+import sys
|
||||
from collections import namedtuple
|
||||
|
||||
from leapp.exceptions import StopActorExecutionError
|
||||
@@ -343,7 +344,12 @@ def cleanup_scratch(scratch_dir, mounts_dir):
|
||||
# NOTE(pstodulk): From time to time, it helps me with some experiments
|
||||
return
|
||||
api.current_logger().debug('Recursively removing scratch directory %s.', scratch_dir)
|
||||
- shutil.rmtree(scratch_dir, onerror=utils.report_and_ignore_shutil_rmtree_error)
|
||||
+ if sys.version_info >= (3, 12):
|
||||
+ # NOTE(mmatuska): The pylint suppressions are required because of a bug in pylint:
|
||||
+ # (https://github.com/pylint-dev/pylint/issues/9622)
|
||||
+ shutil.rmtree(scratch_dir, onexc=utils.report_and_ignore_shutil_rmtree_error) # noqa: E501; pylint: disable=unexpected-keyword-arg
|
||||
+ else:
|
||||
+ shutil.rmtree(scratch_dir, onerror=utils.report_and_ignore_shutil_rmtree_error) # noqa: E501; pylint: disable=deprecated-argument
|
||||
api.current_logger().debug('Recursively removed scratch directory %s.', scratch_dir)
|
||||
|
||||
|
||||
diff --git a/repos/system_upgrade/common/libraries/utils.py b/repos/system_upgrade/common/libraries/utils.py
|
||||
index 38b9bb1a..b7aa9c74 100644
|
||||
--- a/repos/system_upgrade/common/libraries/utils.py
|
||||
+++ b/repos/system_upgrade/common/libraries/utils.py
|
||||
@@ -105,10 +105,17 @@ def report_and_ignore_shutil_rmtree_error(func, path, exc_info):
|
||||
"""
|
||||
Helper function for shutil.rmtree to only report errors but don't fail.
|
||||
"""
|
||||
- api.current_logger().warning(
|
||||
- 'While trying to remove directories: %s failed at %s with an exception %s message: %s',
|
||||
- func.__name__, path, exc_info[0].__name__, exc_info[1]
|
||||
- )
|
||||
+ # third parameter has changed in Python 3.12
|
||||
+ if sys.version_info >= (3, 12):
|
||||
+ api.current_logger().warning(
|
||||
+ 'While trying to remove directories: %s failed at %s with an exception %s message: %s',
|
||||
+ func.__name__, path, exc_info[0].__name__, exc_info[1]
|
||||
+ )
|
||||
+ else:
|
||||
+ api.current_logger().warning(
|
||||
+ 'While trying to remove directories: %s failed at %s with an exception %s message: %s',
|
||||
+ func.__name__, path, type(exc_info).__name__, str(exc_info)
|
||||
+ )
|
||||
|
||||
|
||||
def call_with_oserror_handled(cmd):
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,91 @@
|
||||
From 236483d5478ce845726ee05b7ca3e080105cdb80 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Mon, 15 Jul 2024 23:01:03 +0200
|
||||
Subject: [PATCH 89/92] UpgradeInitramfsGenerator: drop distutils dependency
|
||||
|
||||
Originally the actor used distutils.version.LooseVersion to detect
|
||||
newest version of installed kernel package inside target userspace
|
||||
container. But the distutils python module has become deprecated
|
||||
and we should not use it anymore in Python 3.12+.
|
||||
|
||||
However, we do not expect to see multiple versions of kernel present
|
||||
inside the target userspace container as the container is created
|
||||
during the IPU process from scratch (always). Considering the presence
|
||||
of multiple kernels to be sign of error, which could negatively affect
|
||||
also additional actions later.
|
||||
|
||||
Updated the solution, raising an error if multiple kernels are detected
|
||||
inside the container. As we expect one kernel only, no need to compare
|
||||
versions of particular possible kernel packages.
|
||||
|
||||
Note there are now just these cases when this could happen:
|
||||
* a third party package is required to be installed inside the
|
||||
container
|
||||
* an explicit requirement to install particular version of container
|
||||
is made by a custom actor
|
||||
---
|
||||
.../libraries/upgradeinitramfsgenerator.py | 37 ++++++++++++-------
|
||||
1 file changed, 24 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
|
||||
index 5a686a47..04fa061b 100644
|
||||
--- a/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
|
||||
+++ b/repos/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py
|
||||
@@ -1,6 +1,5 @@
|
||||
import os
|
||||
import shutil
|
||||
-from distutils.version import LooseVersion
|
||||
|
||||
from leapp.exceptions import StopActorExecutionError
|
||||
from leapp.libraries.common import dnfplugin, mounting
|
||||
@@ -30,23 +29,35 @@ def _get_target_kernel_version(context):
|
||||
|
||||
kernel_version = None
|
||||
try:
|
||||
- results = context.call(['rpm', '-qa', 'kernel-core'], split=True)
|
||||
-
|
||||
- versions = [ver.replace('kernel-core-', '') for ver in results['stdout']]
|
||||
- api.current_logger().debug(
|
||||
- 'Versions detected {versions}.'
|
||||
- .format(versions=versions))
|
||||
- sorted_versions = sorted(versions, key=LooseVersion, reverse=True)
|
||||
- kernel_version = next(iter(sorted_versions), None)
|
||||
+ # NOTE: Currently we install/use always kernel-core in the upgrade
|
||||
+ # initramfs. We do not use currently any different kernel package
|
||||
+ # in the container. Note this could change in future e.g. on aarch64
|
||||
+ # for IPU 9 -> 10.
|
||||
+ # TODO(pstodulk): Investigate situation on ARM systems. OAMG-11433
|
||||
+ results = context.call(['rpm', '-qa', 'kernel-core'], split=True)['stdout']
|
||||
except CalledProcessError:
|
||||
raise StopActorExecutionError(
|
||||
- 'Cannot get version of the installed kernel.',
|
||||
- details={'Problem': 'Could not query the currently installed kernel through rmp.'})
|
||||
+ 'Cannot get version of the installed kernel inside container.',
|
||||
+ details={'Problem': 'Could not query the currently installed kernel inside container using rpm.'})
|
||||
+
|
||||
+ if len(results) > 1:
|
||||
+ # this is should not happen. It's hypothetic situation, which alone it's
|
||||
+ # already error. So skipping more sophisticated implementation.
|
||||
+ # The container is always created during the upgrade and as that we expect
|
||||
+ # always one-and-only kernel installed.
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Cannot get version of the installed kernel inside container.',
|
||||
+ details={'Problem': 'Detected unexpectedly multiple kernels inside target userspace container.'}
|
||||
+ )
|
||||
+
|
||||
+ # kernel version == version-release from package
|
||||
+ kernel_version = '-'.join(results[0].rsplit("-", 2)[-2:])
|
||||
+ api.current_logger().debug('Detected kernel version inside container: {}.'.format(kernel_version))
|
||||
|
||||
if not kernel_version:
|
||||
raise StopActorExecutionError(
|
||||
- 'Cannot get version of the installed kernel.',
|
||||
- details={'Problem': 'A rpm query for the available kernels did not produce any results.'})
|
||||
+ 'Cannot get version of the installed kernel inside container.',
|
||||
+ details={'Problem': 'An rpm query for the available kernels did not produce any results.'})
|
||||
|
||||
return kernel_version
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,82 @@
|
||||
From 7cd469bab1e19f206f0f558fd89d9c4a6d9db07d Mon Sep 17 00:00:00 2001
|
||||
From: Michael Scherer <misc@redhat.com>
|
||||
Date: Wed, 3 Jul 2024 14:32:12 +0200
|
||||
Subject: [PATCH 90/92] Fix detection when a bootable partition in on RAID
|
||||
|
||||
On my server, leapp preupgrade fail with the following error:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
|
||||
self.run()
|
||||
File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
|
||||
self._target(*self._args, **self._kwargs)
|
||||
File "/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py", line 74, in _do_run
|
||||
actor_instance.run(*args, **kwargs)
|
||||
File "/usr/lib/python2.7/site-packages/leapp/actors/__init__.py", line 289, in run
|
||||
self.process(*args)
|
||||
File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/actor.py", line 18, in process
|
||||
scan_layout_lib.scan_grub_device_partition_layout()
|
||||
File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py", line 91, in scan_grub_device_partition_layout
|
||||
dev_info = get_partition_layout(device)
|
||||
File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py", line 79, in get_partition_layout
|
||||
part_start = int(part_info[2]) if len(part_info) == len(part_all_attrs) else int(part_info[1])
|
||||
ValueError: invalid literal for int() with base 10: '*'
|
||||
|
||||
This is caused by the following line:
|
||||
|
||||
/dev/sda1 * 2048 1026047 512000 fd Linux raid autodetect
|
||||
|
||||
I have my server on EL7 with / using a Linux RAID so len(part_info) != len(part_all_attrs), hence why
|
||||
it try to convert '*' to int.
|
||||
---
|
||||
.../scangrubdevpartitionlayout/libraries/scan_layout.py | 3 +--
|
||||
.../tests/test_scan_partition_layout.py | 5 +++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
|
||||
index f51bcda4..83d02656 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
|
||||
@@ -64,7 +64,6 @@ def get_partition_layout(device):
|
||||
if not line.startswith('Device'):
|
||||
continue
|
||||
|
||||
- part_all_attrs = split_on_space_segments(line)
|
||||
break
|
||||
|
||||
partitions = []
|
||||
@@ -75,7 +74,7 @@ def get_partition_layout(device):
|
||||
|
||||
# If the partition is not bootable, the Boot column might be empty
|
||||
part_device = part_info[0]
|
||||
- part_start = int(part_info[2]) if len(part_info) == len(part_all_attrs) else int(part_info[1])
|
||||
+ part_start = int(part_info[2]) if part_info[1] == '*' else int(part_info[1])
|
||||
partitions.append(PartitionInfo(part_device=part_device, start_offset=part_start*unit))
|
||||
|
||||
return GRUBDevicePartitionLayout(device=device, partitions=partitions)
|
||||
diff --git a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
|
||||
index 54025379..743ca71f 100644
|
||||
--- a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
|
||||
+++ b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
|
||||
@@ -31,7 +31,8 @@ Partition = namedtuple('Partition', ['name', 'start_offset'])
|
||||
)
|
||||
]
|
||||
)
|
||||
-def test_get_partition_layout(monkeypatch, devices):
|
||||
+@pytest.mark.parametrize('fs', ('Linux', 'Linux raid autodetect'))
|
||||
+def test_get_partition_layout(monkeypatch, devices, fs):
|
||||
device_to_fdisk_output = {}
|
||||
for device in devices:
|
||||
fdisk_output = [
|
||||
@@ -45,7 +46,7 @@ def test_get_partition_layout(monkeypatch, devices):
|
||||
' Device Boot Start End Blocks Id System',
|
||||
]
|
||||
for part in device.partitions:
|
||||
- part_line = '{0} * {1} 2099199 1048576 83 Linux'.format(part.name, part.start_offset)
|
||||
+ part_line = '{0} * {1} 2099199 1048576 83 {2}'.format(part.name, part.start_offset, fs)
|
||||
fdisk_output.append(part_line)
|
||||
|
||||
device_to_fdisk_output[device.name] = fdisk_output
|
||||
--
|
||||
2.42.0
|
||||
|
114
0091-GPG-check-do-not-raise-an-error-when-TargetUserSpace.patch
Normal file
114
0091-GPG-check-do-not-raise-an-error-when-TargetUserSpace.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From caff3acea4f74a134a9f2f5714c08c8bf7b596f5 Mon Sep 17 00:00:00 2001
|
||||
From: Petr Stodulka <pstodulk@redhat.com>
|
||||
Date: Thu, 4 Jul 2024 10:52:43 +0200
|
||||
Subject: [PATCH 91/92] GPG check: do not raise an error when
|
||||
TargetUserSpaceInfo is missing
|
||||
|
||||
Previously, if the upgrade has been inhibited during
|
||||
TargetTransactionFactsCollectionPhase
|
||||
usually because we could not create (for whatever reason) the target
|
||||
userspace container, the actor checking rpm gpg keys failed with
|
||||
the `Could not check for valid GPG keys` error. This has confused
|
||||
many users as they couldn't know that this is impacted by the
|
||||
problem described in an inhibitor that is below this error.
|
||||
|
||||
As it's for sure that the upgrade cannot continue when the target user
|
||||
space container has not been created (the TargetUserSpaceInfo msg
|
||||
is missing), we consider it safe to stop the gpg check here silently
|
||||
just with a warning msg instead of raising the error - as this check
|
||||
is important only in case we could actually upgrade.
|
||||
|
||||
All other possible raised errors are presereved.
|
||||
|
||||
jira: https://issues.redhat.com/browse/RHEL-30573
|
||||
|
||||
Signed-off-by: Petr Stodulka <pstodulk@redhat.com>
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
---
|
||||
.../libraries/missinggpgkey.py | 17 ++++++++++-------
|
||||
.../tests/component_test_missinggpgkey.py | 9 +++++----
|
||||
2 files changed, 15 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/libraries/missinggpgkey.py b/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/libraries/missinggpgkey.py
|
||||
index 4b93e741..32e4527b 100644
|
||||
--- a/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/libraries/missinggpgkey.py
|
||||
+++ b/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/libraries/missinggpgkey.py
|
||||
@@ -7,7 +7,7 @@ import tempfile
|
||||
from six.moves import urllib
|
||||
|
||||
from leapp import reporting
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.exceptions import StopActorExecution, StopActorExecutionError
|
||||
from leapp.libraries.common.config.version import get_target_major_version
|
||||
from leapp.libraries.common.gpg import get_gpg_fp_from_file, get_path_to_gpg_certs, is_nogpgcheck_set
|
||||
from leapp.libraries.stdlib import api
|
||||
@@ -61,6 +61,15 @@ def _get_abs_file_path(target_userspace, file_url):
|
||||
|
||||
|
||||
def _consume_data():
|
||||
+ try:
|
||||
+ target_userspace = next(api.consume(TargetUserSpaceInfo))
|
||||
+ except StopIteration:
|
||||
+ api.current_logger().warning(
|
||||
+ 'Missing TargetUserSpaceInfo data. The upgrade cannot continue'
|
||||
+ ' without this data, so skipping any other actions.'
|
||||
+ )
|
||||
+ raise StopActorExecution()
|
||||
+
|
||||
try:
|
||||
used_target_repos = next(api.consume(UsedTargetRepositories)).repos
|
||||
except StopIteration:
|
||||
@@ -83,12 +92,6 @@ def _consume_data():
|
||||
raise StopActorExecutionError(
|
||||
'Could not check for valid GPG keys', details={'details': 'No TrustedGpgKeys facts'}
|
||||
)
|
||||
- try:
|
||||
- target_userspace = next(api.consume(TargetUserSpaceInfo))
|
||||
- except StopIteration:
|
||||
- raise StopActorExecutionError(
|
||||
- 'Could not check for valid GPG keys', details={'details': 'No TargetUserSpaceInfo facts'}
|
||||
- )
|
||||
|
||||
return used_target_repos, target_repos, trusted_gpg_keys, target_userspace
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/tests/component_test_missinggpgkey.py b/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/tests/component_test_missinggpgkey.py
|
||||
index 6d3fa0b2..2cb142a0 100644
|
||||
--- a/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/tests/component_test_missinggpgkey.py
|
||||
+++ b/repos/system_upgrade/common/actors/missinggpgkeysinhibitor/tests/component_test_missinggpgkey.py
|
||||
@@ -2,7 +2,7 @@ import pytest
|
||||
from six.moves.urllib.error import URLError
|
||||
|
||||
from leapp import reporting
|
||||
-from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.exceptions import StopActorExecution, StopActorExecutionError
|
||||
from leapp.libraries.actor.missinggpgkey import process
|
||||
from leapp.libraries.common.gpg import get_pubkeys_from_rpms
|
||||
from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, logger_mocked, produce_mocked
|
||||
@@ -191,12 +191,13 @@ def test_perform_missing_facts(monkeypatch, msgs):
|
||||
monkeypatch.setattr(api, 'current_logger', logger_mocked())
|
||||
# TODO: the gpg call should be mocked
|
||||
|
||||
- with pytest.raises(StopActorExecutionError):
|
||||
+ with pytest.raises(StopActorExecution):
|
||||
process()
|
||||
# nothing produced
|
||||
assert api.produce.called == 0
|
||||
# not skipped by --nogpgcheck
|
||||
- assert not api.current_logger.warnmsg
|
||||
+ assert len(api.current_logger.warnmsg) == 1
|
||||
+ assert "Missing TargetUserSpaceInfo data" in api.current_logger.warnmsg[0]
|
||||
|
||||
|
||||
@suppress_deprecation(TMPTargetRepositoriesFacts)
|
||||
@@ -280,7 +281,7 @@ def test_perform_missing_some_repo_facts(monkeypatch):
|
||||
monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
|
||||
monkeypatch.setattr('leapp.libraries.common.gpg._gpg_show_keys', _gpg_show_keys_mocked)
|
||||
|
||||
- with pytest.raises(StopActorExecutionError):
|
||||
+ with pytest.raises(StopActorExecution):
|
||||
process()
|
||||
assert api.produce.called == 0
|
||||
assert reporting.create_report.called == 0
|
||||
--
|
||||
2.42.0
|
||||
|
327
0092-OpenSSHConfigScanner-Include-directive-is-supported-.patch
Normal file
327
0092-OpenSSHConfigScanner-Include-directive-is-supported-.patch
Normal file
@ -0,0 +1,327 @@
|
||||
From 998b774d5f0fddf6b113da8102b64680c0ece43c Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelen <jjelen@redhat.com>
|
||||
Date: Thu, 25 Apr 2024 17:16:32 +0200
|
||||
Subject: [PATCH 92/92] OpenSSHConfigScanner: Include directive is supported
|
||||
since RHEL 8.6
|
||||
|
||||
This issue could cause false positive reports when the user has the
|
||||
configuration options such as "Subsystem sftp" defined in included file
|
||||
only.
|
||||
|
||||
Resolves: RHEL-33902
|
||||
|
||||
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||
Co-Authored-By: Michal Hecko <mhecko@redhat.com>
|
||||
|
||||
do not use filesystem during tests
|
||||
---
|
||||
.../libraries/readopensshconfig.py | 61 ++++--
|
||||
..._readopensshconfig_opensshconfigscanner.py | 180 +++++++++++++++++-
|
||||
2 files changed, 229 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py b/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
index e6cb9fcc..50e37092 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshconfigscanner/libraries/readopensshconfig.py
|
||||
@@ -1,5 +1,9 @@
|
||||
import errno
|
||||
+import glob
|
||||
+import os
|
||||
+import shlex
|
||||
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
from leapp.libraries.common.rpms import check_file_modification
|
||||
from leapp.libraries.stdlib import api
|
||||
from leapp.models import OpenSshConfig, OpenSshPermitRootLogin
|
||||
@@ -12,14 +16,31 @@ def line_empty(line):
|
||||
return len(line) == 0 or line.startswith('\n') or line.startswith('#')
|
||||
|
||||
|
||||
-def parse_config(config):
|
||||
- """Parse OpenSSH server configuration or the output of sshd test option."""
|
||||
+def parse_config(config, base_config=None, current_cfg_depth=0):
|
||||
+ """
|
||||
+ Parse OpenSSH server configuration or the output of sshd test option.
|
||||
|
||||
- # RHEL7 defaults
|
||||
- ret = OpenSshConfig(
|
||||
- permit_root_login=[],
|
||||
- deprecated_directives=[]
|
||||
- )
|
||||
+ :param Optional[OpenSshConfig] base_config: Base configuration that is extended with configuration options from
|
||||
+ current file.
|
||||
+
|
||||
+ :param int current_cfg_depth: Internal counter for how many includes were already followed.
|
||||
+ """
|
||||
+
|
||||
+ if current_cfg_depth > 16:
|
||||
+ # This should really never happen as it would mean the SSH server won't
|
||||
+ # start anyway on the old system.
|
||||
+ error = 'Too many recursive includes while parsing sshd_config'
|
||||
+ api.current_logger().error(error)
|
||||
+ return None
|
||||
+
|
||||
+ ret = base_config
|
||||
+ if ret is None:
|
||||
+ # RHEL7 defaults
|
||||
+ ret = OpenSshConfig(
|
||||
+ permit_root_login=[],
|
||||
+ deprecated_directives=[]
|
||||
+ )
|
||||
+ # TODO(Jakuje): Do we need different defaults for RHEL8?
|
||||
|
||||
in_match = None
|
||||
for line in config:
|
||||
@@ -68,8 +89,26 @@ def parse_config(config):
|
||||
# here we need to record all remaining items as command and arguments
|
||||
ret.subsystem_sftp = ' '.join(el[2:])
|
||||
|
||||
+ elif el[0].lower() == 'include':
|
||||
+ # recursively parse the given file or files referenced by this option
|
||||
+ # the option can have several space-separated filenames with glob wildcards
|
||||
+ for pattern in shlex.split(' '.join(el[1:])):
|
||||
+ if pattern[0] != '/' and pattern[0] != '~':
|
||||
+ pattern = os.path.join('/etc/ssh/', pattern)
|
||||
+ files_matching_include_pattern = glob.glob(pattern)
|
||||
+ # OpenSSH sorts the files lexicographically
|
||||
+ files_matching_include_pattern.sort()
|
||||
+ for included_config_file in files_matching_include_pattern:
|
||||
+ output = read_sshd_config(included_config_file)
|
||||
+ if parse_config(output, base_config=ret, current_cfg_depth=current_cfg_depth + 1) is None:
|
||||
+ raise StopActorExecutionError(
|
||||
+ 'Failed to parse sshd configuration file',
|
||||
+ details={'details': 'Too many recursive includes while parsing {}.'
|
||||
+ .format(included_config_file)}
|
||||
+ )
|
||||
+
|
||||
elif el[0].lower() in DEPRECATED_DIRECTIVES:
|
||||
- # Filter out duplicit occurrences of the same deprecated directive
|
||||
+ # Filter out duplicate occurrences of the same deprecated directive
|
||||
if el[0].lower() not in ret.deprecated_directives:
|
||||
# Use the directive in the form as found in config for user convenience
|
||||
ret.deprecated_directives.append(el[0])
|
||||
@@ -82,10 +121,10 @@ def produce_config(producer, config):
|
||||
producer(config)
|
||||
|
||||
|
||||
-def read_sshd_config():
|
||||
+def read_sshd_config(config):
|
||||
"""Read the actual sshd configuration file."""
|
||||
try:
|
||||
- with open(CONFIG, 'r') as fd:
|
||||
+ with open(config, 'r') as fd:
|
||||
return fd.readlines()
|
||||
except IOError as err:
|
||||
if err.errno != errno.ENOENT:
|
||||
@@ -98,7 +137,7 @@ def scan_sshd(producer):
|
||||
"""Parse sshd_config configuration file to create OpenSshConfig message."""
|
||||
|
||||
# direct access to configuration file
|
||||
- output = read_sshd_config()
|
||||
+ output = read_sshd_config(CONFIG)
|
||||
config = parse_config(output)
|
||||
|
||||
# find out whether the file was modified from the one shipped in rpm
|
||||
diff --git a/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py b/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
index 68a9ec47..64c16f7f 100644
|
||||
--- a/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
+++ b/repos/system_upgrade/common/actors/opensshconfigscanner/tests/test_readopensshconfig_opensshconfigscanner.py
|
||||
@@ -1,3 +1,12 @@
|
||||
+import glob
|
||||
+import os
|
||||
+import shutil
|
||||
+import tempfile
|
||||
+
|
||||
+import pytest
|
||||
+
|
||||
+from leapp.exceptions import StopActorExecutionError
|
||||
+from leapp.libraries.actor import readopensshconfig
|
||||
from leapp.libraries.actor.readopensshconfig import line_empty, parse_config, produce_config
|
||||
from leapp.models import OpenSshConfig, OpenSshPermitRootLogin
|
||||
|
||||
@@ -143,12 +152,181 @@ def test_parse_config_deprecated():
|
||||
def test_parse_config_empty():
|
||||
output = parse_config([])
|
||||
assert isinstance(output, OpenSshConfig)
|
||||
- assert isinstance(output, OpenSshConfig)
|
||||
assert not output.permit_root_login
|
||||
assert output.use_privilege_separation is None
|
||||
assert output.protocol is None
|
||||
|
||||
|
||||
+def test_parse_config_include(monkeypatch):
|
||||
+ """ This already require some files to touch """
|
||||
+
|
||||
+ config_contents = {
|
||||
+ '/etc/ssh/sshd_config': [
|
||||
+ "Include /path/*.conf"
|
||||
+ ],
|
||||
+ '/path/my.conf': [
|
||||
+ 'Subsystem sftp internal-sftp'
|
||||
+ ],
|
||||
+ '/path/another.conf': [
|
||||
+ 'permitrootlogin no'
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
+ primary_config_path = '/etc/ssh/sshd_config'
|
||||
+ primary_config_contents = config_contents[primary_config_path]
|
||||
+
|
||||
+ def glob_mocked(pattern):
|
||||
+ assert pattern == '/path/*.conf'
|
||||
+ return ['/path/my.conf', '/path/another.conf']
|
||||
+
|
||||
+ def read_config_mocked(path):
|
||||
+ return config_contents[path]
|
||||
+
|
||||
+ monkeypatch.setattr(glob, 'glob', glob_mocked)
|
||||
+ monkeypatch.setattr(readopensshconfig, 'read_sshd_config', read_config_mocked)
|
||||
+
|
||||
+ output = parse_config(primary_config_contents)
|
||||
+
|
||||
+ assert isinstance(output, OpenSshConfig)
|
||||
+ assert len(output.permit_root_login) == 1
|
||||
+ assert output.permit_root_login[0].value == 'no'
|
||||
+ assert output.permit_root_login[0].in_match is None
|
||||
+ assert output.use_privilege_separation is None
|
||||
+ assert output.protocol is None
|
||||
+ assert output.subsystem_sftp == 'internal-sftp'
|
||||
+
|
||||
+
|
||||
+def test_parse_config_include_recursive(monkeypatch):
|
||||
+ """ The recursive include should gracefully fail """
|
||||
+
|
||||
+ config_contents = {
|
||||
+ '/etc/ssh/sshd_config': [
|
||||
+ "Include /path/*.conf"
|
||||
+ ],
|
||||
+ '/path/recursive.conf': [
|
||||
+ "Include /path/*.conf"
|
||||
+ ],
|
||||
+ }
|
||||
+
|
||||
+ primary_config_path = '/etc/ssh/sshd_config'
|
||||
+ primary_config_contents = config_contents[primary_config_path]
|
||||
+
|
||||
+ def glob_mocked(pattern):
|
||||
+ assert pattern == '/path/*.conf'
|
||||
+ return ['/path/recursive.conf']
|
||||
+
|
||||
+ def read_config_mocked(path):
|
||||
+ return config_contents[path]
|
||||
+
|
||||
+ monkeypatch.setattr(glob, 'glob', glob_mocked)
|
||||
+ monkeypatch.setattr(readopensshconfig, 'read_sshd_config', read_config_mocked)
|
||||
+
|
||||
+ with pytest.raises(StopActorExecutionError) as recursive_error:
|
||||
+ parse_config(primary_config_contents)
|
||||
+ assert 'Failed to parse sshd configuration file' in str(recursive_error)
|
||||
+
|
||||
+
|
||||
+def test_parse_config_include_relative(monkeypatch):
|
||||
+ """ When the include argument is relative path, it should point into the /etc/ssh/ """
|
||||
+
|
||||
+ config_contents = {
|
||||
+ '/etc/ssh/sshd_config': [
|
||||
+ "Include relative/*.conf"
|
||||
+ ],
|
||||
+ '/etc/ssh/relative/default.conf': [
|
||||
+ 'Match address 192.168.1.42',
|
||||
+ 'PermitRootLogin yes'
|
||||
+ ],
|
||||
+ '/etc/ssh/relative/other.conf': [
|
||||
+ 'Match all',
|
||||
+ 'PermitRootLogin prohibit-password'
|
||||
+ ],
|
||||
+ '/etc/ssh/relative/wrong.extension': [
|
||||
+ "macs hmac-md5",
|
||||
+ ],
|
||||
+ }
|
||||
+
|
||||
+ primary_config_path = '/etc/ssh/sshd_config'
|
||||
+ primary_config_contents = config_contents[primary_config_path]
|
||||
+
|
||||
+ def glob_mocked(pattern):
|
||||
+ assert pattern == '/etc/ssh/relative/*.conf'
|
||||
+ return ['/etc/ssh/relative/other.conf', '/etc/ssh/relative/default.conf']
|
||||
+
|
||||
+ def read_config_mocked(path):
|
||||
+ return config_contents[path]
|
||||
+
|
||||
+ monkeypatch.setattr(glob, 'glob', glob_mocked)
|
||||
+ monkeypatch.setattr(readopensshconfig, 'read_sshd_config', read_config_mocked)
|
||||
+
|
||||
+ output = parse_config(primary_config_contents)
|
||||
+
|
||||
+ assert isinstance(output, OpenSshConfig)
|
||||
+ assert len(output.permit_root_login) == 2
|
||||
+ assert output.permit_root_login[0].value == 'yes'
|
||||
+ assert output.permit_root_login[0].in_match == ['address', '192.168.1.42']
|
||||
+ assert output.permit_root_login[1].value == 'prohibit-password'
|
||||
+ assert output.permit_root_login[1].in_match == ['all']
|
||||
+ assert output.use_privilege_separation is None
|
||||
+ assert output.ciphers is None
|
||||
+ assert output.macs is None
|
||||
+ assert output.protocol is None
|
||||
+ assert output.subsystem_sftp is None
|
||||
+
|
||||
+
|
||||
+def test_parse_config_include_complex(monkeypatch):
|
||||
+ """ This already require some files to touch """
|
||||
+
|
||||
+ config_contents = {
|
||||
+ '/etc/ssh/sshd_config': [
|
||||
+ "Include /path/*.conf /other/path/*.conf \"/last/path with spaces/*.conf\" "
|
||||
+ ],
|
||||
+ '/path/my.conf': [
|
||||
+ 'permitrootlogin prohibit-password'
|
||||
+ ],
|
||||
+ '/other/path/another.conf': [
|
||||
+ 'ciphers aes128-ctr'
|
||||
+ ],
|
||||
+ '/last/path with spaces/filename with spaces.conf': [
|
||||
+ 'subsystem sftp other-internal'
|
||||
+ ]
|
||||
+ }
|
||||
+ glob_contents = {
|
||||
+ '/path/*.conf': [
|
||||
+ '/path/my.conf'
|
||||
+ ],
|
||||
+ '/other/path/*.conf': [
|
||||
+ '/other/path/another.conf'
|
||||
+ ],
|
||||
+ '/last/path with spaces/*.conf': [
|
||||
+ '/last/path with spaces/filename with spaces.conf'
|
||||
+ ],
|
||||
+ }
|
||||
+
|
||||
+ primary_config_path = '/etc/ssh/sshd_config'
|
||||
+ primary_config_contents = config_contents[primary_config_path]
|
||||
+
|
||||
+ def glob_mocked(pattern):
|
||||
+ return glob_contents[pattern]
|
||||
+
|
||||
+ def read_config_mocked(path):
|
||||
+ return config_contents[path]
|
||||
+
|
||||
+ monkeypatch.setattr(glob, 'glob', glob_mocked)
|
||||
+ monkeypatch.setattr(readopensshconfig, 'read_sshd_config', read_config_mocked)
|
||||
+
|
||||
+ output = parse_config(primary_config_contents)
|
||||
+
|
||||
+ assert isinstance(output, OpenSshConfig)
|
||||
+ assert len(output.permit_root_login) == 1
|
||||
+ assert output.permit_root_login[0].value == 'prohibit-password'
|
||||
+ assert output.permit_root_login[0].in_match is None
|
||||
+ assert output.use_privilege_separation is None
|
||||
+ assert output.ciphers == "aes128-ctr"
|
||||
+ assert output.protocol is None
|
||||
+ assert output.subsystem_sftp == 'other-internal'
|
||||
+
|
||||
+
|
||||
def test_produce_config():
|
||||
output = []
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -42,7 +42,7 @@ py2_byte_compile "%1" "%2"}
|
||||
|
||||
Name: leapp-repository
|
||||
Version: 0.20.0
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
Summary: Repositories for leapp
|
||||
|
||||
License: ASL 2.0
|
||||
@ -106,6 +106,50 @@ Patch0047: 0047-fix-some-typos-spotted-by-codespell.patch
|
||||
Patch0048: 0048-BZ-2283067-don-t-remove-Tomcat-during-Satellite-7to8.patch
|
||||
Patch0049: 0049-Add-product-certs-and-target-for-9.5.patch
|
||||
|
||||
# CTC2
|
||||
Patch0050: 0050-packit-Enable-8.10to9.5-tests.patch
|
||||
Patch0051: 0051-dnf-plugin-data-sort-intput-lists.patch
|
||||
Patch0052: 0052-rhui-setups-support-alibaba-cloud.patch
|
||||
Patch0053: 0053-check_rhui-allow-minor-versions-in-the-RHUI-table.patch
|
||||
Patch0054: 0054-rhui-google-add-RHEL7-ELS-setup-into-RHUI_SETUPS.patch
|
||||
Patch0055: 0055-rhui-aws-arm-fix-incorrect-client-names.patch
|
||||
Patch0056: 0056-rhui-azure-hardcore-client-repoids-changes-for-RHEL8.patch
|
||||
Patch0057: 0057-fix-rhui-package-collection.patch
|
||||
Patch0058: 0058-.packit.yaml-update-ENV-variables.patch
|
||||
Patch0059: 0059-.packit.yaml-adjust-post_install_script-for-RHEL-7.9.patch
|
||||
Patch0060: 0060-Additional-.packit.yaml-fixes.patch
|
||||
Patch0061: 0061-Add-PR-review-changes.patch
|
||||
Patch0062: 0062-rhui-gcp-add-SAP-RHEL-8.10-client-1253.patch
|
||||
Patch0063: 0063-PR-welcome-msg-update-the-msg-to-cover-additional-Pa.patch
|
||||
Patch0064: 0064-Add-RHEL-7-for-SAP-ELS-to-the-RHUI-config-1254.patch
|
||||
Patch0065: 0065-Revert-Add-RHEL-7-for-SAP-ELS-to-the-RHUI-config-125.patch
|
||||
Patch0066: 0066-codespell-Use-specific-version-instead-of-master.patch
|
||||
Patch0067: 0067-Demote-Attempted-to-both-enable-and-disable-message-.patch
|
||||
Patch0068: 0068-Don-t-enable-services-that-will-be-afterwards-disabl.patch
|
||||
Patch0069: 0069-Use-frozen-branch-for-rhel7-downstream-testing-1263.patch
|
||||
Patch0070: 0070-load-obsoleted-gpg-keys-from-gpg-signatures.json.patch
|
||||
Patch0071: 0071-refactor-distributionsignedrpmscanner-to-use-common-.patch
|
||||
Patch0072: 0072-IPU-9-10-Initial-preparation-upgrade-paths-and-leapp.patch
|
||||
Patch0073: 0073-Packaging-Introduce-EL-9-builds-for-IPU-9-10.patch
|
||||
Patch0074: 0074-Add-RHEL9-container-for-building-and-testing.patch
|
||||
Patch0075: 0075-tests-update-pytest-requirements-to-Py3.6-compat.patch
|
||||
Patch0076: 0076-IPU-9-10-Add-FAKE-RHEL-10-certs-and-GPG-keys.patch
|
||||
Patch0077: 0077-Install-util-linux-into-the-target-container.patch
|
||||
Patch0078: 0078-Fix-LEAPP_IPU_IN_PROGRESS-9to1-9to10.patch
|
||||
Patch0079: 0079-Add-unit-tests-for-config.version.get_major_version.patch
|
||||
Patch0080: 0080-Add-artificial-9-10-repomaping-data.patch
|
||||
Patch0081: 0081-Update-PES-data.patch
|
||||
Patch0082: 0082-IPU-9-10-Specify-default-PESIDS-for-el10.patch
|
||||
Patch0083: 0083-Skip-directory-hash-files.patch
|
||||
Patch0084: 0084-IPU-9-10-Migrate-rebuild-RPM-DB.patch
|
||||
Patch0085: 0085-Define-empty-obsoleted-RPM-GPG-keys-for-RHEL-10.patch
|
||||
Patch0086: 0086-Add-9to10-to-GH-unit-test-action.patch
|
||||
Patch0087: 0087-Fix-or-TODO-some-version-specific-actions-in-actors.patch
|
||||
Patch0088: 0088-Replace-deprecated-shutil.rmtree-onerror-kwarg.patch
|
||||
Patch0089: 0089-UpgradeInitramfsGenerator-drop-distutils-dependency.patch
|
||||
Patch0090: 0090-Fix-detection-when-a-bootable-partition-in-on-RAID.patch
|
||||
Patch0091: 0091-GPG-check-do-not-raise-an-error-when-TargetUserSpace.patch
|
||||
Patch0092: 0092-OpenSSHConfigScanner-Include-directive-is-supported-.patch
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
@ -306,6 +350,49 @@ Requires: python3-gobject-base
|
||||
%patch0047 -p1
|
||||
%patch0048 -p1
|
||||
%patch0049 -p1
|
||||
%patch0050 -p1
|
||||
%patch0051 -p1
|
||||
%patch0052 -p1
|
||||
%patch0053 -p1
|
||||
%patch0054 -p1
|
||||
%patch0055 -p1
|
||||
%patch0056 -p1
|
||||
%patch0057 -p1
|
||||
%patch0058 -p1
|
||||
%patch0059 -p1
|
||||
%patch0060 -p1
|
||||
%patch0061 -p1
|
||||
%patch0062 -p1
|
||||
%patch0063 -p1
|
||||
%patch0064 -p1
|
||||
%patch0065 -p1
|
||||
%patch0066 -p1
|
||||
%patch0067 -p1
|
||||
%patch0068 -p1
|
||||
%patch0069 -p1
|
||||
%patch0070 -p1
|
||||
%patch0071 -p1
|
||||
%patch0072 -p1
|
||||
%patch0073 -p1
|
||||
%patch0074 -p1
|
||||
%patch0075 -p1
|
||||
%patch0076 -p1
|
||||
%patch0077 -p1
|
||||
%patch0078 -p1
|
||||
%patch0079 -p1
|
||||
%patch0080 -p1
|
||||
%patch0081 -p1
|
||||
%patch0082 -p1
|
||||
%patch0083 -p1
|
||||
%patch0084 -p1
|
||||
%patch0085 -p1
|
||||
%patch0086 -p1
|
||||
%patch0087 -p1
|
||||
%patch0088 -p1
|
||||
%patch0089 -p1
|
||||
%patch0090 -p1
|
||||
%patch0091 -p1
|
||||
%patch0092 -p1
|
||||
|
||||
|
||||
%build
|
||||
@ -383,6 +470,18 @@ done;
|
||||
# no files here
|
||||
|
||||
%changelog
|
||||
* Wed Jul 24 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.20.0-5
|
||||
- Improve set_systemd_services_states logging
|
||||
- [IPU 7 -> 8] Fix detection of bootable device on RAID
|
||||
- Fix detection of valid sshd config with internal-sftp subsystem in Leapp
|
||||
- Handle a false positive GPG check error when TargetUserSpaceInfo is missing
|
||||
- Fix failing "update-ca-trust" command caused by missing util-linux package
|
||||
- Improve report when a system is unsupported
|
||||
- Fix handling of versions in RHUI configuration for ELS and SAP upgrades
|
||||
- Add missing RHUI GCP config info for RHEL for SAP
|
||||
- Fix upgrade on aarch64 via RHUI on AWS
|
||||
- Resolves: RHEL-33902, RHEL-38909, RHEL-30573, RHEL-43978, RHEL-39046, RHEL-39047, RHEL-39049
|
||||
|
||||
* Thu May 30 2024 Petr Stodulka <pstodulk@redhat.com> - 0.20.0-4
|
||||
- Enable new upgrade path RHEL 8.10 -> 9.5
|
||||
- Minor updates in reports
|
||||
|
Loading…
Reference in New Issue
Block a user