leapp-repository/SPECS/leapp-repository.spec
2024-04-23 10:28:07 +03:00

947 lines
41 KiB
RPMSpec

%global leapp_datadir %{_datadir}/leapp-repository
%global repositorydir %{leapp_datadir}/repositories
%global custom_repositorydir %{leapp_datadir}/custom-repositories
%define leapp_repo_deps 9
%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.
Epoch: 1
Name: leapp-repository
Version: 0.19.0
Release: 6%{?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-9.tar.gz
# NOTE: Our packages must be noarch. Do no drop this in any way.
BuildArch: noarch
### PATCHES HERE
# Patch0001: filename.patch
Patch0001: 0001-RHSM-Adjust-the-switch-to-container-mode-for-new-RHS.patch
Patch0002: 0002-Do-not-create-dangling-symlinks-for-containerized-RH.patch
Patch0003: leapp-repository-0.19.0-elevate.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
%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
%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/*
%exclude %{_sysconfdir}/leapp/files/repomap.json
%exclude %{_sysconfdir}/leapp/files/pes-events.json
%exclude %{_sysconfdir}/leapp/files/device_driver_deprecation_data.json
%exclude %{leapp_datadir}/repositories/system_upgrade/common/files/rpm-gpg/*/*
%files -n %{lpr_name}-deps
# no files here
%changelog
* Tue Apr 23 2024 Yuriy Kohut <ykohut@almalinux.org> - 1:0.19.0-6
- Enable CentOS Stream release 8 to 9 elevation
* Wed Jan 10 2024 Yuriy Kohut <ykohut@almalinux.org> - 1:0.19.0-5
- AlmaLinux/CentOS/Oracle/Rocky/EuroLinux support (phase 1)
* Thu Nov 02 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-4
- Fix the upgrade for systems without subscription-manager package
- Resolves: RHEL-14901
* Tue Oct 31 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-3
- Fix the upgrade when the release is locked by new subscription-manager
- Resolves: RHEL-14901
* Wed Aug 23 2023 Petr Stodulka <pstodulk@redhat.com> - 0.19.0-1
- Rebase to v0.19.0
- Requires leapp-framework 5.0
- Handle correctly the installed certificates to allow upgrades with custom repositories using HTTPs with enabled SSL verification
- Fix failing upgrades with devtmpfs file systems specified in FSTAB
- Do not try to update GRUB core on IBM Z systems
- Minor improvements and fixes of various reports and error messages
- Redesign handling of information about kernel (booted and target) to reflect changes in RHEL 9.3
- Use new leapp CLI API which provides better report summary output
- Resolves: rhbz#2215997, rhbz#2222861, rhbz#2232618
* Tue Jul 18 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-5
- Fix the calculation of the required free space on each partitions/volume for the upgrade transactions
- Create source overlay images with dynamic sizes to optimize disk space consumption
- Update GRUB2 when /boot resides on multiple devices aggregated in RAID
- Use new leapp CLI API which provides better report summary output
- Introduce possibility to add (custom) kernel drivers to initramfs
- Detect and report use of deprecated Xorg drivers
- Fix the generation of the report about hybrid images
- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected
- Minor improvements and fixes of various reports
- Requires leapp-framework 4.0
- Update leapp data files
- Resolves: rhbz#2140011, rhbz#2144304, rhbz#2174095, rhbz#2215997
* Mon Jun 19 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-4
- Introduce new upgrade path RHEL 8.9 -> 9.3
- Update leapp data files to reflect new changes between systems
- Detect and report use of deprecated Xorg drivers
- Minor improvements of generated reports
- Fix false positive report about invalid symlinks
- Inhibit the upgrade when unsupported x86-64 microarchitecture is detected
- Resolves: rhbz#2215997
* Mon Jun 05 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-3
- Update the repomap.json file to address planned changes on RHUI Azure
- Resolves: rhbz#2203800
* Fri May 19 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-2
- Include leap data files in the package
- Introduce in-place upgrades for systems with enabled FIPS mode
- Enable the upgrade path 8.8 -> 9.2 for RHEL with SAP HANA
- Fix the upgrade of ruby-irb package
- Resolves: rhbz#2030627, rhbz#2097003, rhbz#2203800, rhbz#2203803
* Tue Feb 21 2023 Petr Stodulka <pstodulk@redhat.com> - 0.18.0-1
- Rebase to v0.18.0
- Introduce new upgrade path RHEL 8.8 -> 9.2
- Requires cpio
- Requires python3-gobject-base, NetworkManager-libnm
- Bump leapp-repository-dependencies to 9
- Add breadcrumbs results to RHSM facts
- Add leapp RHUI packages to an allowlist to drop confusing reports
- Added checks for RHEL SAP IPU 8.6 -> 9.0
- Check RPM signatures during the upgrade
- Check only mounted XFS partitions
- Check the validity and compatitibility of used leapp data
- Detect CIFS also when upgrading from RHEL8 to RHEL9 (PR1035)
- Detect RoCE on IBM Z machines and check the configuration is safe for the upgrade
- Detect a proxy configuration in YUM/DNF and adjust an error msg on issues caused by the configuration
- Detect and report systemd symlinks that are broken before the upgrade
- Detect the kernel-core RPM instead of kernel to prevent an error during post-upgrade phases
- Disable the amazon-id DNF plugin on AWS during the upgrade stage to omit confusing error messages
- Do not create new *pyc files when running leapp after the DNF upgrade transaction
- Drop obsoleted upgrade paths
- Enable upgrades of RHEL 8 for SAP HANA to RHEL 9 on ppc64le
- Enable upgrades on s390x when /boot is part of rootfs
- Extend the allow list of RHUI clients by azure-sap-apps to omit confusing report
- Filter out PES events unrelated for the used upgrade path and handle overlapping event
(fixes upgrades with quagga installed)
- Fix scan of ceph volumes on systems without ceph-osd or when ceph-osd container is not found
- Fix systemd symlinks that become incorrect during the IPU
- Fix the check of memory (RAM) limits and use human readable values in the report
- Fix the kernel detection during initramfs creation for new kernel on RHEL 9.2+
- Fix the upgrade of IBM Z machines configured with ZFCP
- Fix the upgrade on Azure using RHUI for SAP Apps images
- Ignore external accounts in /etc/passwd
- Improve remediation instructions for packages in unknown repositories
- Improve the error message to guide users when discovered more space is needed
- Improve the handling of blocklisted certificates
- Inhibit the upgrade when entries in /etc/fstab cause overshadowing during the upgrade
- Introduced an option to use an ISO file as a target RHEL version content source
- Introduced possibility to specify what systemd services should be enabled/disabled on the upgraded system
- Introduced the --nogpgcheck option to skip checking of RPM signatures
- Map the target repositories also based on the installed content
- Prevent re-run of leapp in the upgrade initramfs in case of previous failure
- Prevent the upgrade with RHSM when Baseos and Appstream target repositories are not discovered
- Provide common information about systemd services
- RHUI(Azure) Handle correctly various SAP images
- Register subscribed systems automatically to Red Hat Insights unless --no-insights-register is used
- Remove obsoleted GPG keys provided by RH after the upgrade to prevent errors
- Rework the network configuration handling and parse the configuration data properly
- Set the system release lock after the upgrade also for premium channels
- Small improvements in various reports
- Resolves: rhbz#2088492, rhbz#2111691, rhbz#2127920, rhbz#2129716,rhbz#2139907, rhbz#2139907, rhbz#2141393, rhbz#2143372, rhbz#2155661
* Wed Sep 07 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-3
- Adding back instruction to not install rubygem-irb during the in-place upgrade
to prevent conflict between files
- Resolves: rhbz#2090995
* Wed Sep 07 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-2
- Update VDO checks to enable user to decide the system state on check failures
and undetermined block devices
- The VDO dialog and related VDO reports have been properly updated
- Resolves: rhbz#2096159
* Wed Aug 24 2022 Petr Stodulka <pstodulk@redhat.com> - 0.17.0-1
- Rebase to v0.17.0
- Support upgrade path RHEL 8.7 -> 9.0 and RHEL SAP 8.6 -> 9.0
- Provide and require leapp-repository-dependencies 7
- Provide `leapp-command(<CMD>)` for each CLI command provided by leapp-repository
- Require dracut, kmod, procps-ng on RHEL 8+
- Require leapp-framework >= 3.1
- Add actors covering removal of NIS components on RHEL 9
- Add checks for obsolete .NET versions
- Allow specifying the report schema v1.2.0
- Check and handle upgrades with custom crypto policies
- Check and migrate OpenSSH configuration
- Check and migrate multipath configuration
- Check minimum memory requirements
- Do not create the upgrade bootloader entry when the dnf dry-run actor stops the upgrade
- Enable Base and SAP in-place upgrades on Azure
- Enable in-place upgrade in case LUKS volumes are Ceph OSDs
- Enable in-place upgrades in Azure RHEL 8 base images using RHUI
- Enable in-place upgrades on IBM z16 machines
- Enable the CRB repository for the upgrade only if enabled on the source system
- Fix cloud provider detection on AWS
- Fix detection of the latest kernel
- Fix issues caused by leapp artifacts from previous in-place upgrades
- Fix issues with false positive switch to emergency console during the upgrade
- Fix swap page size on aarch64
- Fix the VDO scanner to skip partitions unrelated to VDO and adjust error messages
- Fix the false positive NFS storage detection on NFS servers and improve the report msg
- Fix the issues on systems with the LANGUAGE environment variable
- Fix the root directory scan to deal with non-utf8 filenames
- Handle upgrades of SAP systems on AWS
- Inform about necessary migrations related to bacula-director when installed on the system
- Inhibit the upgrade when /var/lib/leapp being mounted in a non-persistent fashion to prevent failures
- Inhibit the upgrade when /var/lib/leapp mounted with the noexec option to prevent failures
- Inhibit upgrade when NVIDIA driver is detected
- Make the application of custom selinux rules more reliable and do not override changes done by RPM scriptlets
- Migrate the OpenSSL configuration
- PESEventScanner actor has been fully refactored
- Report changes around SCP and SFTP
- Skip comment lines when parsing the GRUB configuration file
- Stop propagating the “debug” and ”enforcing=0” kernel cmdline options into the target kernel cmdline options
- Mass refactoring to be compatible with leapp v0.15.0
- Resolves: rhbz#2090995, rhbz#2040470, rhbz#2092005, rhbz#2093220, rhbz#2095704, rhbz#2096159, rhbz#2100108, rhbz#2100110, rhbz#2103282, rhbz#2106904, rhbz#2110627
* Wed Apr 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-6
- Skip comments in /etc/default/grub during the parsing
- Resolves: #1997076
* Tue Apr 26 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-5
- Migrate blacklisted CA certificates during the upgrade
- Resolves: #1997076
* Tue Apr 19 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-4
- Extend the check of deprecated or removed PCI drivers
- Do not instruct DNF to install rubygem-irb during the in-place upgrade
to prevent conflict between files
- Resolves: #1997076
* Fri Mar 18 2022 Petr Stodulka <pstodulk@redhat.com> - 0.16.0-1
- Rebase to v0.16.0
- Improve the performance of the leapp execution for "pre first reboot" phases
- Introduce upgrades for RHEL 8 to RHEL 9
- Enabled upgrade paths:
- RHEL 8.6 -> 9.0
- RHEL with SAP 8.6 -> 9.0
- Requires leapp-framework >= 2.2
- Bump leapp-framework-dependencies to 5
- Add actors for MariaDB and PostgreSQL
- Add detection of enabled DNF plugins
- Add scan & checks for VDO devices
- Bind the /run/lock dir into the container in the upgrade initramfs env
- Check Firewalld configuration
- Check SSSD configuration for changes in RHEL 9
- Check deprecated network settings
- Check ifcfg files for change in RHEL 9
- Check the existence of the custom network-scripts
- Filter out PES data unrelated for the particular IPU path
- Fix generating of instructions/data for the leapp DNF plugin during
- Fix generating the target initramfs when additional files and dracut modules are requested to be added
- Fix getting device attribute through udev on Python 3
- Fix parsing of sysctl output during the scan of the system
- Fix scanning "/etc/default/grub" with empty lines
- Fix scanning information about mounted devices
- Fix the execution order for the dnf dry run actor
- Handle SELinux during the in-place upgrade
- Handle live kernel patching during
- Improve and generalize checking of device drivers
- Inhibit the upgrade when ipa-server is detected
- Introduce DNFWorkarounds to register scripts to be executed before DNF run
- Introduce handling of DNF modularity during the upgrade
- Introduce the --report-schema option to control the version of the generated report format
- Introduce the --target option to specify the version of the target system
- Provide the LEAPP_IPU_IN_PROGRESS environment variable for actors during in-place upgrade
- Resolves: #1997076
* Tue Feb 01 2022 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-12
- Fix handling of PES data for modularity packages
- Resolves: #1997076
* Thu Jan 27 2022 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-11
- Beta version of IPU 8 -> 9
- Resolves: #1997076
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-10
- Bumping the release for the testing purposes.
- First build for the IPU 8 -> 9
- Resolves: #1997076
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-3
- Correct the version-release to obsolete previous leapp-repository-deps rpm
- Resolves: #2015192
* Wed Oct 20 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-2
- Correct the version-release to obsolete previous leapp-repository rpm
- Resolves: #2015192
* Tue Oct 19 2021 Petr Stodulka <pstodulk@redhat.com> - 0.15.0-1
- Rebase to v0.15.0
- Changed supported upgrade path for: RHEL with SAP 7.9 -> 8.2
- Enable upgrades for SAP on AWS & Azure using RHUI
- The leapp-repository rpm has been renamed to leapp-upgrade-el7toel8
- Provides the leapp-upgrade capability, so all required packages can be installed
by the `yum install leapp-upgrade` command
- Added a dependency on leapp as the new rpm provides leapp commands
- Bumped leapp-repository-dependencies to 6
- Do not exclude repoids enabled via the --enablerepo option (#623)
- Enforce the `en_US.utf-8` locale when running leapp to prevent various issues
when a different locale is used on the system
- Enhance the check of required free space on disk for the upgrade
- Fix XFS ftype=0 workaround when "non-XFS" rootfs is present
- Fix detection of XFS partitions without ftype
- Fix handling of /etc/yum.repos.d directory for RHUI
- Fix incorrect mapping of RHEL repositories
- Fix the detection of NFS partitions in /etc/fstab (e.g. when nfs3 or nfs4 is specified)
- Fix the report message when multiple NICs with ethX names are present (#640)
- Fix handling of issues when fetching leapp data files
- Introduce the LEAPP_NO_NETWORK_RENAMING environment variable to leave management
of NICs names on user when set to '1'; it's wanted e.g. in case a bonding
is configured on the system
- Add actors to report about PostgresSQL changes
- Make generation of targetuserspace container, upgrade initramfs, and target initramfs more dynamic
- Require the /etc/dasd.conf file only when DASD is used on s390x
- Generate /etc/migration-results upon leapp preupgrade / upgrade execution to inform about status of the upgrade
- Improve the report message when BTRFS is detected
- Inhibit the upgrade if any CIFS entries found in /etc/fstab
- Inhibit the upgrade if any deprecated OpenSSH configuration options / directives are detected
- Inhibit the upgrade when multiple rescue boot entries exist on s390x
- Inhibit the upgrade when x32b and x64b versions of packages are installed
- Introduce hard preservation of leapp packages during the IPU to make the
upgrade process more protected
- Introduce new system of automatic mapping of RHEL repositories for the in-place
upgrade based on the repomap.json data file
- Introduce the --channel CLI option to specify the channel (e.g. eus) supposed
to be used for the upgrade
- Report the problems with target repositories using inhibitors instead of error messages
- Update (or create) the /etc/{yum,dnf}/var/releasever file containing the target
OS release if exists or RHUI is detected
- Introduced the upgrade/common leapp repository: contains fundamental parts
generic for all in-place upgrades
- The upgrade/el7toel8 leapp repository contains only stuff related to in-place
upgrade from RHEL 7 -> RHEL 8
- Resolves: #2015192
* Thu May 13 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-4
- Fix the check of removed non-pci drivers
Relates: #1952886
* Tue May 04 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-3
- Fix handling of errors when fetching leapp data files from server
Relates: #1952886
* Tue Apr 27 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-2
- Improve fetching of leapp data files from server (increase timeouts and
retry multiple times in case of error)
- Relates: #1952886
* Fri Apr 23 2021 Petr Stodulka <pstodulk@redhat.com> - 0.14.0-1
- Rebase to v0.14.0
- Added dependency on python-requests on RHEL 7
- Changed supported upgrade paths:
RHEL-ALT 7.6 -> 8.4
RHEL 7.9 -> 8.4
RHEL with SAP 7.7 -> 8.2 (unchanged)
- Download the leapp data from cloud.redhat.com automatically
when no data are present locally (and system is registered)
- Fix migration of Quagga to FRR on RHEL 8.4
- Inhibit the upgrade if the system uses any drivers dropped
from the RHEL 8 system
- Resolves: #1952886
* Thu Feb 04 2021 Dominik Rehak <drehak@redhat.com> - 0.13.0-2
- Rebuild
- Relates: #1915509
* Thu Feb 04 2021 Dominik Rehak <drehak@redhat.com> - 0.13.0-1
- Rebase to v0.13.0
- Add actors to migrate Quagga to FRR
- Add stable uniq Key id for every dialog
- Add upgrade support for SAP HANA
- Allow upgrade with SCA enabled manifest
- Fix comparison of the newest installed and booted kernel
- Fix crash due to missing network interfaces during upgrade phases
- Fix error with /boot/efi existing on non-EFI systems
- Fix false positive detection of issue in /etc/default/grub that led into GRUB
prompt
- Fix remediation command for ipa-server removal
- Fix syntax error in upgrade script
- Inhibit upgrade if multiple kernel-debug pkgs are installed
- Inhibit upgrade on s390x machines with /boot on a separate partition
- Inhibit upgrade with mount options in fstab that break mounting on RHEL 8
- Remove the *leapp-resume* service after the *FirstBoot* phase to prevent kill
of the leapp process on `systemctl daemon-reload`
- Remove the initial-setup package to avoid it asking for EULA acceptance during
upgrade
- Require the leapp-framework capability 1.4
- Respect the *kernel-rt* package
- Resolves: #1915509 #1872356 #1873312 #1899455 #1901002 #1905247 #1870813
- Relates: #1901440
* Sun Oct 25 2020 Petr Stodulka <pstodulk@redhat.com> - 0.12.0-2
- Add actors to migrate Quagga to FRR
- Fixes issues with interrupted leapp during the FirstBoot phase when reload
of daemons is required
Resolves: #1883218
- Relates: #1887912
* Wed Oct 21 2020 Dominik Rehak <drehak@redhat.com> - 0.12.0-1
- Rebase to v0.12.0
- Enable upgrades on AWS and Azure
- Check usage of removed/deprecated leapp env vars
- Do not inhibit if winbind or wins is used in nsswitch.conf
(as the issue is fixed in RHEL 8.2)
- Do not remove java from the upgrade transaction
- Fix handling of events with same initial releases and input packages
- Fix mkhomedir issues after authselect conversion
- Fix python macro error in spec file
- Fix storing of logs from initramfs
- Handle migration of authselect and PAM
- Improve remediation instructions for HA clusters
- Make sure "default.target.wants" dir exists
- Resolves: #1887912
* Tue Sep 15 2020 Dominik Rehak <drehak@redhat.com> - 0.11.0-4
- Remove java from the upgrade transaction
Relates: #1860375
* Tue Sep 08 2020 Petr Stodulka <pstodulk@redhat.com> - 0.11.0-3
- Set authselect and PAM actors experimental again
Relates: #1860375
* Wed Sep 02 2020 Petr Stodulka <pstodulk@redhat.com> - 0.11.0-2
- Make possible upgrade with the java-11-openjdk-headless package
- Fix check of local repositories when metalink or mirrorlist is specified
- Relates: #1860375
* Tue Aug 18 2020 Michal Bocek <mbocek@redhat.com> - 0.11.0-1
- Rebase to v0.11.0
- Do not crash when the /root/temp_leapp_py3 directory exists (when upgrade is executed multiple times)
Relates: #1858479
- Do not detect grub device on the s390x architecture (ZIPL is used there)
- Consider the katello rpm being signed by Red Hat
- Omit printing grub binary data on terminal which could break terminal output
- Provide just a single remedition command in the pre-upgrade report to be compatible with Satellite and Cockpit
- Search repository files only in directories used by DNF
- Change supported upgrade paths: RHEL-ALT 7.6 -> 8.2; RHEL 7.9 -> 8.2
- Check whether PAM modules, that are not present on RHEL 8, are used
- Inhibit upgrade when local repositories (referred by file://) are detected
- Introduce actors for migration of Authconfig to Authselect
- Support for an in-place upgrade for z15 machines - s390x architecture
- Update list of removed drivers on RHEL 8
- Resolves: #1860375
* Mon Apr 20 2020 Michal Bocek <mbocek@redhat.com> - 0.10.0-2
- Fixed broken cli output due to printing binary data
- Relates: #1821710
* Thu Apr 16 2020 Petr Stodulka <pstodulk@redhat.com> - 0.10.0-1
- Rebase to v0.10.0
- Changed upgrade paths: RHEL-ALT 7.6 -> 8.2; RHEL 7.8 -> 8.2
- Add initial multipath support (it doesn't handle all cases yet)
- Use the new framework mechanism to inhibit the upgrade without reporting errors
- Support the upgrade without the use of subscription-manager
- Add dependency on leapp-framework
- Check if the latest installed kernel is booted before the upgrade
- Check that the system satisfies minimum memory requirements
for the upgrade (#413)
- Do not mount pseudo and unsupposrted FS to overlayfs (e.g. proc)
- Drop leapp sos plugin (it's part of the sos rpm in RHEL 7.7+)
- Evaluate PES events transitively to create correct data for the upgrade
transaction
- Fix checking of kernel drivers (#400)
- Fix failures caused by local rpms added into the upgrade transaction
- Fix getting mount information with mountpoints with spaces in the path
- Fix handling of XFS without ftype for every such mounted FS
- Fix issue with random booting into old RHEL 7 kernel after the upgrade
- Fix issues on systems with statically mapped IPs in /etc/hosts
- Fix issues with device mapper and udev in a container
- Fix issues with failing rpm transaction calculation because of duplicate
instructions for dnf
- Fix various issues related to RHSM (including rhbz rhbz#1702691)
- Fix yum repository scan in case of repositories with invalid URL
- Improved report related to KDE/GNOME
- Inhibit the upgrade for ipa-server (#481)
- Inhibit the upgrade if multiple kernel-devel rpms are installed
- Inhibit the upgrade on FIPS systems
- Inhibit the upgrade when links on root dir '/' are not absolute to save the world
- Inhibit the upgrade when the raised dialogs are missing answers (#589)
- Introduce new ways of using custom repositories during the transaction
- Make report messages more explicit about Dialogs (#600)
- Migrate SpamAssassin
- Migrate cups-filters
- Migrate sane-backend
- Modify vim configuration to keep the original behaviour
- Parse correctly kernel cmdline inside the initrd (#383) (fixes various issues on s390x)
- Print warnings instead of a hard failure when expected rpms cannot be found
(e.g. python3-nss inside an rpm module) (#405)
- Remove java11-openjdk-headless during the upgrade (rhbz#1820172)
- Report changes in wireshark
- The name and baseurl field in the CustomTargetRepository message are optional now
- Throw a nice error when invalid locale is set (#430)
- Various texts are improved based on the feedback
- Resolves: #1821710
* Tue Nov 5 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-5
- Do not use efibootmgr on non-efi systems
Resolves: #1768904
* Mon Nov 4 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-4
- Inhibit upgrade on EFI systems when efibootmgr is not installed
Relates: #1753580
* Fri Nov 1 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-3
- Inhibit upgrade on s390x machines with rd.znet in kernel cmdline to prevent
troubles with networking (temporary)
- Fix issues with failing rpm transaction calculation because of duplicates
- Fix boot order on EFI systems
Relates: #1753580
* Wed Oct 30 2019 Michal Bocek <mbocek@redhat.com> - 0.9.0-2
- Fixed some remediation instructions
- Not trying to make an overlay over /boot/efi
Relates: #1753580
* Thu Oct 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.9.0-1
- Rebase to v0.9.0
- Added dependency on policycoreutils-python
- Change upgrade path from RHEL(-ALT) 7.6 (EUS) to RHEL 8.1
- Changed the title of the upgrade boot entry to be valid for ZIPL
- Check NSS configuration for use of wins or winbind
- Check SSSD configuration
- Check use of removed PAM modules
- Check whether CPU on s390x is supported on RHEL 8
- Do not remove packages which shall be installed/kept on target system
- Do not waste time by downloading of RPMs if upgrade has been inhibited already
- Enable and make possible upgrades on all architectures
- Enable repositories used for upgrade on the upgraded system
- Fix adding of local rpms into the upgrade transaction
- Fix check of active kernel modules
- Fix handling of XFS filesystems with ftype=0 (rhbz#1746956)
- Fix ntp migration: extract configs into the right directories
- Fix traceback when RHSM is skipped
- Handle possible error when setting release on upgraded system
- Handle systems with EFI boot
- Handle upgrade on systems with multiple partitions
- Improve message on failed subscription-manager and dnf
- Improved the reporting capability
- Migrate SELinux customizations
- No size limit on leapp.db in sosreport
- Process new PES data format + process PES events in order of releases
- Require the biosdevname dracut module on the intel architecture only
- Retry some actions of subscription-manager on failure to reduce number of issues
- Update the list of packages supposed to be removed during the upgrade
- Upgrade only packages signed by Red Hat
Resolves: #1753580
* Thu Jul 25 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.1-2
- attempt to (un)set rhsm release several times to omit possible problems with
server
Relates: #1723115
* Wed Jul 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.1-1
- Rebase to v0.8.1
Relates: #1723115
- enable installation of RPMs that were previously blacklisted due to problems
with rich dependencies
* Mon Jul 15 2019 Petr Stodulka <pstodulk@redhat.com> - 0.8.0-1
- Rebase to v0.8.0
Relates: #1723115
- improve handling of RPM transaction to be able to process RPMs with
rich dependencies
- add missing dependency on python-udev & python3-udev
- fix processing of last phase during the first boot of the upgraded system
- set RHSM target release after the upgrade to expected version of the system
- enable the CRB repository when the Optional repository is enabled
- check tcp wrappers
- check OpenSSH configuration
- check and handle vftpd configuration
- check kernel drivers
- improve checks related to subscriptions
- improve parsing of /etc/fstab
- ensure the new target kernel is default boot entry
- handle better cases when no target repositories has been found
- migrate NTP to chronyd
- migrate brltty configuration
- migrate sendmail
- avoid removal of /etc/localtime and /etc/resolv.conf during the upgrade
- add informational actors for: acpid, chrony, dosfstools, grep, irssi,
postfix, powertop
* Sun Jun 23 2019 Vojtech Sokol <vsokol@redhat.com> - 0.7.0-6
- Rebuild
Resolves: #1723115
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-5
- build rhel8 initrd on the fly during the upgrade process
- do not bundle initrd and vmlinuz file in the rpm
Relates: #1636481
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-4
- add python2-docs and python3-docs to the list of rpms for removal as
currently it causes troubles with RPM transaction
Relates: #1636481
* Fri Apr 26 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-3
- set selinux into the permissive mode on RHEL 8 when enforcing was set
originally
- add python-docs and squid rpms to the list of rpms for removal
Relates: #1636481
* Wed Apr 17 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-2
- fix inhibition when ethX network interface exists and more additional NIC
exist as well
Relates: #1636481
* Wed Apr 17 2019 Petr Stodulka <pstodulk@redhat.com> - 0.7.0-1
- Rebase to v0.7.0
Relates: #1636481
- new dependencies: python3, python*-pyudev
- upgrade process is interrupted after RPMUpgradePhase and resumed with Python3
- upgrade of NetworkManager is fixed
- upgrade of firewalld is handled
- name changes of network interfaces are handled
- HTB repositories used for upgrades are replaced with the ones used for GA
- tpm2-abrmd and all packages that depend on redhat-rpm-config are removed
during upgrade
- handling of the upgrade RPM transaction is improved
- sync command is used in initrd to avoid issues related to cache
- networking naming changes are handled
- disable udev's persistent network interface naming scheme when the only NIC
is eth0
- inhibit upgrade when ethX is detected and more NICs exist
- check whether all target upgrade repositories are available
- output of dnf tool is always showed during the upgrade
- all logs and reports are stored in /var/log/leapp/ directory
* Tue Apr 09 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-4
- Remove wrong license for sos subpackage
Relates: #1636481
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-3
- Fix patch
Relates: #1636481
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-2
- Fix specfile
Relates: #1636481
* Mon Apr 08 2019 Vojtech Sokol <vsokol@redhat.com> - 0.6.0-1
- Rebase to v0.6.0
Relates: #1636481
- Change license to Apache 2.0
- leapp-repository-data subpackage is removed (it included data files)
- data files are required to be delivered by user manually now
- udev database is accessible during the upgrade
- downtime of some machines is significantly reduced
- sos plugin is introduced for collecting data needed for debugging
- redhat-rpm-config package is removed during upgrade
- system is checked for NFS filesystems usage and upgrade is inhibited when
detected
- /boot is checked for sufficient free space
- upgrade is not inhibited any more when Logic SCSI Controllers are present
- repositories used to upgrade the system are based on provided data files
- specific syntax errors in grub configuration are handled when detected
- SCTP is handled during the upgrade
- migration of yum is handled (yum is available after the upgrade)
- upgrade of NetworkManager is handled
- upgrades with XFS filesystems without ftype is handled better
- new reporting functionality is introduced and used
- new dependencies: python2-jinja2, pciutils, sos
- new directory /etc/leapp/files for data files is introduced
- python files are precompiled to avoid left over pyc files
* Thu Jan 24 2019 Petr Stodulka <pstodulk@redhat.com> - 0.5.0-1
- Rebase to v0.5.0
Relates: #1636481
- Require DNF v4+ and Leapp framework v0.5.0
- Improved handling of RPM transaction using own DNF plugin and PES
data
- Models have been refactored to use new format supported by framework
- Handle transaction preparation when release is set through RHSM
- Fix failing overlayfs unmounting
- Reduce the IPUWorkflo workflow
- Include all required directories inside RPMs
- Handle repositories using metalink and mirrorlist
- Handle better installation of local RPMs
- Move system dependencies into the RPM metapackage
- Satisfy leapp and leapp-repository RPM dependencies during the
upgrade
* Thu Jan 03 2019 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-4
- Activate LVM LVs during upgrade
- Resolve file conflict of python-inotify during the RPM transaction
Relates: #1636481
* Thu Nov 29 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-3
- Add empty empty events for leapp-repository-data.
- Requiring now DNF 2.7.5-19 or higher
Relates: #1636481
* Wed Nov 21 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-2
- update leapp-repository-data source
Relates: #1636481
* Wed Nov 21 2018 Petr Stodulka <pstodulk@redhat.com> - 0.4.0-1
- Rebase to 0.4.0
- change hierarchy of repositories
- scan RHEL system for custom and 3rd-party packages
- improve error messages
Relates: #1636481
* Fri Nov 09 2018 Petr Stodulka <pstodulk@redhat.com> - 0.3.1-1
- Rebase to 0.3.1
- move data to separate subpackage
Relates: #1636481
* Wed Nov 07 2018 Petr Stodulka <pstodulk@redhat.com> - 0.3-1
- Initial RPM
Resolves: #1636481