From f5e30742ae2aa94591b526543a374712caa8e1fc Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 6 Jul 2007 22:58:32 +0000 Subject: When depgraph updates preferences for old-style virtuals, also update them in the global config so that they are consistent everywhere. Optimize config.setinst() to minimize the work done. svn path=/main/trunk/; revision=7185 --- pym/emerge/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pym/emerge/__init__.py') diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 4bf288af5..830e221de 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -1744,9 +1744,14 @@ class depgraph(object): if p_status == "merge": # Update old-style virtuals if this package provides any. # These are needed for dep_virtual calls inside dep_check. - p_db = self.trees[p_root][self.pkg_tree_map[p_type]].dbapi + p_db = self.mydbapi[p_root] # contains cached metadata try: self.pkgsettings[p_root].setinst(p_key, p_db) + # For consistency, also update the global virtuals. + settings = self.roots[p_root].settings + settings.unlock() + settings.setinst(p_key, p_db) + settings.lock() except portage.exception.InvalidDependString, e: provide = p_db.aux_get(p_key, ["PROVIDE"])[0] show_invalid_depstring_notice(myparent, provide, str(e)) -- cgit v1.2.3-1-g7c22