%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.19.0 Release: 8%{?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-Further-narrow-down-packit-tests.patch Patch0002: 0002-Bring-back-uefi_test.patch Patch0003: 0003-Add-7.9-8.9-and-8.9-9.3-upgrade-paths.patch Patch0004: 0004-Split-tier1-tests-into-default-on-push-and-on-demand.patch Patch0005: 0005-Add-labels-to-all-tests.patch Patch0006: 0006-Refactor-using-YAML-anchors.patch Patch0007: 0007-Add-kernel-rt-tests-and-switch-to-sanity-for-default.patch Patch0008: 0008-Minor-label-enhancements.patch Patch0009: 0009-Update-pr-welcome-message.patch Patch0010: 0010-Address-ddiblik-s-review-comments.patch Patch0011: 0011-Address-mmoran-s-review-comments.patch Patch0012: 0012-Add-isccfg-library-manual-running-mode.patch Patch0013: 0013-Avoid-warnings-on-python2.patch Patch0014: 0014-makefile-add-dev_test_no_lint-target.patch Patch0015: 0015-Fix-the-issue-of-going-out-of-bounds-in-the-isccfg-p.patch Patch0016: 0016-make-pylint-and-spellcheck-happy-again.patch Patch0017: 0017-Remove-TUV-from-supported-target-channels.patch Patch0018: 0018-Transition-systemd-service-states-during-upgrade.patch Patch0019: 0019-Remove-obsoleted-enablersyncdservice-actor.patch Patch0020: 0020-default-to-NO_RHSM-mode-when-subscription-manager-is.patch Patch0021: 0021-call-correct-mkdir-when-trying-to-create-etc-rhsm-fa.patch Patch0022: 0022-RHSM-Adjust-the-switch-to-container-mode-for-new-RHS.patch Patch0023: 0023-load-all-substitutions-from-etc.patch Patch0024: 0024-Do-not-create-dangling-symlinks-for-containerized-RH.patch Patch0025: 0025-be-less-strict-when-figuring-out-major-version-in-in.patch Patch0026: 0026-rhui-bootstrap-target-rhui-clients-in-scratch-contai.patch Patch0027: 0027-add-backward-compatibility-for-leapp-rhui-aws-azure-.patch Patch0028: 0028-checknfs-do-not-check-systemd-mounts.patch Patch0029: 0029-Switch-from-plan-name-regex-to-filter-by-tags.patch Patch0030: 0030-Bring-back-reference-to-oamg-leapp-tests-repo.patch Patch0031: 0031-add-the-posibility-to-upgrade-with-a-local-repositor.patch Patch0032: 0032-Fix-certificate-symlink-handling.patch Patch0033: 0033-Add-prod-certs-and-upgrade-paths-for-8.10-9.4.patch Patch0034: 0034-pylint-ignore-too-many-lines.patch Patch0035: 0035-Update-upgrade-paths-Add-8.10-9.4.patch Patch0036: 0036-Copy-dnf.conf-to-target-userspace-and-allow-a-custom.patch Patch0037: 0037-adjustlocalrepos-suppress-unwanted-deprecation-repor.patch Patch0038: 0038-add-detection-for-custom-libraries-registered-by-ld..patch Patch0039: 0039-Fix-several-typos-and-Makefile-help.patch Patch0040: 0040-Move-code-handling-GPG-keys-to-separate-library.patch Patch0041: 0041-Check-no-new-unexpected-keys-were-installed-during-t.patch # CTC2-0 Patch0042: 0042-BZ-2250254-force-removal-of-tomcat-during-the-upgrad.patch Patch0043: 0043-Add-79to88-and-79to89-aws-upgrade-paths.patch Patch0044: 0044-Add-7.9to8.10-and-8.10to9.4-upgrade-paths.patch Patch0045: 0045-Utilize-get_target_major_version-in-no-enabled-targe.patch Patch0046: 0046-Workaround-tft-issue-with-listing-disabled-plans.patch Patch0047: 0047-Distribution-agnostick-check-of-signed-packages-1-2.patch Patch0048: 0048-Distribution-agnostick-check-of-signed-packages-2-2.patch Patch0049: 0049-Pylint-fix-superfluous-parens-in-the-code.patch Patch0050: 0050-distributionsignedrpmscanner-refactoring-gpg-pubkey-.patch Patch0051: 0051-Introduce-two-functions-for-listing-which-packages-a.patch Patch0052: 0052-Switch-test-repo-branch-to-main.patch Patch0053: 0053-Update-dependencies-require-xfsprogs-and-e2fsprogs.patch Patch0054: 0054-Several-enhancements-to-the-Makefile.patch Patch0055: 0055-pes_events_scanner-Ignore-Leapp-related-PES-events.patch Patch0056: 0056-Use-library-functions-for-getting-leapp-packages.patch Patch0057: 0057-Introduce-TrackedFilesInfoSource-message-and-new-act.patch Patch0058: 0058-Add-actors-for-OpenSSL-conf-and-IBMCA.patch Patch0059: 0059-Introduce-custom-modifications-tracking.patch Patch0060: 0060-Rework-_copy_decouple-to-follow-relative-symlinks-an.patch Patch0061: 0061-Update-the-data-files-pes-repomap-dddd-CTC2-0.patch # CTC2-1 Patch0062: 0062-Use-happy_path-instead-e2e-for-public-clouds.patch Patch0063: 0063-Update-upgrade-data-bump-required-data-stream-to-3.0.patch Patch0064: 0064-Cover-upgrades-RHEL-8-to-RHEL-9-using-RHUI-on-Alibab.patch Patch0065: 0065-load-data-files-do-not-try-to-download-data-files-wh.patch Patch0066: 0066-upgrade-data-files-loading-update-error-msgs-and-rep.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 %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 %patch0005 -p1 %patch0006 -p1 %patch0007 -p1 %patch0008 -p1 %patch0009 -p1 %patch0010 -p1 %patch0011 -p1 %patch0012 -p1 %patch0013 -p1 %patch0014 -p1 %patch0015 -p1 %patch0016 -p1 %patch0017 -p1 %patch0018 -p1 %patch0019 -p1 %patch0020 -p1 %patch0021 -p1 %patch0022 -p1 %patch0023 -p1 %patch0024 -p1 %patch0025 -p1 %patch0026 -p1 %patch0027 -p1 %patch0028 -p1 %patch0029 -p1 %patch0030 -p1 %patch0031 -p1 %patch0032 -p1 %patch0033 -p1 %patch0034 -p1 %patch0035 -p1 %patch0036 -p1 %patch0037 -p1 %patch0038 -p1 %patch0039 -p1 %patch0040 -p1 %patch0041 -p1 %patch0042 -p1 %patch0043 -p1 %patch0044 -p1 %patch0045 -p1 %patch0046 -p1 %patch0047 -p1 %patch0048 -p1 %patch0049 -p1 %patch0050 -p1 %patch0051 -p1 %patch0052 -p1 %patch0053 -p1 %patch0054 -p1 %patch0055 -p1 %patch0056 -p1 %patch0057 -p1 %patch0058 -p1 %patch0059 -p1 %patch0060 -p1 %patch0061 -p1 %patch0062 -p1 %patch0063 -p1 %patch0064 -p1 %patch0065 -p1 %patch0066 -p1 %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 * Thu Jan 18 2024 Petr Stodulka - 0.19.0-8 - 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-18298 * 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