commit:     b17c3d59cdc4e709286f62380101ead3e94a105c
Author:     Brian Harring <ferringb <AT> gmail <DOT> com>
AuthorDate: Wed Feb 19 23:10:52 2025 +0000
Commit:     Brian Harring <ferringb <AT> gmail <DOT> com>
CommitDate: Sat Nov 22 00:51:49 2025 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcore.git/commit/?id=b17c3d59

fix: reduce EAPI helpers paths to just what's unique.

The previous code stacked each level of inheritance on, resulting
in many duplicates; path look chooses leftmost, thus filter
it down so a directory is only listed once, in the order it
was first exposed.

Signed-off-by: Brian Harring <ferringb <AT> gmail.com>

 src/pkgcore/ebuild/eapi.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/pkgcore/ebuild/eapi.py b/src/pkgcore/ebuild/eapi.py
index 8a26c1ae..af7523e9 100644
--- a/src/pkgcore/ebuild/eapi.py
+++ b/src/pkgcore/ebuild/eapi.py
@@ -12,6 +12,7 @@ from snakeoil.demandload import demand_compile_regexp
 from snakeoil.mappings import ImmutableDict, OrderedFrozenSet, 
inject_getitem_as_getattr
 from snakeoil.osutils import pjoin
 from snakeoil.process.spawn import bash_version
+from snakeoil.sequences import stable_unique
 
 LATEST_PMS_EAPI_VER = "9"
 
@@ -465,7 +466,7 @@ class EAPI(metaclass=klass.immutable_instance):
                         paths[phase].append(dirpath)
                     else:
                         raise ValueError(f"unknown phase: {phase!r}")
-        return ImmutableDict((k, tuple(v)) for k, v in paths.items())
+        return ImmutableDict((k, tuple(stable_unique(v))) for k, v in 
paths.items())
 
     @klass.jit_attr
     def ebd_env(self):

Reply via email to