--- yum/__init__.py | 7 +++++-- yum/comps.py | 5 ++++- yum/misc.py | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/yum/__init__.py b/yum/__init__.py index 45123a3..1b36994 100644 --- a/yum/__init__.py +++ b/yum/__init__.py @@ -780,7 +780,9 @@ class YumBase(depsolve.Depsolve): groupfile = repo.getGroups() # open it up as a file object so iterparse can cope with our compressed file if groupfile: - groupfile = misc.repo_gen_decompress(groupfile, 'groups.xml') + groupfile = misc.repo_gen_decompress(groupfile, 'groups.xml', + cached=repo.cache) + # Do we want a RepoError here? try: self._comps.add(groupfile) @@ -819,7 +821,8 @@ class YumBase(depsolve.Depsolve): try: tag_md = repo.retrieveMD('pkgtags') tag_sqlite = misc.repo_gen_decompress(tag_md, - 'pkgtags.sqlite') + 'pkgtags.sqlite', + cached=repo.cache) # feed it into _tags.add() self._tags.add(repo.id, tag_sqlite) except (Errors.RepoError, Errors.PkgTagsError), e: diff --git a/yum/comps.py b/yum/comps.py index 408bb1c..65f6d5e 100755 --- a/yum/comps.py +++ b/yum/comps.py @@ -503,7 +503,10 @@ class Comps(object): if type(srcfile) in types.StringTypes: # srcfile is a filename string - infile = open(srcfile, 'rt') + try: + infile = open(srcfile, 'rt') + except IOError, e: + raise CompsException, 'open(%s): #%u %s' % (srcfile, e.errno, e.strerror) else: # srcfile is a file object infile = srcfile diff --git a/yum/misc.py b/yum/misc.py index 4fa5ed9..4a1ede2 100644 --- a/yum/misc.py +++ b/yum/misc.py @@ -1077,7 +1077,7 @@ def decompress(filename, dest=None, fn_only=False, check_timestamps=False): return out -def repo_gen_decompress(filename, generated_name): +def repo_gen_decompress(filename, generated_name, cached=False): """ This is a wrapper around decompress, where we work out a cached generated name, and use check_timestamps. filename _must_ be from a repo. and generated_name is the type of the file. """ @@ -1086,7 +1086,7 @@ def repo_gen_decompress(filename, generated_name): if not os.path.exists(dest): os.makedirs(dest, mode=0755) dest += '/' + generated_name - return decompress(filename, dest=dest, check_timestamps=True) + return decompress(filename, dest=dest, check_timestamps=True,fn_only=cached) def read_in_items_from_dot_dir(thisglob, line_as_list=True): """takes a glob of a dir (like /etc/foo.d/*.foo) -- 1.7.2.3 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel