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__):