1 |
Observed as a breakage on binutils ebuilds: |
2 |
|
3 |
> ERROR: sys-devel/binutils-2.24-r3::gentoo failed (depend phase): |
4 |
> use() calls are not allowed in global scope |
5 |
> Call stack: |
6 |
> ebuild.sh, line 584: Called source 'binutils-2.24-r3.ebuild, |
7 |
> ebuild.sh, line 7: Called inherit 'toolchain-binutils' |
8 |
> ebuild.sh, line 280: Called __qa_source '/gentoo-32k/gentoo-x86/eclass/toolchain-binutils.e |
9 |
> ebuild.sh, line 80: Called source '/gentoo-32k/gentoo-x86/eclass/toolchain-binutils.eclass |
10 |
> toolchain-binutils.eclass, line 106: Called use 'multislot' |
11 |
> ebuild.sh, line 47: Called die |
12 |
> The specific snippet of code: |
13 |
> # These functions die because calls to them during the "depend" phase |
14 |
|
15 |
Zac confirms it's a safe thing to use ${EAPI-0} here: |
16 |
> ebuild.sh unsets the EAPI just before it sources the ebuild, |
17 |
> and then it does this after it sources the ebuild: |
18 |
> |
19 |
> [ "${EAPI+set}" = set ] || EAPI=0 |
20 |
> |
21 |
> So, for any code that is called while the ebuild is being sourced, using |
22 |
> ${EAPI-0} would be correct. |
23 |
|
24 |
For consistency and defense against future copy/paste errors |
25 |
converted all uses of ${EAPI} for ${EAPI-0} in 'bin/eapi.sh'. |
26 |
|
27 |
Signed-off-by: Sergei Trofimovich <slyfox@g.o> |
28 |
--- |
29 |
bin/eapi.sh | 90 ++++++++++++++++++++++++++++++------------------------------- |
30 |
1 file changed, 45 insertions(+), 45 deletions(-) |
31 |
|
32 |
diff --git a/bin/eapi.sh b/bin/eapi.sh |
33 |
index 7e7b54b..f1c677e 100644 |
34 |
--- a/bin/eapi.sh |
35 |
+++ b/bin/eapi.sh |
36 |
@@ -5,189 +5,189 @@ |
37 |
# PHASES |
38 |
|
39 |
___eapi_has_pkg_pretend() { |
40 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
41 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
42 |
} |
43 |
|
44 |
___eapi_has_src_prepare() { |
45 |
- [[ ! ${1-${EAPI}} =~ ^(0|1)$ ]] |
46 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1)$ ]] |
47 |
} |
48 |
|
49 |
___eapi_has_src_configure() { |
50 |
- [[ ! ${1-${EAPI}} =~ ^(0|1)$ ]] |
51 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1)$ ]] |
52 |
} |
53 |
|
54 |
___eapi_default_src_test_disables_parallel_jobs() { |
55 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
56 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
57 |
} |
58 |
|
59 |
___eapi_has_S_WORKDIR_fallback() { |
60 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
61 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
62 |
} |
63 |
|
64 |
# VARIABLES |
65 |
|
66 |
___eapi_has_prefix_variables() { |
67 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2)$ || " ${FEATURES} " == *" force-prefix "* ]] |
68 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2)$ || " ${FEATURES} " == *" force-prefix "* ]] |
69 |
} |
70 |
|
71 |
___eapi_has_HDEPEND() { |
72 |
- [[ ${1-${EAPI}} =~ ^(5-hdepend)$ ]] |
73 |
+ [[ ${1-${EAPI-0}} =~ ^(5-hdepend)$ ]] |
74 |
} |
75 |
|
76 |
___eapi_has_RDEPEND_DEPEND_fallback() { |
77 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
78 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
79 |
} |
80 |
|
81 |
# HELPERS PRESENCE |
82 |
|
83 |
___eapi_has_dohard() { |
84 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
85 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
86 |
} |
87 |
|
88 |
___eapi_has_dosed() { |
89 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
90 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
91 |
} |
92 |
|
93 |
___eapi_has_einstall() { |
94 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
95 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
96 |
} |
97 |
|
98 |
___eapi_has_dohtml_deprecated() { |
99 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
100 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
101 |
} |
102 |
|
103 |
___eapi_has_docompress() { |
104 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
105 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
106 |
} |
107 |
|
108 |
___eapi_has_nonfatal() { |
109 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
110 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
111 |
} |
112 |
|
113 |
___eapi_has_doheader() { |
114 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
115 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
116 |
} |
117 |
|
118 |
___eapi_has_usex() { |
119 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
120 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
121 |
} |
122 |
|
123 |
___eapi_has_get_libdir() { |
124 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
125 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
126 |
} |
127 |
|
128 |
___eapi_has_einstalldocs() { |
129 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
130 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
131 |
} |
132 |
|
133 |
___eapi_has_eapply() { |
134 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
135 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
136 |
} |
137 |
|
138 |
___eapi_has_eapply_user() { |
139 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
140 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
141 |
} |
142 |
|
143 |
___eapi_has_in_iuse() { |
144 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
145 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
146 |
} |
147 |
|
148 |
___eapi_has_master_repositories() { |
149 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
150 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
151 |
} |
152 |
|
153 |
___eapi_has_repository_path() { |
154 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
155 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
156 |
} |
157 |
|
158 |
___eapi_has_available_eclasses() { |
159 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
160 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
161 |
} |
162 |
|
163 |
___eapi_has_eclass_path() { |
164 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
165 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
166 |
} |
167 |
|
168 |
___eapi_has_license_path() { |
169 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
170 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
171 |
} |
172 |
|
173 |
___eapi_has_package_manager_build_user() { |
174 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
175 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
176 |
} |
177 |
|
178 |
___eapi_has_package_manager_build_group() { |
179 |
- [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] |
180 |
+ [[ ${1-${EAPI-0}} =~ ^(5-progress)$ ]] |
181 |
} |
182 |
|
183 |
# HELPERS BEHAVIOR |
184 |
|
185 |
___eapi_best_version_and_has_version_support_--host-root() { |
186 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
187 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
188 |
} |
189 |
|
190 |
___eapi_unpack_supports_xz() { |
191 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2)$ ]] |
192 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2)$ ]] |
193 |
} |
194 |
|
195 |
___eapi_unpack_supports_txz() { |
196 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
197 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
198 |
} |
199 |
|
200 |
___eapi_econf_passes_--disable-dependency-tracking() { |
201 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
202 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
203 |
} |
204 |
|
205 |
___eapi_econf_passes_--disable-silent-rules() { |
206 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
207 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
208 |
} |
209 |
|
210 |
___eapi_econf_passes_--docdir_and_--htmldir() { |
211 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
212 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
213 |
} |
214 |
|
215 |
___eapi_use_enable_and_use_with_support_empty_third_argument() { |
216 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
217 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
218 |
} |
219 |
|
220 |
___eapi_dodoc_supports_-r() { |
221 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
222 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
223 |
} |
224 |
|
225 |
___eapi_doins_and_newins_preserve_symlinks() { |
226 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
227 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
228 |
} |
229 |
|
230 |
___eapi_newins_supports_reading_from_standard_input() { |
231 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
232 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi)$ ]] |
233 |
} |
234 |
|
235 |
___eapi_helpers_can_die() { |
236 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]] |
237 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]] |
238 |
} |
239 |
|
240 |
___eapi_disallows_helpers_in_global_scope() { |
241 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-slot-abi|5|5-hdepend)$ ]] |
242 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5|5-hdepend)$ ]] |
243 |
} |
244 |
|
245 |
___eapi_unpack_is_case_sensitive() { |
246 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] |
247 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] |
248 |
} |
249 |
|
250 |
___eapi_unpack_supports_absolute_paths() { |
251 |
- [[ ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] |
252 |
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend)$ ]] |
253 |
} |
254 |
|
255 |
___eapi_die_can_respect_nonfatal() { |
256 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
257 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
258 |
} |
259 |
|
260 |
# OTHERS |
261 |
|
262 |
___eapi_enables_failglob_in_global_scope() { |
263 |
- [[ ! ${1-${EAPI}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
264 |
+ [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] |
265 |
} |
266 |
|
267 |
___eapi_enables_globstar() { |
268 |
- [[ ${1-${EAPI}} =~ ^(4-python|5-progress)$ ]] |
269 |
+ [[ ${1-${EAPI-0}} =~ ^(4-python|5-progress)$ ]] |
270 |
} |
271 |
-- |
272 |
2.2.1 |