Compare commits
No commits in common. "devel" and "devel" have entirely different histories.
@ -1,4 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://github.com/openSUSE/obs-service-replace_using_package_version.git</param>
|
||||
<param name="changesrevision">6c2bf3a805028b1555eac71ac545d9dddfdfc857</param></service></servicedata>
|
||||
<param name="changesrevision">72fe58b8a7d29342985f4304dcf1c0c4d0b1c18c</param></service></servicedata>
|
@ -1,22 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 28 14:47:12 UTC 2024 - containers@suse.com
|
||||
|
||||
- Update to version 1730126702.6c2bf3a:
|
||||
* Bump version: 0.0.10 → 0.0.11
|
||||
* Fix shebang of service to /usr/bin/python3
|
||||
* Bump version: 0.0.9 → 0.0.10
|
||||
* Unrestrict dev dependencies
|
||||
* Add support for replacing package versions by capability
|
||||
* Bump actions/setup-python from 5.2.0 to 5.3.0
|
||||
* Bump actions/setup-python from 5.1.1 to 5.2.0
|
||||
* Bump actions/setup-python from 5.1.0 to 5.1.1
|
||||
* Bump actions/setup-python from 5.0.0 to 5.1.0
|
||||
* Bump Gr1N/setup-poetry from 8 to 9
|
||||
* Bump actions/cache from 3 to 4
|
||||
* Whitespace cleanup
|
||||
* Add instructions to update new releases in OBS
|
||||
* How to cut a new release
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 14 18:33:15 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
%define service replace_using_package_version
|
||||
|
||||
Name: obs-service-%{service}
|
||||
Version: 0.0.11
|
||||
Version: 0.0.9
|
||||
Release: 0
|
||||
Summary: An OBS service: Replaces a regex with the version value of a package
|
||||
License: GPL-3.0-or-later
|
||||
@ -29,6 +29,8 @@ Source0: %{service}.py
|
||||
Source1: %{service}.service
|
||||
Source2: LICENSE
|
||||
BuildRequires: sed
|
||||
# for the __python3 macro
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python3-docopt
|
||||
Requires: python3-rpm
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -45,12 +47,15 @@ cp %{S:1} .
|
||||
cp %{S:2} .
|
||||
|
||||
%build
|
||||
# intentionally blank - nothing to do
|
||||
sed -i "s|#!/usr/bin/env python3|#!/usr/bin/python3|g" %{service}.py
|
||||
|
||||
%install
|
||||
|
||||
install -D -m 755 %{service}.py %{buildroot}%{_prefix}/lib/obs/service/%{service}
|
||||
install -D -m 644 %{service}.service %{buildroot}%{_prefix}/lib/obs/service/%{service}.service
|
||||
# Doing %%python3_fix_shebang_path old fashioned way for the backward compatibility
|
||||
sed -i "1s@#\\!.*python\S*@#\\!$(realpath %__python3)@" \
|
||||
%{buildroot}%{_prefix}/lib/obs/service/%{service}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python3
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# SPDX-FileCopyrightText: (c) 2023 SUSE LLC
|
||||
@ -170,9 +170,6 @@ def find_package_version(package, rpm_dir):
|
||||
if version is None:
|
||||
version = find_package_version_in_obsinfo('.', package)
|
||||
|
||||
if version is None:
|
||||
version = find_package_version_by_capability(rpm_dir, package)
|
||||
|
||||
if version is None:
|
||||
raise Exception(f'Package {package} version not found')
|
||||
return str(version)
|
||||
@ -193,26 +190,6 @@ def find_package_version_in_local_repos(repo_path, package):
|
||||
return version
|
||||
|
||||
|
||||
def find_package_version_by_capability(
|
||||
repo_path: str, capability: str
|
||||
) -> Optional[str]:
|
||||
"""Find the highest rpm package version of all packages in `repo_path` that
|
||||
have a rpm provides containing the string `capability`.
|
||||
|
||||
"""
|
||||
version = None
|
||||
for root, _, files in os.walk(repo_path):
|
||||
packages = [f for f in files if f.endswith('rpm')]
|
||||
for pkg in packages:
|
||||
rpm_file = os.path.join(root, pkg)
|
||||
for provide in get_pkg_provides_from_rpm(rpm_file):
|
||||
if capability in provide:
|
||||
rpm_ver = get_pkg_version_from_rpm(rpm_file)
|
||||
if version is None or labelCompare(rpm_ver, version) >= 0:
|
||||
version = rpm_ver
|
||||
return version
|
||||
|
||||
|
||||
def find_package_version_in_obsinfo(path, package):
|
||||
version = None
|
||||
for f in os.listdir(path):
|
||||
@ -259,13 +236,6 @@ def get_pkg_version_from_rpm(rpm_file: str) -> str:
|
||||
return run_command(command)
|
||||
|
||||
|
||||
def get_pkg_provides_from_rpm(rpm_file: str) -> List[str]:
|
||||
res = subprocess.run(['rpm', '-qP', rpm_file], stdout=subprocess.PIPE)
|
||||
if res.returncode == 0:
|
||||
return res.stdout.decode().strip().splitlines()
|
||||
return []
|
||||
|
||||
|
||||
def get_pkg_version(package: str) -> str:
|
||||
command = [
|
||||
'rpm', '-q', '--queryformat', '%{VERSION}', package
|
||||
|
Loading…
x
Reference in New Issue
Block a user