summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-02-10 23:32:04 +0000
committerZac Medico <zmedico@gentoo.org>2008-02-10 23:32:04 +0000
commitae9ab402aa4167655464c1fdd8e8a28bee32a4de (patch)
tree56401438d88d30023b55e0fb49956449eb87f5bc
parent5a5a3db5b81b6eff0a3f5dc3fdcb5b8e49931bd9 (diff)
downloadportage-ae9ab402aa4167655464c1fdd8e8a28bee32a4de.tar.gz
portage-ae9ab402aa4167655464c1fdd8e8a28bee32a4de.tar.bz2
portage-ae9ab402aa4167655464c1fdd8e8a28bee32a4de.zip
Bug #209538 - Disable annoying "masked by keyword" warnings for installed
packages. We can assume that if the user accepted the keywords at merge time then they never want to be bothered again. svn path=/main/trunk/; revision=9330
-rw-r--r--pym/_emerge/__init__.py4
-rw-r--r--pym/portage/__init__.py16
2 files changed, 16 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 105168870..462410c3b 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1022,7 +1022,7 @@ def visible(pkgsettings, cpv, metadata, built=False, installed=False):
return False
if not portage.eapi_is_supported(metadata["EAPI"]):
return False
- if pkgsettings.getMissingKeywords(cpv, metadata):
+ if not installed and pkgsettings.getMissingKeywords(cpv, metadata):
return False
if pkgsettings.getMaskAtom(cpv, metadata):
return False
@@ -1035,7 +1035,7 @@ def visible(pkgsettings, cpv, metadata, built=False, installed=False):
def get_masking_status(pkg, pkgsettings, root_config):
mreasons = portage.getmaskingstatus(
- pkg.cpv, metadata=pkg.metadata, settings=pkgsettings,
+ pkg, settings=pkgsettings,
portdb=root_config.trees["porttree"].dbapi)
if pkg.built and not pkg.installed and \
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 741c99078..8bc7a8c82 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -5690,11 +5690,21 @@ def getmaskingreason(mycpv, metadata=None, settings=None, portdb=None, return_lo
else:
return None
-def getmaskingstatus(mycpv, metadata=None, settings=None, portdb=None):
+def getmaskingstatus(mycpv, settings=None, portdb=None):
if settings is None:
settings = config(clone=globals()["settings"])
if portdb is None:
portdb = globals()["portdb"]
+
+ metadata = None
+ installed = False
+ if not isinstance(mycpv, basestring):
+ # emerge passed in a Package instance
+ pkg = mycpv
+ mycpv = pkg.cpv
+ metadata = pkg.metadata
+ installed = pkg.installed
+
mysplit = catpkgsplit(mycpv)
if not mysplit:
raise ValueError("invalid CPV: %s" % mycpv)
@@ -5784,7 +5794,9 @@ def getmaskingstatus(mycpv, metadata=None, settings=None, portdb=None):
kmask="~"+myarch
break
- if kmask:
+ # Assume that the user doesn't want to be bothered about
+ # KEYWORDS of packages that are already installed.
+ if kmask and not installed:
rValue.append(kmask+" keyword")
try: