Created attachment 824477 [details] backtrace.txt This seems to be triggered by the package move when binpkgs exist This error occurred before dispatch-conf was run to update for the libva package move.
Created attachment 824479 [details] libva-compat binpkgs
The relevant snippet from bintree.py: try: binpkg_format = cpv.binpkg_format except AttributeError: # In order to force the caller to clarify its intent, do not # use default BINPKG_FORMAT unless allocate_new is True. # The caller can set cpv.binpkg_format in advance if something # other than the default is desired here. if allocate_new: binpkg_format = self.settings.get( "BINPKG_FORMAT", SUPPORTED_GENTOO_BINPKG_FORMATS[0] ) else: binpkg_format = None if not binpkg_format: # Raise an error if the desired binpkg_format is not clear. # The caller should either set allocate_new to True or else # ensure that cpv.binpkg_format is set to a particular format. raise InvalidBinaryPackageFormat(binpkg_format) InvalidBinaryPackageFormat is a subclass of PortageException, the contructor of which is: def __init__(self, value): self.value = value[:] So the binpkg triggers the else: condition, making binpkg_format=None which falls over when it tries to calculate None[:]. I suppose a naive fix would just be: diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py index c8bb2c88e..fec9d7705 100644 --- a/lib/portage/dbapi/bintree.py +++ b/lib/portage/dbapi/bintree.py @@ -2091,7 +2091,7 @@ class binarytree: "BINPKG_FORMAT", SUPPORTED_GENTOO_BINPKG_FORMATS[0] ) else: - binpkg_format = None + binpkg_format = "" if not binpkg_format: # Raise an error if the desired binpkg_format is not clear.
Hm, that patch still makes it backtrace, but this time it successfully throws the portage.exception.InvalidBinaryPackageFormat rather than erroring when trying, which looks like what's supposed to happen. I guess it's troubling that these invalid binpkgs were generated in the first place?
Kind weird, you had correct Package Index and correct binpkg, but portage report cannot find format. This should be fixed in next release as we deprecated BINPKG_FORMAR in metadata.
Ok, this one is 2 bugs. The first one is binpkg_format = None that causes raise InvalidBinaryPackageFormat(binpkg_format) failed. The second one is something not related to binpkg but index: They moved x11-libs/libva-compat to media-libs/libva-compat but kept package name same. This (rare?) action make the portage package search function confused, as it found 2 packages named libva-compat and try to print the list. emerge -ak libva-compat ... [ Results for search key : libva-compat ] pkg media-libs/libva-compat * media-libs/libva-compat Latest version available: 1.8.3-r2 Latest version installed: [ Not Installed ] Size of files: 183 KiB Homepage: https://01.org/linuxmedia/vaapi Description: Video Acceleration (VA) API for Linux License: MIT pkg x11-libs/libva-compat * x11-libs/libva-compat None ... done! Since x11-libs/libva-compat no longer exists, portage internal dataset is None, and it try to get a file path for None, and you run into this error. Do a eclean-pkg should able fix this issue. Fix WIP.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=445f10f4214c673f8fe0a9cc518c12767be4f159 commit 445f10f4214c673f8fe0a9cc518c12767be4f159 Author: Sheng Yu <syu.os@protonmail.com> AuthorDate: 2022-11-02 18:46:03 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-11-02 22:58:15 +0000 Use binpkg extensions and header to get format This deprecates the BINPKG_FORMAT in the metadata and Package index. Also fixed a bug that obsolete packages that have been moved may be attempted to be read during package searching. Closes: https://bugs.gentoo.org/877357 Closes: https://bugs.gentoo.org/877419 Signed-off-by: Sheng Yu <syu.os@protonmail.com> Closes: https://github.com/gentoo/portage/pull/928 Signed-off-by: Sam James <sam@gentoo.org> lib/_emerge/BinpkgExtractorAsync.py | 4 +- lib/_emerge/BinpkgFetcher.py | 32 ++------ lib/_emerge/Package.py | 1 - lib/_emerge/actions.py | 15 +++- lib/_emerge/depgraph.py | 15 +++- lib/_emerge/search.py | 6 +- lib/portage/binpkg.py | 23 ++++-- lib/portage/dbapi/bintree.py | 142 +++++++++++++++--------------------- lib/portage/gpkg.py | 4 + lib/portage/versions.py | 16 ---- lib/portage/xpak.py | 18 +++++ 11 files changed, 141 insertions(+), 135 deletions(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=a7dd39c1ae4a5ea4e3252ae8129fbd671c95d5f7 commit a7dd39c1ae4a5ea4e3252ae8129fbd671c95d5f7 Author: Sheng Yu <syu.os@protonmail.com> AuthorDate: 2022-11-08 22:52:46 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-11-08 23:07:46 +0000 Do not drop default PATH in the package index (avoid Packages regeneration) The new Packages index (introduced in 445f10f4214c673f8fe0a9cc518c12767be4f159) needs PATH but it got dropped later on when processing, so we would try to rebuild the index on every emerge call. This fixes regenerating Packages loop. (Note that this didn't affect a released version.) Fixes: 445f10f4214c673f8fe0a9cc518c12767be4f159 Bug: https://bugs.gentoo.org/877357 Bug: https://bugs.gentoo.org/877419 Signed-off-by: Sheng Yu <syu.os@protonmail.com> Closes: https://github.com/gentoo/portage/pull/934 Signed-off-by: Sam James <sam@gentoo.org> lib/portage/dbapi/bintree.py | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=203e0d0083b5e7d8098785ec8862c02f6baf5534 commit 203e0d0083b5e7d8098785ec8862c02f6baf5534 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-11-20 03:04:40 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-11-20 03:05:40 +0000 sys-apps/portage: add 3.0.39 Closes: https://bugs.gentoo.org/365655 Closes: https://bugs.gentoo.org/757525 Closes: https://bugs.gentoo.org/871573 Closes: https://bugs.gentoo.org/875812 Closes: https://bugs.gentoo.org/875860 Closes: https://bugs.gentoo.org/877215 Closes: https://bugs.gentoo.org/877271 Closes: https://bugs.gentoo.org/877357 Closes: https://bugs.gentoo.org/877419 Closes: https://bugs.gentoo.org/873757 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.39.ebuild | 273 +++++++++++++++++++++++++++++++++ 2 files changed, 274 insertions(+)