Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10114 - main/trunk/pym/_emerge
Date: Sat, 03 May 2008 01:42:29
Message-Id: E1Js6le-0001XY-NJ@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-05-03 01:42:25 +0000 (Sat, 03 May 2008)
3 New Revision: 10114
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 * Check for masked packages in the --resume merge list and bail
9 out in that case (bug #199408).
10
11 * In depgraph.loadResumeCommand(), create a dependency graph from
12 the resume list. This ensures that the merge list has it's
13 dependencies satisfied. It also enables --tree display together
14 with --resume.
15
16
17 Modified: main/trunk/pym/_emerge/__init__.py
18 ===================================================================
19 --- main/trunk/pym/_emerge/__init__.py 2008-05-02 22:33:31 UTC (rev 10113)
20 +++ main/trunk/pym/_emerge/__init__.py 2008-05-03 01:42:25 UTC (rev 10114)
21 @@ -4724,6 +4724,9 @@
22 """
23 self._sets["args"].update(resume_data.get("favorites", []))
24 mergelist = resume_data.get("mergelist", [])
25 + favorites = resume_data.get("favorites")
26 + if not isinstance(favorites, list):
27 + favorites = []
28
29 if mergelist and "--skipfirst" in self.myopts:
30 for i, task in enumerate(mergelist):
31 @@ -4763,11 +4766,51 @@
32 operation=action, root=myroot,
33 type_name=pkg_type)
34 self._pkg_cache[pkg] = pkg
35 +
36 + root_config = self.roots[pkg.root]
37 + if "merge" == pkg.operation and \
38 + not visible(root_config.settings, pkg):
39 + self._unsatisfied_deps_for_display.append(
40 + ((pkg.root, "="+pkg.cpv), {"myparent":None}))
41 +
42 fakedb[myroot].cpv_inject(pkg)
43 serialized_tasks.append(pkg)
44 self.spinner.update()
45 - self._serialized_tasks_cache = serialized_tasks
46
47 + if self._unsatisfied_deps_for_display:
48 + return False
49 +
50 + if not serialized_tasks or "--nodeps" in self.myopts:
51 + self._serialized_tasks_cache = serialized_tasks
52 + else:
53 + favorites_set = InternalPackageSet(atom for atom in favorites \
54 + if isinstance(atom, basestring) and portage.isvalidatom(atom))
55 + for node in serialized_tasks:
56 + if isinstance(node, Package) and \
57 + node.operation == "merge" and \
58 + favorites_set.findAtomForPackage(node.cpv, node.metadata):
59 + self._set_nodes.add(node)
60 +
61 + self._select_package = self._select_pkg_from_graph
62 + for task in serialized_tasks:
63 + if isinstance(task, Package) and \
64 + task.operation == "merge":
65 + self._add_pkg(task, None)
66 + if not self._create_graph():
67 + return False
68 + self._serialized_tasks_cache = None
69 + try:
70 + self.altlist()
71 + except self._unknown_internal_error:
72 + return False
73 +
74 + for node in self.digraph.root_nodes():
75 + if isinstance(node, Package) and \
76 + node.operation == "merge":
77 + # Give hint to the --tree display.
78 + self._set_nodes.add(node)
79 + return True
80 +
81 class _internal_exception(portage.exception.PortageException):
82 def __init__(self, value=""):
83 portage.exception.PortageException.__init__(self, value)
84 @@ -5157,7 +5200,7 @@
85
86 mymergelist = mylist
87 myfeat = self.settings.features[:]
88 - bad_resume_opts = set(["--ask", "--tree", "--changelog", "--skipfirst",
89 + bad_resume_opts = set(["--ask", "--changelog", "--skipfirst",
90 "--resume"])
91 if "parallel-fetch" in myfeat and \
92 not ("--pretend" in self.myopts or \
93 @@ -7606,8 +7649,9 @@
94 myparams = create_depgraph_params(myopts, myaction)
95 mydepgraph = depgraph(settings, trees,
96 myopts, myparams, spinner)
97 + success = False
98 try:
99 - mydepgraph.loadResumeCommand(mtimedb["resume"])
100 + success = mydepgraph.loadResumeCommand(mtimedb["resume"])
101 except portage.exception.PackageNotFound:
102 if show_spinner:
103 print
104 @@ -7617,14 +7661,19 @@
105 out.eerror(" available to be emerged. Please restart/continue")
106 out.eerror(" the merge operation manually.")
107
108 + if show_spinner:
109 + print "\b\b... done!"
110 +
111 + if not success:
112 + mydepgraph.display_problems()
113 +
114 # delete the current list and also the backup
115 # since it's probably stale too.
116 for k in ("resume", "resume_backup"):
117 mtimedb.pop(k, None)
118 mtimedb.commit()
119 +
120 return 1
121 - if show_spinner:
122 - print "\b\b... done!"
123 else:
124 if ("--resume" in myopts):
125 print darkgreen("emerge: It seems we have nothing to resume...")
126 @@ -7660,7 +7709,9 @@
127 print colorize("INFORM", "emerge: It seems we have nothing to resume...")
128 return os.EX_OK
129 favorites = mtimedb["resume"]["favorites"]
130 - retval = mydepgraph.display(mymergelist, favorites=favorites)
131 + retval = mydepgraph.display(
132 + mydepgraph.altlist(reversed=tree),
133 + favorites=favorites)
134 if retval != os.EX_OK:
135 return retval
136 prompt="Would you like to resume merging these packages?"
137 @@ -7716,7 +7767,9 @@
138 print colorize("INFORM", "emerge: It seems we have nothing to resume...")
139 return os.EX_OK
140 favorites = mtimedb["resume"]["favorites"]
141 - retval = mydepgraph.display(mymergelist, favorites=favorites)
142 + retval = mydepgraph.display(
143 + mydepgraph.altlist(reversed=tree),
144 + favorites=favorites)
145 if retval != os.EX_OK:
146 return retval
147 else:
148 @@ -8297,11 +8350,6 @@
149 import portage.debug
150 portage.debug.set_trace(True)
151
152 - if ("--resume" in myopts):
153 - if "--tree" in myopts:
154 - print "* --tree is currently broken with --resume. Disabling..."
155 - del myopts["--tree"]
156 -
157 if not ("--quiet" in myopts):
158 if not sys.stdout.isatty() or ("--nospinner" in myopts):
159 spinner.update = spinner.update_basic
160
161 --
162 gentoo-commits@l.g.o mailing list