Signed-off-by: Matt Turner <matts...@gentoo.org>
---
 bin/eapi.sh                                   |  32 ----
 bin/ebuild.sh                                 |   9 -
 bin/phase-helpers.sh                          | 166 ------------------
 bin/portageq                                  |   5 +-
 bin/save-ebuild-env.sh                        |   7 -
 lib/_emerge/EbuildMetadataPhase.py            |  17 --
 lib/_emerge/Package.py                        |  15 +-
 lib/portage/dep/__init__.py                   | 138 +++------------
 lib/portage/eapi.py                           |  29 +--
 .../package/ebuild/_config/UseManager.py      |   3 +-
 .../ebuild/_config/unpack_dependencies.py     |  55 ------
 .../package/ebuild/_ipc/QueryCommand.py       |   6 +-
 lib/portage/package/ebuild/config.py          |   8 -
 lib/portage/package/ebuild/doebuild.py        |   9 -
 lib/portage/repository/config.py              |   4 -
 .../tests/resolver/ResolverPlayground.py      |   1 -
 lib/portage/versions.py                       |  66 ++-----
 17 files changed, 50 insertions(+), 520 deletions(-)
 delete mode 100644 lib/portage/package/ebuild/_config/unpack_dependencies.py

diff --git a/bin/eapi.sh b/bin/eapi.sh
index b6d2e07f1..a39513b1c 100644
--- a/bin/eapi.sh
+++ b/bin/eapi.sh
@@ -144,34 +144,6 @@ ___eapi_has_useq() {
        [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5|6|7)$ ]]
 }
 
-___eapi_has_master_repositories() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_repository_path() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_available_eclasses() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_eclass_path() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_license_path() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_package_manager_build_user() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
-___eapi_has_package_manager_build_group() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
 # HELPERS BEHAVIOR
 
 ___eapi_best_version_and_has_version_support_--host-root() {
@@ -296,10 +268,6 @@ ___eapi_enables_failglob_in_global_scope() {
        [[ ! ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5)$ ]]
 }
 
-___eapi_enables_globstar() {
-       [[ ${1-${EAPI-0}} =~ ^$ ]]
-}
-
 ___eapi_bash_3_2() {
        [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-slot-abi|5)$ ]]
 }
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 5b0b79585..628d7eb80 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -73,11 +73,6 @@ else
        # These functions die because calls to them during the "depend" phase
        # are considered to be severe QA violations.
        funcs+=" best_version has_version portageq"
-       ___eapi_has_master_repositories && funcs+=" master_repositories"
-       ___eapi_has_repository_path && funcs+=" repository_path"
-       ___eapi_has_available_eclasses && funcs+=" available_eclasses"
-       ___eapi_has_eclass_path && funcs+=" eclass_path"
-       ___eapi_has_license_path && funcs+=" license_path"
        for x in ${funcs} ; do
                eval "${x}() { die \"\${FUNCNAME}() calls are not allowed in 
global scope\"; }"
        done
@@ -573,10 +568,6 @@ if ! has "$EBUILD_PHASE" clean cleanrm depend && \
        [[ -n $EAPI ]] || EAPI=0
 fi
 
-if ___eapi_enables_globstar; then
-       shopt -s globstar
-fi
-
 # Convert quoted paths to array.
 eval "PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})"
 
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index a6aaa7926..0a3bc5cb7 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -1210,169 +1210,3 @@ if ___eapi_has_in_iuse; then
                has "${use}" "${liuse[@]#[+-]}"
        }
 fi
