diff -Nur -x '*.orig' -x '*.rej' anaconda-10.1.1.37/packages.py mezzanine_patched_anaconda-10.1.1.37/packages.py --- anaconda-10.1.1.37/packages.py 2006-04-06 06:14:16.948845599 +1000 +++ mezzanine_patched_anaconda-10.1.1.37/packages.py 2006-04-06 06:13:12.308104109 +1000 @@ -19,6 +19,7 @@ import iutil import isys import rpm +import hdrlist import os import timer import time @@ -400,10 +401,7 @@ self.progress.setPackage(h) self.progress.setPackageScale(0, 1) - self.instLog.write (self.modeText % (h[rpm.RPMTAG_NAME], - h[rpm.RPMTAG_VERSION], - h[rpm.RPMTAG_RELEASE], - h[rpm.RPMTAG_ARCH])) + self.instLog.write (self.modeText % (hdrlist.nevra(h))) self.instLog.flush () self.rpmFD = -1 @@ -985,9 +983,9 @@ # dup'd when we go out of scope if upgrade: - modeText = _("Upgrading %s-%s-%s.%s.\n") + modeText = _("Upgrading %s.\n") else: - modeText = _("Installing %s-%s-%s.%s.\n") + modeText = _("Installing %s.\n") log ("getting rpm error class") errors = rpmErrorClass(instLog) @@ -1288,13 +1286,10 @@ h = ts.hdrFromFdno(fd) os.close(fd) if upgrade: - text = _("Upgrading %s-%s-%s.%s.\n") + text = _("Upgrading %s.\n") else: - text = _("Installing %s-%s-%s.%s.\n") - instLog.write(text % (h['name'], - h['version'], - h['release'], - h['arch'])) + text = _("Installing %s.\n") + instLog.write(text % (hdrlist.nevra(h))) os.unlink(id.compspkg) del ts @@ -1320,14 +1315,19 @@ instLog.write(_("\n\nThe following packages were available in " "this version but NOT installed:\n")) + ts = rpm.TransactionSet(instPath) + ts.setVSFlags(~(rpm.RPMVSF_NORSA|rpm.RPMVSF_NODSA)) + lines = [] for p in id.grpset.hdrlist.values(): if not p.isSelected(): - lines.append("%s-%s-%s.%s.rpm\n" % - (p.hdr[rpm.RPMTAG_NAME], - p.hdr[rpm.RPMTAG_VERSION], - p.hdr[rpm.RPMTAG_RELEASE], - p.hdr[rpm.RPMTAG_ARCH])) + text = "%s" % (hdrlist.nevra(p)) + for f in ts.dbMatch('name', p.hdr[rpm.RPMTAG_NAME]): + if hdrlist.nevra(p) == hdrlist.nevra(f): + text = "%s (already installed)" % (text) + else: + text = "%s (%s installed)" % (text, hdrlist.nevra(f)) + lines.append("%s\n" % text) lines.sort() for line in lines: instLog.write(line)