Bug#726156: latest APT breaks InstallProgress
Package: python-apt
Version: 0.8.9.1
Tags: patch
Hello,
It seems that the latest APT update breaks the base python-apt
InstallProgress, as some package names in the status stream also feature
the package architecture (packagename:arch).
This is the produced traceback:
Traceback (most recent call last):
File "/usr/bin/bricks", line 181, in run
engine.cache.commit(AcquireProgress(self.parent),
InstallProgress(self.parent))
File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 504, in commit
res = self.install_archives(pm, install_progress)
File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 467, in
install_archives
res = install_progress.run(pm)
File "/usr/lib/python2.7/dist-packages/apt/progress/base.py", line
206, in run
res = self.wait_child()
File "/usr/lib/python2.7/dist-packages/apt/progress/base.py", line
276, in wait_child
self.update_interface()
File "/usr/lib/python2.7/dist-packages/apt/progress/base.py", line
253, in update_interface
if float(percent) != self.percent or status_str != self.status:
ValueError: could not convert string to float: amd64
I'm attaching a quick and dirty patch that fixes the issue.
Regards,
Eugenio
--
.: Eugenio Paolantonio - Semplice Linux developer :.
http://semplice-linux.org
http://medesimo.eu
Twitter: @eugenio_g7 - Homepage: http://me.medesimo.eu
--- orig/apt/progress/base.py 2013-06-06 18:32:36.000000000 +0200
+++ mod/apt/progress/base.py 2013-10-12 22:27:54.050668349 +0200
@@ -221,10 +221,17 @@
return
pkgname = status = status_str = percent = base = ""
+ architecture = "all"
if line.startswith('pm'):
try:
(status, pkgname, percent, status_str) = line.split(":", 3)
+ # Handle pkgnames with :architecture, otherwise we'll later
+ # try to make the package architecture a float.
+ try:
+ float(percent)
+ except ValueError:
+ (status, pkgname, architecture, percent, status_str) = line.split(":", 4)
except ValueError:
# silently ignore lines that can't be parsed
return
Reply to: