1 |
Author: zmedico |
2 |
Date: 2008-06-01 01:41:04 +0000 (Sun, 01 Jun 2008) |
3 |
New Revision: 10527 |
4 |
|
5 |
Modified: |
6 |
main/branches/2.1.2/bin/emerge |
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 |
(trunk r10526) |
11 |
|
12 |
|
13 |
Modified: main/branches/2.1.2/bin/emerge |
14 |
=================================================================== |
15 |
--- main/branches/2.1.2/bin/emerge 2008-06-01 01:37:34 UTC (rev 10526) |
16 |
+++ main/branches/2.1.2/bin/emerge 2008-06-01 01:41:04 UTC (rev 10527) |
17 |
@@ -5362,9 +5362,18 @@ |
18 |
if not isinstance(mergelist, list): |
19 |
mergelist = [] |
20 |
|
21 |
+ favorites = resume_data.get("favorites") |
22 |
+ args_set = self._sets["args"] |
23 |
+ if isinstance(favorites, list): |
24 |
+ args = self._load_favorites(favorites) |
25 |
+ else: |
26 |
+ args = [] |
27 |
+ |
28 |
+ skipfirst = "--skipfirst" in self.myopts |
29 |
fakedb = self.mydbapi |
30 |
trees = self.trees |
31 |
serialized_tasks = [] |
32 |
+ masked_tasks = [] |
33 |
for x in mergelist: |
34 |
if not (isinstance(x, list) and len(x) == 4): |
35 |
continue |
36 |
@@ -5398,8 +5407,13 @@ |
37 |
root_config = self.roots[pkg.root] |
38 |
if "merge" == pkg.operation and \ |
39 |
not visible(root_config.settings, pkg): |
40 |
- self._unsatisfied_deps_for_display.append( |
41 |
- ((pkg.root, "="+pkg.cpv), {"myparent":None})) |
42 |
+ if skipfirst: |
43 |
+ atom = args_set.findAtomForPackage(pkg) |
44 |
+ masked_tasks.append(Dependency(atom=atom, |
45 |
+ root=pkg.root, parent=pkg)) |
46 |
+ else: |
47 |
+ self._unsatisfied_deps_for_display.append( |
48 |
+ ((pkg.root, "="+pkg.cpv), {"myparent":None})) |
49 |
|
50 |
fakedb[myroot].cpv_inject(pkg) |
51 |
serialized_tasks.append(pkg) |
52 |
@@ -5414,12 +5428,6 @@ |
53 |
self._select_package = self._select_pkg_from_graph |
54 |
self.myparams.add("selective") |
55 |
|
56 |
- favorites = resume_data.get("favorites") |
57 |
- if isinstance(favorites, list): |
58 |
- args = self._load_favorites(favorites) |
59 |
- else: |
60 |
- args = [] |
61 |
- |
62 |
for task in serialized_tasks: |
63 |
if isinstance(task, Package) and \ |
64 |
task.operation == "merge": |
65 |
@@ -5443,13 +5451,13 @@ |
66 |
# masked. |
67 |
if not self._create_graph(allow_unsatisfied=True): |
68 |
return False |
69 |
- if self._unsatisfied_deps: |
70 |
+ if masked_tasks or self._unsatisfied_deps: |
71 |
# This probably means that a required package |
72 |
# was dropped via --skipfirst. It makes the |
73 |
# resume list invalid, so convert it to a |
74 |
# UnsatisfiedResumeDep exception. |
75 |
raise self.UnsatisfiedResumeDep( |
76 |
- self._unsatisfied_deps) |
77 |
+ masked_tasks + self._unsatisfied_deps) |
78 |
self._serialized_tasks_cache = None |
79 |
try: |
80 |
self.altlist() |
81 |
|
82 |
-- |
83 |
gentoo-commits@l.g.o mailing list |