Compare commits
No commits in common. "c8" and "c9s" have entirely different histories.
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
SOURCES/deps-pkgs-10.tar.gz
|
||||
SOURCES/leapp-repository-0.20.0.tar.gz
|
||||
/deps-pkgs-10.tar.gz
|
||||
/leapp-repository-0.21.0.tar.gz
|
||||
/deps-pkgs-11.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
|
||||
|
@ -1,997 +0,0 @@
|
||||
%global leapp_datadir %{_datadir}/leapp-repository
|
||||
%global repositorydir %{leapp_datadir}/repositories
|
||||
%global custom_repositorydir %{leapp_datadir}/custom-repositories
|
||||
|
||||
%define leapp_repo_deps 10
|
||||
|
||||
%if 0%{?rhel} == 7
|
||||
%define leapp_python_sitelib %{python2_sitelib}
|
||||
%define lpr_name leapp-upgrade-el7toel8
|
||||
%else
|
||||
%define leapp_python_sitelib %{python3_sitelib}
|
||||
%define lpr_name leapp-upgrade-el8toel9
|
||||
|
||||
# This drops autogenerated deps on
|
||||
# - /usr/libexec/platform-python (rhel-8 buildroot)
|
||||
# - /usr/bin/python3.x (epel-8 buildroot)
|
||||
# - python(abi) = 3.x
|
||||
# Each of these lead into the removal of leapp rpms as python is changed between
|
||||
# major versions of RHEL
|
||||
%global __requires_exclude ^python\\(abi\\) = 3\\..+|/usr/libexec/platform-python|/usr/bin/python.*
|
||||
%endif
|
||||
|
||||
|
||||
# TODO: not sure whether it's required nowadays. Let's check it and drop
|
||||
# the whole block if not.
|
||||
%if 0%{?rhel} == 7
|
||||
# Defining py_byte_compile macro because it is not defined in old rpm (el7)
|
||||
# Only defined to python2 since python3 is not used in RHEL7
|
||||
%{!?py_byte_compile: %global py_byte_compile py2_byte_compile() {\
|
||||
python_binary="%1"\
|
||||
bytecode_compilation_path="%2"\
|
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
||||
}\
|
||||
py2_byte_compile "%1" "%2"}
|
||||
%endif
|
||||
|
||||
|
||||
# We keeps the leapp-repository name for the component, however we do not plan
|
||||
# to create such an rpm. Instead, we are going to introduce new naming for
|
||||
# RHEL 8+ packages to be consistent with other leapp projects in future.
|
||||
|
||||
Name: leapp-repository
|
||||
Version: 0.20.0
|
||||
Release: 2%{?dist}
|
||||
Summary: Repositories for leapp
|
||||
|
||||
License: ASL 2.0
|
||||
URL: https://oamg.github.io/leapp/
|
||||
Source0: https://github.com/oamg/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
Source1: deps-pkgs-10.tar.gz
|
||||
|
||||
# NOTE: Our packages must be noarch. Do no drop this in any way.
|
||||
BuildArch: noarch
|
||||
|
||||
### PATCHES HERE
|
||||
# Patch0001: filename.patch
|
||||
|
||||
Patch0001: 0001-rhui-do-not-bootstrap-target-client-on-aws.patch
|
||||
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
|
||||
|
||||
# This is the real RPM with the leapp repositories content
|
||||
%package -n %{lpr_name}
|
||||
Summary: Leapp repositories for the in-place upgrade
|
||||
|
||||
%if 0%{?rhel} == 7
|
||||
######### RHEL 7 ############
|
||||
BuildRequires: python-devel
|
||||
Requires: python2-leapp
|
||||
|
||||
# We should not drop this on RHEL 7 because of the compatibility reasons
|
||||
Obsoletes: leapp-repository-data <= 0.6.1
|
||||
Provides: leapp-repository-data <= 0.6.1
|
||||
|
||||
# Former leapp subpackage that is part of the sos package since RHEL 7.8
|
||||
Obsoletes: leapp-repository-sos-plugin <= 0.10.0
|
||||
|
||||
# Set the conflict to be sure this RPM is not upgraded automatically to
|
||||
# the one from the target (upgraded) RHEL. The RPM has to stay untouched
|
||||
# during the whole IPU process.
|
||||
# The manual removal of the RPM is required after the IPU
|
||||
Conflicts: leapp-upgrade-el8toel9
|
||||
|
||||
%else
|
||||
######### RHEL 8 ############
|
||||
BuildRequires: python3-devel
|
||||
Requires: python3-leapp
|
||||
|
||||
# Same as the conflict above - we want to be sure our packages are untouched
|
||||
# during the whole IPU process
|
||||
Conflicts: leapp-upgrade-el7toel8
|
||||
|
||||
%endif
|
||||
|
||||
# IMPORTANT: every time the requirements are changed, increment number by one
|
||||
# - same for Provides in deps subpackage
|
||||
Requires: leapp-repository-dependencies = %{leapp_repo_deps}
|
||||
|
||||
# IMPORTANT: this is capability provided by the leapp framework rpm.
|
||||
# Check that 'version' instead of the real framework rpm version.
|
||||
Requires: leapp-framework >= 5.0
|
||||
|
||||
# Since we provide sub-commands for the leapp utility, we expect the leapp
|
||||
# tool to be installed as well.
|
||||
Requires: leapp
|
||||
|
||||
# Used to determine RHEL version of a given target RHEL installation image -
|
||||
# uncompressing redhat-release package from the ISO.
|
||||
Requires: cpio
|
||||
|
||||
# The leapp-repository rpm is renamed to %%{lpr_name}
|
||||
Obsoletes: leapp-repository < 0.14.0-5
|
||||
Provides: leapp-repository = %{version}-%{release}
|
||||
|
||||
# Provide "leapp-upgrade" for the user convenience. Users will be pointed
|
||||
# to install "leapp-upgrade" in the official docs.
|
||||
Provides: leapp-upgrade = %{version}-%{release}
|
||||
|
||||
# Provide leapp-commands so the framework could refer to them when customers
|
||||
# do not have installed particular leapp-repositories
|
||||
Provides: leapp-command(answer)
|
||||
Provides: leapp-command(preupgrade)
|
||||
Provides: leapp-command(upgrade)
|
||||
Provides: leapp-command(rerun)
|
||||
Provides: leapp-command(list-runs)
|
||||
|
||||
|
||||
%description -n %{lpr_name}
|
||||
Leapp repositories for the in-place upgrade to the next major version
|
||||
of the Red Hat Enterprise Linux system.
|
||||
|
||||
|
||||
# This metapackage should contain all RPM dependencies excluding deps on *leapp*
|
||||
# RPMs. This metapackage will be automatically replaced during the upgrade
|
||||
# to satisfy dependencies with RPMs from target system.
|
||||
%package -n %{lpr_name}-deps
|
||||
Summary: Meta-package with system dependencies of %{lpr_name} package
|
||||
|
||||
# The package has been renamed, so let's obsoletes the old one
|
||||
Obsoletes: leapp-repository-deps < 0.14.0-5
|
||||
|
||||
# IMPORTANT: every time the requirements are changed, increment number by one
|
||||
# - same for Requires in main package
|
||||
Provides: leapp-repository-dependencies = %{leapp_repo_deps}
|
||||
##################################################
|
||||
# Real requirements for the leapp-repository HERE
|
||||
##################################################
|
||||
Requires: dnf >= 4
|
||||
Requires: pciutils
|
||||
|
||||
# required to be able to format disk images with XFS file systems (default)
|
||||
Requires: xfsprogs
|
||||
|
||||
# required to be able to format disk images with Ext4 file systems
|
||||
# NOTE: this is not happening by default, but we can expact that many customers
|
||||
# will want to / need to do this - especially on RHEL 7 now. Adding this deps
|
||||
# as the best trade-off to resolve this problem.
|
||||
Requires: e2fsprogs
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} == 7
|
||||
# Required to gather system facts about SELinux
|
||||
Requires: libselinux-python
|
||||
Requires: python-pyudev
|
||||
# required by SELinux actors
|
||||
Requires: policycoreutils-python
|
||||
# Required to fetch leapp data
|
||||
Requires: python-requests
|
||||
|
||||
%else
|
||||
############# RHEL 8 dependencies (when the source system is RHEL 8) ##########
|
||||
# systemd-nspawn utility
|
||||
Requires: systemd-container
|
||||
Requires: python3-pyudev
|
||||
# Required to fetch leapp data
|
||||
Requires: python3-requests
|
||||
# Required because the code is kept Py2 & Py3 compatible
|
||||
Requires: python3-six
|
||||
# required by SELinux actors
|
||||
Requires: policycoreutils-python-utils
|
||||
# required by systemfacts, and several other actors
|
||||
Requires: procps-ng
|
||||
Requires: kmod
|
||||
# since RHEL 8+ dracut does not have to be present on the system all the time
|
||||
# and missing dracut could be killing situation for us :)
|
||||
Requires: dracut
|
||||
|
||||
# Required to scan NetworkManagerConnection (e.g. to recognize secrets)
|
||||
# NM is requested to be used on RHEL 8+ systems
|
||||
Requires: NetworkManager-libnm
|
||||
Requires: python3-gobject-base
|
||||
|
||||
%endif
|
||||
##################################################
|
||||
# end requirement
|
||||
##################################################
|
||||
|
||||
|
||||
%description -n %{lpr_name}-deps
|
||||
%{summary}
|
||||
|
||||
|
||||
%prep
|
||||
%setup -n %{name}-%{version}
|
||||
%setup -q -n %{name}-%{version} -D -T -a 1
|
||||
|
||||
# APPLY PATCHES HERE
|
||||
# %%patch0001 -p1
|
||||
%patch0001 -p1
|
||||
|
||||
|
||||
%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
|
||||
|
||||
|
||||
%install
|
||||
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/
|
||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/transaction/
|
||||
install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
|
||||
install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
|
||||
install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files
|
||||
|
||||
# install CLI commands for the leapp utility on the expected path
|
||||
install -m 0755 -d %{buildroot}%{leapp_python_sitelib}/leapp/cli/
|
||||
cp -r commands %{buildroot}%{leapp_python_sitelib}/leapp/cli/
|
||||
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
|
||||
|
||||
# remove component/unit tests, Makefiles, ... stuff that related to testing only
|
||||
rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
|
||||
find %{buildroot}%{repositorydir}/common -name "test.py" -delete
|
||||
rm -rf `find %{buildroot}%{repositorydir} -name "tests" -type d`
|
||||
find %{buildroot}%{repositorydir} -name "Makefile" -delete
|
||||
find %{buildroot} -name "*.py.orig" -delete
|
||||
|
||||
for DIRECTORY in $(find %{buildroot}%{repositorydir}/ -mindepth 1 -maxdepth 1 -type d);
|
||||
do
|
||||
REPOSITORY=$(basename $DIRECTORY)
|
||||
echo "Enabling repository $REPOSITORY"
|
||||
ln -s %{repositorydir}/$REPOSITORY %{buildroot}%{_sysconfdir}/leapp/repos.d/$REPOSITORY
|
||||
done;
|
||||
|
||||
# __python2 could be problematic on systems with Python3 only, but we have
|
||||
# no choice as __python became error on F33+:
|
||||
# https://fedoraproject.org/wiki/Changes/PythonMacroError
|
||||
%if 0%{?rhel} == 7
|
||||
%py_byte_compile %{__python2} %{buildroot}%{repositorydir}/*
|
||||
%else
|
||||
%py_byte_compile %{__python3} %{buildroot}%{repositorydir}/*
|
||||
%endif
|
||||
|
||||
|
||||
%files -n %{lpr_name}
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%dir %{_sysconfdir}/leapp/transaction
|
||||
%dir %{_sysconfdir}/leapp/files
|
||||
%dir %{leapp_datadir}
|
||||
%dir %{repositorydir}
|
||||
%dir %{custom_repositorydir}
|
||||
%dir %{leapp_python_sitelib}/leapp/cli/commands
|
||||
%config %{_sysconfdir}/leapp/files/*
|
||||
%{_sysconfdir}/leapp/repos.d/*
|
||||
%{_sysconfdir}/leapp/transaction/*
|
||||
%{repositorydir}/*
|
||||
%{leapp_python_sitelib}/leapp/cli/commands/*
|
||||
|
||||
|
||||
%files -n %{lpr_name}-deps
|
||||
# no files here
|
||||
|
||||
%changelog
|
||||
* 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
|
||||
- Resolves: RHEL-16729
|
||||
|
||||
* Tue Feb 13 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.20.0-1
|
||||
- Rebase to new upstream v0.20.0.
|
||||
- Fix semanage import issue
|
||||
- Fix handling of libvirt's systemd services
|
||||
- Add a dracut breakpoint for the pre-upgrade step.
|
||||
- Drop obsoleted upgrade paths (obsoleted releases: 8.6, 8.9, 9.0, 9.3)
|
||||
- Resolves: RHEL-16729
|
||||
|
||||
* Tue Jan 23 2024 Toshio Kuratomi <toshio@fedoraproject.org> - 0.19.0-10
|
||||
- Print nice error msg when device and driver deprecation data is malformed
|
||||
- Fix another cornercase when preserving symlinks to certificates in /etc/pki
|
||||
- Update the leapp upgrade data files - fixing upgrades with idm-tomcatjss
|
||||
- Resolves: RHEL-16729
|
||||
|
||||
* Fri Jan 19 2024 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-9
|
||||
- Do not try to download data files anymore when missing as the service
|
||||
is obsoleted since the data is part of installed packages
|
||||
- Update error messages and reports when installed upgrade data files
|
||||
are malformed or missing to instruct user how to resolve it
|
||||
- Update the leapp upgrade data files - bump data stream to "3.0"
|
||||
- Resolves: RHEL-16729
|
||||
|
||||
* Fri Jan 12 2024 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-7
|
||||
- Add detection of possible usage of OpenSSL IBMCA engine on IBM Z machines
|
||||
- Add detection of modified /etc/pki/tls/openssl.cnf file
|
||||
- Update the leapp upgrade data files
|
||||
- Fix handling of symlinks under /etc/pki with relative paths specified
|
||||
- Report custom actors and modifications of the upgrade tooling
|
||||
- Requires xfsprogs and e2fsprogs to ensure that Ext4 and XFS tools are installed
|
||||
- Bump leapp-repository-dependencies to 10
|
||||
- Resolves: RHEL-1774, RHEL-16729
|
||||
|
||||
* Thu Nov 16 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-5
|
||||
- Enable new upgrade path for RHEL 8.10 -> RHEL 9.4 (including RHEL with SAP HANA)
|
||||
- Introduce generic transition of systemd services states during the IPU
|
||||
- Introduce possibility to upgrade with local repositories
|
||||
- Improve possibilities of upgrade when a proxy is configured in DNF configutation file
|
||||
- Fix handling of symlinks under /etc/pki when managing certificates
|
||||
- Fix the upgrade with custom https repositories
|
||||
- Default to the NO_RHSM mode when subscription-manager is not installed
|
||||
- Detect customized configuration of dynamic linker
|
||||
- Drop the invalid `tuv` target channel for the --channel option
|
||||
- Fix the issue of going out of bounds in the isccfg parser
|
||||
- Fix traceback when saving the rhsm facts results and the /etc/rhsm/facts directory doesn’t exist yet
|
||||
- Load all rpm repository substitutions that dnf knows about, not just "releasever" only
|
||||
- Simplify handling of upgrades on systems using RHUI, reducing the maintenance burden for cloud providers
|
||||
- Detect possible unexpected RPM GPG keys has been installed during RPM transaction
|
||||
- Resolves: RHEL-16729
|
||||
|
||||
* Thu Nov 02 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-4
|
||||
- Fix the upgrade for systems without subscription-manager package
|
||||
- Resolves: RHEL-14901
|
||||
|
||||
* Tue Oct 31 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-3
|
||||
- Fix the upgrade when the release is locked by new subscription-manager
|
||||
- Resolves: RHEL-14901
|
||||
|
||||
* Wed Aug 23 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-1
|
||||
- Rebase to v0.19.0
|
||||
- Requires leapp-framework 5.0
|
||||
- Handle correctly the installed certificates to allow upgrades with custom repositories using HTTPs with enabled SSL verification
|
||||
- Fix failing upgrades with devtmpfs file systems specified in FSTAB
|
||||
- Do not try to update GRUB core on IBM Z systems
|
||||
- Minor improvements and fixes of various reports and error messages
|
||||
- Redesign handling of information about kernel (booted and target) to reflect changes in RHEL 9.3
|
||||
- Use new leapp CLI API which provides better report summary output
|
||||
- Resolves: rhbz#2215997, rhbz#2222861, rhbz#2232618
|
||||
|
||||
* Tue Jul 18 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-5
|
||||
- Fix the calculation of the required free space on each partitions/volume for the upgrade transactions
|
||||
- Create source overlay images with dynamic sizes to optimize disk space consumption
|
||||
- Update GRUB2 when /boot resides on multiple devices aggregated in RAID
|
||||
- Use new leapp CLI API which provides better report summary output
|
||||
- Introduce possibility to add (custom) kernel drivers to initramfs
|
||||
- Detect and report use of deprecated Xorg drivers
|
||||
- Fix the generation of the report about hybrid images
|
||||
- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected
|
||||
- Minor improvements and fixes of various reports
|
||||
- Requires leapp-framework 4.0
|
||||
- Update leapp data files
|
||||
- Resolves: rhbz#2140011, rhbz#2144304, rhbz#2174095, rhbz#2215997
|
||||
|
||||
* Mon Jun 19 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-4
|
||||
- Introduce new upgrade path RHEL 8.9 -> 9.3
|
||||
- Update leapp data files to reflect new changes between systems
|
||||
- Detect and report use of deprecated Xorg drivers
|
||||
- Minor improvements of generated reports
|
||||
- Fix false positive report about invalid symlinks
|
||||
- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected
|
||||
- Resolves: rhbz#2215997
|
||||
|
||||
* Mon Jun 05 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-3
|
||||
- Update the repomap.json file to address planned changes on RHUI Azure
|
||||
- Resolves: rhbz#2203800
|
||||
|
||||
* Fri May 19 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-2
|
||||
- Include leap data files in the package
|
||||
- Introduce in-place upgrades for systems with enabled FIPS mode
|
||||
- Enable the upgrade path 8.8 -> 9.2 for RHEL with SAP HANA
|
||||
- Fix the upgrade of ruby-irb package
|
||||
- Resolves: rhbz#2030627, rhbz#2097003, rhbz#2203800, rhbz#2203803
|
||||
|
||||
* Tue Feb 21 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-1
|
||||
- Rebase to v0.18.0
|
||||
- Introduce new upgrade path RHEL 8.8 -> 9.2
|
||||
- Requires cpio
|
||||
- Requires python3-gobject-base, NetworkManager-libnm
|
||||
- Bump leapp-repository-dependencies to 9
|
||||
- Add breadcrumbs results to RHSM facts
|
||||
- Add leapp RHUI packages to an allowlist to drop confusing reports
|
||||
- Added checks for RHEL SAP IPU 8.6 -> 9.0
|
||||
- Check RPM signatures during the upgrade
|
||||
- Check only mounted XFS partitions
|
||||
- Check the validity and compatitibility of used leapp data
|
||||
- Detect CIFS also when upgrading from RHEL8 to RHEL9 (PR1035)
|
||||
- Detect RoCE on IBM Z machines and check the configuration is safe for the upgrade
|
||||
- Detect a proxy configuration in YUM/DNF and adjust an error msg on issues caused by the configuration
|
||||
- Detect and report systemd symlinks that are broken before the upgrade
|
||||
- Detect the kernel-core RPM instead of kernel to prevent an error during post-upgrade phases
|
||||
- Disable the amazon-id DNF plugin on AWS during the upgrade stage to omit confusing error messages
|
||||
- Do not create new *pyc files when running leapp after the DNF upgrade transaction
|
||||
- Drop obsoleted upgrade paths
|
||||
- Enable upgrades of RHEL 8 for SAP HANA to RHEL 9 on ppc64le
|
||||
- Enable upgrades on s390x when /boot is part of rootfs
|
||||
- Extend the allow list of RHUI clients by azure-sap-apps to omit confusing report
|
||||
- Filter out PES events unrelated for the used upgrade path and handle overlapping event
|
||||
(fixes upgrades with quagga installed)
|
||||
- Fix scan of ceph volumes on systems without ceph-osd or when ceph-osd container is not found
|
||||
- Fix systemd symlinks that become incorrect during the IPU
|
||||
- Fix the check of memory (RAM) limits and use human readable values in the report
|
||||
- Fix the kernel detection during initramfs creation for new kernel on RHEL 9.2+
|
||||
- Fix the upgrade of IBM Z machines configured with ZFCP
|
||||
- Fix the upgrade on Azure using RHUI for SAP Apps images
|
||||
- Ignore external accounts in /etc/passwd
|
||||
- Improve remediation instructions for packages in unknown repositories
|
||||
- Improve the error message to guide users when discovered more space is needed
|
||||
- Improve the handling of blocklisted certificates
|
||||
- Inhibit the upgrade when entries in /etc/fstab cause overshadowing during the upgrade
|
||||
- Introduced an option to use an ISO file as a target RHEL version content source
|
||||
- Introduced possibility to specify what systemd services should be enabled/disabled on the upgraded system
|
||||
- Introduced the --nogpgcheck option to skip checking of RPM signatures
|
||||
- Map the target repositories also based on the installed content
|
||||
- Prevent re-run of leapp in the upgrade initramfs in case of previous failure
|
||||
- Prevent the upgrade with RHSM when Baseos and Appstream target repositories are not discovered
|
||||
- Provide common information about systemd services
|
||||
- RHUI(Azure) Handle correctly various SAP images
|
||||
- Register subscribed systems automatically to Red Hat Insights unless --no-insights-register is used
|
||||
- Remove obsoleted GPG keys provided by RH after the upgrade to prevent errors
|
||||
- Rework the network configuration handling and parse the configuration data properly
|
||||
- Set the system release lock after the upgrade also for premium channels
|
||||
- Small improvements in various reports
|
||||
- Resolves: rhbz#2088492, rhbz#2111691, rhbz#2127920, rhbz#2129716,rhbz#2139907, rhbz#2139907, rhbz#2141393, rhbz#2143372, rhbz#2155661
|
||||
|
||||
* Wed Sep 07 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-3
|
||||
- Adding back instruction to not install rubygem-irb during the in-place upgrade
|
||||
to prevent conflict between files
|
||||
- Resolves: rhbz#2090995
|
||||
|
||||
* Wed Sep 07 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-2
|
||||
- Update VDO checks to enable user to decide the system state on check failures
|
||||
and undetermined block devices
|
||||
- The VDO dialog and related VDO reports have been properly updated
|
||||
- Resolves: rhbz#2096159
|
||||
|
||||
* Wed Aug 24 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-1
|
||||
- Rebase to v0.17.0
|
||||
- Support upgrade path RHEL 8.7 -> 9.0 and RHEL SAP 8.6 -> 9.0
|
||||
- Provide and require leapp-repository-dependencies 7
|
||||
- Provide `leapp-command(<CMD>)` for each CLI command provided by leapp-repository
|
||||
- Require dracut, kmod, procps-ng on RHEL 8+
|
||||
- Require leapp-framework >= 3.1
|
||||
- Add actors covering removal of NIS components on RHEL 9
|
||||
- Add checks for obsolete .NET versions
|
||||
- Allow specifying the report schema v1.2.0
|
||||
- Check and handle upgrades with custom crypto policies
|
||||
- Check and migrate OpenSSH configuration
|
||||
- Check and migrate multipath configuration
|
||||
- Check minimum memory requirements
|
||||
- Do not create the upgrade bootloader entry when the dnf dry-run actor stops the upgrade
|
||||
- Enable Base and SAP in-place upgrades on Azure
|
||||
- Enable in-place upgrade in case LUKS volumes are Ceph OSDs
|
||||
- Enable in-place upgrades in Azure RHEL 8 base images using RHUI
|
||||
- Enable in-place upgrades on IBM z16 machines
|
||||
- Enable the CRB repository for the upgrade only if enabled on the source system
|
||||
- Fix cloud provider detection on AWS
|
||||
- Fix detection of the latest kernel
|
||||
- Fix issues caused by leapp artifacts from previous in-place upgrades
|
||||
- Fix issues with false positive switch to emergency console during the upgrade
|
||||
- Fix swap page size on aarch64
|
||||
- Fix the VDO scanner to skip partitions unrelated to VDO and adjust error messages
|
||||
- Fix the false positive NFS storage detection on NFS servers and improve the report msg
|
||||
- Fix the issues on systems with the LANGUAGE environment variable
|
||||
- Fix the root directory scan to deal with non-utf8 filenames
|
||||
- Handle upgrades of SAP systems on AWS
|
||||
- Inform about necessary migrations related to bacula-director when installed on the system
|
||||
- Inhibit the upgrade when /var/lib/leapp being mounted in a non-persistent fashion to prevent failures
|
||||
- Inhibit the upgrade when /var/lib/leapp mounted with the noexec option to prevent failures
|
||||
- Inhibit upgrade when NVIDIA driver is detected
|
||||
- Make the application of custom selinux rules more reliable and do not override changes done by RPM scriptlets
|
||||
- Migrate the OpenSSL configuration
|
||||
- PESEventScanner actor has been fully refactored
|
||||
- Report changes around SCP and SFTP
|
||||
- Skip comment lines when parsing the GRUB configuration file
|
||||
- Stop propagating the “debug” and ”enforcing=0” kernel cmdline options into the target kernel cmdline options
|
||||
- Mass refactoring to be compatible with leapp v0.15.0
|
||||
- Resolves: rhbz#2090995, rhbz#2040470, rhbz#2092005, rhbz#2093220, rhbz#2095704, rhbz#2096159, rhbz#2100108, rhbz#2100110, rhbz#2103282, rhbz#2106904, rhbz#2110627
|
||||
|
||||
* Wed Apr 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-6
|
||||
- Skip comments in /etc/default/grub during the parsing
|
||||
- Resolves: #1997076
|
||||
|
||||
* Tue Apr 26 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-5
|
||||
- Migrate blacklisted CA certificates during the upgrade
|
||||
- Resolves: #1997076
|
||||
|
||||
* Tue Apr 19 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-4
|
||||
- Extend the check of deprecated or removed PCI drivers
|
||||
- Do not instruct DNF to install rubygem-irb during the in-place upgrade
|
||||
to prevent conflict between files
|
||||
- Resolves: #1997076
|
||||
|
||||
* Fri Mar 18 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-1
|
||||
- Rebase to v0.16.0
|
||||
- Improve the performance of the leapp execution for "pre first reboot" phases
|
||||
- Introduce upgrades for RHEL 8 to RHEL 9
|
||||
- Enabled upgrade paths:
|
||||
- RHEL 8.6 -> 9.0
|
||||
- RHEL with SAP 8.6 -> 9.0
|
||||
- Requires leapp-framework >= 2.2
|
||||
- Bump leapp-framework-dependencies to 5
|
||||
- Add actors for MariaDB and PostgreSQL
|
||||
- Add detection of enabled DNF plugins
|
||||
- Add scan & checks for VDO devices
|
||||
- Bind the /run/lock dir into the container in the upgrade initramfs env
|
||||
- Check Firewalld configuration
|
||||
- Check SSSD configuration for changes in RHEL 9
|
||||
- Check deprecated network settings
|
||||
- Check ifcfg files for change in RHEL 9
|
||||
- Check the existence of the custom network-scripts
|
||||
- Filter out PES data unrelated for the particular IPU path
|
||||
- Fix generating of instructions/data for the leapp DNF plugin during
|
||||
- Fix generating the target initramfs when additional files and dracut modules are requested to be added
|
||||
- Fix getting device attribute through udev on Python 3
|
||||
- Fix parsing of sysctl output during the scan of the system
|
||||
- Fix scanning "/etc/default/grub" with empty lines
|
||||
- Fix scanning information about mounted devices
|
||||
- Fix the execution order for the dnf dry run actor
|
||||
- Handle SELinux during the in-place upgrade
|
||||
- Handle live kernel patching during
|
||||
- Improve and generalize checking of device drivers
|
||||
- Inhibit the upgrade when ipa-server is detected
|
||||
- Introduce DNFWorkarounds to register scripts to be executed before DNF run
|
||||
- Introduce handling of DNF modularity during the upgrade
|
||||
- Introduce the --report-schema option to control the version of the generated report format
|
||||
- Introduce the --target option to specify the version of the target system
|
||||
- Provide the LEAPP_IPU_IN_PROGRESS environment variable for actors during in-place upgrade
|
||||
- Resolves: #1997076
|
||||
|
||||
* Tue Feb 01 2022 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-12
|
||||
- Fix handling of PES data for modularity packages
|
||||
- Resolves: #1997076
|
||||
|
||||
* Thu Jan 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-11
|
||||
- Beta version of IPU 8 -> 9
|
||||
- Resolves: #1997076
|
||||
|
||||
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-10
|
||||
- Bumping the release for the testing purposes.
|
||||
- First build for the IPU 8 -> 9
|
||||
- Resolves: #1997076
|
||||
|
||||
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-3
|
||||
- Correct the version-release to obsolete previous leapp-repository-deps rpm
|
||||
- Resolves: #2015192
|
||||
|
||||
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-2
|
||||
- Correct the version-release to obsolete previous leapp-repository rpm
|
||||
- Resolves: #2015192
|
||||
|
||||
* Tue Oct 19 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-1
|
||||
- Rebase to v0.15.0
|
||||
- Changed supported upgrade path for: RHEL with SAP 7.9 -> 8.2
|
||||
- Enable upgrades for SAP on AWS & Azure using RHUI
|
||||
- The leapp-repository rpm has been renamed to leapp-upgrade-el7toel8
|
||||
- Provides the leapp-upgrade capability, so all required packages can be installed
|
||||
by the `yum install leapp-upgrade` command
|
||||
- Added a dependency on leapp as the new rpm provides leapp commands
|
||||
- Bumped leapp-repository-dependencies to 6
|
||||
- Do not exclude repoids enabled via the --enablerepo option (#623)
|
||||
- Enforce the `en_US.utf-8` locale when running leapp to prevent various issues
|
||||
when a different locale is used on the system
|
||||
- Enhance the check of required free space on disk for the upgrade
|
||||
- Fix XFS ftype=0 workaround when "non-XFS" rootfs is present
|
||||
- Fix detection of XFS partitions without ftype
|
||||
- Fix handling of /etc/yum.repos.d directory for RHUI
|
||||
- Fix incorrect mapping of RHEL repositories
|
||||
- Fix the detection of NFS partitions in /etc/fstab (e.g. when nfs3 or nfs4 is specified)
|
||||
- Fix the report message when multiple NICs with ethX names are present (#640)
|
||||
- Fix handling of issues when fetching leapp data files
|
||||
- Introduce the LEAPP_NO_NETWORK_RENAMING environment variable to leave management
|
||||
of NICs names on user when set to '1'; it's wanted e.g. in case a bonding
|
||||
is configured on the system
|
||||
- Add actors to report about PostgresSQL changes
|
||||
- Make generation of targetuserspace container, upgrade initramfs, and target initramfs more dynamic
|
||||
- Require the /etc/dasd.conf file only when DASD is used on s390x
|
||||
- Generate /etc/migration-results upon leapp preupgrade / upgrade execution to inform about status of the upgrade
|
||||
- Improve the report message when BTRFS is detected
|
||||
- Inhibit the upgrade if any CIFS entries found in /etc/fstab
|
||||
- Inhibit the upgrade if any deprecated OpenSSH configuration options / directives are detected
|
||||
- Inhibit the upgrade when multiple rescue boot entries exist on s390x
|
||||
- Inhibit the upgrade when x32b and x64b versions of packages are installed
|
||||
- Introduce hard preservation of leapp packages during the IPU to make the
|
||||
upgrade process more protected
|
||||
- Introduce new system of automatic mapping of RHEL repositories for the in-place
|
||||
upgrade based on the repomap.json data file
|
||||
- Introduce the --channel CLI option to specify the channel (e.g. eus) supposed
|
||||
to be used for the upgrade
|
||||
- Report the problems with target repositories using inhibitors instead of error messages
|
||||
- Update (or create) the /etc/{yum,dnf}/var/releasever file containing the target
|
||||
OS release if exists or RHUI is detected
|
||||
- Introduced the upgrade/common leapp repository: contains fundamental parts
|
||||
generic for all in-place upgrades
|
||||
- The upgrade/el7toel8 leapp repository contains only stuff related to in-place
|
||||
upgrade from RHEL 7 -> RHEL 8
|
||||
- Resolves: #2015192
|
||||
|
||||
* Thu May 13 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-4
|
||||
- Fix the check of removed non-pci drivers
|
||||
Relates: #1952886
|
||||
|
||||
* Tue May 04 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-3
|
||||
- Fix handling of errors when fetching leapp data files from server
|
||||
Relates: #1952886
|
||||
|
||||
* Tue Apr 27 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-2
|
||||
- Improve fetching of leapp data files from server (increase timeouts and
|
||||
retry multiple times in case of error)
|
||||
- Relates: #1952886
|
||||
|
||||
* Fri Apr 23 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-1
|
||||
- Rebase to v0.14.0
|
||||
- Added dependency on python-requests on RHEL 7
|
||||
- Changed supported upgrade paths:
|
||||
RHEL-ALT 7.6 -> 8.4
|
||||
RHEL 7.9 -> 8.4
|
||||
RHEL with SAP 7.7 -> 8.2 (unchanged)
|
||||
- Download the leapp data from cloud.redhat.com automatically
|
||||
when no data are present locally (and system is registered)
|
||||
- Fix migration of Quagga to FRR on RHEL 8.4
|
||||
- Inhibit the upgrade if the system uses any drivers dropped
|
||||
from the RHEL 8 system
|
||||
- Resolves: #1952886
|
||||
|
||||
* Thu Feb 04 2021 Dominik Rehak <drehak@redhat.com> - 0.13.0-2
|
||||
- Rebuild
|
||||
- Relates: #1915509
|
||||
|
||||
* Thu Feb 04 2021 Dominik Rehak <drehak@redhat.com> - 0.13.0-1
|
||||
- Rebase to v0.13.0
|
||||
- Add actors to migrate Quagga to FRR
|
||||
- Add stable uniq Key id for every dialog
|
||||
- Add upgrade support for SAP HANA
|
||||
- Allow upgrade with SCA enabled manifest
|
||||
- Fix comparison of the newest installed and booted kernel
|
||||
- Fix crash due to missing network interfaces during upgrade phases
|
||||
- Fix error with /boot/efi existing on non-EFI systems
|
||||
- Fix false positive detection of issue in /etc/default/grub that led into GRUB
|
||||
prompt
|
||||
- Fix remediation command for ipa-server removal
|
||||
- Fix syntax error in upgrade script
|
||||
- Inhibit upgrade if multiple kernel-debug pkgs are installed
|
||||
- Inhibit upgrade on s390x machines with /boot on a separate partition
|
||||
- Inhibit upgrade with mount options in fstab that break mounting on RHEL 8
|
||||
- Remove the *leapp-resume* service after the *FirstBoot* phase to prevent kill
|
||||
of the leapp process on `systemctl daemon-reload`
|
||||
- Remove the initial-setup package to avoid it asking for EULA acceptance during
|
||||
upgrade
|
||||
- Require the leapp-framework capability 1.4
|
||||
- Respect the *kernel-rt* package
|
||||
- Resolves: #1915509 #1872356 #1873312 #1899455 #1901002 #1905247 #1870813
|
||||
- Relates: #1901440
|
||||
|
||||
* Sun Oct 25 2020 Petr Stodulka <pstodulk@redhat.com> - 0.12.0-2
|
||||
- Add actors to migrate Quagga to FRR
|
||||
- Fixes issues with interrupted leapp during the FirstBoot phase when reload
|
||||
of daemons is required
|
||||
Resolves: #1883218
|
||||
- Relates: #1887912
|
||||
|
||||
* Wed Oct 21 2020 Dominik Rehak <drehak@redhat.com> - 0.12.0-1
|
||||
- Rebase to v0.12.0
|
||||
- Enable upgrades on AWS and Azure
|
||||
- Check usage of removed/deprecated leapp env vars
|
||||
- Do not inhibit if winbind or wins is used in nsswitch.conf
|
||||
(as the issue is fixed in RHEL 8.2)
|
||||
- Do not remove java from the upgrade transaction
|
||||
- Fix handling of events with same initial releases and input packages
|
||||
- Fix mkhomedir issues after authselect conversion
|
||||
- Fix python macro error in spec file
|
||||
- Fix storing of logs from initramfs
|
||||
- Handle migration of authselect and PAM
|
||||
- Improve remediation instructions for HA clusters
|
||||
- Make sure "default.target.wants" dir exists
|
||||
- Resolves: #1887912
|
||||
|
||||
* Tue Sep 15 2020 Dominik Rehak <drehak@redhat.com> - 0.11.0-4
|
||||
- Remove java from the upgrade transaction
|
||||
Relates: #1860375
|
||||
|
||||
* Tue Sep 08 2020 Petr Stodulka <pstodulk@redhat.com> - 0.11.0-3
|
||||
- Set authselect and PAM actors experimental again
|
||||
Relates: #1860375
|
||||
|
||||
* Wed Sep 02 2020 Petr Stodulka <pstodulk@redhat.com> - 0.11.0-2
|
||||
- Make possible upgrade with the java-11-openjdk-headless package
|
||||
- Fix check of local repositories when metalink or mirrorlist is specified
|
||||
- Relates: #1860375
|
||||
|
||||
* Tue Aug 18 2020 Michal Bocek <mbocek@redhat.com> - 0.11.0-1
|
||||
- Rebase to v0.11.0
|
||||
- Do not crash when the /root/temp_leapp_py3 directory exists (when upgrade is executed multiple times)
|
||||
Relates: #1858479
|
||||
- Do not detect grub device on the s390x architecture (ZIPL is used there)
|
||||
- Consider the katello rpm being signed by Red Hat
|
||||
- Omit printing grub binary data on terminal which could break terminal output
|
||||
- Provide just a single remedition command in the pre-upgrade report to be compatible with Satellite and Cockpit
|
||||
- Search repository files only in directories used by DNF
|
||||
- Change supported upgrade paths: RHEL-ALT 7.6 -> 8.2; RHEL 7.9 -> 8.2
|
||||
- Check whether PAM modules, that are not present on RHEL 8, are used
|
||||
- Inhibit upgrade when local repositories (referred by file://) are detected
|
||||
- Introduce actors for migration of Authconfig to Authselect
|
||||
- Support for an in-place upgrade for z15 machines - s390x architecture
|
||||
- Update list of removed drivers on RHEL 8
|
||||
- Resolves: #1860375
|
||||
|
||||
* Mon Apr 20 2020 Michal Bocek <mbocek@redhat.com> - 0.10.0-2
|
||||
- Fixed broken cli output due to printing binary data
|
||||
- Relates: #1821710
|
||||
|
||||
* Thu Apr 16 2020 Petr Stodulka <pstodulk@redhat.com> - 0.10.0-1
|
||||
- Rebase to v0.10.0
|
||||
- Changed upgrade paths: RHEL-ALT 7.6 -> 8.2; RHEL 7.8 -> 8.2
|
||||
- Add initial multipath support (it doesn't handle all cases yet)
|
||||
- Use the new framework mechanism to inhibit the upgrade without reporting errors
|
||||
- Support the upgrade without the use of subscription-manager
|
||||
- Add dependency on leapp-framework
|
||||
- Check if the latest installed kernel is booted before the upgrade
|
||||
- Check that the system satisfies minimum memory requirements
|
||||
for the upgrade (#413)
|
||||
- Do not mount pseudo and unsupposrted FS to overlayfs (e.g. proc)
|
||||
- Drop leapp sos plugin (it's part of the sos rpm in RHEL 7.7+)
|
||||
- Evaluate PES events transitively to create correct data for the upgrade
|
||||
transaction
|
||||
- Fix checking of kernel drivers (#400)
|
||||
- Fix failures caused by local rpms added into the upgrade transaction
|
||||
- Fix getting mount information with mountpoints with spaces in the path
|
||||
- Fix handling of XFS without ftype for every such mounted FS
|
||||
- Fix issue with random booting into old RHEL 7 kernel after the upgrade
|
||||
- Fix issues on systems with statically mapped IPs in /etc/hosts
|
||||
- Fix issues with device mapper and udev in a container
|
||||
- Fix issues with failing rpm transaction calculation because of duplicate
|
||||
instructions for dnf
|
||||
- Fix various issues related to RHSM (including rhbz rhbz#1702691)
|
||||
- Fix yum repository scan in case of repositories with invalid URL
|
||||
- Improved report related to KDE/GNOME
|
||||
- Inhibit the upgrade for ipa-server (#481)
|
||||
- Inhibit the upgrade if multiple kernel-devel rpms are installed
|
||||
- Inhibit the upgrade on FIPS systems
|
||||
- Inhibit the upgrade when links on root dir '/' are not absolute to save the world
|
||||
- Inhibit the upgrade when the raised dialogs are missing answers (#589)
|
||||
- Introduce new ways of using custom repositories during the transaction
|
||||
- Make report messages more explicit about Dialogs (#600)
|
||||
- Migrate SpamAssassin
|
||||
- Migrate cups-filters
|
||||
- Migrate sane-backend
|
||||
- Modify vim configuration to keep the original behaviour
|
||||
- Parse correctly kernel cmdline inside the initrd (#383) (fixes various issues on s390x)
|
||||
- Print warnings instead of a hard failure when expected rpms cannot be found
|
||||
(e.g. python3-nss inside an rpm module) (#405)
|
||||
- Remove java11-openjdk-headless during the upgrade (rhbz#1820172)
|
||||
- Report changes in wireshark
|
||||
- The name and baseurl field in the CustomTargetRepository message are optional now
|
||||
- Throw a nice error when invalid locale is set (#430)
|
||||
- Various texts are improved based on the feedback
|
||||
- Resolves: #1821710
|
||||
|
||||
* Tue Nov 5 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-5
|
||||
- Do not use efibootmgr on non-efi systems
|
||||
Resolves: #1768904
|
||||
|
||||
* Mon Nov 4 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-4
|
||||
- Inhibit upgrade on EFI systems when efibootmgr is not installed
|
||||
Relates: #1753580
|
||||
|
||||
* Fri Nov 1 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-3
|
||||
- Inhibit upgrade on s390x machines with rd.znet in kernel cmdline to prevent
|
||||
troubles with networking (temporary)
|
||||
- Fix issues with failing rpm transaction calculation because of duplicates
|
||||
- Fix boot order on EFI systems
|
||||
Relates: #1753580
|
||||
|
||||
* Wed Oct 30 2019 Michal Bocek <mbocek@redhat.com> - 0.9.0-2
|
||||
- Fixed some remediation instructions
|
||||
- Not trying to make an overlay over /boot/efi
|
||||
Relates: #1753580
|
||||
|
||||
* Thu Oct 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-1
|
||||
- Rebase to v0.9.0
|
||||
- Added dependency on policycoreutils-python
|
||||
- Change upgrade path from RHEL(-ALT) 7.6 (EUS) to RHEL 8.1
|
||||
- Changed the title of the upgrade boot entry to be valid for ZIPL
|
||||
- Check NSS configuration for use of wins or winbind
|
||||
- Check SSSD configuration
|
||||
- Check use of removed PAM modules
|
||||
- Check whether CPU on s390x is supported on RHEL 8
|
||||
- Do not remove packages which shall be installed/kept on target system
|
||||
- Do not waste time by downloading of RPMs if upgrade has been inhibited already
|
||||
- Enable and make possible upgrades on all architectures
|
||||
- Enable repositories used for upgrade on the upgraded system
|
||||
- Fix adding of local rpms into the upgrade transaction
|
||||
- Fix check of active kernel modules
|
||||
- Fix handling of XFS filesystems with ftype=0 (rhbz#1746956)
|
||||
- Fix ntp migration: extract configs into the right directories
|
||||
- Fix traceback when RHSM is skipped
|
||||
- Handle possible error when setting release on upgraded system
|
||||
- Handle systems with EFI boot
|
||||
- Handle upgrade on systems with multiple partitions
|
||||
- Improve message on failed subscription-manager and dnf
|
||||
- Improved the reporting capability
|
||||
- Migrate SELinux customizations
|
||||
- No size limit on leapp.db in sosreport
|
||||
- Process new PES data format + process PES events in order of releases
|
||||
- Require the biosdevname dracut module on the intel architecture only
|
||||
- Retry some actions of subscription-manager on failure to reduce number of issues
|
||||
- Update the list of packages supposed to be removed during the upgrade
|
||||
- Upgrade only packages signed by Red Hat
|
||||
Resolves: #1753580
|
||||
|
||||
* Thu Jul 25 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.1-2
|
||||
- attempt to (un)set rhsm release several times to omit possible problems with
|
||||
server
|
||||
Relates: #1723115
|
||||
|
||||
* Wed Jul 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.1-1
|
||||
- Rebase to v0.8.1
|
||||
Relates: #1723115
|
||||
- enable installation of RPMs that were previously blacklisted due to problems
|
||||
with rich dependencies
|
||||
|
||||
* Mon Jul 15 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.0-1
|
||||
- Rebase to v0.8.0
|
||||
Relates: #1723115
|
||||
- improve handling of RPM transaction to be able to process RPMs with
|
||||
rich dependencies
|
||||
- add missing dependency on python-udev & python3-udev
|
||||
- fix processing of last phase during the first boot of the upgraded system
|
||||
- set RHSM target release after the upgrade to expected version of the system
|
||||
- enable the CRB repository when the Optional repository is enabled
|
||||
- check tcp wrappers
|
||||
- check OpenSSH configuration
|
||||
- check and handle vftpd configuration
|
||||
- check kernel drivers
|
||||
- improve checks related to subscriptions
|
||||
- improve parsing of /etc/fstab
|
||||
- ensure the new target kernel is default boot entry
|
||||
- handle better cases when no target repositories has been found
|
||||
- migrate NTP to chronyd
|
||||
- migrate brltty configuration
|
||||
- migrate sendmail
|
||||
- avoid removal of /etc/localtime and /etc/resolv.conf during the upgrade
|
||||
- add informational actors for: acpid, chrony, dosfstools, grep, irssi,
|
||||
postfix, powertop
|
||||
|
||||
* Sun Jun 23 2019 Vojtech Sokol <vsokol@redhat.com> - 0.7.0-6
|
||||
- Rebuild
|
||||
Resolves: #1723115
|
||||
|
||||
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-5
|
||||
- build rhel8 initrd on the fly during the upgrade process
|
||||
- do not bundle initrd and vmlinuz file in the rpm
|
||||
Relates: #1636481
|
||||
|
||||
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-4
|
||||
- add python2-docs and python3-docs to the list of rpms for removal as
|
||||
currently it causes troubles with RPM transaction
|
||||
Relates: #1636481
|
||||
|
||||
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-3
|
||||
- set selinux into the permissive mode on RHEL 8 when enforcing was set
|
||||
originally
|
||||
- add python-docs and squid rpms to the list of rpms for removal
|
||||
Relates: #1636481
|
||||
|
||||
* Wed Apr 17 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-2
|
||||
- fix inhibition when ethX network interface exists and more additional NIC
|
||||
exist as well
|
||||
Relates: #1636481
|
||||
|
||||
* Wed Apr 17 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-1
|
||||
- Rebase to v0.7.0
|
||||
Relates: #1636481
|
||||
- new dependencies: python3, python*-pyudev
|
||||
- upgrade process is interrupted after RPMUpgradePhase and resumed with Python3
|
||||
- upgrade of NetworkManager is fixed
|
||||
- upgrade of firewalld is handled
|
||||
- name changes of network interfaces are handled
|
||||
- HTB repositories used for upgrades are replaced with the ones used for GA
|
||||
- tpm2-abrmd and all packages that depend on redhat-rpm-config are removed
|
||||
during upgrade
|
||||
- handling of the upgrade RPM transaction is improved
|
||||
- sync command is used in initrd to avoid issues related to cache
|
||||
- networking naming changes are handled
|
||||
- disable udev's persistent network interface naming scheme when the only NIC
|
||||
is eth0
|
||||
- inhibit upgrade when ethX is detected and more NICs exist
|
||||
- check whether all target upgrade repositories are available
|
||||
- output of dnf tool is always showed during the upgrade
|
||||
- all logs and reports are stored in /var/log/leapp/ directory
|
||||
|
||||
|
||||
* Tue Apr 09 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-4
|
||||
- Remove wrong license for sos subpackage
|
||||
Relates: #1636481
|
||||
|
||||
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-3
|
||||
- Fix patch
|
||||
Relates: #1636481
|
||||
|
||||
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-2
|
||||
- Fix specfile
|
||||
Relates: #1636481
|
||||
|
||||
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-1
|
||||
- Rebase to v0.6.0
|
||||
Relates: #1636481
|
||||
- Change license to Apache 2.0
|
||||
- leapp-repository-data subpackage is removed (it included data files)
|
||||
- data files are required to be delivered by user manually now
|
||||
- udev database is accessible during the upgrade
|
||||
- downtime of some machines is significantly reduced
|
||||
- sos plugin is introduced for collecting data needed for debugging
|
||||
- redhat-rpm-config package is removed during upgrade
|
||||
- system is checked for NFS filesystems usage and upgrade is inhibited when
|
||||
detected
|
||||
- /boot is checked for sufficient free space
|
||||
- upgrade is not inhibited any more when Logic SCSI Controllers are present
|
||||
- repositories used to upgrade the system are based on provided data files
|
||||
- specific syntax errors in grub configuration are handled when detected
|
||||
- SCTP is handled during the upgrade
|
||||
- migration of yum is handled (yum is available after the upgrade)
|
||||
- upgrade of NetworkManager is handled
|
||||
- upgrades with XFS filesystems without ftype is handled better
|
||||
- new reporting functionality is introduced and used
|
||||
- new dependencies: python2-jinja2, pciutils, sos
|
||||
- new directory /etc/leapp/files for data files is introduced
|
||||
- python files are precompiled to avoid left over pyc files
|
||||
|
||||
* Thu Jan 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.5.0-1
|
||||
- Rebase to v0.5.0
|
||||
Relates: #1636481
|
||||
- Require DNF v4+ and Leapp framework v0.5.0
|
||||
- Improved handling of RPM transaction using own DNF plugin and PES
|
||||
data
|
||||
- Models have been refactored to use new format supported by framework
|
||||
- Handle transaction preparation when release is set through RHSM
|
||||
- Fix failing overlayfs unmounting
|
||||
- Reduce the IPUWorkflo workflow
|
||||
- Include all required directories inside RPMs
|
||||
- Handle repositories using metalink and mirrorlist
|
||||
- Handle better installation of local RPMs
|
||||
- Move system dependencies into the RPM metapackage
|
||||
- Satisfy leapp and leapp-repository RPM dependencies during the
|
||||
upgrade
|
||||
|
||||
* Thu Jan 03 2019 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-4
|
||||
- Activate LVM LVs during upgrade
|
||||
- Resolve file conflict of python-inotify during the RPM transaction
|
||||
Relates: #1636481
|
||||
|
||||
* Thu Nov 29 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-3
|
||||
- Add empty empty events for leapp-repository-data.
|
||||
- Requiring now DNF 2.7.5-19 or higher
|
||||
Relates: #1636481
|
||||
|
||||
* Wed Nov 21 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-2
|
||||
- update leapp-repository-data source
|
||||
Relates: #1636481
|
||||
|
||||
* Wed Nov 21 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-1
|
||||
- Rebase to 0.4.0
|
||||
- change hierarchy of repositories
|
||||
- scan RHEL system for custom and 3rd-party packages
|
||||
- improve error messages
|
||||
Relates: #1636481
|
||||
|
||||
* Fri Nov 09 2018 Petr Stodulka <pstodulk@redhat.com> - 0.3.1-1
|
||||
- Rebase to 0.3.1
|
||||
- move data to separate subpackage
|
||||
Relates: #1636481
|
||||
|
||||
* Wed Nov 07 2018 Petr Stodulka <pstodulk@redhat.com> - 0.3-1
|
||||
- Initial RPM
|
||||
Resolves: #1636481
|
||||
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
||||
|
311
leapp-repository.spec
Normal file
311
leapp-repository.spec
Normal file
@ -0,0 +1,311 @@
|
||||
%global leapp_datadir %{_datadir}/leapp-repository
|
||||
%global repositorydir %{leapp_datadir}/repositories
|
||||
%global custom_repositorydir %{leapp_datadir}/custom-repositories
|
||||
|
||||
%define leapp_repo_deps 10
|
||||
|
||||
%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}
|
||||
%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)
|
||||
# - /usr/bin/python3.x (epel-8 buildroot)
|
||||
# - python(abi) = 3.x
|
||||
# Each of these lead into the removal of leapp rpms as python is changed between
|
||||
# major versions of RHEL
|
||||
%global __requires_exclude ^python\\(abi\\) = 3\\..+|/usr/libexec/platform-python|/usr/bin/python.*
|
||||
%endif
|
||||
|
||||
|
||||
# TODO: not sure whether it's required nowadays. Let's check it and drop
|
||||
# the whole block if not.
|
||||
%if 0%{?rhel} == 7
|
||||
# Defining py_byte_compile macro because it is not defined in old rpm (el7)
|
||||
# Only defined to python2 since python3 is not used in RHEL7
|
||||
%{!?py_byte_compile: %global py_byte_compile py2_byte_compile() {\
|
||||
python_binary="%1"\
|
||||
bytecode_compilation_path="%2"\
|
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
||||
}\
|
||||
py2_byte_compile "%1" "%2"}
|
||||
%endif
|
||||
|
||||
|
||||
# We keeps the leapp-repository name for the component, however we do not plan
|
||||
# to create such an rpm. Instead, we are going to introduce new naming for
|
||||
# RHEL 8+ packages to be consistent with other leapp projects in future.
|
||||
|
||||
Name: leapp-repository
|
||||
Version: 0.21.0
|
||||
Release: 3%{?dist}
|
||||
Summary: Repositories for leapp
|
||||
|
||||
License: ASL 2.0
|
||||
URL: https://oamg.github.io/leapp/
|
||||
Source0: https://github.com/oamg/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
Source1: deps-pkgs-11.tar.gz
|
||||
|
||||
# NOTE: Our packages must be noarch. Do no drop this in any way.
|
||||
BuildArch: noarch
|
||||
|
||||
### PATCHES HERE
|
||||
# Patch0001: filename.patch
|
||||
Patch0001: 0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
|
||||
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
|
||||
|
||||
# This is the real RPM with the leapp repositories content
|
||||
%package -n %{lpr_name}
|
||||
Summary: Leapp repositories for the in-place upgrade
|
||||
|
||||
%if 0%{?rhel} == 7
|
||||
######### RHEL 7 ############
|
||||
BuildRequires: python-devel
|
||||
Requires: python2-leapp
|
||||
|
||||
# We should not drop this on RHEL 7 because of the compatibility reasons
|
||||
Obsoletes: leapp-repository-data <= 0.6.1
|
||||
Provides: leapp-repository-data <= 0.6.1
|
||||
|
||||
# Former leapp subpackage that is part of the sos package since RHEL 7.8
|
||||
Obsoletes: leapp-repository-sos-plugin <= 0.10.0
|
||||
|
||||
# Set the conflict to be sure this RPM is not upgraded automatically to
|
||||
# the one from the target (upgraded) RHEL. The RPM has to stay untouched
|
||||
# during the whole IPU process.
|
||||
# The manual removal of the RPM is required after the IPU
|
||||
Conflicts: leapp-upgrade-el8toel9
|
||||
|
||||
%else
|
||||
######### 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
|
||||
# - same for Provides in deps subpackage
|
||||
Requires: leapp-repository-dependencies = %{leapp_repo_deps}
|
||||
|
||||
# IMPORTANT: this is capability provided by the leapp framework rpm.
|
||||
# Check that 'version' instead of the real framework rpm version.
|
||||
Requires: leapp-framework >= 5.0
|
||||
|
||||
# Since we provide sub-commands for the leapp utility, we expect the leapp
|
||||
# tool to be installed as well.
|
||||
Requires: leapp
|
||||
|
||||
# Used to determine RHEL version of a given target RHEL installation image -
|
||||
# uncompressing redhat-release package from the ISO.
|
||||
Requires: cpio
|
||||
|
||||
# The leapp-repository rpm is renamed to %%{lpr_name}
|
||||
Obsoletes: leapp-repository < 0.14.0-5
|
||||
Provides: leapp-repository = %{version}-%{release}
|
||||
|
||||
# Provide "leapp-upgrade" for the user convenience. Users will be pointed
|
||||
# to install "leapp-upgrade" in the official docs.
|
||||
Provides: leapp-upgrade = %{version}-%{release}
|
||||
|
||||
# Provide leapp-commands so the framework could refer to them when customers
|
||||
# do not have installed particular leapp-repositories
|
||||
Provides: leapp-command(answer)
|
||||
Provides: leapp-command(preupgrade)
|
||||
Provides: leapp-command(upgrade)
|
||||
Provides: leapp-command(rerun)
|
||||
Provides: leapp-command(list-runs)
|
||||
|
||||
|
||||
%description -n %{lpr_name}
|
||||
Leapp repositories for the in-place upgrade to the next major version
|
||||
of the Red Hat Enterprise Linux system.
|
||||
|
||||
|
||||
# This metapackage should contain all RPM dependencies excluding deps on *leapp*
|
||||
# RPMs. This metapackage will be automatically replaced during the upgrade
|
||||
# to satisfy dependencies with RPMs from target system.
|
||||
%package -n %{lpr_name}-deps
|
||||
Summary: Meta-package with system dependencies of %{lpr_name} package
|
||||
|
||||
# The package has been renamed, so let's obsoletes the old one
|
||||
Obsoletes: leapp-repository-deps < 0.14.0-5
|
||||
|
||||
# IMPORTANT: every time the requirements are changed, increment number by one
|
||||
# - same for Requires in main package
|
||||
Provides: leapp-repository-dependencies = %{leapp_repo_deps}
|
||||
##################################################
|
||||
# Real requirements for the leapp-repository HERE
|
||||
##################################################
|
||||
Requires: dnf >= 4
|
||||
Requires: pciutils
|
||||
|
||||
# required to be able to format disk images with XFS file systems (default)
|
||||
Requires: xfsprogs
|
||||
|
||||
# required to be able to format disk images with Ext4 file systems
|
||||
# NOTE: this is not happening by default, but we can expact that many customers
|
||||
# will want to / need to do this - especially on RHEL 7 now. Adding this deps
|
||||
# as the best trade-off to resolve this problem.
|
||||
Requires: e2fsprogs
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} == 7
|
||||
# Required to gather system facts about SELinux
|
||||
Requires: libselinux-python
|
||||
Requires: python-pyudev
|
||||
# required by SELinux actors
|
||||
Requires: policycoreutils-python
|
||||
# Required to fetch leapp data
|
||||
Requires: python-requests
|
||||
|
||||
%else
|
||||
############# RHEL 8 dependencies (when the source system is RHEL 8) ##########
|
||||
# systemd-nspawn utility
|
||||
Requires: systemd-container
|
||||
Requires: python3-pyudev
|
||||
# Required to fetch leapp data
|
||||
Requires: python3-requests
|
||||
# Required because the code is kept Py2 & Py3 compatible
|
||||
Requires: python3-six
|
||||
# required by SELinux actors
|
||||
Requires: policycoreutils-python-utils
|
||||
# required by systemfacts, and several other actors
|
||||
Requires: procps-ng
|
||||
Requires: kmod
|
||||
# since RHEL 8+ dracut does not have to be present on the system all the time
|
||||
# and missing dracut could be killing situation for us :)
|
||||
Requires: dracut
|
||||
|
||||
# Required to scan NetworkManagerConnection (e.g. to recognize secrets)
|
||||
# NM is requested to be used on RHEL 8+ systems
|
||||
Requires: NetworkManager-libnm
|
||||
Requires: python3-gobject-base
|
||||
|
||||
%endif
|
||||
##################################################
|
||||
# end requirement
|
||||
##################################################
|
||||
|
||||
|
||||
%description -n %{lpr_name}-deps
|
||||
%{summary}
|
||||
|
||||
|
||||
%prep
|
||||
%setup -n %{name}-%{version}
|
||||
%setup -q -n %{name}-%{version} -D -T -a 1
|
||||
|
||||
# APPLY PATCHES HERE
|
||||
# %%patch0001 -p1
|
||||
%patch0001 -p1
|
||||
|
||||
|
||||
%build
|
||||
cp -a leapp*deps*el%{next_major_ver}.noarch.rpm repos/system_upgrade/%{repo_shortname}/files/bundled-rpms/
|
||||
|
||||
|
||||
%install
|
||||
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
|
||||
install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files
|
||||
|
||||
# install CLI commands for the leapp utility on the expected path
|
||||
install -m 0755 -d %{buildroot}%{leapp_python_sitelib}/leapp/cli/
|
||||
cp -r commands %{buildroot}%{leapp_python_sitelib}/leapp/cli/
|
||||
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
|
||||
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
|
||||
find %{buildroot}%{repositorydir}/common -name "test.py" -delete
|
||||
rm -rf `find %{buildroot}%{repositorydir} -name "tests" -type d`
|
||||
find %{buildroot}%{repositorydir} -name "Makefile" -delete
|
||||
find %{buildroot} -name "*.py.orig" -delete
|
||||
|
||||
for DIRECTORY in $(find %{buildroot}%{repositorydir}/ -mindepth 1 -maxdepth 1 -type d);
|
||||
do
|
||||
REPOSITORY=$(basename $DIRECTORY)
|
||||
echo "Enabling repository $REPOSITORY"
|
||||
ln -s %{repositorydir}/$REPOSITORY %{buildroot}%{_sysconfdir}/leapp/repos.d/$REPOSITORY
|
||||
done;
|
||||
|
||||
# __python2 could be problematic on systems with Python3 only, but we have
|
||||
# no choice as __python became error on F33+:
|
||||
# https://fedoraproject.org/wiki/Changes/PythonMacroError
|
||||
%if 0%{?rhel} == 7
|
||||
%py_byte_compile %{__python2} %{buildroot}%{repositorydir}/*
|
||||
%else
|
||||
%py_byte_compile %{__python3} %{buildroot}%{repositorydir}/*
|
||||
%endif
|
||||
|
||||
|
||||
%files -n %{lpr_name}
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%dir %{_sysconfdir}/leapp/transaction
|
||||
%dir %{_sysconfdir}/leapp/files
|
||||
%dir %{leapp_datadir}
|
||||
%dir %{repositorydir}
|
||||
%dir %{custom_repositorydir}
|
||||
%dir %{leapp_python_sitelib}/leapp/cli/commands
|
||||
%config %{_sysconfdir}/leapp/files/*
|
||||
%{_sysconfdir}/leapp/repos.d/*
|
||||
%{_sysconfdir}/leapp/transaction/*
|
||||
%{repositorydir}/*
|
||||
%{leapp_python_sitelib}/leapp/cli/commands/*
|
||||
|
||||
|
||||
%files -n %{lpr_name}-deps
|
||||
# no files here
|
||||
|
||||
%changelog
|
||||
* Thu Sep 19 2024 Petr Stodulka <pstodulk@redhat.com> - 0.21.0-3
|
||||
- Rebuild to apply changes for gating
|
||||
- Resolves: RHEL-57043
|
||||
|
||||
* Mon Aug 19 2024 Petr Stodulka <pstodulk@redhat.com> - 0.21.0-2
|
||||
- Initial build for EL 9
|
||||
- Resolves: RHEL-57043
|
66
plans/tier0.fmf
Normal file
66
plans/tier0.fmf
Normal file
@ -0,0 +1,66 @@
|
||||
# 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: '9.6'
|
||||
TARGET_RELEASE: '10.0'
|
||||
|
||||
context:
|
||||
distro: rhel-9.6
|
||||
distro_target: rhel-10.0
|
||||
|
||||
adjust:
|
||||
enabled: false
|
||||
when: distro == centos-stream-9
|
||||
|
||||
/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
|
||||
|
||||
/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-11.tar.gz) = f38c61ea9816bc69bc7d75f7ac6d68117fb10c3d009f2af5e7c3e47c4a0720e98aecdefdfb8cba815ee772f7d1f38c39c08d1d1724af6a9e4762c89fca33df9f
|
||||
SHA512 (leapp-repository-0.21.0.tar.gz) = 57cbc9cf3395ade0f2f0ec90d0000e9bcf3eba7c40473bfe930dac648c7ae21cb07d3a5b30e1eb72c4c3e24a49778d81a5c322a4a5956678a5c1705c524d11f6
|
Loading…
Reference in New Issue
Block a user