diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-01-19 14:01:26 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-01-19 14:01:26 -0800 |
commit | 00c9dd27618d20acdb9a700fbef09e292c329fe3 (patch) | |
tree | a1cee13e547c7d527966e7364411bd50580a5b66 /pym/portage/package/ebuild/_config/KeywordsManager.py | |
parent | eb628bb18c26c6a6aaf55cfa5ba69d54c5aac0ce (diff) | |
download | portage-00c9dd27618d20acdb9a700fbef09e292c329fe3.tar.gz portage-00c9dd27618d20acdb9a700fbef09e292c329fe3.tar.bz2 portage-00c9dd27618d20acdb9a700fbef09e292c329fe3.zip |
Fix stable mask logic for repoman.
For repoman, if the package has an effective stable keyword that
intersects with the effective ACCEPT_KEYWORDS for the current
profile, then consider it stable.
Diffstat (limited to 'pym/portage/package/ebuild/_config/KeywordsManager.py')
-rw-r--r-- | pym/portage/package/ebuild/_config/KeywordsManager.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/pym/portage/package/ebuild/_config/KeywordsManager.py b/pym/portage/package/ebuild/_config/KeywordsManager.py index d4778899c..3e029c381 100644 --- a/pym/portage/package/ebuild/_config/KeywordsManager.py +++ b/pym/portage/package/ebuild/_config/KeywordsManager.py @@ -111,15 +111,25 @@ class KeywordsManager(object): if self._getMissingKeywords(pkg, pgroups, mygroups): return False - # If replacing all keywords with unstable variants would mask the - # package, then it's considered stable. - unstable = [] - for kw in mygroups: - if kw[:1] != "~": - kw = "~" + kw - unstable.append(kw) - - return bool(self._getMissingKeywords(pkg, pgroups, set(unstable))) + if pkg.cpv._settings.local_config: + # If replacing all keywords with unstable variants would mask the + # package, then it's considered stable. + unstable = [] + for kw in mygroups: + if kw[:1] != "~": + kw = "~" + kw + unstable.append(kw) + + return bool(self._getMissingKeywords(pkg, pgroups, set(unstable))) + else: + # For repoman, if the package has an effective stable keyword that + # intersects with the effective ACCEPT_KEYWORDS for the current + # profile, then consider it stable. + for kw in pgroups: + if kw[:1] != "~": + if kw in mygroups: + return True + return False def getMissingKeywords(self, cpv, |