forked from rpms/leapp-repository
Import from CS git
This commit is contained in:
parent
ef02e9e53b
commit
c60931c8ff
@ -0,0 +1,25 @@
|
|||||||
|
From 9c07443b0148139b511bcd52ecac294c86a15826 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
|
||||||
|
Date: Wed, 16 Oct 2024 09:17:17 +0000
|
||||||
|
Subject: [PATCH 41/53] chore(deps): update dependency ubuntu to v24
|
||||||
|
|
||||||
|
---
|
||||||
|
.github/workflows/reuse-copr-build.yml | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/.github/workflows/reuse-copr-build.yml b/.github/workflows/reuse-copr-build.yml
|
||||||
|
index 3cf06254..c6702e1a 100644
|
||||||
|
--- a/.github/workflows/reuse-copr-build.yml
|
||||||
|
+++ b/.github/workflows/reuse-copr-build.yml
|
||||||
|
@@ -16,7 +16,7 @@ jobs:
|
||||||
|
reusable_workflow_copr_build_job:
|
||||||
|
# This job only runs for '/rerun' pull request comments by owner, member, or collaborator of the repo/organization.
|
||||||
|
name: Build copr builds for tft tests
|
||||||
|
- runs-on: ubuntu-22.04
|
||||||
|
+ runs-on: ubuntu-24.04
|
||||||
|
outputs:
|
||||||
|
artifacts: ${{ steps.gen_artifacts.outputs.artifacts }}
|
||||||
|
if: |
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 3c3421a0f155fe3bdfaee74c5345e86874684a09 Mon Sep 17 00:00:00 2001
|
From 3c3421a0f155fe3bdfaee74c5345e86874684a09 Mon Sep 17 00:00:00 2001
|
||||||
From: Michal Hecko <mhecko@redhat.com>
|
From: Michal Hecko <mhecko@redhat.com>
|
||||||
Date: Tue, 19 Nov 2024 10:56:50 +0100
|
Date: Tue, 19 Nov 2024 10:56:50 +0100
|
||||||
Subject: [PATCH] feat(net-naming-scheme): enable by default
|
Subject: [PATCH 42/53] feat(net-naming-scheme): enable by default
|
||||||
|
|
||||||
This commit enables the use of net.naming-scheme for 8>9 upgrades by
|
This commit enables the use of net.naming-scheme for 8>9 upgrades by
|
||||||
default. The previously used environmental variablel
|
default. The previously used environmental variablel
|
||||||
@ -70,5 +70,5 @@ index 7a5eeba5..acf72241 100644
|
|||||||
|
|
||||||
monkeypatch.setattr(api, 'produce', produce_mocked())
|
monkeypatch.setattr(api, 'produce', produce_mocked())
|
||||||
--
|
--
|
||||||
2.47.0
|
2.47.1
|
||||||
|
|
48
SOURCES/0043-Fix-unreadable-output-in-upgrade-log.patch
Normal file
48
SOURCES/0043-Fix-unreadable-output-in-upgrade-log.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From 1a0183b1a43e42891199efed9bd0891a24224142 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Kubek <dkubek@redhat.com>
|
||||||
|
Date: Wed, 8 Jan 2025 12:05:57 +0100
|
||||||
|
Subject: [PATCH 43/53] Fix unreadable output in upgrade log
|
||||||
|
|
||||||
|
This commit resolves an issue where unwanted escape sequences (e.g.,
|
||||||
|
ANSI codes) appear in the output of certain commands like `dnf` during
|
||||||
|
upgrades.
|
||||||
|
|
||||||
|
The issue arises because, starting with version 242, `systemd-nspawn`
|
||||||
|
introduced new pseudo-TTY capabilities (see the `Input/Output Options`
|
||||||
|
section in `systemd-nspawn(1)`). As a result, commands run within
|
||||||
|
container may include these escape sequences.
|
||||||
|
|
||||||
|
To address this, pseudo-TTY support is explicitly disabled in
|
||||||
|
`systemd-nspawn` for upgrades on RHEL9 and later.
|
||||||
|
|
||||||
|
JIRA: RHEL-69829
|
||||||
|
---
|
||||||
|
repos/system_upgrade/common/libraries/mounting.py | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/libraries/mounting.py b/repos/system_upgrade/common/libraries/mounting.py
|
||||||
|
index a546e9d0..2eb19d31 100644
|
||||||
|
--- a/repos/system_upgrade/common/libraries/mounting.py
|
||||||
|
+++ b/repos/system_upgrade/common/libraries/mounting.py
|
||||||
|
@@ -5,7 +5,7 @@ import shutil
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
from leapp.libraries.common.config import get_all_envs
|
||||||
|
-from leapp.libraries.common.config.version import get_source_major_version
|
||||||
|
+from leapp.libraries.common.config.version import get_source_major_version, matches_source_version
|
||||||
|
from leapp.libraries.stdlib import api, CalledProcessError, run
|
||||||
|
|
||||||
|
# Using ALWAYS_BIND will crash the upgrade process if the file does not exist.
|
||||||
|
@@ -88,6 +88,9 @@ class IsolationType(object):
|
||||||
|
# in such a case, just add line into the previous solution..
|
||||||
|
# TODO: the same about --capability=all
|
||||||
|
final_cmd += ['--keep-unit', '--capability=all']
|
||||||
|
+ if matches_source_version('>= 9.0'):
|
||||||
|
+ # Disable pseudo-TTY in container
|
||||||
|
+ final_cmd += ['--pipe']
|
||||||
|
return final_cmd + ['-D', self.target] + binds + setenvs + cmd
|
||||||
|
|
||||||
|
class CHROOT(_Implementation):
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,53 @@
|
|||||||
|
From c92dbb41fc3d3c3c77ae33a723ad9f961b8b8215 Mon Sep 17 00:00:00 2001
|
||||||
|
From: dosas <dosas@users.noreply.github.com>
|
||||||
|
Date: Thu, 9 Jan 2025 14:58:54 +0100
|
||||||
|
Subject: [PATCH 44/53] Remove unmaintained .gitlab-ci.yml config file
|
||||||
|
|
||||||
|
---
|
||||||
|
.gitlab-ci.yml | 34 ----------------------------------
|
||||||
|
1 file changed, 34 deletions(-)
|
||||||
|
delete mode 100644 .gitlab-ci.yml
|
||||||
|
|
||||||
|
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 24e91dbb..00000000
|
||||||
|
--- a/.gitlab-ci.yml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,34 +0,0 @@
|
||||||
|
-stages:
|
||||||
|
-- build-initrd
|
||||||
|
-- build-srpm
|
||||||
|
-# - build-rpms
|
||||||
|
-
|
||||||
|
-build_initrd:
|
||||||
|
- only:
|
||||||
|
- - master@leapp/leapp-actors-internal
|
||||||
|
- stage: build-initrd
|
||||||
|
- cache:
|
||||||
|
- key: "${CI_PIPELINE_ID}"
|
||||||
|
- paths:
|
||||||
|
- - sources/dracut/upgrade-boot-files.tgz
|
||||||
|
- script:
|
||||||
|
- - 'export BASEDIR="$PWD"'
|
||||||
|
- - helpers/docker/docker-run.sh
|
||||||
|
- image: docker-registry.engineering.redhat.com/leapp-builds/leapp-initrd-rhel8-build:latest
|
||||||
|
-
|
||||||
|
-build_srpm:
|
||||||
|
- only:
|
||||||
|
- - master@leapp/leapp-actors-internal
|
||||||
|
- stage: build-srpm
|
||||||
|
- dependencies:
|
||||||
|
- - build_initrd
|
||||||
|
- cache:
|
||||||
|
- key: "${CI_PIPELINE_ID}"
|
||||||
|
- paths:
|
||||||
|
- - sources/dracut/upgrade-boot-files.tgz
|
||||||
|
- script:
|
||||||
|
- - dnf install -y git-core make rpm-build copr-cli
|
||||||
|
- - export LEAPP_INITRD_SKIP=1
|
||||||
|
- - make srpm
|
||||||
|
- image: fedora:28
|
||||||
|
-
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,55 @@
|
|||||||
|
From e10968202016575ed4431f67a09ab7a3aef8dfcc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Stodulka <pstodulk@redhat.com>
|
||||||
|
Date: Wed, 18 Sep 2024 00:40:25 +0200
|
||||||
|
Subject: [PATCH 45/53] fix(pes_events_scanner): ensure output contains no
|
||||||
|
duplicates
|
||||||
|
|
||||||
|
RpmTransactionTasks messages have higher priority than instructions
|
||||||
|
based on PES data. Previously, if multiple such messages existed
|
||||||
|
with duplicate instructions, this could lead to the crash of
|
||||||
|
the actor - especially in case when an existing package has been
|
||||||
|
asked to be removed several times. Ensure the occurance of each
|
||||||
|
instruction is unique (list -> set).
|
||||||
|
|
||||||
|
jira: RHEL-50076
|
||||||
|
---
|
||||||
|
.../libraries/pes_events_scanner.py | 17 ++++++++++-------
|
||||||
|
1 file changed, 10 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
index f5cb2613..a798017f 100644
|
||||||
|
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
@@ -78,19 +78,22 @@ def get_installed_pkgs():
|
||||||
|
|
||||||
|
def get_transaction_configuration():
|
||||||
|
"""
|
||||||
|
- Get pkgs to install, keep and remove from the user configuration files in /etc/leapp/transaction/.
|
||||||
|
+ Get pkgs to install, keep and remove from RpmTransactionTasks messages.
|
||||||
|
|
||||||
|
- These configuration files have higher priority than PES data.
|
||||||
|
- :return: RpmTransactionTasks model instance
|
||||||
|
+ Note these messages reflects inputs from various actors and configuration
|
||||||
|
+ files in /etc/leapp/transaction/. As these are explicit instruction, they
|
||||||
|
+ have higher priority than instructions from PES data.
|
||||||
|
+
|
||||||
|
+ :return: TransactionConfiguration
|
||||||
|
"""
|
||||||
|
- transaction_configuration = TransactionConfiguration(to_install=[], to_remove=[], to_keep=[])
|
||||||
|
+ transaction_configuration = TransactionConfiguration(to_install=set(), to_remove=set(), to_keep=set())
|
||||||
|
|
||||||
|
_Pkg = partial(Package, repository=None, modulestream=None)
|
||||||
|
|
||||||
|
for tasks in api.consume(RpmTransactionTasks):
|
||||||
|
- transaction_configuration.to_install.extend(_Pkg(name=pkg_name) for pkg_name in tasks.to_install)
|
||||||
|
- transaction_configuration.to_remove.extend(_Pkg(name=pkg_name) for pkg_name in tasks.to_remove)
|
||||||
|
- transaction_configuration.to_keep.extend(_Pkg(name=pkg_name) for pkg_name in tasks.to_keep)
|
||||||
|
+ transaction_configuration.to_install.update(_Pkg(name=pkg_name) for pkg_name in tasks.to_install)
|
||||||
|
+ transaction_configuration.to_remove.update(_Pkg(name=pkg_name) for pkg_name in tasks.to_remove)
|
||||||
|
+ transaction_configuration.to_keep.update(_Pkg(name=pkg_name) for pkg_name in tasks.to_keep)
|
||||||
|
return transaction_configuration
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,247 @@
|
|||||||
|
From 49627082e79744d9b7831356f87c71e2e67add03 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Hecko <mhecko@redhat.com>
|
||||||
|
Date: Thu, 31 Oct 2024 18:13:49 +0100
|
||||||
|
Subject: [PATCH 46/53] fix(pes_event_scanner): respect user's trasaction
|
||||||
|
configuration
|
||||||
|
|
||||||
|
Previously, pes_events_scanner used transaction configuration to
|
||||||
|
only modify the way it initializes event application. As a consequence,
|
||||||
|
if a user specified to_remove=['pkg'], then the information would
|
||||||
|
not make it to pes_events_scanner's output. Similar situation would
|
||||||
|
arise with to_install/to_keep. This patch adds a post-processing to
|
||||||
|
explicitly add transaction configuration to the result of applying PES
|
||||||
|
events.
|
||||||
|
---
|
||||||
|
.../libraries/pes_events_scanner.py | 64 +++++++++++++--
|
||||||
|
.../tests/test_pes_event_scanner.py | 78 +++++++++++++++----
|
||||||
|
2 files changed, 120 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
index a798017f..50336150 100644
|
||||||
|
--- a/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
+++ b/repos/system_upgrade/common/actors/peseventsscanner/libraries/pes_events_scanner.py
|
||||||
|
@@ -470,9 +470,8 @@ def replace_pesids_with_repoids_in_packages(packages, source_pkgs_repoids):
|
||||||
|
return packages_with_repoid.union(packages_without_pesid)
|
||||||
|
|
||||||
|
|
||||||
|
-def apply_transaction_configuration(source_pkgs):
|
||||||
|
+def apply_transaction_configuration(source_pkgs, transaction_configuration):
|
||||||
|
source_pkgs_with_conf_applied = set(source_pkgs)
|
||||||
|
- transaction_configuration = get_transaction_configuration()
|
||||||
|
|
||||||
|
source_pkgs_with_conf_applied = source_pkgs.union(transaction_configuration.to_install)
|
||||||
|
|
||||||
|
@@ -504,6 +503,50 @@ def remove_leapp_related_events(events):
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
|
+def include_instructions_from_transaction_configuration(rpm_tasks, transaction_configuration, installed_pkgs):
|
||||||
|
+ """
|
||||||
|
+ Extend current rpm_tasks applying data from transaction_configuration
|
||||||
|
+
|
||||||
|
+ :param PESRpmTransactionTasks rpm_tasks: Currently calculated rpm tasks based on PES data.
|
||||||
|
+ :param TransactionConfiguration transaction_configuration: Tasked configured by user manually.
|
||||||
|
+ :param set(str) installed_pkgs: Set of distribution signed packages installed on the system.
|
||||||
|
+ :returns: updated tasks respecting configuration changes made by user
|
||||||
|
+ :rtype: PESRpmTransactionTasks
|
||||||
|
+ """
|
||||||
|
+ to_install_from_rpm_tasks = set() if not rpm_tasks else set(rpm_tasks.to_install)
|
||||||
|
+ to_remove_from_rpm_tasks = set() if not rpm_tasks else set(rpm_tasks.to_remove)
|
||||||
|
+ to_keep_from_rpm_tasks = set() if not rpm_tasks else set(rpm_tasks.to_keep)
|
||||||
|
+
|
||||||
|
+ # We don't want to try removing packages that are not installed - include only installed ones
|
||||||
|
+ installed_pkgs_requested_to_be_removed = transaction_configuration.to_remove.intersection(installed_pkgs)
|
||||||
|
+ pkgs_names_to_extend_to_remove_with = set(pkg.name for pkg in installed_pkgs_requested_to_be_removed)
|
||||||
|
+
|
||||||
|
+ # Add packages to 'to_install' only if they are not already requested to be installed by rpm_tasks
|
||||||
|
+ pkgs_names_requested_to_be_installed = set(pkg.name for pkg in transaction_configuration.to_install)
|
||||||
|
+ to_install_pkgs_names_missing_from_tasks = pkgs_names_requested_to_be_installed - to_install_from_rpm_tasks
|
||||||
|
+
|
||||||
|
+ pkg_names_user_wants_to_keep = {pkg.name for pkg in transaction_configuration.to_keep}
|
||||||
|
+
|
||||||
|
+ # Remove packages that were requested by rpm_tasks or by user, but exclude those that should be kept
|
||||||
|
+ new_to_remove_set = (to_remove_from_rpm_tasks | pkgs_names_to_extend_to_remove_with) - pkg_names_user_wants_to_keep
|
||||||
|
+ new_to_remove_list = sorted(new_to_remove_set)
|
||||||
|
+
|
||||||
|
+ new_to_install_list = sorted(to_install_from_rpm_tasks | to_install_pkgs_names_missing_from_tasks)
|
||||||
|
+ new_to_keep_list = sorted(to_keep_from_rpm_tasks | pkg_names_user_wants_to_keep)
|
||||||
|
+
|
||||||
|
+ if not any((new_to_remove_list, new_to_keep_list, new_to_install_list)): # Are all empty?
|
||||||
|
+ return rpm_tasks # We do not modify the original tasks
|
||||||
|
+
|
||||||
|
+ modules_to_enable = rpm_tasks.modules_to_enable if rpm_tasks else []
|
||||||
|
+ modules_to_reset = rpm_tasks.modules_to_reset if rpm_tasks else []
|
||||||
|
+
|
||||||
|
+ return PESRpmTransactionTasks(to_install=new_to_install_list,
|
||||||
|
+ to_remove=new_to_remove_list,
|
||||||
|
+ to_keep=new_to_keep_list,
|
||||||
|
+ modules_to_enable=modules_to_enable,
|
||||||
|
+ modules_to_reset=modules_to_reset)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
def process():
|
||||||
|
# Retrieve data - installed_pkgs, transaction configuration, pes events
|
||||||
|
events = get_pes_events('/etc/leapp/files', 'pes-events.json')
|
||||||
|
@@ -511,24 +554,27 @@ def process():
|
||||||
|
return
|
||||||
|
|
||||||
|
releases = get_relevant_releases(events)
|
||||||
|
- source_pkgs = get_installed_pkgs()
|
||||||
|
- source_pkgs = apply_transaction_configuration(source_pkgs)
|
||||||
|
+ installed_pkgs = get_installed_pkgs()
|
||||||
|
+ transaction_configuration = get_transaction_configuration()
|
||||||
|
+ pkgs_to_begin_computation_with = apply_transaction_configuration(installed_pkgs, transaction_configuration)
|
||||||
|
|
||||||
|
# Keep track of what repoids have the source packages to be able to determine what are the PESIDs of the computed
|
||||||
|
# packages of the target system, so we can distinguish what needs to be repomapped
|
||||||
|
- repoids_of_source_pkgs = {pkg.repository for pkg in source_pkgs}
|
||||||
|
+ repoids_of_source_pkgs = {pkg.repository for pkg in pkgs_to_begin_computation_with}
|
||||||
|
|
||||||
|
events = remove_leapp_related_events(events)
|
||||||
|
events = remove_undesired_events(events, releases)
|
||||||
|
|
||||||
|
# Apply events - compute what packages should the target system have
|
||||||
|
- target_pkgs, pkgs_to_demodularize = compute_packages_on_target_system(source_pkgs, events, releases)
|
||||||
|
+ target_pkgs, pkgs_to_demodularize = compute_packages_on_target_system(pkgs_to_begin_computation_with,
|
||||||
|
+ events, releases)
|
||||||
|
|
||||||
|
# Packages coming out of the events have PESID as their repository, however, we need real repoid
|
||||||
|
target_pkgs = replace_pesids_with_repoids_in_packages(target_pkgs, repoids_of_source_pkgs)
|
||||||
|
|
||||||
|
# Apply the desired repository blacklisting
|
||||||
|
- blacklisted_repoids, target_pkgs = remove_new_packages_from_blacklisted_repos(source_pkgs, target_pkgs)
|
||||||
|
+ blacklisted_repoids, target_pkgs = remove_new_packages_from_blacklisted_repos(pkgs_to_begin_computation_with,
|
||||||
|
+ target_pkgs)
|
||||||
|
|
||||||
|
# Look at the target packages and determine what repositories to enable
|
||||||
|
target_repoids = sorted(set(p.repository for p in target_pkgs) - blacklisted_repoids - repoids_of_source_pkgs)
|
||||||
|
@@ -536,6 +582,8 @@ def process():
|
||||||
|
api.produce(repos_to_enable)
|
||||||
|
|
||||||
|
# Compare the packages on source system and the computed packages on target system and determine what to install
|
||||||
|
- rpm_tasks = compute_rpm_tasks_from_pkg_set_diff(source_pkgs, target_pkgs, pkgs_to_demodularize)
|
||||||
|
+ rpm_tasks = compute_rpm_tasks_from_pkg_set_diff(pkgs_to_begin_computation_with, target_pkgs, pkgs_to_demodularize)
|
||||||
|
+ rpm_tasks = include_instructions_from_transaction_configuration(rpm_tasks, transaction_configuration,
|
||||||
|
+ installed_pkgs)
|
||||||
|
if rpm_tasks:
|
||||||
|
api.produce(rpm_tasks)
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
||||||
|
index 80ece770..9a499baa 100644
|
||||||
|
--- a/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
||||||
|
+++ b/repos/system_upgrade/common/actors/peseventsscanner/tests/test_pes_event_scanner.py
|
||||||
|
@@ -9,9 +9,7 @@ from leapp.libraries.actor.pes_events_scanner import (
|
||||||
|
api,
|
||||||
|
compute_packages_on_target_system,
|
||||||
|
compute_rpm_tasks_from_pkg_set_diff,
|
||||||
|
- get_installed_pkgs,
|
||||||
|
Package,
|
||||||
|
- process,
|
||||||
|
reporting,
|
||||||
|
TransactionConfiguration
|
||||||
|
)
|
||||||
|
@@ -27,8 +25,8 @@ from leapp.models import (
|
||||||
|
RepositoriesSetupTasks,
|
||||||
|
RepositoryData,
|
||||||
|
RepositoryFile,
|
||||||
|
- RHUIInfo,
|
||||||
|
- RPM
|
||||||
|
+ RPM,
|
||||||
|
+ RpmTransactionTasks
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -286,17 +284,14 @@ def test_actor_performs(monkeypatch):
|
||||||
|
def test_transaction_configuration_has_effect(monkeypatch):
|
||||||
|
_Pkg = partial(Package, repository=None, modulestream=None)
|
||||||
|
|
||||||
|
- def mocked_transaction_conf():
|
||||||
|
- return TransactionConfiguration(
|
||||||
|
- to_install=[_Pkg('pkg-a'), _Pkg('pkg-b')],
|
||||||
|
- to_remove=[_Pkg('pkg-c'), _Pkg('pkg-d')],
|
||||||
|
- to_keep=[]
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- monkeypatch.setattr(pes_events_scanner, 'get_transaction_configuration', mocked_transaction_conf)
|
||||||
|
+ transaction_cfg = TransactionConfiguration(
|
||||||
|
+ to_install=[_Pkg('pkg-a'), _Pkg('pkg-b')],
|
||||||
|
+ to_remove=[_Pkg('pkg-c'), _Pkg('pkg-d')],
|
||||||
|
+ to_keep=[]
|
||||||
|
+ )
|
||||||
|
|
||||||
|
packages = {_Pkg('pkg-a'), _Pkg('pkg-c')}
|
||||||
|
- _result = pes_events_scanner.apply_transaction_configuration(packages)
|
||||||
|
+ _result = pes_events_scanner.apply_transaction_configuration(packages, transaction_cfg)
|
||||||
|
result = {(p.name, p.repository, p.modulestream) for p in _result}
|
||||||
|
expected = {('pkg-a', None, None), ('pkg-b', None, None)}
|
||||||
|
|
||||||
|
@@ -340,7 +335,7 @@ def test_blacklisted_repoid_is_not_produced(monkeypatch):
|
||||||
|
|
||||||
|
monkeypatch.setattr(pes_events_scanner, 'get_installed_pkgs', lambda: installed_pkgs)
|
||||||
|
monkeypatch.setattr(pes_events_scanner, 'get_pes_events', lambda folder, filename: events)
|
||||||
|
- monkeypatch.setattr(pes_events_scanner, 'apply_transaction_configuration', lambda pkgs: pkgs)
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'apply_transaction_configuration', lambda pkgs, transaction_cfg: pkgs)
|
||||||
|
monkeypatch.setattr(pes_events_scanner, 'get_blacklisted_repoids', lambda: {'blacklisted-rhel8'})
|
||||||
|
monkeypatch.setattr(pes_events_scanner, 'replace_pesids_with_repoids_in_packages',
|
||||||
|
lambda pkgs, src_pkgs_repoids: pkgs)
|
||||||
|
@@ -475,3 +470,58 @@ def test_remove_leapp_related_events(monkeypatch):
|
||||||
|
|
||||||
|
out_events = pes_events_scanner.remove_leapp_related_events(in_events)
|
||||||
|
assert out_events == expected_out_events
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def test_transaction_configuration_is_applied(monkeypatch):
|
||||||
|
+ installed_pkgs = {
|
||||||
|
+ Package(name='moved-in', repository='rhel7-base', modulestream=None),
|
||||||
|
+ Package(name='split-in', repository='rhel7-base', modulestream=None),
|
||||||
|
+ Package(name='pkg-not-in-events', repository='rhel7-base', modulestream=None),
|
||||||
|
+ }
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'get_installed_pkgs', lambda *args, **kwags: installed_pkgs)
|
||||||
|
+
|
||||||
|
+ Pkg = partial(Package, modulestream=None)
|
||||||
|
+ events = [
|
||||||
|
+ Event(1, Action.SPLIT,
|
||||||
|
+ {Pkg('split-in', 'rhel7-base')},
|
||||||
|
+ {Pkg('split-out0', 'rhel8-BaseOS'), Pkg('split-out1', 'rhel8-BaseOS')},
|
||||||
|
+ (7, 9), (8, 0), []),
|
||||||
|
+ Event(3, Action.MOVED,
|
||||||
|
+ {Pkg('moved-in', 'rhel7-base')}, {Pkg('moved-out', 'rhel8-BaseOS')},
|
||||||
|
+ (7, 9), (8, 0), []),
|
||||||
|
+ ]
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'get_pes_events', lambda *args, **kwargs: events)
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'remove_leapp_related_events', lambda events: events)
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'remove_undesired_events', lambda events, releases: events)
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, '_get_enabled_modules', lambda *args: [])
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner, 'replace_pesids_with_repoids_in_packages',
|
||||||
|
+ lambda target_pkgs, repoids_of_source_pkgs: target_pkgs)
|
||||||
|
+ monkeypatch.setattr(pes_events_scanner,
|
||||||
|
+ 'remove_new_packages_from_blacklisted_repos',
|
||||||
|
+ lambda source_pkgs, target_pkgs: (set(), target_pkgs))
|
||||||
|
+
|
||||||
|
+ msgs = [
|
||||||
|
+ RpmTransactionTasks(to_remove=['pkg-not-in-events']),
|
||||||
|
+ RpmTransactionTasks(to_remove=['pkg-not-in-events', 'pkg-not-in-events']),
|
||||||
|
+ RpmTransactionTasks(to_install=['pkg-to-install']),
|
||||||
|
+ RpmTransactionTasks(to_keep=['keep-me']),
|
||||||
|
+ ]
|
||||||
|
+ mocked_actor = CurrentActorMocked(arch='x86_64', src_ver='7.9', dst_ver='8.8', msgs=msgs)
|
||||||
|
+ monkeypatch.setattr(api, 'current_actor', mocked_actor)
|
||||||
|
+
|
||||||
|
+ monkeypatch.setattr(api, 'produce', produce_mocked())
|
||||||
|
+
|
||||||
|
+ pes_events_scanner.process()
|
||||||
|
+
|
||||||
|
+ assert api.produce.called == 2
|
||||||
|
+
|
||||||
|
+ produced_rpm_transaction_tasks = [
|
||||||
|
+ msg for msg in api.produce.model_instances if isinstance(msg, PESRpmTransactionTasks)
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
+ assert len(produced_rpm_transaction_tasks) == 1
|
||||||
|
+ rpm_transaction_tasks = produced_rpm_transaction_tasks[0]
|
||||||
|
+ # It is important to see 'pkg-not-in-events' in the list - if the user says remove pkg A, we really remove it
|
||||||
|
+ assert sorted(rpm_transaction_tasks.to_remove) == ['moved-in', 'pkg-not-in-events', 'split-in']
|
||||||
|
+ assert sorted(rpm_transaction_tasks.to_install) == ['moved-out', 'pkg-to-install', 'split-out0', 'split-out1']
|
||||||
|
+ assert sorted(rpm_transaction_tasks.to_keep) == ['keep-me']
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 75b8b96f8b7b6705fe52135dab32cc6c8d886db3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Stodulka <pstodulk@redhat.com>
|
||||||
|
Date: Fri, 10 Jan 2025 15:16:05 +0100
|
||||||
|
Subject: [PATCH 47/53] IPU 9 -> 10: obsolete GPG key with SHA1 signature
|
||||||
|
|
||||||
|
When upgrading to RHEL 10, we have analogical problem as we had for
|
||||||
|
IPU 8 -> 9 due to GPG keys with SHA1 signatures. The SHA1 algorithm
|
||||||
|
is considered unsecure since RHEL 9 and all RPMs are required to be
|
||||||
|
signed by keys with SHA2 signatures. The RHEL 9 GPG (auxiliary) key
|
||||||
|
is unfortunately still signed with SHA1 and RHEL 10 tooling refuse
|
||||||
|
to use it for any operations.
|
||||||
|
|
||||||
|
To resolve this apply the same solution as we did in the past:
|
||||||
|
* obsolete original key
|
||||||
|
* install the target RHEL 10 GPG keys during the upgrade
|
||||||
|
|
||||||
|
jira: RHEL-71517
|
||||||
|
---
|
||||||
|
.../system_upgrade/common/files/distro/rhel/gpg-signatures.json | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||||
|
index 8a5471a8..3cc67f82 100644
|
||||||
|
--- a/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||||
|
+++ b/repos/system_upgrade/common/files/distro/rhel/gpg-signatures.json
|
||||||
|
@@ -14,6 +14,6 @@
|
||||||
|
"gpg-pubkey-db42a60e-37ea5438"
|
||||||
|
],
|
||||||
|
"9": ["gpg-pubkey-d4082792-5b32db75"],
|
||||||
|
- "10": []
|
||||||
|
+ "10": ["gpg-pubkey-fd431d51-4ae0493b"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
49
SOURCES/0048-Fix-storage-scanner-parsing-error.patch
Normal file
49
SOURCES/0048-Fix-storage-scanner-parsing-error.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
From d183370047ab5ef139825dfce7a1b4d6f987092f Mon Sep 17 00:00:00 2001
|
||||||
|
From: tomasfratrik <tomasfratrik8@gmail.com>
|
||||||
|
Date: Fri, 28 Jun 2024 14:27:41 +0200
|
||||||
|
Subject: [PATCH 48/53] Fix storage scanner parsing error
|
||||||
|
|
||||||
|
Fix storagescanner actor crash when parsing the output of,
|
||||||
|
e.g., 'pvs -a', which used ':' as a separator and caused errors.
|
||||||
|
The issue occurred because separator ':' is used to split the outputs of executed commands.
|
||||||
|
This commit resolves the problem by changing the separator to '|'.
|
||||||
|
|
||||||
|
Jira: RHEL-34570
|
||||||
|
---
|
||||||
|
.../actors/storagescanner/libraries/storagescanner.py | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py b/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
|
||||||
|
index cad6bd32..cae38731 100644
|
||||||
|
--- a/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
|
||||||
|
+++ b/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
|
||||||
|
@@ -206,7 +206,7 @@ def _get_lsblk_info():
|
||||||
|
@aslist
|
||||||
|
def _get_pvs_info():
|
||||||
|
""" Collect storage info from pvs command """
|
||||||
|
- for entry in _get_cmd_output(['pvs', '--noheadings', '--separator', r':'], ':', 6):
|
||||||
|
+ for entry in _get_cmd_output(['pvs', '--noheadings', '--separator', r'|'], '|', 6):
|
||||||
|
pv, vg, fmt, attr, psize, pfree = entry
|
||||||
|
yield PvsEntry(
|
||||||
|
pv=pv,
|
||||||
|
@@ -220,7 +220,7 @@ def _get_pvs_info():
|
||||||
|
@aslist
|
||||||
|
def _get_vgs_info():
|
||||||
|
""" Collect storage info from vgs command """
|
||||||
|
- for entry in _get_cmd_output(['vgs', '--noheadings', '--separator', r':'], ':', 7):
|
||||||
|
+ for entry in _get_cmd_output(['vgs', '--noheadings', '--separator', r'|'], '|', 7):
|
||||||
|
vg, pv, lv, sn, attr, vsize, vfree = entry
|
||||||
|
yield VgsEntry(
|
||||||
|
vg=vg,
|
||||||
|
@@ -235,7 +235,7 @@ def _get_vgs_info():
|
||||||
|
@aslist
|
||||||
|
def _get_lvdisplay_info():
|
||||||
|
""" Collect storage info from lvdisplay command """
|
||||||
|
- for entry in _get_cmd_output(['lvdisplay', '-C', '--noheadings', '--separator', r':'], ':', 12):
|
||||||
|
+ for entry in _get_cmd_output(['lvdisplay', '-C', '--noheadings', '--separator', r'|'], '|', 12):
|
||||||
|
lv, vg, attr, lsize, pool, origin, data, meta, move, log, cpy_sync, convert = entry
|
||||||
|
yield LvdisplayEntry(
|
||||||
|
lv=lv,
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
From a46f20841ef32b9de23553591dd7ae8ff5150eff Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Bryn M. Reeves" <bmr@redhat.com>
|
||||||
|
Date: Tue, 14 Jan 2025 19:57:37 +0000
|
||||||
|
Subject: [PATCH 49/53] Use --sysinit when calling vgchange from mount_usr.sh
|
||||||
|
|
||||||
|
The mount_usr.sh script runs 'lvm vgchange': if there are logical
|
||||||
|
volumes present that require monitoring (snapshots, thin pools, RAID,
|
||||||
|
etc.) the command will attempt to launch dmeventd.
|
||||||
|
|
||||||
|
Since dmeventd is not installed in the dracut initramfs this produces a
|
||||||
|
warning and causes the lvm command to exit with non-zero exit status
|
||||||
|
even though the volume group has been activated and LV block devices are
|
||||||
|
available.
|
||||||
|
|
||||||
|
This in turn triggers the retry logic in mount_usr.sh: once the retries
|
||||||
|
are exhausted the script carries on and successfully initiates the
|
||||||
|
upgrade process.
|
||||||
|
|
||||||
|
The --sysinit switch is used by the LVM dracut modules for this reason.
|
||||||
|
From vgchange(8):
|
||||||
|
|
||||||
|
--sysinit
|
||||||
|
Indicates that vgchange/lvchange is being invoked from early
|
||||||
|
system initialisation scripts (e.g. rc.sysinit or an initrd),
|
||||||
|
before writable filesystems are available. As such, some
|
||||||
|
functionality needs to be disabled and this option acts as a
|
||||||
|
shortcut which selects an appropriate set of options. Currently,
|
||||||
|
this is equivalent to using --ignorelockingfailure,
|
||||||
|
--ignoremonitoring, --poll n, and setting env var
|
||||||
|
LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES. vgchange/lvchange skip
|
||||||
|
autoactivation, and defer to pvscan autoactivation.
|
||||||
|
|
||||||
|
Testing with this change I no longer see the long delay booting the
|
||||||
|
upgrade initramfs when snapshot LVs are present.
|
||||||
|
---
|
||||||
|
.../files/dracut/85sys-upgrade-redhat/mount_usr.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/85sys-upgrade-redhat/mount_usr.sh b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/85sys-upgrade-redhat/mount_usr.sh
|
||||||
|
index 84f4857d..9366ac13 100755
|
||||||
|
--- a/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/85sys-upgrade-redhat/mount_usr.sh
|
||||||
|
+++ b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/85sys-upgrade-redhat/mount_usr.sh
|
||||||
|
@@ -107,7 +107,7 @@ try_to_mount_usr() {
|
||||||
|
|
||||||
|
# In case we have the LVM command available try make it activate all partitions
|
||||||
|
if command -v lvm 2>/dev/null 1>/dev/null; then
|
||||||
|
- lvm vgchange -a y || {
|
||||||
|
+ lvm vgchange --sysinit -a y || {
|
||||||
|
warn "Detected problem when tried to activate LVM VG."
|
||||||
|
if [ "$_last_attempt" != "true" ]; then
|
||||||
|
# this is not last execution, retry
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,67 @@
|
|||||||
|
From 246405173d8ff633e180f0c5f3d4bd8117ea852d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Stodulka <pstodulk@redhat.com>
|
||||||
|
Date: Fri, 10 Jan 2025 22:46:02 +0100
|
||||||
|
Subject: [PATCH 50/53] redhatsignedrpmcheck: Add remediation hint and URL
|
||||||
|
|
||||||
|
Users do not have an idea what they should do about the third party
|
||||||
|
packages - and quite often they do not understand the report itself.
|
||||||
|
Adding the remediation hint with a link to related KB solution to
|
||||||
|
help them to understand what they can do about this.
|
||||||
|
|
||||||
|
Note the actor needs significant changes to cover also other non-RHEL
|
||||||
|
distributions. I decided to keep the change simple and resolve that
|
||||||
|
in a follow up when we enable upgrades on other distributions as well.
|
||||||
|
|
||||||
|
jira: RHEL-44596
|
||||||
|
---
|
||||||
|
.../libraries/redhatsignedrpmcheck.py | 23 ++++++++++++++++---
|
||||||
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/common/actors/redhatsignedrpmcheck/libraries/redhatsignedrpmcheck.py b/repos/system_upgrade/common/actors/redhatsignedrpmcheck/libraries/redhatsignedrpmcheck.py
|
||||||
|
index efdb8f40..14ade534 100644
|
||||||
|
--- a/repos/system_upgrade/common/actors/redhatsignedrpmcheck/libraries/redhatsignedrpmcheck.py
|
||||||
|
+++ b/repos/system_upgrade/common/actors/redhatsignedrpmcheck/libraries/redhatsignedrpmcheck.py
|
||||||
|
@@ -3,8 +3,6 @@ from leapp.libraries.stdlib import api
|
||||||
|
from leapp.libraries.stdlib.config import is_verbose
|
||||||
|
from leapp.models import InstalledUnsignedRPM
|
||||||
|
|
||||||
|
-COMMON_REPORT_TAGS = [reporting.Groups.SANITY]
|
||||||
|
-
|
||||||
|
|
||||||
|
def generate_report(packages):
|
||||||
|
""" Generate a report if there are unsigned packages installed on the system """
|
||||||
|
@@ -16,11 +14,30 @@ def generate_report(packages):
|
||||||
|
' and may be removed during the upgrade process in case Red Hat-signed'
|
||||||
|
' packages to be removed during the upgrade depend on them:\n{}'
|
||||||
|
.format(unsigned_packages_new_line))
|
||||||
|
+ hint = (
|
||||||
|
+ 'The most simple solution that does not require additional knowledge'
|
||||||
|
+ ' about the upgrade process'
|
||||||
|
+ ' is the uninstallation of such packages before the upgrade and'
|
||||||
|
+ ' installing these (or their newer versions compatible with the target'
|
||||||
|
+ ' system) back after the upgrade. Also you can just try to upgrade the'
|
||||||
|
+ ' system on a testing machine (or after the full system backup) to see'
|
||||||
|
+ ' the result.\n'
|
||||||
|
+ 'However, it is common use case to migrate or upgrade installed third'
|
||||||
|
+ ' party packages together with the system during the in-place upgrade'
|
||||||
|
+ ' process. To examine how to customize the process to deal with such'
|
||||||
|
+ ' packages, follow the documentation in the attached link'
|
||||||
|
+ ' for more details.'
|
||||||
|
+ )
|
||||||
|
reporting.create_report([
|
||||||
|
reporting.Title(title),
|
||||||
|
reporting.Summary(summary),
|
||||||
|
reporting.Severity(reporting.Severity.HIGH),
|
||||||
|
- reporting.Groups(COMMON_REPORT_TAGS)
|
||||||
|
+ reporting.Groups([reporting.Groups.SANITY]),
|
||||||
|
+ reporting.Remediation(hint=hint),
|
||||||
|
+ reporting.ExternalLink(
|
||||||
|
+ url='https://red.ht/customize-rhel-upgrade-actors',
|
||||||
|
+ title='Handling the migration of your custom and third-party applications'
|
||||||
|
+ )
|
||||||
|
])
|
||||||
|
|
||||||
|
if is_verbose():
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
28
SOURCES/0051-Update-postgresqlcheck.py.patch
Normal file
28
SOURCES/0051-Update-postgresqlcheck.py.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From fb4131a6c05e26060ab8b49a39a64047d9f2b691 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Filip=20Janu=C5=A1?= <fjanus@redhat.com>
|
||||||
|
Date: Thu, 21 Nov 2024 11:30:56 +0100
|
||||||
|
Subject: [PATCH 51/53] Update postgresqlcheck.py
|
||||||
|
|
||||||
|
Improve the report to clarify the upgrade path for already upgraded PostgreSQL
|
||||||
|
---
|
||||||
|
.../actors/postgresqlcheck/libraries/postgresqlcheck.py | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py b/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
index 42519aaf..68997ef4 100644
|
||||||
|
--- a/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
+++ b/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
@@ -7,8 +7,9 @@ from leapp.models import DistributionSignedRPM
|
||||||
|
report_server_inst_summary = (
|
||||||
|
'PostgreSQL server component will be upgraded. Since RHEL-9 includes'
|
||||||
|
' PostgreSQL server 13 by default, which is incompatible with 9.6, 10 and 12'
|
||||||
|
- ' included in RHEL-8, it is necessary to proceed with additional steps'
|
||||||
|
+ ' included in RHEL-8, in those cases, it is necessary to proceed with additional steps'
|
||||||
|
' for the complete upgrade of the PostgreSQL data.'
|
||||||
|
+ 'If the database has already been upgraded, then no further actions are required.'
|
||||||
|
)
|
||||||
|
|
||||||
|
report_server_inst_hint = (
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
From 724e0527f394f06f1bcbef42d6b3384d29b672f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Filip=20Janu=C5=A1?= <fjanus@redhat.com>
|
||||||
|
Date: Thu, 21 Nov 2024 11:39:08 +0100
|
||||||
|
Subject: [PATCH 52/53] Update
|
||||||
|
repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Co-authored-by: Petr Stodůlka <xstodu05@gmail.com>
|
||||||
|
---
|
||||||
|
.../actors/postgresqlcheck/libraries/postgresqlcheck.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py b/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
index 68997ef4..eefe583b 100644
|
||||||
|
--- a/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
+++ b/repos/system_upgrade/el8toel9/actors/postgresqlcheck/libraries/postgresqlcheck.py
|
||||||
|
@@ -9,7 +9,7 @@ report_server_inst_summary = (
|
||||||
|
' PostgreSQL server 13 by default, which is incompatible with 9.6, 10 and 12'
|
||||||
|
' included in RHEL-8, in those cases, it is necessary to proceed with additional steps'
|
||||||
|
' for the complete upgrade of the PostgreSQL data.'
|
||||||
|
- 'If the database has already been upgraded, then no further actions are required.'
|
||||||
|
+ 'If the database has already been upgraded, meaning the system is already using PostgreSQL 13, then no further actions are required.'
|
||||||
|
)
|
||||||
|
|
||||||
|
report_server_inst_hint = (
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From bd6e7597c8a125479345c07f2901ecc505218b37 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Beniamino Galvani <bgalvani@redhat.com>
|
||||||
|
Date: Wed, 15 Jan 2025 17:57:20 +0100
|
||||||
|
Subject: [PATCH 53/53] Fix remediation message in the networkdeprecations
|
||||||
|
actor
|
||||||
|
|
||||||
|
The message should suggest to remove "dhclient", not "internal".
|
||||||
|
---
|
||||||
|
.../el9toel10/actors/networkdeprecations/actor.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/repos/system_upgrade/el9toel10/actors/networkdeprecations/actor.py b/repos/system_upgrade/el9toel10/actors/networkdeprecations/actor.py
|
||||||
|
index 94868476..d1d58511 100644
|
||||||
|
--- a/repos/system_upgrade/el9toel10/actors/networkdeprecations/actor.py
|
||||||
|
+++ b/repos/system_upgrade/el9toel10/actors/networkdeprecations/actor.py
|
||||||
|
@@ -25,7 +25,7 @@ class CheckNetworkDeprecations9to10(Actor):
|
||||||
|
summary = ('NetworkManager is configured to use the "dhclient" DHCP module.'
|
||||||
|
' In Red Hat Enterprise Linux 10, this setting will be ignored'
|
||||||
|
' along with any dhcp-client specific configuration.')
|
||||||
|
- remediation = ('Remove "dhcp=internal" line from "[main]" section from all'
|
||||||
|
+ remediation = ('Remove "dhcp=dhclient" line from "[main]" section from all'
|
||||||
|
' configuration files in "/etc/NetworkManager". Review'
|
||||||
|
' configuration in "/etc/dhcp", which will be ignored.')
|
||||||
|
reporting.create_report([
|
||||||
|
--
|
||||||
|
2.47.1
|
||||||
|
|
@ -52,7 +52,7 @@ py2_byte_compile "%1" "%2"}
|
|||||||
|
|
||||||
Name: leapp-repository
|
Name: leapp-repository
|
||||||
Version: 0.21.0
|
Version: 0.21.0
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: Repositories for leapp
|
Summary: Repositories for leapp
|
||||||
|
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
@ -105,7 +105,19 @@ Patch0037: 0037-testutils-add-support-for-configs.patch
|
|||||||
Patch0038: 0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch
|
Patch0038: 0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch
|
||||||
Patch0039: 0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
|
Patch0039: 0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
|
||||||
Patch0040: 0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch
|
Patch0040: 0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch
|
||||||
Patch0041: 0041-feat-net-naming-scheme-enable-by-default.patch
|
Patch0041: 0041-chore-deps-update-dependency-ubuntu-to-v24.patch
|
||||||
|
Patch0042: 0042-feat-net-naming-scheme-enable-by-default.patch
|
||||||
|
Patch0043: 0043-Fix-unreadable-output-in-upgrade-log.patch
|
||||||
|
Patch0044: 0044-Remove-unmaintained-.gitlab-ci.yml-config-file.patch
|
||||||
|
Patch0045: 0045-fix-pes_events_scanner-ensure-output-contains-no-dup.patch
|
||||||
|
Patch0046: 0046-fix-pes_event_scanner-respect-user-s-trasaction-conf.patch
|
||||||
|
Patch0047: 0047-IPU-9-10-obsolete-GPG-key-with-SHA1-signature.patch
|
||||||
|
Patch0048: 0048-Fix-storage-scanner-parsing-error.patch
|
||||||
|
Patch0049: 0049-Use-sysinit-when-calling-vgchange-from-mount_usr.sh.patch
|
||||||
|
Patch0050: 0050-redhatsignedrpmcheck-Add-remediation-hint-and-URL.patch
|
||||||
|
Patch0051: 0051-Update-postgresqlcheck.py.patch
|
||||||
|
Patch0052: 0052-Update-repos-system_upgrade-el8toel9-actors-postgres.patch
|
||||||
|
Patch0053: 0053-Fix-remediation-message-in-the-networkdeprecations-a.patch
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -315,6 +327,18 @@ Requires: libdb-utils
|
|||||||
%patch -P 0039 -p1
|
%patch -P 0039 -p1
|
||||||
%patch -P 0040 -p1
|
%patch -P 0040 -p1
|
||||||
%patch -P 0041 -p1
|
%patch -P 0041 -p1
|
||||||
|
%patch -P 0042 -p1
|
||||||
|
%patch -P 0043 -p1
|
||||||
|
%patch -P 0044 -p1
|
||||||
|
%patch -P 0045 -p1
|
||||||
|
%patch -P 0046 -p1
|
||||||
|
%patch -P 0047 -p1
|
||||||
|
%patch -P 0048 -p1
|
||||||
|
%patch -P 0049 -p1
|
||||||
|
%patch -P 0050 -p1
|
||||||
|
%patch -P 0051 -p1
|
||||||
|
%patch -P 0052 -p1
|
||||||
|
%patch -P 0053 -p1
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -396,6 +420,14 @@ done;
|
|||||||
# no files here
|
# no files here
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 17 2025 Petr Stodulka <pstodulk@redhat.com> - 0.21.0-5
|
||||||
|
- Fix pes events scanner crashing when there are duplicate packages in the received instructions
|
||||||
|
- Fix pes events scanner not respecting user’s transaction configuration
|
||||||
|
- Fix storage scanner crashing when command outputs contain colon character
|
||||||
|
- Activate LVM VGs with `--sysinit` option to correct the use in the upgrade initramfs
|
||||||
|
- Minor improvements in preupgrade reports
|
||||||
|
- Resolves: RHEL-67621, RHEL-34570, RHEL-44596, RHEL-50076
|
||||||
|
|
||||||
* Tue Nov 19 2024 Matej Matuska <mmatuska@redhat.com> - 0.21.0-4
|
* Tue Nov 19 2024 Matej Matuska <mmatuska@redhat.com> - 0.21.0-4
|
||||||
- Use net.naming-scheme by default
|
- Use net.naming-scheme by default
|
||||||
- Resolves: RHEL-23473
|
- Resolves: RHEL-23473
|
||||||
|
Loading…
Reference in New Issue
Block a user