summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-27 19:56:50 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-27 19:56:50 +0000
commit3806c9f6696eeb4d6a0de3d1ce43a80309caf04a (patch)
tree47d3fbfe05c8d5df0c08d5004d4a96195e1829b7 /bin
parentbbcde6d5fafb8a9e5e6ff38e2b29679bdbeadc21 (diff)
downloadportage-3806c9f6696eeb4d6a0de3d1ce43a80309caf04a.tar.gz
portage-3806c9f6696eeb4d6a0de3d1ce43a80309caf04a.tar.bz2
portage-3806c9f6696eeb4d6a0de3d1ce43a80309caf04a.zip
Bug #219369 - Enable automatic upgrage or downgrade to a version
with visible KEYWORDS when the installed version is masked by KEYWORDS, but never reinstall the same exact version only due to a KEYWORDS mask. (trunk r10001) svn path=/main/branches/2.1.2/; revision=10002
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge20
1 files changed, 20 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index 8fddb1b1c..d21b444ee 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -2942,6 +2942,26 @@ class depgraph(object):
continue
except portage_exception.InvalidDependString:
continue
+
+ # Enable upgrage or downgrade to a version
+ # with visible KEYWORDS when the installed
+ # version is masked by KEYWORDS, but never
+ # reinstall the same exact version only due
+ # to a KEYWORDS mask.
+ if installed and matched_packages and \
+ pkgsettings._getMissingKeywords(
+ pkg.cpv, pkg.metadata):
+ different_version = None
+ for avail_pkg in matched_packages:
+ if not portage_dep.cpvequal(
+ pkg.cpv, avail_pkg.cpv):
+ different_version = avail_pkg
+ break
+ if different_version is not None:
+ # Only reinstall for KEYWORDS if
+ # it's not the same version.
+ continue
+
if not built and not calculated_use:
# This is avoided whenever possible because
# it's expensive.