commit:     dd81609ed029884a17171d42948313d42b3fd5e8
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  2 18:47:14 2022 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Sat Apr  2 19:14:04 2022 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=dd81609e

Eliminate USE aliases

These were part of the 4-python and 5-progress EAPIs and were a branch
of the code deep enough to warrant its removal in its own patch.

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 lib/_emerge/Package.py                           |  39 ++---
 lib/_emerge/depgraph.py                          |  16 +--
 lib/_emerge/resolver/slot_collision.py           |   8 +-
 lib/portage/dbapi/__init__.py                    |  28 ++--
 lib/portage/package/ebuild/_config/UseManager.py | 175 -----------------------
 lib/portage/tests/resolver/ResolverPlayground.py |   2 -
 6 files changed, 30 insertions(+), 238 deletions(-)

diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py
index 7c4997aab..db42d836e 100644
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@ -140,9 +140,8 @@ class Package(Task):
             implicit_match = db._iuse_implicit_cnstr(self.cpv, self._metadata)
         else:
             implicit_match = db._repoman_iuse_implicit_cnstr(self.cpv, 
self._metadata)
-        usealiases = self.root_config.settings._use_manager.getUseAliases(self)
         self.iuse = self._iuse(
-            self, self._metadata["IUSE"].split(), implicit_match, usealiases, 
self.eapi
+            self, self._metadata["IUSE"].split(), implicit_match, self.eapi
         )
 
         if (self.iuse.enabled or self.iuse.disabled) and not 
eapi_attrs.iuse_defaults:
@@ -735,25 +734,19 @@ class Package(Task):
             "__weakref__",
             "_iuse_implicit_match",
             "_pkg",
-            "alias_mapping",
             "all",
-            "all_aliases",
             "enabled",
             "disabled",
             "tokens",
         )
 
-        def __init__(self, pkg, tokens, iuse_implicit_match, aliases, eapi):
+        def __init__(self, pkg, tokens, iuse_implicit_match, eapi):
             self._pkg = pkg
             self.tokens = tuple(tokens)
             self._iuse_implicit_match = iuse_implicit_match
             enabled = []
             disabled = []
             other = []
-            enabled_aliases = []
-            disabled_aliases = []
-            other_aliases = []
-            self.alias_mapping = {}
             for x in tokens:
                 prefix = x[:1]
                 if prefix == "+":
@@ -762,12 +755,9 @@ class Package(Task):
                     disabled.append(x[1:])
                 else:
                     other.append(x)
-            self.enabled = frozenset(chain(enabled, enabled_aliases))
-            self.disabled = frozenset(chain(disabled, disabled_aliases))
+            self.enabled = frozenset(enabled)
+            self.disabled = frozenset(disabled)
             self.all = frozenset(chain(enabled, disabled, other))
-            self.all_aliases = frozenset(
-                chain(enabled_aliases, disabled_aliases, other_aliases)
-            )
 
         def is_valid_flag(self, flags):
             """
@@ -778,11 +768,7 @@ class Package(Task):
                 flags = [flags]
 
             for flag in flags:
-                if (
-                    not flag in self.all
-                    and not flag in self.all_aliases
-                    and not self._iuse_implicit_match(flag)
-                ):
+                if self.get_flag(flag) is None:
                     return False
             return True
 
@@ -794,27 +780,18 @@ class Package(Task):
                 flags = [flags]
             missing_iuse = []
             for flag in flags:
-                if (
-                    not flag in self.all
-                    and not flag in self.all_aliases
-                    and not self._iuse_implicit_match(flag)
-                ):
+                if self.get_flag(flag) is None:
                     missing_iuse.append(flag)
             return missing_iuse
 
-        def get_real_flag(self, flag):
+        def get_flag(self, flag):
             """
             Returns the flag's name within the scope of this package
