diff options
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, |