[issue268] smart doesn't work with rpm-repackage option
Peter Surda at Labix Tracker
tracker at labix.org
Fri Jul 27 04:22:03 PDT 2007
Peter Surda <peter.surda at realexpayments.com> added the comment:
I fixed it, gustavo seems too busy to respond to email, so I'm posting it here too:
--- /tmp/pm.py 2007-07-24 09:12:36.000000000 +0100
+++ /usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py 2007-07-24
10:41:20.000000000 +0100
@@ -280,7 +282,7 @@
def __init__(self, prog, upgradednames):
self.prog = prog
self.upgradednames = upgradednames
- self.data = {"item-number": 0}
+ self.data = {"item-number": 0, "repackage": False}
self.fd = None
self.rpmout = None
self.rpmoutbuffer = ""
@@ -352,16 +354,28 @@
self.fd = None
elif what == rpm.RPMCALLBACK_INST_START:
- info, path = infopath
- pkg = info.getPackage()
self.data["item-number"] += 1
+ if isinstance(infopath, tuple):
+ info, path = infopath
+ pkg = info.getPackage()
+ name = pkg.name
+ if isinstance(infopath, str):
+ name = infopath
self.prog.add(1)
- self.prog.setSubTopic(infopath, _("Installing %s") % pkg.name)
+ if self.data["repackage"]:
+ self.prog.setSubTopic(infopath, _("Repackaging %s") % name)
+ self.data["repackage"] = False
+ else:
+ self.prog.setSubTopic(infopath, _("Installing %s") % name)
self.prog.setSub(infopath, 0, 1, subdata=self.data)
self.prog.show()
+ elif what == rpm.RPMCALLBACK_REPACKAGE_START:
+ self.data["repackage"] = True
+
elif (what == rpm.RPMCALLBACK_TRANS_PROGRESS or
- what == rpm.RPMCALLBACK_INST_PROGRESS):
+ what == rpm.RPMCALLBACK_INST_PROGRESS or
+ what == rpm.RPMCALLBACK_REPACKAGE_PROGRESS):
self.prog.setSub(infopath or "trans", amount, total,
subdata=self.data)
self.prog.show()
----------
nosy: +petersurda
_______________________________________
Labix issue tracker <tracker at labix.org>
<http://tracker.labix.org/issue268>
_______________________________________
More information about the Smart
mailing list