-
-if ___eapi_has_master_repositories; then
-       master_repositories() {
-               local output repository=$1 retval
-               shift
-               [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*"
-
-               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                       "${PORTAGE_BIN_PATH}/ebuild-ipc" master_repositories 
"${EROOT}" "${repository}"
-               else
-                       output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" 
master_repositories "${EROOT}" "${repository}")
-               fi
-               retval=$?
-               [[ -n ${output} ]] && echo "${output}"
-               case "${retval}" in
-                       0|1)
-                               return ${retval}
-                               ;;
-                       2)
-                               die "${FUNCNAME[0]}: invalid repository: 
${repository}"
-                               ;;
-                       *)
-                               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                                       die "${FUNCNAME[0]}: unexpected 
ebuild-ipc exit code: ${retval}"
-                               else
-                                       die "${FUNCNAME[0]}: unexpected 
portageq exit code: ${retval}"
-                               fi
-                               ;;
-               esac
-       }
-fi
-
-if ___eapi_has_repository_path; then
-       repository_path() {
-               local output repository=$1 retval
-               shift
-               [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*"
-
-               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                       "${PORTAGE_BIN_PATH}/ebuild-ipc" repository_path 
"${EROOT}" "${repository}"
-               else
-                       output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" 
get_repo_path "${EROOT}" "${repository}")
-               fi
-               retval=$?
-               [[ -n ${output} ]] && echo "${output}"
-               case "${retval}" in
-                       0|1)
-                               return ${retval}
-                               ;;
-                       2)
-                               die "${FUNCNAME[0]}: invalid repository: 
${repository}"
-                               ;;
-                       *)
-                               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                                       die "${FUNCNAME[0]}: unexpected 
ebuild-ipc exit code: ${retval}"
-                               else
-                                       die "${FUNCNAME[0]}: unexpected 
portageq exit code: ${retval}"
-                               fi
-                               ;;
-               esac
-       }
-fi
-
-if ___eapi_has_available_eclasses; then
-       available_eclasses() {
-               local output repository=${PORTAGE_REPO_NAME} retval
-               [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*"
-
-               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                       "${PORTAGE_BIN_PATH}/ebuild-ipc" available_eclasses 
"${EROOT}" "${repository}"
-               else
-                       output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" 
available_eclasses "${EROOT}" "${repository}")
-               fi
-               retval=$?
-               [[ -n ${output} ]] && echo "${output}"
-               case "${retval}" in
-                       0|1)
-                               return ${retval}
-                               ;;
-                       2)
-                               die "${FUNCNAME[0]}: invalid repository: 
${repository}"
-                               ;;
-                       *)
-                               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                                       die "${FUNCNAME[0]}: unexpected 
ebuild-ipc exit code: ${retval}"
-                               else
-                                       die "${FUNCNAME[0]}: unexpected 
portageq exit code: ${retval}"
-                               fi
-                               ;;
-               esac
-       }
-fi
-
-if ___eapi_has_eclass_path; then
-       eclass_path() {
-               local eclass=$1 output repository=${PORTAGE_REPO_NAME} retval
-               shift
-               [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*"
-
-               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                       "${PORTAGE_BIN_PATH}/ebuild-ipc" eclass_path "${EROOT}" 
"${repository}" "${eclass}"
-               else
-                       output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" 
eclass_path "${EROOT}" "${repository}" "${eclass}")
-               fi
-               retval=$?
-               [[ -n ${output} ]] && echo "${output}"
-               case "${retval}" in
-                       0|1)
-                               return ${retval}
-                               ;;
-                       2)
-                               die "${FUNCNAME[0]}: invalid repository: 
${repository}"
-                               ;;
-                       *)
-                               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                                       die "${FUNCNAME[0]}: unexpected 
ebuild-ipc exit code: ${retval}"
-                               else
-                                       die "${FUNCNAME[0]}: unexpected 
portageq exit code: ${retval}"
-                               fi
-                               ;;
-               esac
-       }
-fi
-
-if ___eapi_has_license_path; then
-       license_path() {
-               local license=$1 output repository=${PORTAGE_REPO_NAME} retval
-               shift
-               [[ $# -gt 0 ]] && die "${FUNCNAME[0]}: unused argument(s): $*"
-
-               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                       "${PORTAGE_BIN_PATH}/ebuild-ipc" license_path 
"${EROOT}" "${repository}" "${license}"
-               else
-                       output=$("${PORTAGE_BIN_PATH}/ebuild-helpers/portageq" 
license_path "${EROOT}" "${repository}" "${license}")
-               fi
-               retval=$?
-               [[ -n ${output} ]] && echo "${output}"
-               case "${retval}" in
-                       0|1)
-                               return ${retval}
-                               ;;
-                       2)
-                               die "${FUNCNAME[0]}: invalid repository: 
${repository}"
-                               ;;
-                       *)
-                               if [[ -n ${PORTAGE_IPC_DAEMON} ]]; then
-                                       die "${FUNCNAME[0]}: unexpected 
ebuild-ipc exit code: ${retval}"
-                               else
-                                       die "${FUNCNAME[0]}: unexpected 
portageq exit code: ${retval}"
-                               fi
-                               ;;
-               esac
-       }
-fi
-
-if ___eapi_has_package_manager_build_user; then
-       package_manager_build_user() {
-               echo "${PORTAGE_BUILD_USER}"
-       }
-fi
-
-if ___eapi_has_package_manager_build_group; then
-       package_manager_build_group() {
-               echo "${PORTAGE_BUILD_GROUP}"
-       }
-fi
diff --git a/bin/portageq b/bin/portageq
index 8338d4e14..eaf56755b 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -55,7 +55,6 @@ import portage
 
 portage._internal_caller = True
 from portage import os
