Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r12548 - main/trunk/pym/_emerge
Date: Thu, 22 Jan 2009 21:13:55
Message-Id: E1LQ6s5-0008Di-Rq@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-01-22 21:13:52 +0000 (Thu, 22 Jan 2009)
3 New Revision: 12548
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Inside depgraph.loadResumeCommand(), always enable deep traversal of
9 dependencies. This is necessary for correct --keep-going or --resume operation
10 in case a package from a group of circularly dependent packages fails.
11
12
13 Modified: main/trunk/pym/_emerge/__init__.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/__init__.py 2009-01-22 05:55:24 UTC (rev 12547)
16 +++ main/trunk/pym/_emerge/__init__.py 2009-01-22 21:13:52 UTC (rev 12548)
17 @@ -8483,6 +8483,19 @@
18 else:
19 self._select_package = self._select_pkg_from_graph
20 self.myparams.add("selective")
21 + # Always traverse deep dependencies in order to account for
22 + # potentially unsatisfied dependencies of installed packages.
23 + # This is necessary for correct --keep-going or --resume operation
24 + # in case a package from a group of circularly dependent packages
25 + # fails. In this case, a package which has recently been installed
26 + # may have an unsatisfied circular dependency (pulled in by
27 + # PDEPEND, for example). So, even though a package is already
28 + # installed, it may not have all of it's dependencies satisfied, so
29 + # it may not be usable. If such a package is in the subgraph of
30 + # deep depenedencies of a scheduled build, that build needs to
31 + # be cancelled. In order for this type of situation to be
32 + # recognized, deep traversal of dependencies is required.
33 + self.myparams.add("deep")
34
35 favorites = resume_data.get("favorites")
36 args_set = self._sets["args"]
37 @@ -8516,14 +8529,8 @@
38 if not self._create_graph(allow_unsatisfied=True):
39 return False
40
41 - # When appropriate, complete the graph before analyzing
42 - # any unsatisfied deps that may exist.
43 - if not self._complete_graph():
44 - return False
45 -
46 unsatisfied_deps = []
47 - for dep in self._unsatisfied_deps + \
48 - self._initially_unsatisfied_deps:
49 + for dep in self._unsatisfied_deps:
50 if not isinstance(dep.parent, Package):
51 continue
52 if dep.parent.operation == "merge":