1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-08-21 22:18:52 +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 re
import struct import struct
from . import packagequery from . import packagequery
from osc.util.helper import decode_it
def cmp(a, b):
return (a > b) - (a < b)
class RpmError(packagequery.PackageError): class RpmError(packagequery.PackageError):
pass pass
@@ -184,14 +188,14 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
continue continue
# RPMSENSE_SENSEMASK = 15 (see rpmlib.h) but ignore RPMSENSE_SERIAL (= 1 << 0) therefore use 14 # RPMSENSE_SENSEMASK = 15 (see rpmlib.h) but ignore RPMSENSE_SERIAL (= 1 << 0) therefore use 14
if flags & 14: if flags & 14:
name += ' ' name += b' '
if flags & self.GREATER: if flags & self.GREATER:
name += '>' name += b'>'
elif flags & self.LESS: elif flags & self.LESS:
name += '<' name += b'<'
if flags & self.EQUAL: if flags & self.EQUAL:
name += '=' name += b'='
name += ' %s' % ver name += b' %s' % ver
res.append(name) res.append(name)
return res return res
@@ -288,7 +292,7 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
arch = 'src' arch = 'src'
else: else:
arch = self.arch() 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 @staticmethod
def query(filename): def query(filename):
@@ -318,6 +322,8 @@ class RpmQuery(packagequery.PackageQuery, packagequery.PackageQueryResult):
if ver1 == ver2: if ver1 == ver2:
return 0 return 0
res = 0 res = 0
ver1 = decode_it(ver1)
ver2 = decode_it(ver2)
while res == 0: while res == 0:
# remove all leading non alphanumeric or tilde chars # remove all leading non alphanumeric or tilde chars
ver1 = re.sub('^[^a-zA-Z0-9~]*', '', ver1) ver1 = re.sub('^[^a-zA-Z0-9~]*', '', ver1)