1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-08-06 15:43:39 +02:00

Merge pull request #483 from lethliel/python3_rpmquery_module

[python3] rpmquery.py now python3 ready
This commit is contained in:
Marco Strigl
2019-04-15 15:02:59 +02:00
committed by GitHub

View File

@@ -5,6 +5,10 @@ import os
import re
import struct
from . import packagequery
from osc.util.helper import decode_it
def cmp(a, b):
return (a > b) - (a < b)
class RpmError(packagequery.PackageError):
pass
@@ -184,14 +188,14 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
continue
# RPMSENSE_SENSEMASK = 15 (see rpmlib.h) but ignore RPMSENSE_SERIAL (= 1 << 0) therefore use 14
if flags & 14:
name += ' '
name += b' '
if flags & self.GREATER:
name += '>'
name += b'>'
elif flags & self.LESS:
name += '<'
name += b'<'
if flags & self.EQUAL:
name += '='
name += ' %s' % ver
name += b'='
name += b' %s' % ver
res.append(name)
return res
@@ -288,7 +292,7 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
arch = 'src'
else:
arch = self.arch()
return RpmQuery.filename(self.name(), None, self.version(), self.release(), arch)
return RpmQuery.filename(decode_it(self.name()), None, decode_it(self.version()), decode_it(self.release()), decode_it(arch))
@staticmethod
def query(filename):
@@ -318,6 +322,8 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
if ver1 == ver2:
return 0
res = 0
ver1 = decode_it(ver1)
ver2 = decode_it(ver2)
while res == 0:
# remove all leading non alphanumeric or tilde chars
ver1 = re.sub('^[^a-zA-Z0-9~]*', '', ver1)