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