diff --git a/_servicedata b/_servicedata index ef3e7fc..49f34a3 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://github.com/openSUSE/obs-service-replace_using_package_version.git - 6dcaef0f89b089ac6f83200ce25c0d907e45111a \ No newline at end of file + eb96e8582f54b9e2c5c5259e379ced1e79cd642d \ No newline at end of file diff --git a/obs-service-replace_using_package_version.changes b/obs-service-replace_using_package_version.changes index 12cd965..3cbc0d2 100644 --- a/obs-service-replace_using_package_version.changes +++ b/obs-service-replace_using_package_version.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Apr 11 10:19:11 UTC 2023 - containers@suse.com + +- Update to version 1681202780.6d8bb3c: + * Run unit & install test only for the system python + * Add python 3.11 tox environment + * Switch to using rpm.labelCompare instead of parse_version + * Fix copyright strings + * Fix test_find_package_version + * Bump mock from 4.0.3 to 5.0.1 + * Bump pytest-xdist from 2.5.0 to 3.0.2 + * Bump tox from 3.25.1 to 3.28.0 + * Bump Gr1N/setup-poetry from 7 to 8 + * Bump pytest-container from 0.0.2 to 0.1.1 + * Bump actions/setup-python from 4.3.0 to 4.5.0 + ------------------------------------------------------------------- Thu Mar 30 07:25:53 UTC 2023 - containers@suse.com diff --git a/obs-service-replace_using_package_version.spec b/obs-service-replace_using_package_version.spec index 051f4ab..233d64c 100644 --- a/obs-service-replace_using_package_version.spec +++ b/obs-service-replace_using_package_version.spec @@ -30,7 +30,7 @@ Source1: %{service}.service Source2: LICENSE BuildRequires: sed Requires: python3-docopt -Requires: python3-setuptools +Requires: python3-rpm BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch diff --git a/replace_using_package_version.py b/replace_using_package_version.py index e07da84..c93280a 100644 --- a/replace_using_package_version.py +++ b/replace_using_package_version.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (c) 2018 SUSE Linux GmbH. All rights reserved. +# SPDX-FileCopyrightText: (c) 2023 SUSE LLC # # This file is part of obs-service-replace_using_package_version. # @@ -49,7 +49,7 @@ import docopt import re import os import subprocess -from pkg_resources import parse_version +from rpm import labelCompare from typing import List version_regex = { @@ -185,7 +185,7 @@ def find_package_version_in_local_repos(repo_path, package): rpm_file = os.path.join(root, pkg) if get_pkg_name_from_rpm(rpm_file) == package: rpm_ver = get_pkg_version_from_rpm(rpm_file) - if version is None or rpm_ver >= version: + if version is None or labelCompare(rpm_ver, version) >= 0: version = rpm_ver return version @@ -195,7 +195,7 @@ def find_package_version_in_obsinfo(path, package): for f in os.listdir(path): if f.endswith('obsinfo') and package in f: obsinfo_ver = get_pkg_version_from_obsinfo(f) - if version is None or obsinfo_ver >= version: + if version is None or labelCompare(obsinfo_ver, version) >= 0: version = obsinfo_ver return version @@ -212,35 +212,35 @@ def run_command(command: List[str]) -> str: return subprocess.check_output(command).decode() -def get_pkg_version_from_obsinfo(obsinfo_file): +def get_pkg_version_from_obsinfo(obsinfo_file: str) -> Optional[str]: regex = re.compile(obsinfo_regex) with open(obsinfo_file) as f: for line in f: match = regex.match(line) if match: - return parse_version(match[1]) + return match[1] return None -def get_pkg_name_from_rpm(rpm_file): +def get_pkg_name_from_rpm(rpm_file: str) -> str: command = [ 'rpm', '-qp', '--queryformat', '%{NAME}', rpm_file ] return run_command(command) -def get_pkg_version_from_rpm(rpm_file): +def get_pkg_version_from_rpm(rpm_file: str) -> str: command = [ 'rpm', '-qp', '--queryformat', '%{VERSION}', rpm_file ] - return parse_version(run_command(command)) + return run_command(command) -def get_pkg_version(package): +def get_pkg_version(package: str) -> str: command = [ 'rpm', '-q', '--queryformat', '%{VERSION}', package ] - return parse_version(run_command(command)) + return run_command(command) def init(__name__):