Add x86_64_v2 to _BASEARCH_MAP

Add link to AlmaLinux bugtracker

automatic: Fix detecting releasever_minor
This commit is contained in:
Eduard Abdullin 2025-08-03 20:44:35 +00:00 committed by root
parent b046dd6d35
commit 9f94cf349e
2 changed files with 86 additions and 2 deletions

82
2260.patch Normal file
View File

@ -0,0 +1,82 @@
From a93e9843cf224aecf7adcbf1b7eb9efd9014ec28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 28 Jul 2025 17:25:09 +0200
Subject: [PATCH] automatic: Fix detecting releasever_minor
When running dnf-automatic in RHEL 10.0 where releasever_minor should
default to "0", releasever_minor variable was incorrectly detected as
undefined. That led to expanding a metalink for an EPEL repository to
a wrong URL.
The cause was a bad logic in updating the release, releasever_major,
and releasever_minor triplet in dnf.cli.cli.Cli._read_conf_file():
Setting release invalidates releasever_major and releasever_minor. At
the same time for backward compatibilty detected release only contains
the major number.
This bug did not manifest in "dnf upgrade" command because "dnf"
program does not explicitly construct dnf.Base() before calling
_read_conf_file(). That is dnf-automtic first detected releasever=10
and releasever_minor=0 when calling _setup_default_conf() via
dnf.Base(). But then _read_conf_file() called by dnf-automatic set
releasever again to 10, that rewrote releasever_minor to None and
then _read_conf_file() set releasever_minor to releasever_minor, i.e
to None.
This patch does not change the code flow to minimize regressions.
Instead it saves the original releasever_minor value to be able to
default to it again.
Resolve: #2259
---
dnf/cli/cli.py | 8 ++++++--
tests/test_config.py | 12 ++++++++++++
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py
index 7aa7b04410..e0d88cac38 100644
--- a/dnf/cli/cli.py
+++ b/dnf/cli/cli.py
@@ -1018,9 +1018,13 @@ def or_else(*args):
if arg is not None:
return arg
return None
+ # Setting conf.releasever rewrites conf.releasever_major and
+ # conf.releasever_minor. Copy them for later use.
+ old_releasever_major = conf.releasever_major
+ old_releasever_minor = conf.releasever_minor
conf.releasever = or_else(releasever, conf.releasever)
- conf.releasever_major = or_else(releasever_major, det_major, conf.releasever_major)
- conf.releasever_minor = or_else(releasever_minor, det_minor, conf.releasever_minor)
+ conf.releasever_major = or_else(releasever_major, det_major, old_releasever_major)
+ conf.releasever_minor = or_else(releasever_minor, det_minor, old_releasever_minor)
if conf.releasever is None:
logger.warning(_("Unable to detect release version (use '--releasever' to specify "
diff --git a/tests/test_config.py b/tests/test_config.py
index 69ba988c41..9445ea29be 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -21,6 +21,7 @@
import argparse
+import dnf
import dnf.conf
import dnf.conf.read
import dnf.exceptions
@@ -164,3 +165,14 @@ def test_releasever_major_minor(self):
self.assertEqual(conf.releasever, '1.2')
self.assertEqual(conf.releasever_major, '3')
self.assertEqual(conf.releasever_minor, '4')
+
+ def test__read_conf_file_preserves_autodetected_releasever_major_minor(self):
+ base = dnf.Base()
+ base.conf.releasever = '1' # Do not set to '1.2', autodetection pretends '1'
+ base.conf.releasever_major = '1'
+ base.conf.releasever_minor = '2'
+ cli = dnf.cli.Cli(base)
+ cli._read_conf_file()
+ self.assertEqual(base.conf.releasever, '1')
+ self.assertEqual(base.conf.releasever_major, '1')
+ self.assertEqual(base.conf.releasever_minor, '2')

View File

@ -72,7 +72,7 @@ It supports RPMs, modules and comps groups & environments.
Name: dnf
Version: 4.20.0
Release: 12%{?dist}.alma.1
Release: 12%{?dist}.alma.2
Summary: %{pkg_summary}
# For a breakdown of the licensing, see PACKAGE-LICENSING
License: GPL-2.0-or-later AND GPL-1.0-only
@ -105,6 +105,7 @@ Patch23: 0023-Document-how-releasever-releasever_-major-minor-affe.patch
# AlmaLinux Patch
Patch1001: 0001-Add-link-to-AlmaLinux-bugtracker.patch
Patch1002: 0001-Add-x86_64_v2-to-_BASEARCH_MAP.patch
Patch1003: 2260.patch
BuildArch: noarch
BuildRequires: cmake
@ -460,9 +461,10 @@ popd
# bootc subpackage does not include any files
%changelog
* Wed May 14 2025 Eduard Abdullin <eabdullin@almalinux.org> - 4.20.0-12.alma.1
* Sun Aug 03 2025 Eduard Abdullin <eabdullin@almalinux.org> - 4.20.0-12.alma.2
- Add x86_64_v2 to _BASEARCH_MAP
- Add link to AlmaLinux bugtracker
- automatic: Fix detecting releasever_minor
* Fri Feb 07 2025 Carl George <carl@redhat.com> - 4.20.0-12
- Override releasever_{major,minor} with system-release provides (RHEL-68034)