-            (accounting for aliases), or None if the flag is unknown.
+            or None if the flag is unknown.
             """
             if flag in self.all:
                 return flag
 
-            if flag in self.all_aliases:
-                for k, v in self.alias_mapping.items():
-                    if flag in v:
-                        return k
-
             if self._iuse_implicit_match(flag):
                 return flag
 

diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index 14a71a610..c3f872c43 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -7182,21 +7182,21 @@ class depgraph:
             new_changes = {}
 
         for flag, state in target_use.items():
-            real_flag = pkg.iuse.get_real_flag(flag)
-            if real_flag is None:
+            flag = pkg.iuse.get_flag(flag)
+            if flag is None:
                 # Triggered by use-dep defaults.
                 continue
             if state:
-                if real_flag not in old_use:
-                    if new_changes.get(real_flag) == False:
+                if flag not in old_use:
+                    if new_changes.get(flag) == False:
                         return old_use
-                    new_changes[real_flag] = True
+                    new_changes[flag] = True
                 new_use.add(flag)
             else:
-                if real_flag in old_use:
-                    if new_changes.get(real_flag) == True:
+                if flag in old_use:
+                    if new_changes.get(flag) == True:
                         return old_use
-                    new_changes[real_flag] = False
+                    new_changes[flag] = False
         new_use |= old_use.difference(target_use)
 
         def want_restart_for_use_change(pkg, new_use):

diff --git a/lib/_emerge/resolver/slot_collision.py 
b/lib/_emerge/resolver/slot_collision.py
index 4f30cb675..17d6fa395 100644
--- a/lib/_emerge/resolver/slot_collision.py
+++ b/lib/_emerge/resolver/slot_collision.py
@@ -228,14 +228,14 @@ class slot_conflict_handler:
         new_change = {}
         for pkg in solution:
             for flag, state in solution[pkg].items():
-                real_flag = pkg.iuse.get_real_flag(flag)
-                if real_flag is None:
+                flag = pkg.iuse.get_flag(flag)
+                if flag is None:
                     # Triggered by use-dep defaults.
                     continue
                 if state == "enabled" and flag not in _pkg_use_enabled(pkg):
-                    new_change.setdefault(pkg, {})[real_flag] = True
+                    new_change.setdefault(pkg, {})[flag] = True
                 elif state == "disabled" and flag in _pkg_use_enabled(pkg):
-                    new_change.setdefault(pkg, {})[real_flag] = False
+                    new_change.setdefault(pkg, {})[flag] = False
         return new_change
 
     def _prepare_conflict_msg_and_check_for_specificity(self):

diff --git a/lib/portage/dbapi/__init__.py b/lib/portage/dbapi/__init__.py
index 717ab95d5..43c3283e8 100644
--- a/lib/portage/dbapi/__init__.py
+++ b/lib/portage/dbapi/__init__.py
@@ -273,17 +273,15 @@ class dbapi:
 
     def _match_use(self, atom, pkg, metadata, ignore_profile=False):
         iuse_implicit_match = self._iuse_implicit_cnstr(pkg, metadata)
-        usealiases = self.settings._use_manager.getUseAliases(pkg)
         iuse = Package._iuse(
             None,
             metadata["IUSE"].split(),
             iuse_implicit_match,
-            usealiases,
             metadata["EAPI"],
         )
 
         for x in atom.unevaluated_atom.use.required:
-            if iuse.get_real_flag(x) is None:
+            if iuse.get_flag(x) is None:
                 return False
 
         if atom.use is None:
@@ -297,18 +295,16 @@ class dbapi:
             # with implicit IUSE, in order to avoid potential
             # inconsistencies in USE dep matching (see bug #453400).
             use = frozenset(
-                x for x in metadata["USE"].split() if iuse.get_real_flag(x) is 
not None
+                x for x in metadata["USE"].split() if iuse.get_flag(x) is not 
None
             )
             missing_enabled = frozenset(
-                x for x in atom.use.missing_enabled if iuse.get_real_flag(x) 
is None
+                x for x in atom.use.missing_enabled if iuse.get_flag(x) is None
             )
             missing_disabled = frozenset(
-                x for x in atom.use.missing_disabled if iuse.get_real_flag(x) 
is None
-            )
-            enabled = frozenset((iuse.get_real_flag(x) or x) for x in 
atom.use.enabled)
-            disabled = frozenset(
-                (iuse.get_real_flag(x) or x) for x in atom.use.disabled
+                x for x in atom.use.missing_disabled if iuse.get_flag(x) is 
None
             )
+            enabled = frozenset((iuse.get_flag(x) or x) for x in 
atom.use.enabled)
+            disabled = frozenset((iuse.get_flag(x) or x) for x in 
atom.use.disabled)
 
             if enabled:
                 if any(x in enabled for x in missing_disabled):
@@ -333,7 +329,7 @@ class dbapi:
                     pkg, stable=self.settings._parent_stable
                 )
                 if any(
-                    x in usemask and iuse.get_real_flag(x) is not None
+                    x in usemask and iuse.get_flag(x) is not None
                     for x in atom.use.enabled
                 ):
                     return False
@@ -342,9 +338,7 @@ class dbapi:
                     pkg, stable=self.settings._parent_stable
                 )
                 if any(
-                    x in useforce
-                    and x not in usemask
-                    and iuse.get_real_flag(x) is not None
+                    x in useforce and x not in usemask and iuse.get_flag(x) is 
not None
                     for x in atom.use.disabled
                 ):
                     return False
@@ -352,15 +346,13 @@ class dbapi:
             # Check unsatisfied use-default deps
             if atom.use.enabled:
                 missing_disabled = frozenset(
-                    x
-                    for x in atom.use.missing_disabled
-                    if iuse.get_real_flag(x) is None
+                    x for x in atom.use.missing_disabled if iuse.get_flag(x) 
is None
                 )
                 if any(x in atom.use.enabled for x in missing_disabled):
                     return False
             if atom.use.disabled:
                 missing_enabled = frozenset(
-                    x for x in atom.use.missing_enabled if 
iuse.get_real_flag(x) is None
+                    x for x in atom.use.missing_enabled if iuse.get_flag(x) is 
None
                 )
                 if any(x in atom.use.disabled for x in missing_enabled):
                     return False

diff --git a/lib/portage/package/ebuild/_config/UseManager.py 
b/lib/portage/package/ebuild/_config/UseManager.py
index ea5ba1b42..3827ba27a 100644
--- a/lib/portage/package/ebuild/_config/UseManager.py
+++ b/lib/portage/package/ebuild/_config/UseManager.py
@@ -6,23 +6,19 @@ __all__ = ("UseManager",)
 from _emerge.Package import Package
 from portage import os
 from portage.dep import (
-    Atom,
     dep_getrepo,
     dep_getslot,
     ExtendedAtomDict,
     remove_slot,
     _get_useflag_re,
-    _repo_separator,
 )
 from portage.eapi import (
     eapi_supports_stable_use_forcing_and_masking,
 )
-from portage.exception import InvalidAtom
 from portage.localization import _
 from portage.repository.config import allow_profile_repo_deps
 from portage.util import (
     grabfile,
-    grabdict,
     grabdict_package,
     read_corresponding_eapi_file,
     stack_lists,
@@ -45,12 +41,10 @@ class UseManager:
         #      use.stable.mask                 _repo_usestablemask_dict
         #      use.force                       _repo_useforce_dict
         #      use.stable.force                _repo_usestableforce_dict
-        #      use.aliases                     _repo_usealiases_dict
         #      package.use.mask                _repo_pusemask_dict
         #      package.use.stable.mask         _repo_pusestablemask_dict
         #      package.use.force               _repo_puseforce_dict
         #      package.use.stable.force        _repo_pusestableforce_dict
-        #      package.use.aliases             _repo_pusealiases_dict
         # --------------------------------
         #      profiles
         # --------------------------------
@@ -157,11 +151,6 @@ class UseManager:
             "package.use", abs_user_config, user_config
         )
 
-        self._repo_usealiases_dict = 
self._parse_repository_usealiases(repositories)
-        self._repo_pusealiases_dict = self._parse_repository_packageusealiases(
-            repositories
-        )
-
         self.repositories = repositories
 
     def _parse_file_to_tuple(
@@ -408,111 +397,6 @@ class UseManager:
             for profile in locations
         )
 
-    def _parse_repository_usealiases(self, repositories):
-        ret = {}
-        for repo in repositories.repos_with_profiles():
-            file_name = os.path.join(repo.location, "profiles", "use.aliases")
-            eapi = read_corresponding_eapi_file(file_name, default=repo.eapi)
-            useflag_re = _get_useflag_re(eapi)
-            raw_file_dict = grabdict(file_name, recursive=True)
-            file_dict = {}
-            for real_flag, aliases in raw_file_dict.items():
-                if useflag_re.match(real_flag) is None:
-                    writemsg(
-                        _("--- Invalid real USE flag in '%s': '%s'\n")
-                        % (file_name, real_flag),
-                        noiselevel=-1,
-                    )
-                else:
-                    for alias in aliases:
-                        if useflag_re.match(alias) is None:
-                            writemsg(
-                                _(
-                                    "--- Invalid USE flag alias for '%s' real 
USE flag in '%s': '%s'\n"
-                                )
-                                % (real_flag, file_name, alias),
-                                noiselevel=-1,
-                            )
-                        else:
-                            if any(
-                                alias in v
-                                for k, v in file_dict.items()
-                                if k != real_flag
-                            ):
-                                writemsg(
-                                    _("--- Duplicated USE flag alias in '%s': 
'%s'\n")
-                                    % (file_name, alias),
-                                    noiselevel=-1,
-                                )
-                            else:
-                                file_dict.setdefault(real_flag, 
[]).append(alias)
-            ret[repo.name] = file_dict
-        return ret
-
-    def _parse_repository_packageusealiases(self, repositories):
-        ret = {}
-        for repo in repositories.repos_with_profiles():
-            file_name = os.path.join(repo.location, "profiles", 
"package.use.aliases")
-            eapi = read_corresponding_eapi_file(file_name, default=repo.eapi)
-            useflag_re = _get_useflag_re(eapi)
-            lines = grabfile(file_name, recursive=True)
-            file_dict = {}
-            for line in lines:
-                elements = line.split()
-                atom = elements[0]
-                try:
-                    atom = Atom(atom, eapi=eapi)
-                except InvalidAtom:
-                    writemsg(_("--- Invalid atom in '%s': '%s'\n") % 
(file_name, atom))
-                    continue
-                if len(elements) == 1:
-                    writemsg(
-                        _("--- Missing real USE flag for '%s' in '%s'\n")
-                        % (atom, file_name),
-                        noiselevel=-1,
-                    )
-                    continue
-                real_flag = elements[1]
-                if useflag_re.match(real_flag) is None:
-                    writemsg(
-                        _("--- Invalid real USE flag for '%s' in '%s': '%s'\n")
-                        % (atom, file_name, real_flag),
-                        noiselevel=-1,
-                    )
-                else:
-                    for alias in elements[2:]:
-                        if useflag_re.match(alias) is None:
-                            writemsg(
-                                _(
-                                    "--- Invalid USE flag alias for '%s' real 
USE flag for '%s' in '%s': '%s'\n"
-                                )
-                                % (real_flag, atom, file_name, alias),
-                                noiselevel=-1,
-                            )
-                        else:
-                            # Duplicated USE flag aliases in entries for 
different atoms
-                            # matching the same package version are detected 
in getUseAliases().
-                            if any(
-                                alias in v
-                                for k, v in file_dict.get(atom.cp, {})
-                                .get(atom, {})
-                                .items()
-                                if k != real_flag
-                            ):
-                                writemsg(
-                                    _(
-                                        "--- Duplicated USE flag alias for 
'%s' in '%s': '%s'\n"
-                                    )
-                                    % (atom, file_name, alias),
-                                    noiselevel=-1,
-                                )
-                            else:
-                                file_dict.setdefault(atom.cp, {}).setdefault(
-                                    atom, {}
-                                ).setdefault(real_flag, []).append(alias)
-            ret[repo.name] = file_dict
-        return ret
-
     def _isStable(self, pkg):
         if self._user_config:
             try:
@@ -649,65 +533,6 @@ class UseManager:
 
         return frozenset(stack_lists(useforce, incremental=True))
 
-    def getUseAliases(self, pkg):
-        if hasattr(pkg, "eapi"):
-            return {}
-
-        cp = getattr(pkg, "cp", None)
-        if cp is None:
-            slot = dep_getslot(pkg)
-            repo = dep_getrepo(pkg)
-            pkg = _pkg_str(remove_slot(pkg), slot=slot, repo=repo)
-            cp = pkg.cp
-
-        usealiases = {}
-
-        if hasattr(pkg, "repo") and pkg.repo != Package.UNKNOWN_REPO:
-            repos = []
-            try:
-                repos.extend(repo.name for repo in 
self.repositories[pkg.repo].masters)
-            except KeyError:
-                pass
-            repos.append(pkg.repo)
-            for repo in repos:
-                usealiases_dict = self._repo_usealiases_dict.get(repo, {})
-                for real_flag, aliases in usealiases_dict.items():
-                    for alias in aliases:
-                        if any(
-                            alias in v for k, v in usealiases.items() if k != 
real_flag
-                        ):
-                            writemsg(
-                                _("--- Duplicated USE flag alias for '%s%s%s': 
'%s'\n")
-                                % (pkg.cpv, _repo_separator, pkg.repo, alias),
-                                noiselevel=-1,
-                            )
-                        else:
-                            usealiases.setdefault(real_flag, []).append(alias)
-                cp_usealiases_dict = self._repo_pusealiases_dict.get(repo, 
{}).get(cp)
-                if cp_usealiases_dict:
-                    usealiases_dict_list = ordered_by_atom_specificity(
-                        cp_usealiases_dict, pkg
-                    )
-                    for usealiases_dict in usealiases_dict_list:
-                        for real_flag, aliases in usealiases_dict.items():
-                            for alias in aliases:
-                                if any(
-                                    alias in v
-                                    for k, v in usealiases.items()
-                                    if k != real_flag
-                                ):
-                                    writemsg(
-                                        _(
-                                            "--- Duplicated USE flag alias for 
'%s%s%s': '%s'\n"
-                                        )
-                                        % (pkg.cpv, _repo_separator, pkg.repo, 
alias),
-                                        noiselevel=-1,
-                                    )
-                                else:
-                                    usealiases.setdefault(real_flag, 
[]).append(alias)
-
-        return usealiases
-
     def getPUSE(self, pkg):
         cp = getattr(pkg, "cp", None)
         if cp is None:

diff --git a/lib/portage/tests/resolver/ResolverPlayground.py 
b/lib/portage/tests/resolver/ResolverPlayground.py
index 7852d0aaf..8811354b5 100644
--- a/lib/portage/tests/resolver/ResolverPlayground.py
+++ b/lib/portage/tests/resolver/ResolverPlayground.py
@@ -63,13 +63,11 @@ class ResolverPlayground:
             "packages",
             "package.unmask",
             "package.use",
-            "package.use.aliases",
             "package.use.force",
             "package.use.mask",
             "package.use.stable.force",
             "package.use.stable.mask",
             "soname.provided",
-            "use.aliases",
             "use.force",
             "use.mask",
             "layout.conf",

Reply via email to