summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-01-18 17:22:20 -0800
committerZac Medico <zmedico@gentoo.org>2011-01-18 17:22:20 -0800
commit53e82dc0de30bb1339c2be5321bfb34e98d2f3f5 (patch)
tree3668e9db5ff5e55ac69dbd00e8515836c2e28b58 /pym/_emerge/depgraph.py
parentd0b573483ee7460df5f139e407d08835af6dce3f (diff)
downloadportage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.tar.gz
portage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.tar.bz2
portage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.zip
depgraph: don't reinstall for changed repo
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 737547626..c73381a82 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2991,7 +2991,16 @@ class depgraph(object):
pkg_eb = self._pkg(
pkg.cpv, "ebuild", root_config, myrepo=pkg.repo)
except portage.exception.PackageNotFound:
- continue
+ pkg_eb_visible = False
+ for pkg_eb in self._iter_match_pkgs(pkg.root_config,
+ "ebuild", Atom("=%s" % (pkg.cpv,))):
+ if self._pkg_visibility_check(pkg_eb, \
+ allow_unstable_keywords=allow_unstable_keywords,
+ allow_license_changes=allow_license_changes):
+ pkg_eb_visible = True
+ break
+ if not pkg_eb_visible:
+ continue
else:
if not self._pkg_visibility_check(pkg_eb, \
allow_unstable_keywords=allow_unstable_keywords,
@@ -5499,7 +5508,15 @@ class _dep_check_composite_db(dbapi):
pkg.cpv, "ebuild", pkg.root_config,
myrepo=pkg.repo)
except portage.exception.PackageNotFound:
- return False
+ pkg_eb_visible = False
+ for pkg_eb in self._depgraph._iter_match_pkgs(
+ pkg.root_config, "ebuild",
+ Atom("=%s" % (pkg.cpv,))):
+ if self._depgraph._pkg_visibility_check(pkg_eb):
+ pkg_eb_visible = True
+ break
+ if not pkg_eb_visible:
+ return False
else:
if not self._depgraph._pkg_visibility_check(pkg_eb):
return False