commit: e49cc3493ab77678a740bf8a27cf22e77e061409 Author: Siddhanth Rathod <xsiddhanthrathod <AT> gmail <DOT> com> AuthorDate: Thu Sep 28 18:54:44 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Sep 29 07:20:18 2023 +0000 URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=e49cc349
eclean-pkg: fix compatibility with FEATURES=pkgdir-index-trusted Portage recently enabled FEATURES=pkgdir-index-trusted by default which breaks the eclean-invalids feature. Force reindexing after cleaning up to fix this. See-also: https://github.com/gentoo/portage/commit/3bc7bfef51d88fd716e882d3931f2873e3493e01 Bug: https://bugs.gentoo.org/889300 Bug: https://bugs.gentoo.org/900224 Signed-off-by: Siddhanth Rathod <xsiddhanthrathod <AT> gmail.com> Closes: https://github.com/gentoo/gentoolkit/pull/34 Signed-off-by: Sam James <sam <AT> gentoo.org> pym/gentoolkit/eclean/search.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py index a2ac0ce..ce8fe37 100644 --- a/pym/gentoolkit/eclean/search.py +++ b/pym/gentoolkit/eclean/search.py @@ -8,6 +8,7 @@ import os import stat import sys from functools import partial +from inspect import signature from typing import Optional import portage @@ -16,13 +17,12 @@ from portage.dep._slot_operator import strip_slots import gentoolkit.pprinter as pp from gentoolkit.eclean.exclude import ( - exclDictMatchCP, exclDictExpand, exclDictExpandPkgname, + exclDictMatchCP, exclMatchFilename, ) - # Misc. shortcuts to some portage stuff: port_settings = portage.settings pkgdir = port_settings["PKGDIR"] @@ -568,7 +568,12 @@ def findPackages( dead_binpkgs: dict[str, list[str]] = {} keep_binpkgs = {} - bin_dbapi = portage.binarytree(pkgdir=pkgdir, settings=var_dbapi.settings).dbapi + # FEATURES=pkgdir-index-trusted is now on by default which makes portages inavlids + # inaccessible + settings = var_dbapi.settings + bin_dbapi = portage.binarytree(pkgdir=pkgdir, settings=settings).dbapi + if "force_reindex" in signature(bin_dbapi.bintree.populate).parameters: + bin_dbapi.bintree.populate(force_reindex=True) for cpv in bin_dbapi.cpv_all(): cp = portage.cpv_getkey(cpv)