1 |
Signed-off-by: Matt Turner <mattst88@g.o> |
2 |
--- |
3 |
bin/eapi.sh | 32 ---- |
4 |
bin/ebuild.sh | 9 - |
5 |
bin/phase-helpers.sh | 166 ------------------ |
6 |
bin/portageq | 5 +- |
7 |
bin/save-ebuild-env.sh | 7 - |
8 |
lib/_emerge/EbuildMetadataPhase.py | 17 -- |
9 |
lib/_emerge/Package.py | 15 +- |
10 |
lib/portage/dep/__init__.py | 138 +++------------ |
11 |
lib/portage/eapi.py | 29 +-- |
12 |
.../package/ebuild/_config/UseManager.py | 3 +- |
13 |
.../ebuild/_config/unpack_dependencies.py | 55 ------ |
14 |
.../package/ebuild/_ipc/QueryCommand.py | 6 +- |
15 |
lib/portage/package/ebuild/config.py | 8 - |
16 |
lib/portage/package/ebuild/doebuild.py | 9 - |
17 |
lib/portage/repository/config.py | 4 - |
18 |
.../tests/resolver/ResolverPlayground.py | 1 - |
19 |
lib/portage/versions.py | 66 ++----- |
20 |
17 files changed, 50 insertions(+), 520 deletions(-) |
21 |
delete mode 100644 lib/portage/package/ebuild/_config/unpack_dependencies.py |
22 |
|
23 |
diff --git a/bin/eapi.sh b/bin/eapi.sh |
24 |
index b6d2e07f1..a39513b1c 100644 |
25 |
--- a/bin/eapi.sh |
26 |
+++ b/bin/eapi.sh |
27 |
@@ -144,34 +144,6 @@ ___eapi_has_useq() { |
28 |
[[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5|6|7)$ ]] |
29 |
} |
30 |
|
31 |
-___eapi_has_master_repositories() { |
32 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
33 |
-} |
34 |
- |
35 |
-___eapi_has_repository_path() { |
36 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
37 |
-} |
38 |
- |
39 |
-___eapi_has_available_eclasses() { |
40 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
41 |
-} |
42 |
- |
43 |
-___eapi_has_eclass_path() { |
44 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
45 |
-} |
46 |
- |
47 |
-___eapi_has_license_path() { |
48 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
49 |
-} |
50 |
- |
51 |
-___eapi_has_package_manager_build_user() { |
52 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
53 |
-} |
54 |
- |
55 |
-___eapi_has_package_manager_build_group() { |
56 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
57 |
-} |
58 |
- |
59 |
# HELPERS BEHAVIOR |
60 |
|
61 |
___eapi_best_version_and_has_version_support_--host-root() { |
62 |
@@ -296,10 +268,6 @@ ___eapi_enables_failglob_in_global_scope() { |
63 |
[[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5)$ ]] |
64 |
} |
65 |
|
66 |
-___eapi_enables_globstar() { |
67 |
- [[ ${1-${EAPI-0}} =~ ^$ ]] |
68 |
-} |
69 |
- |
70 |
___eapi_bash_3_2() { |
71 |
[[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5)$ ]] |
72 |
} |
73 |
diff --git a/bin/ebuild.sh b/bin/ebuild.sh |
74 |
index 5b0b79585..628d7eb80 100755 |
75 |
--- a/bin/ebuild.sh |
76 |
+++ b/bin/ebuild.sh |
77 |
@@ -73,11 +73,6 @@ else |
78 |
# These functions die because calls to them during the "depend" phase |
79 |
# are considered to be severe QA violations. |
80 |
funcs+=" best_version has_version portageq" |
81 |
- ___eapi_has_master_repositories && funcs+=" master_repositories" |
82 |
- ___eapi_has_repository_path && funcs+=" repository_path" |
83 |
- ___eapi_has_available_eclasses && funcs+=" available_eclasses" |
84 |
- ___eapi_has_eclass_path && funcs+=" eclass_path" |
85 |
- ___eapi_has_license_path && funcs+=" license_path" |
86 |
for x in ${funcs} ; do |
87 |
eval "${x}() { die \"\${FUNCNAME}() calls are not allowed in global scope\"; }" |
88 |
done |
89 |
@@ -573,10 +568,6 @@ if ! has "$EBUILD_PHASE" clean cleanrm depend && \ |
90 |
[[ -n $EAPI ]] || EAPI=0 |
91 |
fi |
92 |
|
93 |
-if ___eapi_enables_globstar; then |
94 |
- shopt -s globstar |
95 |
-fi |
96 |
- |
97 |
# Convert quoted paths to array. |
98 |
eval "PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})" |
99 |
|
100 |
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh |
101 |
index a6aaa7926..0a3bc5cb7 100644 |
102 |
--- a/bin/phase-helpers.sh |
103 |
+++ b/bin/phase-helpers.sh |
104 |
@@ -1210,169 +1210,3 @@ if ___eapi_has_in_iuse; then |
105 |
has "${use}" "${liuse[@]#[+-]}" |
106 |
} |
107 |
fi |
108 |
- |
109 |
-if ___eapi_has_master_repositories; then |
110 |
- master_repositories() { |
111 |
- local output repository=$1 retval |
112 |
- shift |
113 |
- [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*" |
114 |
- |
115 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
116 |
- "${PORTAGE_BIN_PATH}/ebuild-ipc" master_repositories "${EROOT}" "${repository}" |
117 |
- else |
118 |
- output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" master_repositories "${EROOT}" "${repository}") |
119 |
- fi |
120 |
- retval=$? |
121 |
- [[ -n ${output} ]] && echo "${output}" |
122 |
- case "${retval}" in |
123 |
- 0|1) |
124 |
- return ${retval} |
125 |
- ;; |
126 |
- 2) |
127 |
- die "${FUNCNAME[0]}: invalid repository: ${repository}" |
128 |
- ;; |
129 |
- *) |
130 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
131 |
- die "${FUNCNAME[0]}: unexpected ebuild-ipc exit code: ${retval}" |
132 |
- else |
133 |
- die "${FUNCNAME[0]}: unexpected portageq exit code: ${retval}" |
134 |
- fi |
135 |
- ;; |
136 |
- esac |
137 |
- } |
138 |
-fi |
139 |
- |
140 |
-if ___eapi_has_repository_path; then |
141 |
- repository_path() { |
142 |
- local output repository=$1 retval |
143 |
- shift |
144 |
- [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*" |
145 |
- |
146 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
147 |
- "${PORTAGE_BIN_PATH}/ebuild-ipc" repository_path "${EROOT}" "${repository}" |
148 |
- else |
149 |
- output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" get_repo_path "${EROOT}" "${repository}") |
150 |
- fi |
151 |
- retval=$? |
152 |
- [[ -n ${output} ]] && echo "${output}" |
153 |
- case "${retval}" in |
154 |
- 0|1) |
155 |
- return ${retval} |
156 |
- ;; |
157 |
- 2) |
158 |
- die "${FUNCNAME[0]}: invalid repository: ${repository}" |
159 |
- ;; |
160 |
- *) |
161 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
162 |
- die "${FUNCNAME[0]}: unexpected ebuild-ipc exit code: ${retval}" |
163 |
- else |
164 |
- die "${FUNCNAME[0]}: unexpected portageq exit code: ${retval}" |
165 |
- fi |
166 |
- ;; |
167 |
- esac |
168 |
- } |
169 |
-fi |
170 |
- |
171 |
-if ___eapi_has_available_eclasses; then |
172 |
- available_eclasses() { |
173 |
- local output repository=${PORTAGE_REPO_NAME} retval |
174 |
- [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*" |
175 |
- |
176 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
177 |
- "${PORTAGE_BIN_PATH}/ebuild-ipc" available_eclasses "${EROOT}" "${repository}" |
178 |
- else |
179 |
- output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" available_eclasses "${EROOT}" "${repository}") |
180 |
- fi |
181 |
- retval=$? |
182 |
- [[ -n ${output} ]] && echo "${output}" |
183 |
- case "${retval}" in |
184 |
- 0|1) |
185 |
- return ${retval} |
186 |
- ;; |
187 |
- 2) |
188 |
- die "${FUNCNAME[0]}: invalid repository: ${repository}" |
189 |
- ;; |
190 |
- *) |
191 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
192 |
- die "${FUNCNAME[0]}: unexpected ebuild-ipc exit code: ${retval}" |
193 |
- else |
194 |
- die "${FUNCNAME[0]}: unexpected portageq exit code: ${retval}" |
195 |
- fi |
196 |
- ;; |
197 |
- esac |
198 |
- } |
199 |
-fi |
200 |
- |
201 |
-if ___eapi_has_eclass_path; then |
202 |
- eclass_path() { |
203 |
- local eclass=$1 output repository=${PORTAGE_REPO_NAME} retval |
204 |
- shift |
205 |
- [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*" |
206 |
- |
207 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
208 |
- "${PORTAGE_BIN_PATH}/ebuild-ipc" eclass_path "${EROOT}" "${repository}" "${eclass}" |
209 |
- else |
210 |
- output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" eclass_path "${EROOT}" "${repository}" "${eclass}") |
211 |
- fi |
212 |
- retval=$? |
213 |
- [[ -n ${output} ]] && echo "${output}" |
214 |
- case "${retval}" in |
215 |
- 0|1) |
216 |
- return ${retval} |
217 |
- ;; |
218 |
- 2) |
219 |
- die "${FUNCNAME[0]}: invalid repository: ${repository}" |
220 |
- ;; |
221 |
- *) |
222 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
223 |
- die "${FUNCNAME[0]}: unexpected ebuild-ipc exit code: ${retval}" |
224 |
- else |
225 |
- die "${FUNCNAME[0]}: unexpected portageq exit code: ${retval}" |
226 |
- fi |
227 |
- ;; |
228 |
- esac |
229 |
- } |
230 |
-fi |
231 |
- |
232 |
-if ___eapi_has_license_path; then |
233 |
- license_path() { |
234 |
- local license=$1 output repository=${PORTAGE_REPO_NAME} retval |
235 |
- shift |
236 |
- [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*" |
237 |
- |
238 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
239 |
- "${PORTAGE_BIN_PATH}/ebuild-ipc" license_path "${EROOT}" "${repository}" "${license}" |
240 |
- else |
241 |
- output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" license_path "${EROOT}" "${repository}" "${license}") |
242 |
- fi |
243 |
- retval=$? |
244 |
- [[ -n ${output} ]] && echo "${output}" |
245 |
- case "${retval}" in |
246 |
- 0|1) |
247 |
- return ${retval} |
248 |
- ;; |
249 |
- 2) |
250 |
- die "${FUNCNAME[0]}: invalid repository: ${repository}" |
251 |
- ;; |
252 |
- *) |
253 |
- if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then |
254 |
- die "${FUNCNAME[0]}: unexpected ebuild-ipc exit code: ${retval}" |
255 |
- else |
256 |
- die "${FUNCNAME[0]}: unexpected portageq exit code: ${retval}" |
257 |
- fi |
258 |
- ;; |
259 |
- esac |
260 |
- } |
261 |
-fi |
262 |
- |
263 |
-if ___eapi_has_package_manager_build_user; then |
264 |
- package_manager_build_user() { |
265 |
- echo "${PORTAGE_BUILD_USER}" |
266 |
- } |
267 |
-fi |
268 |
- |
269 |
-if ___eapi_has_package_manager_build_group; then |
270 |
- package_manager_build_group() { |
271 |
- echo "${PORTAGE_BUILD_GROUP}" |
272 |
- } |
273 |
-fi |
274 |
diff --git a/bin/portageq b/bin/portageq |
275 |
index 8338d4e14..eaf56755b 100755 |
276 |
--- a/bin/portageq |
277 |
+++ b/bin/portageq |
278 |
@@ -55,7 +55,6 @@ import portage |
279 |
|
280 |
portage._internal_caller = True |
281 |
from portage import os |
282 |
-from portage.eapi import eapi_has_repo_deps |
283 |
from portage.util import writemsg, writemsg_stdout |
284 |
|
285 |
portage.proxy.lazyimport.lazyimport( |
286 |
@@ -125,7 +124,7 @@ def has_version(argv): |
287 |
|
288 |
warnings = [] |
289 |
|
290 |
- allow_repo = atom_validate_strict is False or eapi_has_repo_deps(eapi) |
291 |
+ allow_repo = atom_validate_strict is False |
292 |
try: |
293 |
atom = portage.dep.Atom(argv[1], allow_repo=allow_repo) |
294 |
except portage.exception.InvalidAtom: |
295 |
@@ -174,7 +173,7 @@ def best_version(argv): |
296 |
|
297 |
warnings = [] |
298 |
|
299 |
- allow_repo = atom_validate_strict is False or eapi_has_repo_deps(eapi) |
300 |
+ allow_repo = atom_validate_strict is False |
301 |
try: |
302 |
atom = portage.dep.Atom(argv[1], allow_repo=allow_repo) |
303 |
except portage.exception.InvalidAtom: |
304 |
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh |
305 |
index 98808814b..17e4b1b3e 100644 |
306 |
--- a/bin/save-ebuild-env.sh |
307 |
+++ b/bin/save-ebuild-env.sh |
308 |
@@ -81,13 +81,6 @@ __save_ebuild_env() { |
309 |
${QA_INTERCEPTORS} |
310 |
|
311 |
___eapi_has_usex && unset -f usex |
312 |
- ___eapi_has_master_repositories && unset -f master_repositories |
313 |
- ___eapi_has_repository_path && unset -f repository_path |
314 |
- ___eapi_has_available_eclasses && unset -f available_eclasses |
315 |
- ___eapi_has_eclass_path && unset -f eclass_path |
316 |
- ___eapi_has_license_path && unset -f license_path |
317 |
- ___eapi_has_package_manager_build_user && unset -f package_manager_build_user |
318 |
- ___eapi_has_package_manager_build_group && unset -f package_manager_build_group |
319 |
|
320 |
# Clear out the triple underscore namespace as it is reserved by the PM. |
321 |
unset -f $(compgen -A function ___) |
322 |
diff --git a/lib/_emerge/EbuildMetadataPhase.py b/lib/_emerge/EbuildMetadataPhase.py |
323 |
index e85b3f707..4b6add973 100644 |
324 |
--- a/lib/_emerge/EbuildMetadataPhase.py |
325 |
+++ b/lib/_emerge/EbuildMetadataPhase.py |
326 |
@@ -14,8 +14,6 @@ from portage import os |
327 |
from portage import _encodings |
328 |
from portage import _unicode_decode |
329 |
from portage import _unicode_encode |
330 |
-from portage.dep import extract_unpack_dependencies |
331 |
-from portage.eapi import eapi_has_automatic_unpack_dependencies |
332 |
|
333 |
import fcntl |
334 |
import io |
335 |
@@ -216,21 +214,6 @@ class EbuildMetadataPhase(SubProcess): |
336 |
metadata["_eclasses_"] = {} |
337 |
metadata.pop("INHERITED", None) |
338 |
|
339 |
- if eapi_has_automatic_unpack_dependencies(metadata["EAPI"]): |
340 |
- repo = self.portdb.repositories.get_name_for_location( |
341 |
- self.repo_path |
342 |
- ) |
343 |
- unpackers = self.settings.unpack_dependencies.get(repo, {}).get( |
344 |
- metadata["EAPI"], {} |
345 |
- ) |
346 |
- unpack_dependencies = extract_unpack_dependencies( |
347 |
- metadata["SRC_URI"], unpackers |
348 |
- ) |
349 |
- if unpack_dependencies: |
350 |
- metadata["DEPEND"] += ( |
351 |
- " " if metadata["DEPEND"] else "" |
352 |
- ) + unpack_dependencies |
353 |
- |
354 |
# If called by egencache, this cache write is |
355 |
# undesirable when metadata-transfer is disabled. |
356 |
if self.write_auxdb is not False: |
357 |
diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py |
358 |
index cc2cb07e1..7c4997aab 100644 |
359 |
--- a/lib/_emerge/Package.py |
360 |
+++ b/lib/_emerge/Package.py |
361 |
@@ -17,7 +17,7 @@ from portage.dep import ( |
362 |
) |
363 |
from portage.dep.soname.parse import parse_soname_deps |
364 |
from portage.versions import _pkg_str, _unknown_repo |
365 |
-from portage.eapi import _get_eapi_attrs, eapi_has_use_aliases |
366 |
+from portage.eapi import _get_eapi_attrs |
367 |
from portage.exception import InvalidData, InvalidDependString |
368 |
from portage.localization import _ |
369 |
from _emerge.Task import Task |
370 |
@@ -628,9 +628,6 @@ class Package(Task): |
371 |
self._expand_hidden = None |
372 |
self._force = None |
373 |
self._mask = None |
374 |
- if eapi_has_use_aliases(pkg.eapi): |
375 |
- for enabled_flag in enabled_flags: |
376 |
- enabled_flags.extend(pkg.iuse.alias_mapping.get(enabled_flag, [])) |
377 |
self.enabled = frozenset(enabled_flags) |
378 |
if pkg.built: |
379 |
# Use IUSE to validate USE settings for built packages, |
380 |
@@ -756,25 +753,15 @@ class Package(Task): |
381 |
enabled_aliases = [] |
382 |
disabled_aliases = [] |
383 |
other_aliases = [] |
384 |
- aliases_supported = eapi_has_use_aliases(eapi) |
385 |
self.alias_mapping = {} |
386 |
for x in tokens: |
387 |
prefix = x[:1] |
388 |
if prefix == "+": |
389 |
enabled.append(x[1:]) |
390 |
- if aliases_supported: |
391 |
- self.alias_mapping[x[1:]] = aliases.get(x[1:], []) |
392 |
- enabled_aliases.extend(self.alias_mapping[x[1:]]) |
393 |
elif prefix == "-": |
394 |
disabled.append(x[1:]) |
395 |
- if aliases_supported: |
396 |
- self.alias_mapping[x[1:]] = aliases.get(x[1:], []) |
397 |
- disabled_aliases.extend(self.alias_mapping[x[1:]]) |
398 |
else: |
399 |
other.append(x) |
400 |
- if aliases_supported: |
401 |
- self.alias_mapping[x] = aliases.get(x, []) |
402 |
- other_aliases.extend(self.alias_mapping[x]) |
403 |
self.enabled = frozenset(chain(enabled, enabled_aliases)) |
404 |
self.disabled = frozenset(chain(disabled, disabled_aliases)) |
405 |
self.all = frozenset(chain(enabled, disabled, other)) |
406 |
diff --git a/lib/portage/dep/__init__.py b/lib/portage/dep/__init__.py |
407 |
index 3b3577025..1ca0c3b8b 100644 |
408 |
--- a/lib/portage/dep/__init__.py |
409 |
+++ b/lib/portage/dep/__init__.py |
410 |
@@ -106,23 +106,18 @@ def _match_slot(atom, pkg): |
411 |
return False |
412 |
|
413 |
|
414 |
-_atom_re_cache = {} |
415 |
+_atom_re = None |
416 |
|
417 |
|
418 |
def _get_atom_re(eapi_attrs): |
419 |
- cache_key = eapi_attrs.dots_in_PN |
420 |
- atom_re = _atom_re_cache.get(cache_key) |
421 |
- if atom_re is not None: |
422 |
- return atom_re |
423 |
- |
424 |
- if eapi_attrs.dots_in_PN: |
425 |
- cp_re = _cp["dots_allowed_in_PN"] |
426 |
- cpv_re = _cpv["dots_allowed_in_PN"] |
427 |
- else: |
428 |
- cp_re = _cp["dots_disallowed_in_PN"] |
429 |
- cpv_re = _cpv["dots_disallowed_in_PN"] |
430 |
+ global _atom_re |
431 |
+ if _atom_re is not None: |
432 |
+ return _atom_re |
433 |
+ |
434 |
+ cp_re = _cp |
435 |
+ cpv_re = _cpv |
436 |
|
437 |
- atom_re = re.compile( |
438 |
+ _atom_re = re.compile( |
439 |
"^(?P<without_use>(?:" |
440 |
+ "(?P<op>" |
441 |
+ _op |
442 |
@@ -144,26 +139,20 @@ def _get_atom_re(eapi_attrs): |
443 |
+ ")?$", |
444 |
re.VERBOSE | re.UNICODE, |
445 |
) |
446 |
+ return _atom_re |
447 |
|
448 |
- _atom_re_cache[cache_key] = atom_re |
449 |
- return atom_re |
450 |
|
451 |
- |
452 |
-_atom_wildcard_re_cache = {} |
453 |
+_atom_wildcard_re = None |
454 |
|
455 |
|
456 |
def _get_atom_wildcard_re(eapi_attrs): |
457 |
- cache_key = eapi_attrs.dots_in_PN |
458 |
- atom_re = _atom_wildcard_re_cache.get(cache_key) |
459 |
- if atom_re is not None: |
460 |
- return atom_re |
461 |
+ global _atom_wildcard_re |
462 |
+ if _atom_wildcard_re is not None: |
463 |
+ return _atom_wildcard_re |
464 |
|
465 |
- if eapi_attrs.dots_in_PN: |
466 |
- pkg_re = r"[\w+*][\w+.*-]*?" |
467 |
- else: |
468 |
- pkg_re = r"[\w+*][\w+*-]*?" |
469 |
+ pkg_re = r"[\w+*][\w+*-]*?" |
470 |
|
471 |
- atom_re = re.compile( |
472 |
+ _atom_wildcard_re = re.compile( |
473 |
r"((?P<simple>(" |
474 |
+ _extended_cat |
475 |
+ r")/(" |
476 |
@@ -185,12 +174,10 @@ def _get_atom_wildcard_re(eapi_attrs): |
477 |
+ r"))?$", |
478 |
re.UNICODE, |
479 |
) |
480 |
+ return _atom_wildcard_re |
481 |
|
482 |
- _atom_wildcard_re_cache[cache_key] = atom_re |
483 |
- return atom_re |
484 |
|
485 |
- |
486 |
-_usedep_re_cache = {} |
487 |
+_usedep_re = None |
488 |
|
489 |
|
490 |
def _get_usedep_re(eapi_attrs): |
491 |
@@ -201,27 +188,19 @@ def _get_usedep_re(eapi_attrs): |
492 |
@return: A regular expression object that matches valid USE deps for the |
493 |
given eapi. |
494 |
""" |
495 |
- cache_key = eapi_attrs.dots_in_use_flags |
496 |
- usedep_re = _usedep_re_cache.get(cache_key) |
497 |
- if usedep_re is not None: |
498 |
- return usedep_re |
499 |
- |
500 |
- if eapi_attrs.dots_in_use_flags: |
501 |
- _flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@.-]*" |
502 |
- else: |
503 |
- _flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@-]*" |
504 |
+ global _usedep_re |
505 |
+ if _usedep_re is not None: |
506 |
+ return _usedep_re |
507 |
|
508 |
- usedep_re = re.compile( |
509 |
+ _usedep_re = re.compile( |
510 |
r"^(?P<prefix>[!-]?)(?P<flag>" |
511 |
- + _flag_re |
512 |
+ + r"[A-Za-z0-9][A-Za-z0-9+_@-]*" |
513 |
+ r")(?P<default>(\(\+\)|\(\-\))?)(?P<suffix>[?=]?)$" |
514 |
) |
515 |
+ return _usedep_re |
516 |
|
517 |
- _usedep_re_cache[cache_key] = usedep_re |
518 |
- return usedep_re |
519 |
|
520 |
- |
521 |
-_useflag_re_cache = {} |
522 |
+_useflag_re = None |
523 |
|
524 |
|
525 |
def _get_useflag_re(eapi): |
526 |
@@ -234,21 +213,12 @@ def _get_useflag_re(eapi): |
527 |
@return: A regular expression object that matches valid USE flags for the |
528 |
given eapi. |
529 |
""" |
530 |
- eapi_attrs = _get_eapi_attrs(eapi) |
531 |
- cache_key = eapi_attrs.dots_in_use_flags |
532 |
- useflag_re = _useflag_re_cache.get(cache_key) |
533 |
- if useflag_re is not None: |
534 |
- return useflag_re |
535 |
- |
536 |
- if eapi_attrs.dots_in_use_flags: |
537 |
- flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@.-]*" |
538 |
- else: |
539 |
- flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@-]*" |
540 |
- |
541 |
- useflag_re = re.compile(r"^" + flag_re + r"$") |
542 |
+ global _useflag_re |
543 |
+ if _useflag_re is not None: |
544 |
+ return _useflag_re |
545 |
|
546 |
- _useflag_re_cache[cache_key] = useflag_re |
547 |
- return useflag_re |
548 |
+ _useflag_re = re.compile(r"^[A-Za-z0-9][A-Za-z0-9+_@-]*$") |
549 |
+ return _useflag_re |
550 |
|
551 |
|
552 |
def cpvequal(cpv1, cpv2): |
553 |
@@ -3239,53 +3209,3 @@ def extract_affecting_use(mystr, atom, eapi=None): |
554 |
raise InvalidDependString(_("malformed syntax: '%s'") % mystr) |
555 |
|
556 |
return affecting_use |
557 |
- |
558 |
- |
559 |
-def extract_unpack_dependencies(src_uri, unpackers): |
560 |
- """ |
561 |
- Return unpack dependencies string for given SRC_URI string. |
562 |
- |
563 |
- @param src_uri: SRC_URI string |
564 |
- @type src_uri: String |
565 |
- @param unpackers: Dictionary mapping archive suffixes to dependency strings |
566 |
- @type unpackers: Dictionary |
567 |
- @rtype: String |
568 |
- @return: Dependency string specifying packages required to unpack archives. |
569 |
- """ |
570 |
- src_uri = src_uri.split() |
571 |
- |
572 |
- depend = [] |
573 |
- for i in range(len(src_uri)): |
574 |
- if src_uri[i][-1] == "?" or src_uri[i] in ("(", ")"): |
575 |
- depend.append(src_uri[i]) |
576 |
- elif (i + 1 < len(src_uri) and src_uri[i + 1] == "->") or src_uri[i] == "->": |
577 |
- continue |
578 |
- else: |
579 |
- for suffix in sorted(unpackers, key=lambda x: len(x), reverse=True): |
580 |
- suffix = suffix.lower() |
581 |
- if src_uri[i].lower().endswith(suffix): |
582 |
- depend.append(unpackers[suffix]) |
583 |
- break |
584 |
- |
585 |
- while True: |
586 |
- cleaned_depend = depend[:] |
587 |
- for i in range(len(cleaned_depend)): |
588 |
- if cleaned_depend[i] is None: |
589 |
- continue |
590 |
- elif cleaned_depend[i] == "(" and cleaned_depend[i + 1] == ")": |
591 |
- cleaned_depend[i] = None |
592 |
- cleaned_depend[i + 1] = None |
593 |
- elif ( |
594 |
- cleaned_depend[i][-1] == "?" |
595 |
- and cleaned_depend[i + 1] == "(" |
596 |
- and cleaned_depend[i + 2] == ")" |
597 |
- ): |
598 |
- cleaned_depend[i] = None |
599 |
- cleaned_depend[i + 1] = None |
600 |
- cleaned_depend[i + 2] = None |
601 |
- if depend == cleaned_depend: |
602 |
- break |
603 |
- else: |
604 |
- depend = [x for x in cleaned_depend if x is not None] |
605 |
- |
606 |
- return " ".join(depend) |
607 |
diff --git a/lib/portage/eapi.py b/lib/portage/eapi.py |
608 |
index 56d87b7ce..c23d03c9a 100644 |
609 |
--- a/lib/portage/eapi.py |
610 |
+++ b/lib/portage/eapi.py |
611 |
@@ -104,10 +104,6 @@ def eapi_exports_ECLASSDIR(eapi): |
612 |
) |
613 |
|
614 |
|
615 |
-def eapi_exports_REPOSITORY(eapi): |
616 |
- return False |
617 |
- |
618 |
- |
619 |
def eapi_has_pkg_pretend(eapi): |
620 |
return eapi not in ("0", "1", "2", "3") |
621 |
|
622 |
@@ -144,18 +140,6 @@ def eapi_requires_posixish_locale(eapi): |
623 |
) |
624 |
|
625 |
|
626 |
-def eapi_has_repo_deps(eapi): |
627 |
- return False |
628 |
- |
629 |
- |
630 |
-def eapi_allows_dots_in_PN(eapi): |
631 |
- return False |
632 |
- |
633 |
- |
634 |
-def eapi_allows_dots_in_use_flags(eapi): |
635 |
- return False |
636 |
- |
637 |
- |
638 |
def eapi_supports_stable_use_forcing_and_masking(eapi): |
639 |
return eapi not in ("0", "1", "2", "3", "4", "4-slot-abi") |
640 |
|
641 |
@@ -164,14 +148,6 @@ def eapi_allows_directories_on_profile_level_and_repository_level(eapi): |
642 |
return eapi not in ("0", "1", "2", "3", "4", "4-slot-abi", "5", "6") |
643 |
|
644 |
|
645 |
-def eapi_has_use_aliases(eapi): |
646 |
- return False |
647 |
- |
648 |
- |
649 |
-def eapi_has_automatic_unpack_dependencies(eapi): |
650 |
- return False |
651 |
- |
652 |
- |
653 |
def eapi_allows_package_provided(eapi): |
654 |
return eapi in ( |
655 |
"0", |
656 |
@@ -269,7 +245,6 @@ _eapi_attrs = collections.namedtuple( |
657 |
"allows_package_provided " |
658 |
"bdepend " |
659 |
"broot " |
660 |
- "dots_in_PN dots_in_use_flags " |
661 |
"exports_AA " |
662 |
"exports_EBUILD_PHASE_FUNC " |
663 |
"exports_ECLASSDIR " |
664 |
@@ -356,8 +331,6 @@ def _get_eapi_attrs(eapi): |
665 |
), |
666 |
bdepend=(eapi is not None and eapi_has_bdepend.func(eapi)), |
667 |
broot=(eapi is None or eapi_has_broot.func(eapi)), |
668 |
- dots_in_PN=(eapi is None or eapi_allows_dots_in_PN.func(eapi)), |
669 |
- dots_in_use_flags=(eapi is None or eapi_allows_dots_in_use_flags.func(eapi)), |
670 |
empty_groups_always_true=( |
671 |
eapi is not None and eapi_empty_groups_always_true.func(eapi) |
672 |
), |
673 |
@@ -379,7 +352,7 @@ def _get_eapi_attrs(eapi): |
674 |
), |
675 |
posixish_locale=(eapi is not None and eapi_requires_posixish_locale.func(eapi)), |
676 |
prefix=(eapi is None or eapi_supports_prefix.func(eapi)), |
677 |
- repo_deps=(eapi is None or eapi_has_repo_deps.func(eapi)), |
678 |
+ repo_deps=(eapi is None), |
679 |
required_use=(eapi is None or eapi_has_required_use.func(eapi)), |
680 |
required_use_at_most_one_of=( |
681 |
eapi is None or eapi_has_required_use_at_most_one_of.func(eapi) |
682 |
diff --git a/lib/portage/package/ebuild/_config/UseManager.py b/lib/portage/package/ebuild/_config/UseManager.py |
683 |
index a0fb0254a..ea5ba1b42 100644 |
684 |
--- a/lib/portage/package/ebuild/_config/UseManager.py |
685 |
+++ b/lib/portage/package/ebuild/_config/UseManager.py |
686 |
@@ -15,7 +15,6 @@ from portage.dep import ( |
687 |
_repo_separator, |
688 |
) |
689 |
from portage.eapi import ( |
690 |
- eapi_has_use_aliases, |
691 |
eapi_supports_stable_use_forcing_and_masking, |
692 |
) |
693 |
from portage.exception import InvalidAtom |
694 |
@@ -651,7 +650,7 @@ class UseManager: |
695 |
return frozenset(stack_lists(useforce, incremental=True)) |
696 |
|
697 |
def getUseAliases(self, pkg): |
698 |
- if hasattr(pkg, "eapi") and not eapi_has_use_aliases(pkg.eapi): |
699 |
+ if hasattr(pkg, "eapi"): |
700 |
return {} |
701 |
|
702 |
cp = getattr(pkg, "cp", None) |
703 |
diff --git a/lib/portage/package/ebuild/_config/unpack_dependencies.py b/lib/portage/package/ebuild/_config/unpack_dependencies.py |
704 |
deleted file mode 100644 |
705 |
index 58b2fb16e..000000000 |
706 |
--- a/lib/portage/package/ebuild/_config/unpack_dependencies.py |
707 |
+++ /dev/null |
708 |
@@ -1,55 +0,0 @@ |
709 |
-# Copyright 2012 Gentoo Foundation |
710 |
-# Distributed under the terms of the GNU General Public License v2 |
711 |
- |
712 |
-from portage import os, _supported_eapis |
713 |
-from portage.dep import use_reduce |
714 |
-from portage.eapi import eapi_has_automatic_unpack_dependencies |
715 |
-from portage.exception import InvalidDependString |
716 |
-from portage.localization import _ |
717 |
-from portage.util import grabfile, writemsg |
718 |
- |
719 |
- |
720 |
-def load_unpack_dependencies_configuration(repositories): |
721 |
- repo_dict = {} |
722 |
- for repo in repositories.repos_with_profiles(): |
723 |
- for eapi in _supported_eapis: |
724 |
- if eapi_has_automatic_unpack_dependencies(eapi): |
725 |
- file_name = os.path.join( |
726 |
- repo.location, "profiles", "unpack_dependencies", eapi |
727 |
- ) |
728 |
- lines = grabfile(file_name, recursive=True) |
729 |
- for line in lines: |
730 |
- elements = line.split() |
731 |
- suffix = elements[0].lower() |
732 |
- if len(elements) == 1: |
733 |
- writemsg( |
734 |
- _( |
735 |
- "--- Missing unpack dependencies for '%s' suffix in '%s'\n" |
736 |
- ) |
737 |
- % (suffix, file_name) |
738 |
- ) |
739 |
- depend = " ".join(elements[1:]) |
740 |
- try: |
741 |
- use_reduce(depend, eapi=eapi) |
742 |
- except InvalidDependString as e: |
743 |
- writemsg( |
744 |
- _( |
745 |
- "--- Invalid unpack dependencies for '%s' suffix in '%s': '%s'\n" |
746 |
- % (suffix, file_name, e) |
747 |
- ) |
748 |
- ) |
749 |
- else: |
750 |
- repo_dict.setdefault(repo.name, {}).setdefault(eapi, {})[ |
751 |
- suffix |
752 |
- ] = depend |
753 |
- |
754 |
- ret = {} |
755 |
- for repo in repositories.repos_with_profiles(): |
756 |
- for repo_name in [x.name for x in repo.masters] + [repo.name]: |
757 |
- for eapi in repo_dict.get(repo_name, {}): |
758 |
- for suffix, depend in ( |
759 |
- repo_dict.get(repo_name, {}).get(eapi, {}).items() |
760 |
- ): |
761 |
- ret.setdefault(repo.name, {}).setdefault(eapi, {})[suffix] = depend |
762 |
- |
763 |
- return ret |
764 |
diff --git a/lib/portage/package/ebuild/_ipc/QueryCommand.py b/lib/portage/package/ebuild/_ipc/QueryCommand.py |
765 |
index f8f464516..8b8549e3a 100644 |
766 |
--- a/lib/portage/package/ebuild/_ipc/QueryCommand.py |
767 |
+++ b/lib/portage/package/ebuild/_ipc/QueryCommand.py |
768 |
@@ -6,7 +6,6 @@ import io |
769 |
import portage |
770 |
from portage import os |
771 |
from portage.dep import Atom, _repo_name_re |
772 |
-from portage.eapi import eapi_has_repo_deps |
773 |
from portage.elog import messages as elog_messages |
774 |
from portage.exception import InvalidAtom |
775 |
from portage.package.ebuild._ipc.IpcCommand import IpcCommand |
776 |
@@ -59,14 +58,13 @@ class QueryCommand(IpcCommand): |
777 |
vardb = db[root]["vartree"].dbapi |
778 |
|
779 |
if cmd in ("best_version", "has_version"): |
780 |
- allow_repo = eapi_has_repo_deps(eapi) |
781 |
try: |
782 |
- atom = Atom(args[0], allow_repo=allow_repo) |
783 |
+ atom = Atom(args[0]) |
784 |
except InvalidAtom: |
785 |
return ("", "%s: Invalid atom: %s\n" % (cmd, args[0]), 2) |
786 |
|
787 |
try: |
788 |
- atom = Atom(args[0], allow_repo=allow_repo, eapi=eapi) |
789 |
+ atom = Atom(args[0], eapi=eapi) |
790 |
except InvalidAtom as e: |
791 |
warnings.append("QA Notice: %s: %s" % (cmd, e)) |
792 |
|
793 |
diff --git a/lib/portage/package/ebuild/config.py b/lib/portage/package/ebuild/config.py |
794 |
index 99fd2c31e..5d9d5ce48 100644 |
795 |
--- a/lib/portage/package/ebuild/config.py |
796 |
+++ b/lib/portage/package/ebuild/config.py |
797 |
@@ -105,9 +105,6 @@ from portage.package.ebuild._config.helper import ( |
798 |
ordered_by_atom_specificity, |
799 |
prune_incremental, |
800 |
) |
801 |
-from portage.package.ebuild._config.unpack_dependencies import ( |
802 |
- load_unpack_dependencies_configuration, |
803 |
-) |
804 |
|
805 |
|
806 |
_feature_flags_cache = {} |
807 |
@@ -335,7 +332,6 @@ class config: |
808 |
self.profiles = clone.profiles |
809 |
self.packages = clone.packages |
810 |
self.repositories = clone.repositories |
811 |
- self.unpack_dependencies = clone.unpack_dependencies |
812 |
self._default_features_use = clone._default_features_use |
813 |
self._iuse_effective = clone._iuse_effective |
814 |
self._iuse_implicit_match = clone._iuse_implicit_match |
815 |
@@ -730,10 +726,6 @@ class config: |
816 |
x = Atom(x.lstrip("*")) |
817 |
self.prevmaskdict.setdefault(x.cp, []).append(x) |
818 |
|
819 |
- self.unpack_dependencies = load_unpack_dependencies_configuration( |
820 |
- self.repositories |
821 |
- ) |
822 |
- |
823 |
mygcfg = {} |
824 |
if profiles_complex: |
825 |
mygcfg_dlists = [] |
826 |
diff --git a/lib/portage/package/ebuild/doebuild.py b/lib/portage/package/ebuild/doebuild.py |
827 |
index eb719b1ea..2251cdb8d 100644 |
828 |
--- a/lib/portage/package/ebuild/doebuild.py |
829 |
+++ b/lib/portage/package/ebuild/doebuild.py |
830 |
@@ -81,7 +81,6 @@ from portage.eapi import ( |
831 |
eapi_exports_KV, |
832 |
eapi_exports_merge_type, |
833 |
eapi_exports_replace_vars, |
834 |
- eapi_exports_REPOSITORY, |
835 |
eapi_has_required_use, |
836 |
eapi_has_src_prepare_and_src_configure, |
837 |
eapi_has_pkg_pretend, |
838 |
@@ -539,14 +538,6 @@ def doebuild_environment( |
839 |
if not eapi_is_supported(eapi): |
840 |
raise UnsupportedAPIException(mycpv, eapi) |
841 |
|
842 |
- if ( |
843 |
- eapi_exports_REPOSITORY(eapi) |
844 |
- and "PORTAGE_REPO_NAME" in mysettings.configdict["pkg"] |
845 |
- ): |
846 |
- mysettings.configdict["pkg"]["REPOSITORY"] = mysettings.configdict["pkg"][ |
847 |
- "PORTAGE_REPO_NAME" |
848 |
- ] |
849 |
- |
850 |
if mydo != "depend": |
851 |
if hasattr(mydbapi, "getFetchMap") and ( |
852 |
"A" not in mysettings.configdict["pkg"] |
853 |
diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py |
854 |
index 0b591d94f..411ccb110 100644 |
855 |
--- a/lib/portage/repository/config.py |
856 |
+++ b/lib/portage/repository/config.py |
857 |
@@ -14,7 +14,6 @@ from portage.checksum import get_valid_checksum_keys |
858 |
from portage.const import PORTAGE_BASE_PATH, REPO_NAME_LOC, USER_CONFIG_PATH |
859 |
from portage.eapi import ( |
860 |
eapi_allows_directories_on_profile_level_and_repository_level, |
861 |
- eapi_has_repo_deps, |
862 |
) |
863 |
from portage.env.loaders import KeyValuePairFileLoader |
864 |
from portage.util import ( |
865 |
@@ -1285,9 +1284,6 @@ class RepoConfigLoader: |
866 |
def allow_profile_repo_deps( |
867 |
repo: typing.Union[RepoConfig, _profile_node], |
868 |
) -> bool: |
869 |
- if eapi_has_repo_deps(repo.eapi): |
870 |
- return True |
871 |
- |
872 |
if "profile-repo-deps" in repo.profile_formats: |
873 |
return True |
874 |
|
875 |
diff --git a/lib/portage/tests/resolver/ResolverPlayground.py b/lib/portage/tests/resolver/ResolverPlayground.py |
876 |
index 6805ca601..7852d0aaf 100644 |
877 |
--- a/lib/portage/tests/resolver/ResolverPlayground.py |
878 |
+++ b/lib/portage/tests/resolver/ResolverPlayground.py |
879 |
@@ -69,7 +69,6 @@ class ResolverPlayground: |
880 |
"package.use.stable.force", |
881 |
"package.use.stable.mask", |
882 |
"soname.provided", |
883 |
- "unpack_dependencies", |
884 |
"use.aliases", |
885 |
"use.force", |
886 |
"use.mask", |
887 |
diff --git a/lib/portage/versions.py b/lib/portage/versions.py |
888 |
index 086ada555..3d8694a0e 100644 |
889 |
--- a/lib/portage/versions.py |
890 |
+++ b/lib/portage/versions.py |
891 |
@@ -47,48 +47,17 @@ _cat = r"[\w+][\w+.-]*" |
892 |
# 2.1.2 A package name may contain any of the characters [A-Za-z0-9+_-]. |
893 |
# It must not begin with a hyphen, |
894 |
# and must not end in a hyphen followed by one or more digits. |
895 |
-_pkg = { |
896 |
- "dots_disallowed_in_PN": r"[\w+][\w+-]*?", |
897 |
- "dots_allowed_in_PN": r"[\w+][\w+.-]*?", |
898 |
-} |
899 |
+_pkg = r"[\w+][\w+-]*?" |
900 |
|
901 |
_v = r"(\d+)((\.\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\d*)*)" |
902 |
_rev = r"\d+" |
903 |
_vr = _v + "(-r(" + _rev + "))?" |
904 |
|
905 |
-_cp = { |
906 |
- "dots_disallowed_in_PN": "(" |
907 |
- + _cat |
908 |
- + "/" |
909 |
- + _pkg["dots_disallowed_in_PN"] |
910 |
- + "(-" |
911 |
- + _vr |
912 |
- + ")?)", |
913 |
- "dots_allowed_in_PN": "(" |
914 |
- + _cat |
915 |
- + "/" |
916 |
- + _pkg["dots_allowed_in_PN"] |
917 |
- + "(-" |
918 |
- + _vr |
919 |
- + ")?)", |
920 |
-} |
921 |
-_cpv = { |
922 |
- "dots_disallowed_in_PN": "(" + _cp["dots_disallowed_in_PN"] + "-" + _vr + ")", |
923 |
- "dots_allowed_in_PN": "(" + _cp["dots_allowed_in_PN"] + "-" + _vr + ")", |
924 |
-} |
925 |
-_pv = { |
926 |
- "dots_disallowed_in_PN": "(?P<pn>" |
927 |
- + _pkg["dots_disallowed_in_PN"] |
928 |
- + "(?P<pn_inval>-" |
929 |
- + _vr |
930 |
- + ")?)" |
931 |
- + "-(?P<ver>" |
932 |
- + _v |
933 |
- + ")(-r(?P<rev>" |
934 |
- + _rev |
935 |
- + "))?", |
936 |
- "dots_allowed_in_PN": "(?P<pn>" |
937 |
- + _pkg["dots_allowed_in_PN"] |
938 |
+_cp = "(" + _cat + "/" + _pkg + "(-" + _vr + ")?)" |
939 |
+_cpv = "(" + _cp + "-" + _vr + ")" |
940 |
+_pv = ( |
941 |
+ "(?P<pn>" |
942 |
+ + _pkg |
943 |
+ "(?P<pn_inval>-" |
944 |
+ _vr |
945 |
+ ")?)" |
946 |
@@ -96,8 +65,8 @@ _pv = { |
947 |
+ _v |
948 |
+ ")(-r(?P<rev>" |
949 |
+ _rev |
950 |
- + "))?", |
951 |
-} |
952 |
+ + "))?" |
953 |
+) |
954 |
|
955 |
ver_regexp = re.compile("^" + _vr + "$") |
956 |
suffix_regexp = re.compile("^(alpha|beta|rc|pre|p)(\\d*)$") |
957 |
@@ -124,24 +93,17 @@ def _get_slot_re(eapi_attrs): |
958 |
return slot_re |
959 |
|
960 |
|
961 |
-_pv_re_cache = {} |
962 |
+_pv_re = None |
963 |
|
964 |
|
965 |
def _get_pv_re(eapi_attrs): |
966 |
- cache_key = eapi_attrs.dots_in_PN |
967 |
- pv_re = _pv_re_cache.get(cache_key) |
968 |
- if pv_re is not None: |
969 |
- return pv_re |
970 |
- |
971 |
- if eapi_attrs.dots_in_PN: |
972 |
- pv_re = _pv["dots_allowed_in_PN"] |
973 |
- else: |
974 |
- pv_re = _pv["dots_disallowed_in_PN"] |
975 |
+ global _pv_re |
976 |
+ if _pv_re is not None: |
977 |
+ return _pv_re |
978 |
|
979 |
- pv_re = re.compile(r"^" + pv_re + r"$", re.VERBOSE | re.UNICODE) |
980 |
+ _pv_re = re.compile(r"^" + _pv + r"$", re.VERBOSE | re.UNICODE) |
981 |
|
982 |
- _pv_re_cache[cache_key] = pv_re |
983 |
- return pv_re |
984 |
+ return _pv_re |
985 |
|
986 |
|
987 |
def ververify(myver, silent=1): |
988 |
-- |
989 |
2.34.1 |