Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
SOURCES/deps-pkgs-10.tar.gz
|
/deps-pkgs-10.tar.gz
|
||||||
SOURCES/leapp-repository-0.20.0.tar.gz
|
/leapp-repository-0.21.0.tar.gz
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
d520ada12294e4dd8837c81f92d4c184ab403d51 SOURCES/deps-pkgs-10.tar.gz
|
|
||||||
185bbb040dba48e1ea2d6c627133af594378afd4 SOURCES/leapp-repository-0.20.0.tar.gz
|
|
@ -0,0 +1,43 @@
|
|||||||
|
From fbc38d4ad1d828e0553579e3719c0e4ed4a2a6bd Mon Sep 17 00:00:00 2001
|
||||||
|
From: jinkangkang <1547182170@qq.com>
|
||||||
|
Date: Mon, 19 Aug 2024 18:46:08 +0800
|
||||||
|
Subject: [PATCH] rhui(alibaba): add ARM RHEL8 and RHEL9 setup entries (#1277)
|
||||||
|
|
||||||
|
Since leapp's RHUI mechanism filters setups based on the architecture of the source system,
|
||||||
|
it was not possible to upgrade of ARM-based RHEL systems on Alibaba cloud as there
|
||||||
|
were no ARM entries in RHUI_SETUPS. This patch adds these entries, making it possible
|
||||||
|
for EL 8 -> 9 upgrades of ARM systems on Alibaba cloud.
|
||||||
|
---
|
||||||
|
repos/system_upgrade/common/libraries/rhui.py | 16 ++++++++++++++++
|
||||||
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/libraries/rhui.py b/repos/system_upgrade/common/libraries/rhui.py
|
||||||
|
index 51694ac2..30de0275 100644
|
||||||
|
--- a/repos/system_upgrade/common/libraries/rhui.py
|
||||||
|
+++ b/repos/system_upgrade/common/libraries/rhui.py
|
||||||
|
@@ -348,6 +348,22 @@ RHUI_SETUPS = {
|
||||||
|
('content.crt', RHUI_PKI_PRODUCT_DIR)
|
||||||
|
],
|
||||||
|
os_version='9'),
|
||||||
|
+ ],
|
||||||
|
+ RHUIFamily(RHUIProvider.ALIBABA, arch=arch.ARCH_ARM64, client_files_folder='alibaba'): [
|
||||||
|
+ mk_rhui_setup(clients={'aliyun_rhui_rhel8'}, 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='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.45.2
|
||||||
|
|
@ -1,251 +0,0 @@
|
|||||||
From 921c06892f7550a3a8e2b3fe941c6272bdacf88d Mon Sep 17 00:00:00 2001
|
|
||||||
From: mhecko <mhecko@redhat.com>
|
|
||||||
Date: Thu, 15 Feb 2024 09:56:27 +0100
|
|
||||||
Subject: [PATCH] rhui: do not bootstrap target client on aws
|
|
||||||
|
|
||||||
Bootstrapping target RHUI client now requires installing the entire
|
|
||||||
RHEL8 RPM stack. Threfore, do not try installing target client
|
|
||||||
and instead rely only on the files from our leapp-rhui-aws package.
|
|
||||||
---
|
|
||||||
.../cloud/checkrhui/libraries/checkrhui.py | 6 +-
|
|
||||||
.../libraries/userspacegen.py | 104 ++++++++++++++----
|
|
||||||
.../system_upgrade/common/models/rhuiinfo.py | 7 ++
|
|
||||||
3 files changed, 92 insertions(+), 25 deletions(-)
|
|
||||||
|
|
||||||
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 84ab40e3..e1c158c7 100644
|
|
||||||
--- a/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
|
|
||||||
+++ b/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
|
|
||||||
@@ -142,7 +142,11 @@ def customize_rhui_setup_for_aws(rhui_family, setup_info):
|
|
||||||
|
|
||||||
target_version = version.get_target_major_version()
|
|
||||||
if target_version == '8':
|
|
||||||
- return # The rhel8 plugin is packed into leapp-rhui-aws as we need python2 compatible client
|
|
||||||
+ # RHEL8 rh-amazon-rhui-client depends on amazon-libdnf-plugin that depends
|
|
||||||
+ # essentially on the entire RHEL8 RPM stack, so we cannot just swap the clients
|
|
||||||
+ # The leapp-rhui-aws will provide all necessary files to access entire RHEL8 content
|
|
||||||
+ setup_info.bootstrap_target_client = False
|
|
||||||
+ return
|
|
||||||
|
|
||||||
amazon_plugin_copy_task = CopyFile(src='/usr/lib/python3.9/site-packages/dnf-plugins/amazon-id.py',
|
|
||||||
dst='/usr/lib/python3.6/site-packages/dnf-plugins/')
|
|
||||||
diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
|
||||||
index d917bfd5..d60bc75f 100644
|
|
||||||
--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
|
||||||
+++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
|
|
||||||
@@ -853,9 +853,9 @@ def _get_rhui_available_repoids(context, cloud_repo):
|
|
||||||
return set(repoids)
|
|
||||||
|
|
||||||
|
|
||||||
-def get_copy_location_from_copy_in_task(context, copy_task):
|
|
||||||
+def get_copy_location_from_copy_in_task(context_basepath, copy_task):
|
|
||||||
basename = os.path.basename(copy_task.src)
|
|
||||||
- dest_in_container = context.full_path(copy_task.dst)
|
|
||||||
+ dest_in_container = os.path.join(context_basepath, copy_task.dst)
|
|
||||||
if os.path.isdir(dest_in_container):
|
|
||||||
return os.path.join(copy_task.dst, basename)
|
|
||||||
return copy_task.dst
|
|
||||||
@@ -871,7 +871,10 @@ def _get_rh_available_repoids(context, indata):
|
|
||||||
|
|
||||||
# If we are upgrading a RHUI system, check what repositories are provided by the (already installed) target clients
|
|
||||||
if indata and indata.rhui_info:
|
|
||||||
- files_provided_by_clients = _query_rpm_for_pkg_files(context, indata.rhui_info.target_client_pkg_names)
|
|
||||||
+ setup_info = indata.rhui_info.target_client_setup_info
|
|
||||||
+ target_content_access_files = set()
|
|
||||||
+ if setup_info.bootstrap_target_client:
|
|
||||||
+ target_content_access_files = _query_rpm_for_pkg_files(context, indata.rhui_info.target_client_pkg_names)
|
|
||||||
|
|
||||||
def is_repofile(path):
|
|
||||||
return os.path.dirname(path) == '/etc/yum.repos.d' and os.path.basename(path).endswith('.repo')
|
|
||||||
@@ -884,24 +887,33 @@ def _get_rh_available_repoids(context, indata):
|
|
||||||
|
|
||||||
yum_repos_d = context.full_path('/etc/yum.repos.d')
|
|
||||||
all_repofiles = {os.path.join(yum_repos_d, path) for path in os.listdir(yum_repos_d) if path.endswith('.repo')}
|
|
||||||
- client_repofiles = {context.full_path(path) for path in files_provided_by_clients if is_repofile(path)}
|
|
||||||
+ api.current_logger().debug('(RHUI Setup) All available repofiles: {0}'.format(' '.join(all_repofiles)))
|
|
||||||
+
|
|
||||||
+ target_access_repofiles = {
|
|
||||||
+ context.full_path(path) for path in target_content_access_files if is_repofile(path)
|
|
||||||
+ }
|
|
||||||
|
|
||||||
# Exclude repofiles used to setup the target rhui access as on some platforms the repos provided by
|
|
||||||
# the client are not sufficient to install the client into target userspace (GCP)
|
|
||||||
rhui_setup_repofile_tasks = [task for task in setup_tasks if task.src.endswith('repo')]
|
|
||||||
rhui_setup_repofiles = (
|
|
||||||
- get_copy_location_from_copy_in_task(context, copy_task) for copy_task in rhui_setup_repofile_tasks
|
|
||||||
+ get_copy_location_from_copy_in_task(context.base_dir, copy) for copy in rhui_setup_repofile_tasks
|
|
||||||
)
|
|
||||||
rhui_setup_repofiles = {context.full_path(repofile) for repofile in rhui_setup_repofiles}
|
|
||||||
|
|
||||||
- foreign_repofiles = all_repofiles - client_repofiles - rhui_setup_repofiles
|
|
||||||
+ foreign_repofiles = all_repofiles - target_access_repofiles - rhui_setup_repofiles
|
|
||||||
+
|
|
||||||
+ api.current_logger().debug(
|
|
||||||
+ 'The following repofiles are considered as unknown to'
|
|
||||||
+ ' the target RHUI content setup and will be ignored: {0}'.format(' '.join(foreign_repofiles))
|
|
||||||
+ )
|
|
||||||
|
|
||||||
# Rename non-client repofiles so they will not be recognized when running dnf repolist
|
|
||||||
for foreign_repofile in foreign_repofiles:
|
|
||||||
os.rename(foreign_repofile, '{0}.back'.format(foreign_repofile))
|
|
||||||
|
|
||||||
try:
|
|
||||||
- dnf_cmd = ['dnf', 'repolist', '--releasever', target_ver, '-v']
|
|
||||||
+ dnf_cmd = ['dnf', 'repolist', '--releasever', target_ver, '-v', '--enablerepo', '*']
|
|
||||||
repolist_result = context.call(dnf_cmd)['stdout']
|
|
||||||
repoid_lines = [line for line in repolist_result.split('\n') if line.startswith('Repo-id')]
|
|
||||||
rhui_repoids = {extract_repoid_from_line(line) for line in repoid_lines}
|
|
||||||
@@ -919,6 +931,9 @@ def _get_rh_available_repoids(context, indata):
|
|
||||||
for foreign_repofile in foreign_repofiles:
|
|
||||||
os.rename('{0}.back'.format(foreign_repofile), foreign_repofile)
|
|
||||||
|
|
||||||
+ api.current_logger().debug(
|
|
||||||
+ 'The following repofiles are considered as provided by RedHat: {0}'.format(' '.join(rh_repoids))
|
|
||||||
+ )
|
|
||||||
return rh_repoids
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1086,7 +1101,7 @@ def _get_target_userspace():
|
|
||||||
return constants.TARGET_USERSPACE.format(get_target_major_version())
|
|
||||||
|
|
||||||
|
|
||||||
-def _create_target_userspace(context, packages, files, target_repoids):
|
|
||||||
+def _create_target_userspace(context, indata, packages, files, target_repoids):
|
|
||||||
"""Create the target userspace."""
|
|
||||||
target_path = _get_target_userspace()
|
|
||||||
prepare_target_userspace(context, target_path, target_repoids, list(packages))
|
|
||||||
@@ -1096,12 +1111,57 @@ def _create_target_userspace(context, packages, files, target_repoids):
|
|
||||||
_copy_files(target_context, files)
|
|
||||||
dnfplugin.install(_get_target_userspace())
|
|
||||||
|
|
||||||
+ # If we used only repofiles from leapp-rhui-<provider> then remove these as they provide
|
|
||||||
+ # duplicit definitions as the target clients already installed in the target container
|
|
||||||
+ if indata.rhui_info:
|
|
||||||
+ api.current_logger().debug(
|
|
||||||
+ 'Target container should have access to content. '
|
|
||||||
+ 'Removing repofiles from leapp-rhui-<provider> from the target..'
|
|
||||||
+ )
|
|
||||||
+ setup_info = indata.rhui_info.target_client_setup_info
|
|
||||||
+ if not setup_info.bootstrap_target_client:
|
|
||||||
+ target_userspace_path = _get_target_userspace()
|
|
||||||
+ for copy in setup_info.preinstall_tasks.files_to_copy_into_overlay:
|
|
||||||
+ dst_in_container = get_copy_location_from_copy_in_task(target_userspace_path, copy)
|
|
||||||
+ dst_in_container = dst_in_container.strip('/')
|
|
||||||
+ dst_in_host = os.path.join(target_userspace_path, dst_in_container)
|
|
||||||
+ if os.path.isfile(dst_in_host) and dst_in_host.endswith('.repo'):
|
|
||||||
+ api.current_logger().debug('Removing repofile: {0}'.format(dst_in_host))
|
|
||||||
+ os.remove(dst_in_host)
|
|
||||||
+
|
|
||||||
# and do not forget to set the rhsm into the container mode again
|
|
||||||
with mounting.NspawnActions(_get_target_userspace()) as target_context:
|
|
||||||
rhsm.set_container_mode(target_context)
|
|
||||||
|
|
||||||
|
|
||||||
-def install_target_rhui_client_if_needed(context, indata):
|
|
||||||
+def _apply_rhui_access_preinstall_tasks(context, rhui_setup_info):
|
|
||||||
+ if rhui_setup_info.preinstall_tasks:
|
|
||||||
+ api.current_logger().debug('Applying RHUI preinstall tasks.')
|
|
||||||
+ preinstall_tasks = rhui_setup_info.preinstall_tasks
|
|
||||||
+
|
|
||||||
+ for file_to_remove in preinstall_tasks.files_to_remove:
|
|
||||||
+ api.current_logger().debug('Removing {0} from the scratch container.'.format(file_to_remove))
|
|
||||||
+ context.remove(file_to_remove)
|
|
||||||
+
|
|
||||||
+ for copy_info in preinstall_tasks.files_to_copy_into_overlay:
|
|
||||||
+ api.current_logger().debug(
|
|
||||||
+ 'Copying {0} in {1} into the scratch container.'.format(copy_info.src, copy_info.dst)
|
|
||||||
+ )
|
|
||||||
+ context.makedirs(os.path.dirname(copy_info.dst), exists_ok=True)
|
|
||||||
+ context.copy_to(copy_info.src, copy_info.dst)
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+def _apply_rhui_access_postinstall_tasks(context, rhui_setup_info):
|
|
||||||
+ if rhui_setup_info.postinstall_tasks:
|
|
||||||
+ api.current_logger().debug('Applying RHUI postinstall tasks.')
|
|
||||||
+ for copy_info in rhui_setup_info.postinstall_tasks.files_to_copy:
|
|
||||||
+ context.makedirs(os.path.dirname(copy_info.dst), exists_ok=True)
|
|
||||||
+ debug_msg = 'Copying {0} to {1} (inside the scratch container).'
|
|
||||||
+ api.current_logger().debug(debug_msg.format(copy_info.src, copy_info.dst))
|
|
||||||
+ context.call(['cp', copy_info.src, copy_info.dst])
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+def setup_target_rhui_access_if_needed(context, indata):
|
|
||||||
if not indata.rhui_info:
|
|
||||||
return
|
|
||||||
|
|
||||||
@@ -1110,15 +1170,14 @@ def install_target_rhui_client_if_needed(context, indata):
|
|
||||||
_create_target_userspace_directories(userspace_dir)
|
|
||||||
|
|
||||||
setup_info = indata.rhui_info.target_client_setup_info
|
|
||||||
- if setup_info.preinstall_tasks:
|
|
||||||
- preinstall_tasks = setup_info.preinstall_tasks
|
|
||||||
+ _apply_rhui_access_preinstall_tasks(context, setup_info)
|
|
||||||
|
|
||||||
- for file_to_remove in preinstall_tasks.files_to_remove:
|
|
||||||
- context.remove(file_to_remove)
|
|
||||||
-
|
|
||||||
- for copy_info in preinstall_tasks.files_to_copy_into_overlay:
|
|
||||||
- context.makedirs(os.path.dirname(copy_info.dst), exists_ok=True)
|
|
||||||
- context.copy_to(copy_info.src, copy_info.dst)
|
|
||||||
+ if not setup_info.bootstrap_target_client:
|
|
||||||
+ # Installation of the target RHUI client is not possible and we bundle all necessary
|
|
||||||
+ # files into the leapp-rhui-<provider> packages.
|
|
||||||
+ api.current_logger().debug('Bootstrapping target RHUI client is disabled, leapp will rely '
|
|
||||||
+ 'only on files budled in leapp-rhui-<provider> package.')
|
|
||||||
+ return
|
|
||||||
|
|
||||||
cmd = ['dnf', '-y']
|
|
||||||
|
|
||||||
@@ -1149,16 +1208,13 @@ def install_target_rhui_client_if_needed(context, indata):
|
|
||||||
|
|
||||||
context.call(cmd, callback_raw=utils.logging_handler, stdin='\n'.join(dnf_transaction_steps))
|
|
||||||
|
|
||||||
- if setup_info.postinstall_tasks:
|
|
||||||
- for copy_info in setup_info.postinstall_tasks.files_to_copy:
|
|
||||||
- context.makedirs(os.path.dirname(copy_info.dst), exists_ok=True)
|
|
||||||
- context.call(['cp', copy_info.src, copy_info.dst])
|
|
||||||
+ _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)
|
|
||||||
|
|
||||||
for copy_task in setup_info.preinstall_tasks.files_to_copy_into_overlay:
|
|
||||||
- dest = get_copy_location_from_copy_in_task(context, copy_task)
|
|
||||||
+ dest = get_copy_location_from_copy_in_task(context.base_dir, copy_task)
|
|
||||||
can_be_cleaned_up = copy_task.src not in setup_info.files_supporting_client_operation
|
|
||||||
if dest not in files_owned_by_clients and can_be_cleaned_up:
|
|
||||||
context.remove(dest)
|
|
||||||
@@ -1184,10 +1240,10 @@ def perform():
|
|
||||||
target_iso = next(api.consume(TargetOSInstallationImage), None)
|
|
||||||
with mounting.mount_upgrade_iso_to_root_dir(overlay.target, target_iso):
|
|
||||||
|
|
||||||
- install_target_rhui_client_if_needed(context, indata)
|
|
||||||
+ setup_target_rhui_access_if_needed(context, indata)
|
|
||||||
|
|
||||||
target_repoids = _gather_target_repositories(context, indata, prod_cert_path)
|
|
||||||
- _create_target_userspace(context, indata.packages, indata.files, target_repoids)
|
|
||||||
+ _create_target_userspace(context, indata, indata.packages, indata.files, target_repoids)
|
|
||||||
# TODO: this is tmp solution as proper one needs significant refactoring
|
|
||||||
target_repo_facts = repofileutils.get_parsed_repofiles(context)
|
|
||||||
api.produce(TMPTargetRepositoriesFacts(repositories=target_repo_facts))
|
|
||||||
diff --git a/repos/system_upgrade/common/models/rhuiinfo.py b/repos/system_upgrade/common/models/rhuiinfo.py
|
|
||||||
index 3eaa4826..0a2e45af 100644
|
|
||||||
--- a/repos/system_upgrade/common/models/rhuiinfo.py
|
|
||||||
+++ b/repos/system_upgrade/common/models/rhuiinfo.py
|
|
||||||
@@ -36,6 +36,13 @@ class TargetRHUISetupInfo(Model):
|
|
||||||
files_supporting_client_operation = fields.List(fields.String(), default=[])
|
|
||||||
"""A subset of files copied in preinstall tasks that should not be cleaned up."""
|
|
||||||
|
|
||||||
+ bootstrap_target_client = fields.Boolean(default=True)
|
|
||||||
+ """
|
|
||||||
+ Swap the current RHUI client for the target one to facilitate access to the target content.
|
|
||||||
+
|
|
||||||
+ When False, only files from the leapp-rhui-<provider> will be used to access target content.
|
|
||||||
+ """
|
|
||||||
+
|
|
||||||
|
|
||||||
class RHUIInfo(Model):
|
|
||||||
"""
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-8
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
||||||
|
|
@ -7,9 +7,19 @@
|
|||||||
%if 0%{?rhel} == 7
|
%if 0%{?rhel} == 7
|
||||||
%define leapp_python_sitelib %{python2_sitelib}
|
%define leapp_python_sitelib %{python2_sitelib}
|
||||||
%define lpr_name leapp-upgrade-el7toel8
|
%define lpr_name leapp-upgrade-el7toel8
|
||||||
|
%define repo_shortname el7toel8
|
||||||
|
%define next_major_ver 8
|
||||||
%else
|
%else
|
||||||
%define leapp_python_sitelib %{python3_sitelib}
|
%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
|
# This drops autogenerated deps on
|
||||||
# - /usr/libexec/platform-python (rhel-8 buildroot)
|
# - /usr/libexec/platform-python (rhel-8 buildroot)
|
||||||
@ -41,7 +51,7 @@ py2_byte_compile "%1" "%2"}
|
|||||||
# RHEL 8+ packages to be consistent with other leapp projects in future.
|
# RHEL 8+ packages to be consistent with other leapp projects in future.
|
||||||
|
|
||||||
Name: leapp-repository
|
Name: leapp-repository
|
||||||
Version: 0.20.0
|
Version: 0.21.0
|
||||||
Release: 2%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Repositories for leapp
|
Summary: Repositories for leapp
|
||||||
|
|
||||||
@ -55,8 +65,7 @@ BuildArch: noarch
|
|||||||
|
|
||||||
### PATCHES HERE
|
### PATCHES HERE
|
||||||
# Patch0001: filename.patch
|
# Patch0001: filename.patch
|
||||||
|
Patch0001: 0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
|
||||||
Patch0001: 0001-rhui-do-not-bootstrap-target-client-on-aws.patch
|
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -86,14 +95,24 @@ Obsoletes: leapp-repository-sos-plugin <= 0.10.0
|
|||||||
Conflicts: leapp-upgrade-el8toel9
|
Conflicts: leapp-upgrade-el8toel9
|
||||||
|
|
||||||
%else
|
%else
|
||||||
######### RHEL 8 ############
|
######### RHEL 8+ (and newer) ############
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
Requires: python3-leapp
|
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
|
# Same as the conflict above - we want to be sure our packages are untouched
|
||||||
# during the whole IPU process
|
# during the whole IPU process
|
||||||
Conflicts: leapp-upgrade-el7toel8
|
Conflicts: leapp-upgrade-el7toel8
|
||||||
|
Conflicts: leapp-upgrade-el9toel10
|
||||||
|
%else
|
||||||
|
######### RHEL 9 ############
|
||||||
|
Conflicts: leapp-upgrade-el8toel9
|
||||||
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# IMPORTANT: every time the requirements are changed, increment number by one
|
# IMPORTANT: every time the requirements are changed, increment number by one
|
||||||
@ -213,11 +232,7 @@ Requires: python3-gobject-base
|
|||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if 0%{?rhel} == 7
|
cp -a leapp*deps*el%{next_major_ver}.noarch.rpm repos/system_upgrade/%{repo_shortname}/files/bundled-rpms/
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -225,6 +240,7 @@ install -m 0755 -d %{buildroot}%{custom_repositorydir}
|
|||||||
install -m 0755 -d %{buildroot}%{repositorydir}
|
install -m 0755 -d %{buildroot}%{repositorydir}
|
||||||
cp -r repos/* %{buildroot}%{repositorydir}/
|
cp -r repos/* %{buildroot}%{repositorydir}/
|
||||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/repos.d/
|
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/transaction/
|
||||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
|
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
|
||||||
install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
|
install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
|
||||||
@ -237,11 +253,10 @@ rm -rf %{buildroot}%{leapp_python_sitelib}/leapp/cli/commands/tests
|
|||||||
|
|
||||||
# Remove irrelevant repositories - We don't want to ship them for the particular
|
# Remove irrelevant repositories - We don't want to ship them for the particular
|
||||||
# RHEL version
|
# RHEL version
|
||||||
%if 0%{?rhel} == 7
|
for i in el7toel8 el8toel9 el9toel10;
|
||||||
rm -rf %{buildroot}%{repositorydir}/system_upgrade/el8toel9
|
do
|
||||||
%else
|
[ "$i" != "%{repo_shortname}" ] && rm -rf %{buildroot}%{repositorydir}/system_upgrade/$i
|
||||||
rm -rf %{buildroot}%{repositorydir}/system_upgrade/el7toel8
|
done
|
||||||
%endif
|
|
||||||
|
|
||||||
# remove component/unit tests, Makefiles, ... stuff that related to testing only
|
# remove component/unit tests, Makefiles, ... stuff that related to testing only
|
||||||
rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
|
rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
|
||||||
@ -287,6 +302,54 @@ done;
|
|||||||
# no files here
|
# no files here
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Aug 19 2024 Petr Stodulka <pstodulk@redhat.com> - 0.21.0-2
|
||||||
|
- Updated SPEC file to drop leapp repositories unrelated to IPU 8 -> 9
|
||||||
|
- Resolves: RHEL-27847
|
||||||
|
|
||||||
|
* Fri Aug 16 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.21.0-1
|
||||||
|
- Rebase to new upstream 0.21.0
|
||||||
|
- Updated leapp data files.
|
||||||
|
- Inhibit the upgrade to RHEL 9.5 on ARM architecture due to
|
||||||
|
incompatibility between the RHEL 8 bootloader and RHEL 9.5 kernel.
|
||||||
|
- Introduce experimental upgrades in 'live' mode for the testing.
|
||||||
|
- Resolves: RHEL-27847, RHEL-52993, RHEL-45280, RHEL-49748, RHEL-52186
|
||||||
|
|
||||||
|
* 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
|
||||||
|
- Add information about leapp invocation to leapp.db
|
||||||
|
- Resolves: RHEL-27847
|
||||||
|
|
||||||
|
* Mon May 13 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.20.0-3
|
||||||
|
- Do not terminate the upgrade dracut module execution if
|
||||||
|
/sysroot/root/tmp_leapp_py3/.leapp_upgrade_failed exists
|
||||||
|
- Several minor improvements in messages printed in console output
|
||||||
|
- Several minor improvements in report and error messages
|
||||||
|
- Fix the parsing of the lscpu output
|
||||||
|
- Fix evaluation of PES data
|
||||||
|
- Target by default always "GA" channel repositories unless a different
|
||||||
|
channel is specified for the leapp execution
|
||||||
|
- Fix creation of the post upgrade report about changes in states of systemd
|
||||||
|
services
|
||||||
|
- Update the device driver deprecation data, fixing invalid fields for some
|
||||||
|
AMD CPUs
|
||||||
|
- Update the default kernel cmdline
|
||||||
|
- Wait for the storage initialization when /usr is on separate file system -
|
||||||
|
covering SAN
|
||||||
|
- Resolves: RHEL-27847, RHEL-35240
|
||||||
|
|
||||||
* Tue Feb 20 2024 Petr Stodulka <pstodulk@redhat.com> - 0.20.0-2
|
* Tue Feb 20 2024 Petr Stodulka <pstodulk@redhat.com> - 0.20.0-2
|
||||||
- Fallback to original RHUI solution on AWS to fix issues caused by changes in RHUI client
|
- Fallback to original RHUI solution on AWS to fix issues caused by changes in RHUI client
|
||||||
- Resolves: RHEL-16729
|
- Resolves: RHEL-16729
|
73
plans/tier0.fmf
Normal file
73
plans/tier0.fmf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# These test plans were created manually based on information taken from
|
||||||
|
# https://gitlab.cee.redhat.com/oamg/leapp-tests/-/blob/main/config.yaml. The tmt definitions can be simplified, once
|
||||||
|
# https://github.com/teemtee/tmt/issues/1770 is implemented.
|
||||||
|
|
||||||
|
summary: Internal Tier0 tests
|
||||||
|
|
||||||
|
environment:
|
||||||
|
SOURCE_RELEASE: '8.10'
|
||||||
|
TARGET_RELEASE: '9.5'
|
||||||
|
|
||||||
|
context:
|
||||||
|
distro: rhel-8.10
|
||||||
|
distro_target: rhel-9.5
|
||||||
|
|
||||||
|
adjust:
|
||||||
|
enabled: false
|
||||||
|
when: distro == centos-stream-8
|
||||||
|
|
||||||
|
/customrepos_upgrade_happy_path:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/destructive/customrepos/basic_upgrade/upgrade_happy_path
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/oamg3661_two_reboots:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/destructive/customrepos/oamg/oamg3661_two_reboots
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/oamg9094_datainrpm_predownload_then_install:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/destructive/customrepos/oamg/oamg9094_datainrpm_predownload_then_install
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/oamg9299_devtmpfs_in_fstab:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/destructive/customrepos/oamg/oamg9299_devtmpfs_in_fstab
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/rhsm_upgrade_happy_path:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/destructive/rhsm/upgrade_happy_path
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/customrepos_tier0only:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/nondestructive/customrepos/tier0only
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/none_tier0only:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/nondestructive/none/tier0only
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
/rhsm_tier0only:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.cee.redhat.com/oamg/leapp-tests
|
||||||
|
name: /plans/nondestructive/rhsm/tier0only
|
||||||
|
ref: main
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (deps-pkgs-10.tar.gz) = e63f77e439456e0a8b0fc338b370ee7e2d7824b1d62c75f2209b283905c8c0641d504bfe910021317884fa1662429d952fd4c9b9ee457c48b34182e6f975aa0e
|
||||||
|
SHA512 (leapp-repository-0.21.0.tar.gz) = 57cbc9cf3395ade0f2f0ec90d0000e9bcf3eba7c40473bfe930dac648c7ae21cb07d3a5b30e1eb72c4c3e24a49778d81a5c322a4a5956678a5c1705c524d11f6
|
Loading…
Reference in New Issue
Block a user