---
 yum/__init__.py |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/yum/__init__.py b/yum/__init__.py
index 509eea2..3329828 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2159,7 +2159,7 @@ class YumBase(depsolve.Depsolve):
             urlgrabber.progress.text_meter_total_size(remote_size)
         beg_download = time.time()
         i = 0
-        local_size = 0
+        local_size = [0]
         done_repos = set()
         for po in remote_pkgs:
             #  Recheck if the file is there, works around a couple of weird
@@ -2172,41 +2172,41 @@ class YumBase(depsolve.Depsolve):
                     remote_size -= po.size
                     if hasattr(urlgrabber.progress, 'text_meter_total_size'):
                         urlgrabber.progress.text_meter_total_size(remote_size,
-                                                                  local_size)
+                                                                  
local_size[0])
                     continue
                 if os.path.getsize(local) >= po.size:
                     os.unlink(local)
 
-            checkfunc = (self.verifyPkg, (po, 1), {})
-            try:
-                if i == 1 and not local_size and remote_size == po.size:
-                    text = os.path.basename(po.relativepath)
-                else:
-                    text = '(%s/%s): %s' % (i, len(remote_pkgs),
-                                            os.path.basename(po.relativepath))
-                mylocal = po.repo.getPackage(po,
-                                   checkfunc=checkfunc,
-                                   text=text,
-                                   cache=po.repo.http_caching != 'none',
-                                   )
-                local_size += po.size
+            def checkfunc(obj, po=po):
+                self.verifyPkg(obj, po, 1)
+                local_size[0] += po.size
                 if hasattr(urlgrabber.progress, 'text_meter_total_size'):
                     urlgrabber.progress.text_meter_total_size(remote_size,
-                                                              local_size)
+                                                              local_size[0])
                 if po.repoid not in done_repos:
+                    done_repos.add(po.repoid)
                     #  Check a single package per. repo. ... to give a hint to
                     # the user on big downloads.
                     result, errmsg = self.sigCheckPkg(po)
                     if result != 0:
                         self.verbose_logger.warn("%s", errmsg)
-                done_repos.add(po.repoid)
+                po.localpath = obj.filename
+                if po in errors:
+                    del errors[po]
 
+            try:
+                if i == 1 and not local_size[0] and remote_size == po.size:
+                    text = os.path.basename(po.relativepath)
+                else:
+                    text = '(%s/%s): %s' % (i, len(remote_pkgs),
+                                            os.path.basename(po.relativepath))
+                po.repo.getPackage(po,
+                                   checkfunc=checkfunc,
+                                   text=text,
+                                   cache=po.repo.http_caching != 'none',
+                                   )
             except Errors.RepoError, e:
                 adderror(po, exception2msg(e))
-            else:
-                po.localpath = mylocal
-                if po in errors:
-                    del errors[po]
 
         if hasattr(urlgrabber.progress, 'text_meter_total_size'):
             urlgrabber.progress.text_meter_total_size(0)
-- 
1.7.4.4

_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to