From 825aa991e1c95f8deee8d514d849159fe75a3379 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 29 Mar 2024 15:51:46 +0300 Subject: [PATCH] import leapp-repository-0.20.0-2.el8 --- .gitignore | 2 + .leapp-repository.metadata | 2 + ...o-not-bootstrap-target-client-on-aws.patch | 251 +++++ SPECS/leapp-repository.spec | 997 ++++++++++++++++++ 4 files changed, 1252 insertions(+) create mode 100644 .gitignore create mode 100644 .leapp-repository.metadata create mode 100644 SOURCES/0001-rhui-do-not-bootstrap-target-client-on-aws.patch create mode 100644 SPECS/leapp-repository.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d8cdd6f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/deps-pkgs-10.tar.gz +SOURCES/leapp-repository-0.20.0.tar.gz diff --git a/.leapp-repository.metadata b/.leapp-repository.metadata new file mode 100644 index 0000000..c93f55a --- /dev/null +++ b/.leapp-repository.metadata @@ -0,0 +1,2 @@ +d520ada12294e4dd8837c81f92d4c184ab403d51 SOURCES/deps-pkgs-10.tar.gz +185bbb040dba48e1ea2d6c627133af594378afd4 SOURCES/leapp-repository-0.20.0.tar.gz diff --git a/SOURCES/0001-rhui-do-not-bootstrap-target-client-on-aws.patch b/SOURCES/0001-rhui-do-not-bootstrap-target-client-on-aws.patch new file mode 100644 index 0000000..dbe1f57 --- /dev/null +++ b/SOURCES/0001-rhui-do-not-bootstrap-target-client-on-aws.patch @@ -0,0 +1,251 @@ +From 921c06892f7550a3a8e2b3fe941c6272bdacf88d Mon Sep 17 00:00:00 2001 +From: mhecko +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- 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- 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- packages. ++ api.current_logger().debug('Bootstrapping target RHUI client is disabled, leapp will rely ' ++ 'only on files budled in leapp-rhui- 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- will be used to access target content. ++ """ ++ + + class RHUIInfo(Model): + """ +-- +2.43.0 + diff --git a/SPECS/leapp-repository.spec b/SPECS/leapp-repository.spec new file mode 100644 index 0000000..434ab2b --- /dev/null +++ b/SPECS/leapp-repository.spec @@ -0,0 +1,997 @@ +%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 - 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 - 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 - 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 - 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 - 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 - 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 - 0.19.0-4 +- Fix the upgrade for systems without subscription-manager package +- Resolves: RHEL-14901 + +* Tue Oct 31 2023 Petr Stodulka - 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 - 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 - 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 - 0.18.0-4 +- Introduce new upgrade path RHEL 8.9 -> 9.3 +- Update leapp data files to reflect new changes between systems +- Detect and report use of deprecated Xorg drivers +- Minor improvements of generated reports +- Fix false positive report about invalid symlinks +- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected +- Resolves: rhbz#2215997 + +* Mon Jun 05 2023 Petr Stodulka - 0.18.0-3 +- Update the repomap.json file to address planned changes on RHUI Azure +- Resolves: rhbz#2203800 + +* Fri May 19 2023 Petr Stodulka - 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 - 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 - 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 - 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 - 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()` 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 - 0.16.0-6 +- Skip comments in /etc/default/grub during the parsing +- Resolves: #1997076 + +* Tue Apr 26 2022 Petr Stodulka - 0.16.0-5 +- Migrate blacklisted CA certificates during the upgrade +- Resolves: #1997076 + +* Tue Apr 19 2022 Petr Stodulka - 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 - 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 - 0.15.0-12 +- Fix handling of PES data for modularity packages +- Resolves: #1997076 + +* Thu Jan 27 2022 Petr Stodulka - 0.15.0-11 +- Beta version of IPU 8 -> 9 +- Resolves: #1997076 + +* Wed Oct 20 2021 Petr Stodulka - 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 - 0.15.0-3 +- Correct the version-release to obsolete previous leapp-repository-deps rpm +- Resolves: #2015192 + +* Wed Oct 20 2021 Petr Stodulka - 0.15.0-2 +- Correct the version-release to obsolete previous leapp-repository rpm +- Resolves: #2015192 + +* Tue Oct 19 2021 Petr Stodulka - 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 - 0.14.0-4 +- Fix the check of removed non-pci drivers + Relates: #1952886 + +* Tue May 04 2021 Petr Stodulka - 0.14.0-3 +- Fix handling of errors when fetching leapp data files from server + Relates: #1952886 + +* Tue Apr 27 2021 Petr Stodulka - 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 - 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 - 0.13.0-2 +- Rebuild +- Relates: #1915509 + +* Thu Feb 04 2021 Dominik Rehak - 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 - 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 - 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 - 0.11.0-4 +- Remove java from the upgrade transaction + Relates: #1860375 + +* Tue Sep 08 2020 Petr Stodulka - 0.11.0-3 +- Set authselect and PAM actors experimental again + Relates: #1860375 + +* Wed Sep 02 2020 Petr Stodulka - 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 - 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 - 0.10.0-2 +- Fixed broken cli output due to printing binary data +- Relates: #1821710 + +* Thu Apr 16 2020 Petr Stodulka - 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 - 0.9.0-5 +- Do not use efibootmgr on non-efi systems + Resolves: #1768904 + +* Mon Nov 4 2019 Petr Stodulka - 0.9.0-4 +- Inhibit upgrade on EFI systems when efibootmgr is not installed + Relates: #1753580 + +* Fri Nov 1 2019 Petr Stodulka - 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 - 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 - 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 - 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 - 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 - 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 - 0.7.0-6 +- Rebuild + Resolves: #1723115 + +* Fri Apr 26 2019 Petr Stodulka - 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 - 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 - 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 - 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 - 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 - 0.6.0-4 +- Remove wrong license for sos subpackage + Relates: #1636481 + +* Mon Apr 08 2019 Vojtech Sokol - 0.6.0-3 +- Fix patch + Relates: #1636481 + +* Mon Apr 08 2019 Vojtech Sokol - 0.6.0-2 +- Fix specfile + Relates: #1636481 + +* Mon Apr 08 2019 Vojtech Sokol - 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 - 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 - 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 - 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 - 0.4.0-2 +- update leapp-repository-data source + Relates: #1636481 + +* Wed Nov 21 2018 Petr Stodulka - 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 - 0.3.1-1 +- Rebase to 0.3.1 +- move data to separate subpackage + Relates: #1636481 + +* Wed Nov 07 2018 Petr Stodulka - 0.3-1 +- Initial RPM + Resolves: #1636481 +