commit:     efa950dc665e998e7fb31c41678579d52ee2e657
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 22 18:16:30 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Jan  2 08:57:01 2026 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=efa950dc

InheritsCheck: Whitelist branding.eclass from UnusedInherits

It can be used purely for variables recognised by external build tools
rather than the ebuild itself.

Resolves: https://github.com/pkgcore/pkgcheck/issues/765
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
Closes: https://github.com/pkgcore/pkgcheck/pull/766
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/codingstyle.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/pkgcheck/checks/codingstyle.py 
b/src/pkgcheck/checks/codingstyle.py
index b2126429..6cd07148 100644
--- a/src/pkgcheck/checks/codingstyle.py
+++ b/src/pkgcheck/checks/codingstyle.py
@@ -817,6 +817,10 @@ class InheritsCheck(Check):
     )
     required_addons = (addons.eclass.EclassAddon,)
 
+    # branding.eclass can be used purely for variables recognised by external
+    # build tools rather than the ebuild itself.
+    unused_whitelist = frozenset({"branding"})
+
     def __init__(self, *args, eclass_addon):
         super().__init__(*args)
         self.eclass_cache = eclass_addon.eclasses
@@ -961,7 +965,11 @@ class InheritsCheck(Check):
                 )
                 if 
exported_eclass_keys.intersection(self.unused_eclass_skiplist):
                     unused.discard(eclass)
-                elif not self.eclass_cache[eclass].exported_function_names and 
exported_eclass_keys:
+                elif (
+                    not self.eclass_cache[eclass].exported_function_names
+                    and exported_eclass_keys
+                    or eclass in self.unused_whitelist
+                ):
                     # ignore eclasses that export ebuild metadata (e.g.
                     # SRC_URI, S, ...) and no functions
                     unused.discard(eclass)

Reply via email to