When updating my system from python3_9 to python3_10 portage firstly updated python-exec pkg and then other pkgs begin to fail with missing python dependencies (system update fails). Solved problem editing /usr/portage/eclass/python-utils-r1.eclass (2nd order inherited from python-exec) and added my old python3_9 version to _PYTHON_ALL_IMPLS array and reemerged python-exec. Maybe _PYTHON_ALL_IMPLS could take its value from PYTHON_COMPAT array from python-exec ebuild, no idea if this could break other things. Information could be a little inexact because i'm reporting without system at hand. Reproducible: Always Possibly related BUG reports: #770421, #830273
I've been thinking about this for a while. Obviously, the case you hit "shouldn't" happen because it either implies a Portage bug (misordering for the merge list) or bad luck/fragility (because some package in the list failed between python-exec being re-emerged and Portage being re-emerged with new Python). But that's little comfort and not very helpful practically. Maybe we could use the list of historical implementations and have python-exec fall back to that (possibly with some warning on stderr?) if it must.
(In reply to Sam James from comment #1) > I've been thinking about this for a while. > > Obviously, the case you hit "shouldn't" happen because it either implies a > Portage bug (misordering for the merge list) or bad luck/fragility (because > some package in the list failed between python-exec being re-emerged and > Portage being re-emerged with new Python). But that's little comfort and not > very helpful practically. > > Maybe we could use the list of historical implementations and have > python-exec fall back to that (possibly with some warning on stderr?) if it > must. Thanks for your reply. Not so frequently updated systems finds trouble each time (same with archlinux)
*** Bug 919384 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=49c22943ba73c948023881452525420fe61210bf commit 49c22943ba73c948023881452525420fe61210bf Author: Sam James <sam@gentoo.org> AuthorDate: 2025-01-15 23:41:27 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2025-01-16 11:07:39 +0000 OutdatedBlocker: update from 2 years -> 4 years 2 years is too aggressive IMHO. See de65ca7b4a3f3a68b65b56e2dcaf6e511d3a3443 for a recent example of this in ::gentoo but there's been plenty of such cases in #gentoo on IRC where we got users upgrading fine but they became unstuck by a removed blocker. Such blockers are really cheap and the purpose of the warning is really to remove ancient cruft rather than actually obstruct people upgrading systems where it's viable. Note that it's especially problematic because of the current behaviour of python-exec where emerge won't be able to resume if python-exec got updated but portage hasn't yet been rebuilt w/ new PYTHON_TARGETS. (... because if any interruption occurs, it can be fatal.) Bug: https://bugs.gentoo.org/916498 Signed-off-by: Sam James <sam@gentoo.org> src/pkgcheck/checks/metadata.py | 4 ++-- tests/checks/test_metadata.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)