[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