1 |
Author: zmedico |
2 |
Date: 2008-03-28 11:30:25 +0000 (Fri, 28 Mar 2008) |
3 |
New Revision: 9542 |
4 |
|
5 |
Modified: |
6 |
main/branches/2.1.2/pym/portage.py |
7 |
Log: |
8 |
Bug #200385 - Stack use flags from package.*use* files for multiple |
9 |
matching atoms. (trunk r9408 and r9409:9415) |
10 |
|
11 |
|
12 |
Modified: main/branches/2.1.2/pym/portage.py |
13 |
=================================================================== |
14 |
--- main/branches/2.1.2/pym/portage.py 2008-03-28 11:16:33 UTC (rev 9541) |
15 |
+++ main/branches/2.1.2/pym/portage.py 2008-03-28 11:30:25 UTC (rev 9542) |
16 |
@@ -1899,37 +1899,64 @@ |
17 |
self.configdict["pkginternal"]["USE"] = pkginternaluse |
18 |
has_changed = True |
19 |
defaults = [] |
20 |
+ pos = 0 |
21 |
for i in xrange(len(self.profiles)): |
22 |
- defaults.append(self.make_defaults_use[i]) |
23 |
cpdict = self.pkgprofileuse[i].get(cp, None) |
24 |
if cpdict: |
25 |
- best_match = best_match_to_list(cpv_slot, cpdict.keys()) |
26 |
- if best_match: |
27 |
- defaults.append(cpdict[best_match]) |
28 |
+ keys = cpdict.keys() |
29 |
+ while keys: |
30 |
+ bestmatch = best_match_to_list(cpv_slot, keys) |
31 |
+ if bestmatch: |
32 |
+ keys.remove(bestmatch) |
33 |
+ defaults.insert(pos, cpdict[bestmatch]) |
34 |
+ else: |
35 |
+ break |
36 |
+ del keys |
37 |
+ if self.make_defaults_use[i]: |
38 |
+ defaults.insert(pos, self.make_defaults_use[i]) |
39 |
+ pos = len(defaults) |
40 |
defaults = " ".join(defaults) |
41 |
if defaults != self.configdict["defaults"].get("USE",""): |
42 |
self.configdict["defaults"]["USE"] = defaults |
43 |
has_changed = True |
44 |
useforce = [] |
45 |
+ pos = 0 |
46 |
for i in xrange(len(self.profiles)): |
47 |
- useforce.append(self.useforce_list[i]) |
48 |
cpdict = self.puseforce_list[i].get(cp, None) |
49 |
if cpdict: |
50 |
- best_match = best_match_to_list(cpv_slot, cpdict.keys()) |
51 |
- if best_match: |
52 |
- useforce.append(cpdict[best_match]) |
53 |
+ keys = cpdict.keys() |
54 |
+ while keys: |
55 |
+ best_match = best_match_to_list(cpv_slot, keys) |
56 |
+ if best_match: |
57 |
+ keys.remove(best_match) |
58 |
+ useforce.insert(pos, cpdict[best_match]) |
59 |
+ else: |
60 |
+ break |
61 |
+ del keys |
62 |
+ if self.useforce_list[i]: |
63 |
+ useforce.insert(pos, self.useforce_list[i]) |
64 |
+ pos = len(useforce) |
65 |
useforce = set(stack_lists(useforce, incremental=True)) |
66 |
if useforce != self.useforce: |
67 |
self.useforce = useforce |
68 |
has_changed = True |
69 |
usemask = [] |
70 |
+ pos = 0 |
71 |
for i in xrange(len(self.profiles)): |
72 |
- usemask.append(self.usemask_list[i]) |
73 |
cpdict = self.pusemask_list[i].get(cp, None) |
74 |
if cpdict: |
75 |
- best_match = best_match_to_list(cpv_slot, cpdict.keys()) |
76 |
- if best_match: |
77 |
- usemask.append(cpdict[best_match]) |
78 |
+ keys = cpdict.keys() |
79 |
+ while keys: |
80 |
+ best_match = best_match_to_list(cpv_slot, keys) |
81 |
+ if best_match: |
82 |
+ keys.remove(best_match) |
83 |
+ usemask.insert(pos, cpdict[best_match]) |
84 |
+ else: |
85 |
+ break |
86 |
+ del keys |
87 |
+ if self.usemask_list[i]: |
88 |
+ usemask.insert(pos, self.usemask_list[i]) |
89 |
+ pos = len(usemask) |
90 |
usemask = set(stack_lists(usemask, incremental=True)) |
91 |
if usemask != self.usemask: |
92 |
self.usemask = usemask |
93 |
@@ -1938,9 +1965,15 @@ |
94 |
self.puse = "" |
95 |
cpdict = self.pusedict.get(cp) |
96 |
if cpdict: |
97 |
- self.pusekey = best_match_to_list(cpv_slot, cpdict.keys()) |
98 |
- if self.pusekey: |
99 |
- self.puse = " ".join(cpdict[self.pusekey]) |
100 |
+ keys = cpdict.keys() |
101 |
+ while keys: |
102 |
+ self.pusekey = best_match_to_list(cpv_slot, keys) |
103 |
+ if self.pusekey: |
104 |
+ keys.remove(self.pusekey) |
105 |
+ self.puse = (" ".join(cpdict[self.pusekey])) + " " + self.puse |
106 |
+ else: |
107 |
+ break |
108 |
+ del keys |
109 |
if oldpuse != self.puse: |
110 |
has_changed = True |
111 |
self.configdict["pkg"]["PKGUSE"] = self.puse[:] # For saving to PUSE file |
112 |
|
113 |
-- |
114 |
gentoo-commits@l.g.o mailing list |