From 70557869df83660a1a0c31808cf9c97a2704aa9a Mon Sep 17 00:00:00 2001 From: Michal Hecko 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 ``.``.""" - 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 ``.``.""" + 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 '.' " "but provided was '{}'".format(versions)) -- 2.49.0