aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'portage_with_autodep/pym/_emerge/search.py')
-rw-r--r--portage_with_autodep/pym/_emerge/search.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/portage_with_autodep/pym/_emerge/search.py b/portage_with_autodep/pym/_emerge/search.py
index 35f0412..5abc8a0 100644
--- a/portage_with_autodep/pym/_emerge/search.py
+++ b/portage_with_autodep/pym/_emerge/search.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import print_function
@@ -6,6 +6,7 @@ from __future__ import print_function
import re
import portage
from portage import os
+from portage.dbapi.porttree import _parse_uri_map
from portage.output import bold, bold as white, darkgreen, green, red
from portage.util import writemsg_stdout
@@ -150,7 +151,7 @@ class search(object):
if not result or cpv == portage.best([cpv, result]):
result = cpv
else:
- db_keys = Package.metadata_keys
+ db_keys = list(db._aux_cache_keys)
# break out of this loop with highest visible
# match, checked in descending order
for cpv in reversed(db.match(atom)):
@@ -261,11 +262,13 @@ class search(object):
msg.append("[ Applications found : " + \
bold(str(self.mlen)) + " ]\n\n")
vardb = self.vartree.dbapi
+ metadata_keys = set(Package.metadata_keys)
+ metadata_keys.update(["DESCRIPTION", "HOMEPAGE", "LICENSE", "SRC_URI"])
+ metadata_keys = tuple(metadata_keys)
for mtype in self.matches:
for match,masked in self.matches[mtype]:
full_package = None
if mtype == "pkg":
- catpack = match
full_package = self._xmatch(
"bestmatch-visible", match)
if not full_package:
@@ -285,11 +288,16 @@ class search(object):
+ "\n\n")
if full_package:
try:
- desc, homepage, license = self._aux_get(
- full_package, ["DESCRIPTION","HOMEPAGE","LICENSE"])
+ metadata = dict(zip(metadata_keys,
+ self._aux_get(full_package, metadata_keys)))
except KeyError:
msg.append("emerge: search: aux_get() failed, skipping\n")
continue
+
+ desc = metadata["DESCRIPTION"]
+ homepage = metadata["HOMEPAGE"]
+ license = metadata["LICENSE"]
+
if masked:
msg.append(green("*") + " " + \
white(match) + " " + red("[ Masked ]") + "\n")
@@ -304,12 +312,17 @@ class search(object):
mycpv = match + "-" + myversion
myebuild = self._findname(mycpv)
if myebuild:
+ pkg = Package(built=False, cpv=mycpv,
+ installed=False, metadata=metadata,
+ root_config=self.root_config, type_name="ebuild")
pkgdir = os.path.dirname(myebuild)
- from portage import manifest
- mf = manifest.Manifest(
+ mf = self.settings.repositories.get_repo_for_location(
+ os.path.dirname(os.path.dirname(pkgdir)))
+ mf = mf.load_manifest(
pkgdir, self.settings["DISTDIR"])
try:
- uri_map = self._getFetchMap(mycpv)
+ uri_map = _parse_uri_map(mycpv, metadata,
+ use=pkg.use.enabled)
except portage.exception.InvalidDependString as e:
file_size_str = "Unknown (%s)" % (e,)
del e