aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/package/ebuild/getmaskingstatus.py')
-rw-r--r--pym/portage/package/ebuild/getmaskingstatus.py15
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