[Yum-devel] [PATCH] set repo.old_base_cache_dir properly

Zdeněk Pavlas zpavlas at redhat.com
Wed May 30 13:21:09 UTC 2012


Preloading is broken for some time (since prerepoconf?)
as YumBase.setCacheDir() throws away the old conf.cachedir.

- save it to conf.old_cachedir
- use that to initialize repo.old_base_cache_dir
- no update when new==old
---
 yum/__init__.py |    2 ++
 yum/repos.py    |    5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/yum/__init__.py b/yum/__init__.py
index 1e4acd5..d0c269c 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -578,6 +578,7 @@ class YumBase(depsolve.Depsolve):
         repo.name = to_unicode(repo.name)
 
         # Set attributes not from the config file
+        repo.old_base_cache_dir = getattr(self.conf, 'old_cachedir', '')
         repo.basecachedir = self.conf.cachedir
         repo.yumvar.update(self.conf.yumvar)
         repo.cfg = parser
@@ -5957,6 +5958,7 @@ class YumBase(depsolve.Depsolve):
             self.prerepoconf.cachedir = cachedir
         else:
             self.repos.setCacheDir(cachedir)
+        self.conf.old_cachedir = self.conf.cachedir
         self.conf.cachedir = cachedir
         return True # We got a new cache dir
 
diff --git a/yum/repos.py b/yum/repos.py
index bd8f1a4..4b1d52e 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -257,8 +257,9 @@ class RepoStorage:
         
         self._cachedir = cachedir
         for repo in self.repos.values():
-            repo.old_base_cache_dir = repo.basecachedir
-            repo.basecachedir = cachedir
+            if cachedir != repo.basecachedir:
+                repo.old_base_cache_dir = repo.basecachedir
+                repo.basecachedir = cachedir
 
 
     def setProgressBar(self, obj):
-- 
1.7.4.4



More information about the Yum-devel mailing list