diff options
Diffstat (limited to 'pym/portage/package/ebuild/getmaskingstatus.py')
-rw-r--r-- | pym/portage/package/ebuild/getmaskingstatus.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/pym/portage/package/ebuild/getmaskingstatus.py b/pym/portage/package/ebuild/getmaskingstatus.py index 1eb6afed2..a7d3c333f 100644 --- a/pym/portage/package/ebuild/getmaskingstatus.py +++ b/pym/portage/package/ebuild/getmaskingstatus.py @@ -7,7 +7,7 @@ import sys import portage from portage import eapi_is_supported, _eapi_is_deprecated -from portage.dep import match_from_list +from portage.dep import match_from_list, _slot_separator, _repo_separator from portage.localization import _ from portage.package.ebuild.config import config from portage.versions import catpkgsplit, cpv_getkey @@ -32,16 +32,16 @@ class _MaskReason(object): self.message = message self.unmask_hint = unmask_hint -def getmaskingstatus(mycpv, settings=None, portdb=None): +def getmaskingstatus(mycpv, settings=None, portdb=None, myrepo=None): if settings is None: settings = config(clone=portage.settings) if portdb is None: portdb = portage.portdb return [mreason.message for \ - mreason in _getmaskingstatus(mycpv, settings, portdb)] + mreason in _getmaskingstatus(mycpv, settings, portdb,myrepo)] -def _getmaskingstatus(mycpv, settings, portdb): +def _getmaskingstatus(mycpv, settings, portdb, myrepo=None): metadata = None installed = False @@ -58,7 +58,7 @@ def _getmaskingstatus(mycpv, settings, portdb): if metadata is None: db_keys = list(portdb._aux_cache_keys) try: - metadata = dict(zip(db_keys, portdb.aux_get(mycpv, db_keys))) + metadata = dict(zip(db_keys, portdb.aux_get(mycpv, db_keys, myrepo=myrepo))) except KeyError: if not portdb.cpv_exists(mycpv): raise @@ -103,7 +103,10 @@ def _getmaskingstatus(mycpv, settings, portdb): pkgdict = settings._keywords_manager.pkeywordsdict.get(cp) matches = False if pkgdict: - cpv_slot_list = ["%s:%s" % (mycpv, metadata["SLOT"])] + pkg = "".join((mycpv, _slot_separator, metadata["SLOT"])) + if 'repository' in metadata: + pkg = "".join((pkg, _repo_separator, metadata['repository'])) + cpv_slot_list = [pkg] for atom, pkgkeywords in pkgdict.items(): if match_from_list(atom, cpv_slot_list): matches = True |