From f9ce61418706583c40a2804220a50c00e102ed29 Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Mon, 28 Oct 2019 09:59:02 +0100 Subject: [PATCH] Consider packages found in 'rpm provides' as installed --- src/mio.py | 1 + src/mio/rpmDB.py | 27 +++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/mio.py b/src/mio.py index 53e2a0f..24b25d6 100755 --- a/src/mio.py +++ b/src/mio.py @@ -328,6 +328,7 @@ if __name__ == '__main__': pass except Exception as e: log(MUTE, "Failed to install rpm's, rerun with '--noyum'") + raise() exit(1) pass log(NORMAL, "Installing files") diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py index 95bc885..38a0495 100755 --- a/src/mio/rpmDB.py +++ b/src/mio/rpmDB.py @@ -39,13 +39,32 @@ class VersionDB: for e in read_ts.dbMatch(): (name, arch, version, release) = ( e[rpm.RPMTAG_NAME].decode('utf-8'), - e[rpm.RPMTAG_ARCH].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')) - if not name in self.rpm: - self.rpm[name] = [] + theRPM = RPM(name, arch, version, release) + def add_rpm(name, rpm): + if not name in self.rpm: + self.rpm[name] = [] + pass + self.rpm[name].append(rpm) pass - self.rpm[name].append(RPM(name, arch, version, release)) + def add_alias(name, alias, rpm): + if name == alias: + return + if '(' in alias or '/' in alias: + # Filter out specials and paths + return + add_rpm(alias, rpm) + pass + add_rpm(name, theRPM) + for p in e['provides']: + add_alias(name, p.decode('utf8'), theRPM) + pass + # for o in e['obsoletes']: + # add_alias(name, o.decode('utf8'), theRPM) + # pass + pass del read_ts except: raise -- GitLab