diff --git a/src/mio.py b/src/mio.py index 53e2a0f27c29dfb9b3f33a8ae45fc02fa6a825e2..24b25d61b864b2e87ddc8054002cb72021d7573e 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 95bc885694d27bfb0eac6e4bf8914ab57cbfa28d..38a0495a6c2be7701757afa9d61818d6a82e1d5f 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