From 00c9dd27618d20acdb9a700fbef09e292c329fe3 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 19 Jan 2013 14:01:26 -0800 Subject: 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. --- .../package/ebuild/_config/KeywordsManager.py | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'pym/portage/package/ebuild/_config/KeywordsManager.py') 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, -- cgit v1.2.3-1-g7c22