-from portage.eapi import eapi_has_repo_deps
 from portage.util import writemsg, writemsg_stdout
 
 portage.proxy.lazyimport.lazyimport(
@@ -125,7 +124,7 @@ def has_version(argv):
 
     warnings = []
 
-    allow_repo = atom_validate_strict is False or eapi_has_repo_deps(eapi)
+    allow_repo = atom_validate_strict is False
     try:
         atom = portage.dep.Atom(argv[1], allow_repo=allow_repo)
     except portage.exception.InvalidAtom:
@@ -174,7 +173,7 @@ def best_version(argv):
 
     warnings = []
 
-    allow_repo = atom_validate_strict is False or eapi_has_repo_deps(eapi)
+    allow_repo = atom_validate_strict is False
     try:
         atom = portage.dep.Atom(argv[1], allow_repo=allow_repo)
     except portage.exception.InvalidAtom:
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 98808814b..17e4b1b3e 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -81,13 +81,6 @@ __save_ebuild_env() {
                ${QA_INTERCEPTORS}
 
        ___eapi_has_usex && unset -f usex
-       ___eapi_has_master_repositories && unset -f master_repositories
-       ___eapi_has_repository_path && unset -f repository_path
-       ___eapi_has_available_eclasses && unset -f available_eclasses
-       ___eapi_has_eclass_path && unset -f eclass_path
-       ___eapi_has_license_path && unset -f license_path
-       ___eapi_has_package_manager_build_user && unset -f 
package_manager_build_user
-       ___eapi_has_package_manager_build_group && unset -f 
package_manager_build_group
 
        # Clear out the triple underscore namespace as it is reserved by the PM.
        unset -f $(compgen -A function ___)
diff --git a/lib/_emerge/EbuildMetadataPhase.py 
b/lib/_emerge/EbuildMetadataPhase.py
index e85b3f707..4b6add973 100644
--- a/lib/_emerge/EbuildMetadataPhase.py
+++ b/lib/_emerge/EbuildMetadataPhase.py
@@ -14,8 +14,6 @@ from portage import os
 from portage import _encodings
 from portage import _unicode_decode
 from portage import _unicode_encode
-from portage.dep import extract_unpack_dependencies
-from portage.eapi import eapi_has_automatic_unpack_dependencies
 
 import fcntl
 import io
@@ -216,21 +214,6 @@ class EbuildMetadataPhase(SubProcess):
                         metadata["_eclasses_"] = {}
                     metadata.pop("INHERITED", None)
 
-                    if 
eapi_has_automatic_unpack_dependencies(metadata["EAPI"]):
-                        repo = self.portdb.repositories.get_name_for_location(
-                            self.repo_path
-                        )
-                        unpackers = 
self.settings.unpack_dependencies.get(repo, {}).get(
-                            metadata["EAPI"], {}
-                        )
-                        unpack_dependencies = extract_unpack_dependencies(
-                            metadata["SRC_URI"], unpackers
-                        )
-                        if unpack_dependencies:
-                            metadata["DEPEND"] += (
-                                " " if metadata["DEPEND"] else ""
-                            ) + unpack_dependencies
-
                     # If called by egencache, this cache write is
                     # undesirable when metadata-transfer is disabled.
                     if self.write_auxdb is not False:
diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py
index cc2cb07e1..7c4997aab 100644
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@ -17,7 +17,7 @@ from portage.dep import (
 )
 from portage.dep.soname.parse import parse_soname_deps
 from portage.versions import _pkg_str, _unknown_repo
-from portage.eapi import _get_eapi_attrs, eapi_has_use_aliases
+from portage.eapi import _get_eapi_attrs
 from portage.exception import InvalidData, InvalidDependString
 from portage.localization import _
 from _emerge.Task import Task
@@ -628,9 +628,6 @@ class Package(Task):
             self._expand_hidden = None
             self._force = None
             self._mask = None
-            if eapi_has_use_aliases(pkg.eapi):
-                for enabled_flag in enabled_flags:
-                    
enabled_flags.extend(pkg.iuse.alias_mapping.get(enabled_flag, []))
             self.enabled = frozenset(enabled_flags)
             if pkg.built:
                 # Use IUSE to validate USE settings for built packages,
@@ -756,25 +753,15 @@ class Package(Task):
             enabled_aliases = []
             disabled_aliases = []
             other_aliases = []
-            aliases_supported = eapi_has_use_aliases(eapi)
             self.alias_mapping = {}
             for x in tokens:
                 prefix = x[:1]
                 if prefix == "+":
                     enabled.append(x[1:])
-                    if aliases_supported:
-                        self.alias_mapping[x[1:]] = aliases.get(x[1:], [])
-                        enabled_aliases.extend(self.alias_mapping[x[1:]])
                 elif prefix == "-":
                     disabled.append(x[1:])
-                    if aliases_supported:
-                        self.alias_mapping[x[1:]] = aliases.get(x[1:], [])
-                        disabled_aliases.extend(self.alias_mapping[x[1:]])
                 else:
                     other.append(x)
-                    if aliases_supported:
-                        self.alias_mapping[x] = aliases.get(x, [])
-                        other_aliases.extend(self.alias_mapping[x])
             self.enabled = frozenset(chain(enabled, enabled_aliases))
             self.disabled = frozenset(chain(disabled, disabled_aliases))
             self.all = frozenset(chain(enabled, disabled, other))
diff --git a/lib/portage/dep/__init__.py b/lib/portage/dep/__init__.py
index 3b3577025..1ca0c3b8b 100644
--- a/lib/portage/dep/__init__.py
+++ b/lib/portage/dep/__init__.py
@@ -106,23 +106,18 @@ def _match_slot(atom, pkg):
     return False
 
 
-_atom_re_cache = {}
+_atom_re = None
 
 
 def _get_atom_re(eapi_attrs):
-    cache_key = eapi_attrs.dots_in_PN
-    atom_re = _atom_re_cache.get(cache_key)
-    if atom_re is not None:
-        return atom_re
-
-    if eapi_attrs.dots_in_PN:
-        cp_re = _cp["dots_allowed_in_PN"]
-        cpv_re = _cpv["dots_allowed_in_PN"]
-    else:
-        cp_re = _cp["dots_disallowed_in_PN"]
-        cpv_re = _cpv["dots_disallowed_in_PN"]
+    global _atom_re
+    if _atom_re is not None:
+        return _atom_re
+
+    cp_re = _cp
+    cpv_re = _cpv
 
-    atom_re = re.compile(
+    _atom_re = re.compile(
         "^(?P<without_use>(?:"
         + "(?P<op>"
         + _op
@@ -144,26 +139,20 @@ def _get_atom_re(eapi_attrs):
         + ")?$",
         re.VERBOSE | re.UNICODE,
     )
+    return _atom_re
 
-    _atom_re_cache[cache_key] = atom_re
-    return atom_re
 
-
-_atom_wildcard_re_cache = {}
+_atom_wildcard_re = None
 
 
 def _get_atom_wildcard_re(eapi_attrs):
-    cache_key = eapi_attrs.dots_in_PN
-    atom_re = _atom_wildcard_re_cache.get(cache_key)
-    if atom_re is not None:
-        return atom_re
+    global _atom_wildcard_re
+    if _atom_wildcard_re is not None:
+        return _atom_wildcard_re
 
-    if eapi_attrs.dots_in_PN:
-        pkg_re = r"[\w+*][\w+.*-]*?"
-    else:
-        pkg_re = r"[\w+*][\w+*-]*?"
+    pkg_re = r"[\w+*][\w+*-]*?"
 
-    atom_re = re.compile(
+    _atom_wildcard_re = re.compile(
         r"((?P<simple>("
         + _extended_cat
         + r")/("
@@ -185,12 +174,10 @@ def _get_atom_wildcard_re(eapi_attrs):
         + r"))?$",
         re.UNICODE,
     )
+    return _atom_wildcard_re
 
-    _atom_wildcard_re_cache[cache_key] = atom_re
-    return atom_re
 
-
-_usedep_re_cache = {}
+_usedep_re = None
 
 
 def _get_usedep_re(eapi_attrs):
@@ -201,27 +188,19 @@ def _get_usedep_re(eapi_attrs):
     @return: A regular expression object that matches valid USE deps for the
             given eapi.
     """
-    cache_key = eapi_attrs.dots_in_use_flags
-    usedep_re = _usedep_re_cache.get(cache_key)
-    if usedep_re is not None:
-        return usedep_re
-
-    if eapi_attrs.dots_in_use_flags:
-        _flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@.-]*"
-    else:
-        _flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@-]*"
+    global _usedep_re
+    if _usedep_re is not None:
+        return _usedep_re
 
-    usedep_re = re.compile(
+    _usedep_re = re.compile(
         r"^(?P<prefix>[!-]?)(?P<flag>"
-        + _flag_re
+        + r"[A-Za-z0-9][A-Za-z0-9+_@-]*"
         + r")(?P<default>(\(\+\)|\(\-\))?)(?P<suffix>[?=]?)$"
     )
+    return _usedep_re
 
-    _usedep_re_cache[cache_key] = usedep_re
-    return usedep_re
 
-
-_useflag_re_cache = {}
+_useflag_re = None
 
 
 def _get_useflag_re(eapi):
@@ -234,21 +213,12 @@ def _get_useflag_re(eapi):
     @return: A regular expression object that matches valid USE flags for the
             given eapi.
     """
-    eapi_attrs = _get_eapi_attrs(eapi)
-    cache_key = eapi_attrs.dots_in_use_flags
-    useflag_re = _useflag_re_cache.get(cache_key)
-    if useflag_re is not None:
-        return useflag_re
-
-    if eapi_attrs.dots_in_use_flags:
-        flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@.-]*"
-    else:
-        flag_re = r"[A-Za-z0-9][A-Za-z0-9+_@-]*"
-
-    useflag_re = re.compile(r"^" + flag_re + r"$")
+    global _useflag_re
+    if _useflag_re is not None:
+        return _useflag_re
 
-    _useflag_re_cache[cache_key] = useflag_re
-    return useflag_re
+    _useflag_re = re.compile(r"^[A-Za-z0-9][A-Za-z0-9+_@-]*$")
+    return _useflag_re
 
 
 def cpvequal(cpv1, cpv2):
@@ -3239,53 +3209,3 @@ def extract_affecting_use(mystr, atom, eapi=None):
         raise InvalidDependString(_("malformed syntax: '%s'") % mystr)
 
     return affecting_use
-
-
-def extract_unpack_dependencies(src_uri, unpackers):
-    """
-    Return unpack dependencies string for given SRC_URI string.
-
-    @param src_uri: SRC_URI string
-    @type src_uri: String
-    @param unpackers: Dictionary mapping archive suffixes to dependency strings
-    @type unpackers: Dictionary
-    @rtype: String
-    @return: Dependency string specifying packages required to unpack archives.
-    """
-    src_uri = src_uri.split()
-
-    depend = []
-    for i in range(len(src_uri)):
-        if src_uri[i][-1] == "?" or src_uri[i] in ("(", ")"):
-            depend.append(src_uri[i])
-        elif (i + 1 < len(src_uri) and src_uri[i + 1] == "->") or src_uri[i] 
== "->":
-            continue
-        else:
-            for suffix in sorted(unpackers, key=lambda x: len(x), 
reverse=True):
-                suffix = suffix.lower()
-                if src_uri[i].lower().endswith(suffix):
-                    depend.append(unpackers[suffix])
-                    break
-
-    while True:
-        cleaned_depend = depend[:]
-        for i in range(len(cleaned_depend)):
-            if cleaned_depend[i] is None:
-                continue
-            elif cleaned_depend[i] == "(" and cleaned_depend[i + 1] == ")":
-                cleaned_depend[i] = None
-                cleaned_depend[i + 1] = None
-            elif (
-                cleaned_depend[i][-1] == "?"
-                and cleaned_depend[i + 1] == "("
-                and cleaned_depend[i + 2] == ")"
-            ):
-                cleaned_depend[i] = None
-                cleaned_depend[i + 1] = None
-                cleaned_depend[i + 2] = None
-        if depend == cleaned_depend:
-            break
-        else:
-            depend = [x for x in cleaned_depend if x is not None]
-
-    return " ".join(depend)
diff --git a/lib/portage/eapi.py b/lib/portage/eapi.py
index 56d87b7ce..c23d03c9a 100644
--- a/lib/portage/eapi.py
+++ b/lib/portage/eapi.py
@@ -104,10 +104,6 @@ def eapi_exports_ECLASSDIR(eapi):
     )
 
 
-def eapi_exports_REPOSITORY(eapi):
-    return False
-
-
 def eapi_has_pkg_pretend(eapi):
     return eapi not in ("0", "1", "2", "3")
 
@@ -144,18 +140,6 @@ def eapi_requires_posixish_locale(eapi):
     )
 
 
-def eapi_has_repo_deps(eapi):
-    return False
-
-
-def eapi_allows_dots_in_PN(eapi):
-    return False
-
-
-def eapi_allows_dots_in_use_flags(eapi):
-    return False
-
-
 def eapi_supports_stable_use_forcing_and_masking(eapi):
     return eapi not in ("0", "1", "2", "3", "4", "4-slot-abi")
 
@@ -164,14 +148,6 @@ def 
eapi_allows_directories_on_profile_level_and_repository_level(eapi):
     return eapi not in ("0", "1", "2", "3", "4", "4-slot-abi", "5", "6")
 
 
-def eapi_has_use_aliases(eapi):
-    return False
-
-
-def eapi_has_automatic_unpack_dependencies(eapi):
-    return False
-
-
 def eapi_allows_package_provided(eapi):
     return eapi in (
         "0",
@@ -269,7 +245,6 @@ _eapi_attrs = collections.namedtuple(
     "allows_package_provided "
     "bdepend "
     "broot "
-    "dots_in_PN dots_in_use_flags "
     "exports_AA "
     "exports_EBUILD_PHASE_FUNC "
     "exports_ECLASSDIR "
@@ -356,8 +331,6 @@ def _get_eapi_attrs(eapi):
         ),
         bdepend=(eapi is not None and eapi_has_bdepend.func(eapi)),
         broot=(eapi is None or eapi_has_broot.func(eapi)),
-        dots_in_PN=(eapi is None or eapi_allows_dots_in_PN.func(eapi)),
-        dots_in_use_flags=(eapi is None or 
eapi_allows_dots_in_use_flags.func(eapi)),
         empty_groups_always_true=(
             eapi is not None and eapi_empty_groups_always_true.func(eapi)
         ),
@@ -379,7 +352,7 @@ def _get_eapi_attrs(eapi):
         ),
         posixish_locale=(eapi is not None and 
eapi_requires_posixish_locale.func(eapi)),
         prefix=(eapi is None or eapi_supports_prefix.func(eapi)),
-        repo_deps=(eapi is None or eapi_has_repo_deps.func(eapi)),
+        repo_deps=(eapi is None),
         required_use=(eapi is None or eapi_has_required_use.func(eapi)),
         required_use_at_most_one_of=(
             eapi is None or eapi_has_required_use_at_most_one_of.func(eapi)
diff --git a/lib/portage/package/ebuild/_config/UseManager.py 
b/lib/portage/package/ebuild/_config/UseManager.py
index a0fb0254a..ea5ba1b42 100644
--- a/lib/portage/package/ebuild/_config/UseManager.py
+++ b/lib/portage/package/ebuild/_config/UseManager.py
@@ -15,7 +15,6 @@ from portage.dep import (
     _repo_separator,
 )
 from portage.eapi import (
-    eapi_has_use_aliases,
     eapi_supports_stable_use_forcing_and_masking,
 )
 from portage.exception import InvalidAtom
@@ -651,7 +650,7 @@ class UseManager:
         return frozenset(stack_lists(useforce, incremental=True))
 
     def getUseAliases(self, pkg):
-        if hasattr(pkg, "eapi") and not eapi_has_use_aliases(pkg.eapi):
+        if hasattr(pkg, "eapi"):
             return {}
 
         cp = getattr(pkg, "cp", None)
diff --git a/lib/portage/package/ebuild/_config/unpack_dependencies.py 
b/lib/portage/package/ebuild/_config/unpack_dependencies.py
deleted file mode 100644
index 58b2fb16e..000000000
--- a/lib/portage/package/ebuild/_config/unpack_dependencies.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-from portage import os, _supported_eapis
-from portage.dep import use_reduce
-from portage.eapi import eapi_has_automatic_unpack_dependencies
-from portage.exception import InvalidDependString
-from portage.localization import _
-from portage.util import grabfile, writemsg
-
-
-def load_unpack_dependencies_configuration(repositories):
-    repo_dict = {}
-    for repo in repositories.repos_with_profiles():
-        for eapi in _supported_eapis:
-            if eapi_has_automatic_unpack_dependencies(eapi):
-                file_name = os.path.join(
-                    repo.location, "profiles", "unpack_dependencies", eapi
-                )
-                lines = grabfile(file_name, recursive=True)
-                for line in lines:
-                    elements = line.split()
-                    suffix = elements[0].lower()
-                    if len(elements) == 1:
-                        writemsg(
-                            _(
-                                "--- Missing unpack dependencies for '%s' 
suffix in '%s'\n"
-                            )
-                            % (suffix, file_name)
-                        )
-                    depend = " ".join(elements[1:])
-                    try:
-                        use_reduce(depend, eapi=eapi)
-                    except InvalidDependString as e:
-                        writemsg(
-                            _(
-                                "--- Invalid unpack dependencies for '%s' 
suffix in '%s': '%s'\n"
-                                % (suffix, file_name, e)
-                            )
-                        )
-                    else:
-                        repo_dict.setdefault(repo.name, {}).setdefault(eapi, 
{})[
-                            suffix
-                        ] = depend
-
-    ret = {}
-    for repo in repositories.repos_with_profiles():
-        for repo_name in [x.name for x in repo.masters] + [repo.name]:
-            for eapi in repo_dict.get(repo_name, {}):
-                for suffix, depend in (
-                    repo_dict.get(repo_name, {}).get(eapi, {}).items()
-                ):
-                    ret.setdefault(repo.name, {}).setdefault(eapi, {})[suffix] 
= depend
-
-    return ret
diff --git a/lib/portage/package/ebuild/_ipc/QueryCommand.py 
b/lib/portage/package/ebuild/_ipc/QueryCommand.py
index f8f464516..8b8549e3a 100644
--- a/lib/portage/package/ebuild/_ipc/QueryCommand.py
+++ b/lib/portage/package/ebuild/_ipc/QueryCommand.py
@@ -6,7 +6,6 @@ import io
 import portage
 from portage import os
 from portage.dep import Atom, _repo_name_re
-from portage.eapi import eapi_has_repo_deps
 from portage.elog import messages as elog_messages
 from portage.exception import InvalidAtom
 from portage.package.ebuild._ipc.IpcCommand import IpcCommand
@@ -59,14 +58,13 @@ class QueryCommand(IpcCommand):
         vardb = db[root]["vartree"].dbapi
 
         if cmd in ("best_version", "has_version"):
-            allow_repo = eapi_has_repo_deps(eapi)
             try:
-                atom = Atom(args[0], allow_repo=allow_repo)
+                atom = Atom(args[0])
             except InvalidAtom:
                 return ("", "%s: Invalid atom: %s\n" % (cmd, args[0]), 2)
 
             try:
-                atom = Atom(args[0], allow_repo=allow_repo, eapi=eapi)
+                atom = Atom(args[0], eapi=eapi)
             except InvalidAtom as e:
                 warnings.append("QA Notice: %s: %s" % (cmd, e))
 
diff --git a/lib/portage/package/ebuild/config.py 
b/lib/portage/package/ebuild/config.py
index 99fd2c31e..5d9d5ce48 100644
--- a/lib/portage/package/ebuild/config.py
+++ b/lib/portage/package/ebuild/config.py
@@ -105,9 +105,6 @@ from portage.package.ebuild._config.helper import (
     ordered_by_atom_specificity,
     prune_incremental,
 )
-from portage.package.ebuild._config.unpack_dependencies import (
-    load_unpack_dependencies_configuration,
-)
 
 
 _feature_flags_cache = {}
@@ -335,7 +332,6 @@ class config:
             self.profiles = clone.profiles
             self.packages = clone.packages
             self.repositories = clone.repositories
-            self.unpack_dependencies = clone.unpack_dependencies
             self._default_features_use = clone._default_features_use
             self._iuse_effective = clone._iuse_effective
             self._iuse_implicit_match = clone._iuse_implicit_match
@@ -730,10 +726,6 @@ class config:
                     x = Atom(x.lstrip("*"))
                 self.prevmaskdict.setdefault(x.cp, []).append(x)
 
-            self.unpack_dependencies = load_unpack_dependencies_configuration(
-                self.repositories
-            )
-
             mygcfg = {}
             if profiles_complex:
                 mygcfg_dlists = []
diff --git a/lib/portage/package/ebuild/doebuild.py 
b/lib/portage/package/ebuild/doebuild.py
index eb719b1ea..2251cdb8d 100644
--- a/lib/portage/package/ebuild/doebuild.py
+++ b/lib/portage/package/ebuild/doebuild.py
@@ -81,7 +81,6 @@ from portage.eapi import (
     eapi_exports_KV,
     eapi_exports_merge_type,
     eapi_exports_replace_vars,
-    eapi_exports_REPOSITORY,
     eapi_has_required_use,
     eapi_has_src_prepare_and_src_configure,
     eapi_has_pkg_pretend,
@@ -539,14 +538,6 @@ def doebuild_environment(
     if not eapi_is_supported(eapi):
         raise UnsupportedAPIException(mycpv, eapi)
 
-    if (
-        eapi_exports_REPOSITORY(eapi)
-        and "PORTAGE_REPO_NAME" in mysettings.configdict["pkg"]
-    ):
-        mysettings.configdict["pkg"]["REPOSITORY"] = 
mysettings.configdict["pkg"][
-            "PORTAGE_REPO_NAME"
-        ]
-
     if mydo != "depend":
         if hasattr(mydbapi, "getFetchMap") and (
             "A" not in mysettings.configdict["pkg"]
diff --git a/lib/portage/repository/config.py b/lib/portage/repository/config.py
index 0b591d94f..411ccb110 100644
--- a/lib/portage/repository/config.py
+++ b/lib/portage/repository/config.py
@@ -14,7 +14,6 @@ from portage.checksum import get_valid_checksum_keys
 from portage.const import PORTAGE_BASE_PATH, REPO_NAME_LOC, USER_CONFIG_PATH
 from portage.eapi import (
     eapi_allows_directories_on_profile_level_and_repository_level,
-    eapi_has_repo_deps,
 )
 from portage.env.loaders import KeyValuePairFileLoader
 from portage.util import (
@@ -1285,9 +1284,6 @@ class RepoConfigLoader:
 def allow_profile_repo_deps(
     repo: typing.Union[RepoConfig, _profile_node],
 ) -> bool:
-    if eapi_has_repo_deps(repo.eapi):
-        return True
-
     if "profile-repo-deps" in repo.profile_formats:
         return True
 
diff --git a/lib/portage/tests/resolver/ResolverPlayground.py 
b/lib/portage/tests/resolver/ResolverPlayground.py
index 6805ca601..7852d0aaf 100644
--- a/lib/portage/tests/resolver/ResolverPlayground.py
+++ b/lib/portage/tests/resolver/ResolverPlayground.py
@@ -69,7 +69,6 @@ class ResolverPlayground:
             "package.use.stable.force",
             "package.use.stable.mask",
             "soname.provided",
-            "unpack_dependencies",
             "use.aliases",
             "use.force",
             "use.mask",
diff --git a/lib/portage/versions.py b/lib/portage/versions.py
index 086ada555..3d8694a0e 100644
--- a/lib/portage/versions.py
+++ b/lib/portage/versions.py
@@ -47,48 +47,17 @@ _cat = r"[\w+][\w+.-]*"
 # 2.1.2 A package name may contain any of the characters [A-Za-z0-9+_-].
 # It must not begin with a hyphen,
 # and must not end in a hyphen followed by one or more digits.
-_pkg = {
-    "dots_disallowed_in_PN": r"[\w+][\w+-]*?",
-    "dots_allowed_in_PN": r"[\w+][\w+.-]*?",
-}
+_pkg = r"[\w+][\w+-]*?"
 
 _v = r"(\d+)((\.\d+)*)([a-z]?)((_(pre|p|beta|alpha|rc)\d*)*)"
 _rev = r"\d+"
 _vr = _v + "(-r(" + _rev + "))?"
 
-_cp = {
-    "dots_disallowed_in_PN": "("
-    + _cat
-    + "/"
-    + _pkg["dots_disallowed_in_PN"]
-    + "(-"
-    + _vr
-    + ")?)",
-    "dots_allowed_in_PN": "("
-    + _cat
-    + "/"
-    + _pkg["dots_allowed_in_PN"]
-    + "(-"
-    + _vr
-    + ")?)",
-}
-_cpv = {
-    "dots_disallowed_in_PN": "(" + _cp["dots_disallowed_in_PN"] + "-" + _vr + 
")",
-    "dots_allowed_in_PN": "(" + _cp["dots_allowed_in_PN"] + "-" + _vr + ")",
-}
-_pv = {
-    "dots_disallowed_in_PN": "(?P<pn>"
-    + _pkg["dots_disallowed_in_PN"]
-    + "(?P<pn_inval>-"
-    + _vr
-    + ")?)"
-    + "-(?P<ver>"
-    + _v
-    + ")(-r(?P<rev>"
-    + _rev
-    + "))?",
-    "dots_allowed_in_PN": "(?P<pn>"
-    + _pkg["dots_allowed_in_PN"]
+_cp = "(" + _cat + "/" + _pkg + "(-" + _vr + ")?)"
+_cpv = "(" + _cp + "-" + _vr + ")"
+_pv = (
+    "(?P<pn>"
+    + _pkg
     + "(?P<pn_inval>-"
     + _vr
     + ")?)"
@@ -96,8 +65,8 @@ _pv = {
     + _v
     + ")(-r(?P<rev>"
     + _rev
-    + "))?",
-}
+    + "))?"
+)
 
 ver_regexp = re.compile("^" + _vr + "$")
 suffix_regexp = re.compile("^(alpha|beta|rc|pre|p)(\\d*)$")
@@ -124,24 +93,17 @@ def _get_slot_re(eapi_attrs):
     return slot_re
 
 
-_pv_re_cache = {}
+_pv_re = None
 
 
 def _get_pv_re(eapi_attrs):
-    cache_key = eapi_attrs.dots_in_PN
-    pv_re = _pv_re_cache.get(cache_key)
-    if pv_re is not None:
-        return pv_re
-
-    if eapi_attrs.dots_in_PN:
-        pv_re = _pv["dots_allowed_in_PN"]
-    else:
-        pv_re = _pv["dots_disallowed_in_PN"]
+    global _pv_re
+    if _pv_re is not None:
+        return _pv_re
 
-    pv_re = re.compile(r"^" + pv_re + r"$", re.VERBOSE | re.UNICODE)
+    _pv_re = re.compile(r"^" + _pv + r"$", re.VERBOSE | re.UNICODE)
 
-    _pv_re_cache[cache_key] = pv_re
-    return pv_re
+    return _pv_re
 
 
 def ververify(myver, silent=1):
-- 
2.34.1


Reply via email to