Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Fri, 31 May 2013 22:43:31
Message-Id: 1370040187.debf30ee98b29894bd913b3ec691662143c0f30e.zmedico@gentoo
1 commit: debf30ee98b29894bd913b3ec691662143c0f30e
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Fri May 31 22:43:07 2013 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri May 31 22:43:07 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=debf30ee
7
8 depgraph: buidpkgonly error earlier, bug #471910
9
10 ---
11 pym/_emerge/actions.py | 27 +--------------------------
12 pym/_emerge/depgraph.py | 23 +++++++++++++++++++++++
13 2 files changed, 24 insertions(+), 26 deletions(-)
14
15 diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
16 index a46f565..7b2cf54 100644
17 --- a/pym/_emerge/actions.py
18 +++ b/pym/_emerge/actions.py
19 @@ -418,33 +418,8 @@ def action_build(settings, trees, mtimedb,
20 mergelist_shown = True
21 if retval != os.EX_OK:
22 return retval
23 - if "--buildpkgonly" in myopts:
24 - graph_copy = mydepgraph._dynamic_config.digraph.copy()
25 - removed_nodes = set()
26 - for node in graph_copy:
27 - if not isinstance(node, Package) or \
28 - node.operation == "nomerge":
29 - removed_nodes.add(node)
30 - graph_copy.difference_update(removed_nodes)
31 - if not graph_copy.hasallzeros(ignore_priority = \
32 - DepPrioritySatisfiedRange.ignore_medium):
33 - print("\n!!! --buildpkgonly requires all dependencies to be merged.")
34 - print("!!! You have to merge the dependencies before you can build this package.\n")
35 - return 1
36 +
37 else:
38 - if "--buildpkgonly" in myopts:
39 - graph_copy = mydepgraph._dynamic_config.digraph.copy()
40 - removed_nodes = set()
41 - for node in graph_copy:
42 - if not isinstance(node, Package) or \
43 - node.operation == "nomerge":
44 - removed_nodes.add(node)
45 - graph_copy.difference_update(removed_nodes)
46 - if not graph_copy.hasallzeros(ignore_priority = \
47 - DepPrioritySatisfiedRange.ignore_medium):
48 - print("\n!!! --buildpkgonly requires all dependencies to be merged.")
49 - print("!!! Cannot merge requested packages. Merge deps and try again.\n")
50 - return 1
51
52 if not mergelist_shown:
53 # If we haven't already shown the merge list above, at
54
55 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
56 index 99b96bf..7929a78 100644
57 --- a/pym/_emerge/depgraph.py
58 +++ b/pym/_emerge/depgraph.py
59 @@ -424,6 +424,7 @@ class _dynamic_depgraph_config(object):
60 self._skip_restart = False
61 self._backtrack_infos = {}
62
63 + self._buildpkgonly_deps_unsatisfied = False
64 self._autounmask = depgraph._frozen_config.myopts.get('--autounmask') != 'n'
65 self._success_without_autounmask = False
66 self._traverse_ignored_deps = False
67 @@ -3175,6 +3176,21 @@ class depgraph(object):
68 # want_restart_for_use_change triggers this
69 return False, myfavorites
70
71 + if "--fetchonly" not in self._frozen_config.myopts and \
72 + "--buildpkgonly" in self._frozen_config.myopts:
73 + graph_copy = self._dynamic_config.digraph.copy()
74 + removed_nodes = set()
75 + for node in graph_copy:
76 + if not isinstance(node, Package) or \
77 + node.operation == "nomerge":
78 + removed_nodes.add(node)
79 + graph_copy.difference_update(removed_nodes)
80 + if not graph_copy.hasallzeros(ignore_priority = \
81 + DepPrioritySatisfiedRange.ignore_medium):
82 + self._dynamic_config._buildpkgonly_deps_unsatisfied = True
83 + self._dynamic_config._skip_restart = True
84 + return False, myfavorites
85 +
86 # Any failures except those due to autounmask *alone* should return
87 # before this point, since the success_without_autounmask flag that's
88 # set below is reserved for cases where there are *zero* other
89 @@ -7239,6 +7255,13 @@ class depgraph(object):
90 self._show_unsatisfied_dep(*pargs,
91 **portage._native_kwargs(kwargs))
92
93 + if self._dynamic_config._buildpkgonly_deps_unsatisfied:
94 + self._show_merge_list()
95 + writemsg("\n!!! --buildpkgonly requires all "
96 + "dependencies to be merged.\n", noiselevel=-1)
97 + writemsg("!!! Cannot merge requested packages. "
98 + "Merge deps and try again.\n\n", noiselevel=-1)
99 +
100 def saveNomergeFavorites(self):
101 """Find atoms in favorites that are not in the mergelist and add them
102 to the world file if necessary."""