From ab5e6f86de9e9e4f45ef803fc06378bf60010384 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Tue, 3 Mar 2026 12:22:58 +0100 Subject: [PATCH] Use deprecated LegacyVersion (_version) only if necessary LegacyVersion has been removed from Packaging in 2022. If the call to `parse` function returns LegacyVersion, access to version._version cannot emit DeprecationWarning. Fixes: rhbz#2442867 --- python-rpm-generators.spec | 5 ++++- pythondistdeps.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/python-rpm-generators.spec b/python-rpm-generators.spec index 7e362c8..170f350 100644 --- a/python-rpm-generators.spec +++ b/python-rpm-generators.spec @@ -1,7 +1,7 @@ Name: python-rpm-generators Summary: Dependency generators for Python RPMs Version: 14 -Release: 14%{?dist} +Release: 15%{?dist} Url: https://src.fedoraproject.org/rpms/python-rpm-generators @@ -56,6 +56,9 @@ install -Dpm0755 -t %{buildroot}%{_rpmconfigdir} *.py %{_rpmconfigdir}/pythonbundles.py %changelog +* Wed Mar 04 2026 Lumír Balhar - 14-15 +- pythondistdeps: Use deprecated LegacyVersion (_version) only if necessary + * Sat Jan 17 2026 Fedora Release Engineering - 14-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild diff --git a/pythondistdeps.py b/pythondistdeps.py index b43ed39..d6f5f46 100755 --- a/pythondistdeps.py +++ b/pythondistdeps.py @@ -133,14 +133,14 @@ class Distribution(PathDistribution): class RpmVersion(): def __init__(self, version_id): version = parse(version_id) - if isinstance(version._version, str): + if version.__class__.__name__ == 'LegacyVersion': self.version = version._version else: - self.epoch = version._version.epoch - self.version = list(version._version.release) - self.pre = version._version.pre - self.dev = version._version.dev - self.post = version._version.post + self.epoch = version.epoch + self.version = list(version.release) + self.pre = version.pre + self.dev = version.dev + self.post = version.post # version.local is ignored as it is not expected to appear # in public releases # https://www.python.org/dev/peps/pep-0440/#local-version-identifiers @@ -171,9 +171,9 @@ class RpmVersion(): if self.pre: rpm_suffix = '~{}'.format(''.join(str(x) for x in self.pre)) elif self.dev: - rpm_suffix = '~~{}'.format(''.join(str(x) for x in self.dev)) + rpm_suffix = '~~dev{}'.format(self.dev) elif self.post: - rpm_suffix = '^post{}'.format(self.post[1]) + rpm_suffix = '^post{}'.format(self.post) else: rpm_suffix = '' return '{}{}{}'.format(rpm_epoch, rpm_version, rpm_suffix)