diff --git a/src/mio/installer.py b/src/mio/installer.py index 9c42bf5f091ad6958492128e51ce4690f01365b2..7eed9762cc273dd6dc9eee5ace2cfd06a6c8ebce 100755 --- a/src/mio/installer.py +++ b/src/mio/installer.py @@ -181,11 +181,13 @@ class Installer: version_db = mio.rpmDB.VersionDB() for r in self.rpm: r.new_version = version_db[r.name] - + pass result = [] for r in rpm: if version_db[r] == None: result.append(r) + pass + pass return result def install_groups(self, prefix, backup): diff --git a/src/mio/rpmDB.py b/src/mio/rpmDB.py index 15908fa2357a8cfe2cc1a2786436bf2364a6335f..4e97622d6b57f29a5c0ee7e87622b219df7aaaa3 100755 --- a/src/mio/rpmDB.py +++ b/src/mio/rpmDB.py @@ -4,6 +4,28 @@ try: except: pass +class RPM: + + def __init__(self, name, arch, version, release): + self.name = name + self.arch = arch + self.version = version + self.release = release + pass + + def __eq__(self, other): + return (self.__class__ == other.__class__, + self.name == other.name and + self.arch == other.arch and + self.version == other.version and + self.release == other.release) + + def __repr__(self): + return "RPM(%s, %s, %s, %s)" % (self.name, self.arch, + self.version, self.release) + + pass + class VersionDB: def __init__(self): @@ -14,14 +36,26 @@ class VersionDB: (name, arch, version, release) = ( e[rpm.RPMTAG_NAME], e[rpm.RPMTAG_ARCH], e[rpm.RPMTAG_VERSION], e[rpm.RPMTAG_RELEASE]) - self.rpm[name] = (name, arch, version, release) + if not name in self.rpm: + self.rpm[name] = [] + pass + self.rpm[name].append(RPM(name, arch, version, release)) del read_ts except: pass - - + pass + def __getitem__(self, name): try: - return self.rpm[name] + if name in self.rpm: + return self.rpm[name] + name, arch = name.rsplit('.', 1) + for r in self.rpm[name]: + if arch == r.arch: + return [r] + pass + return None except: return None + pass + pass