* [gentoo-commits] portage r12548 - main/trunk/pym/_emerge
@ 2009-01-22 21:13 Zac Medico (zmedico)
0 siblings, 0 replies; only message in thread
From: Zac Medico (zmedico) @ 2009-01-22 21:13 UTC (permalink / raw
To: gentoo-commits
Author: zmedico
Date: 2009-01-22 21:13:52 +0000 (Thu, 22 Jan 2009)
New Revision: 12548
Modified:
main/trunk/pym/_emerge/__init__.py
Log:
Inside depgraph.loadResumeCommand(), always enable deep traversal of
dependencies. This is necessary for correct --keep-going or --resume operation
in case a package from a group of circularly dependent packages fails.
Modified: main/trunk/pym/_emerge/__init__.py
===================================================================
--- main/trunk/pym/_emerge/__init__.py 2009-01-22 05:55:24 UTC (rev 12547)
+++ main/trunk/pym/_emerge/__init__.py 2009-01-22 21:13:52 UTC (rev 12548)
@@ -8483,6 +8483,19 @@
else:
self._select_package = self._select_pkg_from_graph
self.myparams.add("selective")
+ # Always traverse deep dependencies in order to account for
+ # potentially unsatisfied dependencies of installed packages.
+ # This is necessary for correct --keep-going or --resume operation
+ # in case a package from a group of circularly dependent packages
+ # fails. In this case, a package which has recently been installed
+ # may have an unsatisfied circular dependency (pulled in by
+ # PDEPEND, for example). So, even though a package is already
+ # installed, it may not have all of it's dependencies satisfied, so
+ # it may not be usable. If such a package is in the subgraph of
+ # deep depenedencies of a scheduled build, that build needs to
+ # be cancelled. In order for this type of situation to be
+ # recognized, deep traversal of dependencies is required.
+ self.myparams.add("deep")
favorites = resume_data.get("favorites")
args_set = self._sets["args"]
@@ -8516,14 +8529,8 @@
if not self._create_graph(allow_unsatisfied=True):
return False
- # When appropriate, complete the graph before analyzing
- # any unsatisfied deps that may exist.
- if not self._complete_graph():
- return False
-
unsatisfied_deps = []
- for dep in self._unsatisfied_deps + \
- self._initially_unsatisfied_deps:
+ for dep in self._unsatisfied_deps:
if not isinstance(dep.parent, Package):
continue
if dep.parent.operation == "merge":
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-01-22 21:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-22 21:13 [gentoo-commits] portage r12548 - main/trunk/pym/_emerge Zac Medico (zmedico)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox