From 0161860c8f78bb47d31111af9d6e3f59d45098c8 Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Fri, 1 Nov 2019 17:41:03 +0100 Subject: [PATCH] Temporary UTF8 hack for fedora31 --- src/mio/rpmDB.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py index 38a0495..d17b5b6 100755 --- a/src/mio/rpmDB.py +++ b/src/mio/rpmDB.py @@ -35,13 +35,22 @@ class VersionDB: def __init__(self): self.rpm = {} try: + def toUtf8(s): + # Hack, need to investigate python2/python3 on all + # supported versions, ... + if not s: + return '' + try: + return s.decode('utf-8') + except AttributeError: + return s read_ts = initReadOnlyTransaction() for e in read_ts.dbMatch(): (name, arch, version, release) = ( - e[rpm.RPMTAG_NAME].decode('utf-8'), - (e[rpm.RPMTAG_ARCH] or b'').decode('utf-8'), - e[rpm.RPMTAG_VERSION].decode('utf-8'), - e[rpm.RPMTAG_RELEASE].decode('utf-8')) + toUtf8(e[rpm.RPMTAG_NAME]), + toUtf8(e[rpm.RPMTAG_ARCH]), + toUtf8(e[rpm.RPMTAG_VERSION]), + toUtf8(e[rpm.RPMTAG_RELEASE])) theRPM = RPM(name, arch, version, release) def add_rpm(name, rpm): if not name in self.rpm: @@ -59,7 +68,7 @@ class VersionDB: pass add_rpm(name, theRPM) for p in e['provides']: - add_alias(name, p.decode('utf8'), theRPM) + add_alias(name, toUtf8(p), theRPM) pass # for o in e['obsoletes']: # add_alias(name, o.decode('utf8'), theRPM) -- GitLab