From: Fabian Groffen Date: Sat, 11 Apr 2009 11:41:41 +0000 (-0000) Subject: Merged from trunk -r13313:13316 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=4787a7f63650866e92d0ca4708f42b47e7459007;p=portage.git Merged from trunk -r13313:13316 | 13314 | Filter virtuals when expanding atoms if it helps to avoid an | | zmedico | ambiguity. | | 13315 | Show an error message when deletion of stale cache fails. | | zmedico | | | 13316 | Avoid leaking some variables from ebuild_main() into the | | zmedico | environment (local variables are exposed to 'children'). | svn path=/main/branches/prefix/; revision=13322 --- diff --git a/bin/egencache b/bin/egencache index 89708ad71..4103651d5 100755 --- a/bin/egencache +++ b/bin/egencache @@ -244,8 +244,11 @@ class GenCache(object): del trg_cache[k] except KeyError: pass - except CacheError: + except CacheError, ce: self.returncode |= 1 + writemsg_level( + "%s deleting stale cache: %s\n" % (k, ce), + level=logging.ERROR, noiselevel=-1) if not trg_cache.autocommits: try: diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 3afe96d02..8c33769ca 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5629,6 +5629,15 @@ class depgraph(object): atom_cp = portage.dep_getkey(atom) if vardb.cp_list(atom_cp): installed_cp_set.add(atom_cp) + + if len(installed_cp_set) > 1: + non_virtual_cps = set() + for atom_cp in installed_cp_set: + if not atom_cp.startswith("virtual/"): + non_virtual_cps.add(atom_cp) + if len(non_virtual_cps) == 1: + installed_cp_set = non_virtual_cps + if len(expanded_atoms) > 1 and len(installed_cp_set) == 1: installed_cp = iter(installed_cp_set).next() expanded_atoms = [atom for atom in expanded_atoms \