[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