diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-04 05:25:58 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-04 05:25:58 +0000 |
commit | d5613ed81d07dc729257ade41207871f27c41261 (patch) | |
tree | afca744fe7f462a13e2c0efd22c1989512f75bd2 /bin/emerge | |
parent | c89156211bee0457c9814a192f33cf618321d88f (diff) | |
download | portage-d5613ed81d07dc729257ade41207871f27c41261.tar.gz portage-d5613ed81d07dc729257ade41207871f27c41261.tar.bz2 portage-d5613ed81d07dc729257ade41207871f27c41261.zip |
In order to fix --tree display behave normally in --resume mode,
properly add to the digraph all packages matched by arguments.
(trunk r10162)
svn path=/main/branches/2.1.2/; revision=10163
Diffstat (limited to 'bin/emerge')
-rwxr-xr-x | bin/emerge | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/bin/emerge b/bin/emerge index c6ccffa73..393c32a5f 100755 --- a/bin/emerge +++ b/bin/emerge @@ -4973,9 +4973,7 @@ class depgraph(object): if not isinstance(resume_data, dict): return False - favorites = resume_data.get("favorites") - if isinstance(favorites, list): - self._load_favorites(favorites) + mergelist = resume_data.get("mergelist") if not isinstance(mergelist, list): mergelist = [] @@ -5038,10 +5036,29 @@ class depgraph(object): self._select_package = self._select_pkg_from_graph self.myparams.add("selective") + favorites = resume_data.get("favorites") + if isinstance(favorites, list): + args = self._load_favorites(favorites) + else: + args = [] + for task in serialized_tasks: if isinstance(task, Package) and \ task.operation == "merge": - self._add_pkg(task, None) + if not self._add_pkg(task, None): + return False + + # Packages for argument atoms need to be explicitly + # added via _add_pkg() so that they are included in the + # digraph (needed at least for --tree display). + for arg in args: + for atom in arg.set: + pkg, existing_node = self._select_package( + arg.root_config.root, atom) + if existing_node is None and \ + pkg is not None: + if not self._add_pkg(pkg, arg): + return False # Allow unsatisfied deps here to avoid showing a masking # message for an unsatisfied dep that isn't necessarily @@ -5122,6 +5139,7 @@ class depgraph(object): atom_arg_map[atom_key] = refs if arg not in refs: refs.append(arg) + return args class UnsatisfiedResumeDep(portage_exception.PortageException): """ |