1 |
Author: zmedico |
2 |
Date: 2008-06-01 01:37:34 +0000 (Sun, 01 Jun 2008) |
3 |
New Revision: 10526 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Make --skipfirst tolerate masked packages by dropping them (similar to |
9 |
how it would drop a package that has an unsatisfied dependency). |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-01 01:27:21 UTC (rev 10525) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-01 01:37:34 UTC (rev 10526) |
16 |
@@ -5269,9 +5269,18 @@ |
17 |
if not isinstance(mergelist, list): |
18 |
mergelist = [] |
19 |
|
20 |
+ favorites = resume_data.get("favorites") |
21 |
+ args_set = self._sets["args"] |
22 |
+ if isinstance(favorites, list): |
23 |
+ args = self._load_favorites(favorites) |
24 |
+ else: |
25 |
+ args = [] |
26 |
+ |
27 |
+ skipfirst = "--skipfirst" in self.myopts |
28 |
fakedb = self.mydbapi |
29 |
trees = self.trees |
30 |
serialized_tasks = [] |
31 |
+ masked_tasks = [] |
32 |
for x in mergelist: |
33 |
if not (isinstance(x, list) and len(x) == 4): |
34 |
continue |
35 |
@@ -5305,8 +5314,13 @@ |
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 |
+ if skipfirst: |
42 |
+ atom = args_set.findAtomForPackage(pkg) |
43 |
+ masked_tasks.append(Dependency(atom=atom, |
44 |
+ root=pkg.root, parent=pkg)) |
45 |
+ else: |
46 |
+ self._unsatisfied_deps_for_display.append( |
47 |
+ ((pkg.root, "="+pkg.cpv), {"myparent":None})) |
48 |
|
49 |
fakedb[myroot].cpv_inject(pkg) |
50 |
serialized_tasks.append(pkg) |
51 |
@@ -5321,12 +5335,6 @@ |
52 |
self._select_package = self._select_pkg_from_graph |
53 |
self.myparams.add("selective") |
54 |
|
55 |
- favorites = resume_data.get("favorites") |
56 |
- if isinstance(favorites, list): |
57 |
- args = self._load_favorites(favorites) |
58 |
- else: |
59 |
- args = [] |
60 |
- |
61 |
for task in serialized_tasks: |
62 |
if isinstance(task, Package) and \ |
63 |
task.operation == "merge": |
64 |
@@ -5350,13 +5358,13 @@ |
65 |
# masked. |
66 |
if not self._create_graph(allow_unsatisfied=True): |
67 |
return False |
68 |
- if self._unsatisfied_deps: |
69 |
+ if masked_tasks or self._unsatisfied_deps: |
70 |
# This probably means that a required package |
71 |
# was dropped via --skipfirst. It makes the |
72 |
# resume list invalid, so convert it to a |
73 |
# UnsatisfiedResumeDep exception. |
74 |
raise self.UnsatisfiedResumeDep( |
75 |
- self._unsatisfied_deps) |
76 |
+ masked_tasks + self._unsatisfied_deps) |
77 |
self._serialized_tasks_cache = None |
78 |
try: |
79 |
self.altlist() |
80 |
|
81 |
-- |
82 |
gentoo-commits@l.g.o mailing list |