leapp-repository/SOURCES/0030-fix-lib-version-broken-_validate_version-on-RHEL-10.patch
eabdullin b1bd6e77a6 Import from CS git
(cherry picked from commit 5bdc5cf293)
2025-05-15 11:55:21 +03:00

41 lines
1.6 KiB
Diff

From 70557869df83660a1a0c31808cf9c97a2704aa9a Mon Sep 17 00:00:00 2001
From: Michal Hecko <mhecko@redhat.com>
Date: Mon, 21 Apr 2025 20:40:11 +0200
Subject: [PATCH 30/37] fix(lib/version): broken _validate_version on RHEL 10
The validate version used to split a given version on `.` and then
check that every fragment is a digit, which is false for RHEL 10
since `10` is not a digit.
---
repos/system_upgrade/common/libraries/config/version.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py
index 24bb7729..2e837a61 100644
--- a/repos/system_upgrade/common/libraries/config/version.py
+++ b/repos/system_upgrade/common/libraries/config/version.py
@@ -1,4 +1,5 @@
import operator
+import re
import six
@@ -141,10 +142,10 @@ def _version_to_tuple(version):
def _validate_versions(versions):
- """Raise ``TypeError`` if provided versions are not strings in the form ``<integer>.<integer>``."""
- for ver in versions:
- split = ver.split('.')
- if not len(split) == 2 or not all(x.isdigit() for x in split):
+ """Raise ``ValueError`` if provided versions are not strings in the form ``<integer>.<integer>``."""
+ version_format_regex = re.compile(r'^([1-9]\d*)\.(\d+)$')
+ for version in versions:
+ if not re.match(version_format_regex, version):
raise ValueError("Versions have to be in the form of '<integer>.<integer>' "
"but provided was '{}'".format(versions))
--
2.49.0