diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-01-18 17:22:20 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-01-18 17:22:20 -0800 |
commit | 53e82dc0de30bb1339c2be5321bfb34e98d2f3f5 (patch) | |
tree | 3668e9db5ff5e55ac69dbd00e8515836c2e28b58 /pym/_emerge | |
parent | d0b573483ee7460df5f139e407d08835af6dce3f (diff) | |
download | portage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.tar.gz portage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.tar.bz2 portage-53e82dc0de30bb1339c2be5321bfb34e98d2f3f5.zip |
depgraph: don't reinstall for changed repo
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/depgraph.py | 21 |
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 |