From: Fabian Groffen Date: Sat, 27 Oct 2007 18:40:05 +0000 (-0000) Subject: Merged from trunk 8315:8319 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=5248231c18355264697718fb501d702b5cdaee14;p=portage.git Merged from trunk 8315:8319 | 8316 | In portage.fetch(), condense digest check ouput to a single | | zmedico | line for all digests. | | 8317 | Fix broken $ROOT handling for setconfig in the MergeTask | | zmedico | constructor. | | 8318 | Reuse an existing EmergeConfig instance instead of | | zmedico | constructing a new one. | | 8319 | Make depgraph._select_atoms() more flexible by allowing the | | zmedico | repositories to be passed in as a parameter. | svn path=/main/branches/prefix/; revision=8321 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index b3d986a4f..72df41cd6 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -576,7 +576,7 @@ class RootConfig(object): particular $ROOT.""" def __init__(self, trees): self.trees = trees - self.settings = EmergeConfig(trees["vartree"].settings, trees=trees) + self.settings = trees["vartree"].settings self.root = self.settings["ROOT"] def create_world_atom(pkg_key, metadata, args_set, root_config): @@ -1517,8 +1517,6 @@ class depgraph(object): print "Priority:", dep_priority vardb = self.roots[dep_root].trees["vartree"].dbapi try: - self._populate_filtered_repo(dep_root, dep_string, - myuse=myuse, strict=strict) selected_atoms = self._select_atoms(dep_root, dep_string, myuse=myuse, strict=strict) except portage.exception.InvalidDependString, e: @@ -1942,16 +1940,22 @@ class depgraph(object): if atom_populated: break - def _select_atoms(self, root, depstring, myuse=None, strict=True): - """This will raise InvalidDependString if necessary.""" + def _select_atoms(self, root, depstring, myuse=None, strict=True, + trees=None): + """This will raise InvalidDependString if necessary. If trees is + None then self._filtered_trees is used.""" pkgsettings = self.pkgsettings[root] + if trees is None: + trees = self._filtered_trees + self._populate_filtered_repo(root, depstring, + myuse=myuse, strict=strict) if True: try: if not strict: portage.dep._dep_check_strict = False mycheck = portage.dep_check(depstring, None, pkgsettings, myuse=myuse, - myroot=root, trees=self._filtered_trees) + myroot=root, trees=trees) finally: portage.dep._dep_check_strict = True if not mycheck[0]: @@ -3723,10 +3727,10 @@ class MergeTask(object): if settings.get("PORTAGE_DEBUG", "") == "1": self.edebug = 1 self.pkgsettings = {} - self.pkgsettings[self.target_root] = EmergeConfig(settings, setconfig=settings.setconfig) - if self.target_root != "/": - self.pkgsettings["/"] = \ - EmergeConfig(trees["/"]["vartree"].settings, setconfig=settings.setconfig) + for root in trees: + self.pkgsettings[root] = EmergeConfig( + trees[root]["vartree"].settings, + setconfig=trees[root]["vartree"].settings.setconfig) self.curval = 0 def merge(self, mylist, favorites, mtimedb): @@ -6393,14 +6397,18 @@ def load_emerge_config(trees=None): kwargs[k] = os.environ.get(envvar, None) trees = portage.create_trees(trees=trees, **kwargs) + for root in trees: + settings = trees[root]["vartree"].settings + settings = EmergeConfig(settings, trees=trees[root]) + settings.lock() + trees[root]["vartree"].settings = settings + settings = trees["/"]["vartree"].settings for myroot in trees: if myroot != "/": settings = trees[myroot]["vartree"].settings break - - settings = EmergeConfig(settings, trees=trees[settings["ROOT"]]) mtimedbfile = os.path.join("/", portage.CACHE_PATH.lstrip(os.path.sep), "mtimedb") mtimedb = portage.MtimeDB(mtimedbfile) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 7231934ae..3e02d836f 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3002,9 +3002,12 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks", eout = portage.output.EOutput() eout.quiet = \ mysettings.get("PORTAGE_QUIET", None) == "1" - for digest_name in mydigests[myfile]: + digests = mydigests.get(myfile) + if digests: + digests = digests.keys() + digests.sort() eout.ebegin( - "%s %s ;-)" % (myfile, digest_name)) + "%s %s ;-)" % (myfile, " ".join(digests))) eout.eend(0) continue # fetch any remaining files