1 |
Initialize default features USE state, and reset when appropriate, |
2 |
so that the "test" flag state is correct for evaluation of !test? |
3 |
conditionals in RESTRICT. |
4 |
|
5 |
Fixes: 45986341a80c ("Support !test? conditionals in RESTRICT (bug 663278)") |
6 |
--- |
7 |
lib/portage/package/ebuild/config.py | 13 +++++++++++-- |
8 |
1 file changed, 11 insertions(+), 2 deletions(-) |
9 |
|
10 |
diff --git a/lib/portage/package/ebuild/config.py b/lib/portage/package/ebuild/config.py |
11 |
index 3b01095d0..9fbf7e8fc 100644 |
12 |
--- a/lib/portage/package/ebuild/config.py |
13 |
+++ b/lib/portage/package/ebuild/config.py |
14 |
@@ -259,6 +259,7 @@ class config(object): |
15 |
self.packages = clone.packages |
16 |
self.repositories = clone.repositories |
17 |
self.unpack_dependencies = clone.unpack_dependencies |
18 |
+ self._default_features_use = clone._default_features_use |
19 |
self._iuse_effective = clone._iuse_effective |
20 |
self._iuse_implicit_match = clone._iuse_implicit_match |
21 |
self._non_user_variables = clone._non_user_variables |
22 |
@@ -961,6 +962,14 @@ class config(object): |
23 |
|
24 |
# initialize self.features |
25 |
self.regenerate() |
26 |
+ feature_use = [] |
27 |
+ if "test" in self.features: |
28 |
+ feature_use.append("test") |
29 |
+ self.configdict["features"]["USE"] = self._default_features_use = " ".join(feature_use) |
30 |
+ if feature_use: |
31 |
+ # Regenerate USE so that the initial "test" flag state is |
32 |
+ # correct for evaluation of !test? conditionals in RESTRICT. |
33 |
+ self.regenerate() |
34 |
|
35 |
if unprivileged: |
36 |
self.features.add('unprivileged') |
37 |
@@ -1296,7 +1305,7 @@ class config(object): |
38 |
del self._penv[:] |
39 |
self.configdict["pkg"].clear() |
40 |
self.configdict["pkginternal"].clear() |
41 |
- self.configdict["features"].clear() |
42 |
+ self.configdict["features"]["USE"] = self._default_features_use |
43 |
self.configdict["repo"].clear() |
44 |
self.configdict["defaults"]["USE"] = \ |
45 |
" ".join(self.make_defaults_use) |
46 |
@@ -1598,7 +1607,7 @@ class config(object): |
47 |
has_changed = True |
48 |
# Prevent stale features USE from corrupting the evaluation |
49 |
# of USE conditional RESTRICT. |
50 |
- self.configdict["features"]["USE"] = "" |
51 |
+ self.configdict["features"]["USE"] = self._default_features_use |
52 |
|
53 |
self._penv = [] |
54 |
cpdict = self._penvdict.get(cp) |
55 |
-- |
56 |
2.16.4 |