Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 934043

Summary: =sys-apps/portage-3.0.63-r1: portage update conflicts despite default USE flags
Product: Gentoo Linux Reporter: m1027 <m1027>
Component: Current packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED INVALID    
Severity: normal CC: floppym, m1027
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=722748
Whiteboard:
Package list:
Runtime testing required: ---

Description m1027 2024-06-11 12:58:29 UTC
I expected no conflict for a standard portage update. But today I ran into this:

Updating portage from 3.0.63 to 3.0.63-1 fails on many servers here:

> emerge -a1 portage
> ...
> [pulls many changes due to python-11 -> 12]
> ...
> [ebuild     U  ] sys-apps/portage-3.0.63-r1 [3.0.63] PYTHON_TARGETS="python3_12* -python3_11*"
> 
>
> !!! Multiple package instances within a single package slot have been pulled
> !!! into the dependency graph, resulting in a slot conflict:
> 
> sys-apps/portage:0
> 
>   (sys-apps/portage-3.0.63-r1:0/0::gentoo, ebuild scheduled for merge) USE="(ipc) native-extensions rsync-verify (xattr) -apidoc -build -doc -gentoo-dev (-selinux) -test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11" pulled in by
>     sys-apps/portage (Argument)
> 
>   (sys-apps/portage-3.0.63:0/0::gentoo, installed) USE="(ipc) native-extensions rsync-verify (xattr) -apidoc -build -doc -gentoo-dev (-selinux) -test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12" pulled in by
>     sys-apps/portage[python_targets_python3_11(-)] required by (app-admin/webapp-config-1.55-r3:0/0::gentoo, installed) USE="portage" PYTHON_TARGETS="python3_11 -python3_10"
>                                                                                                                                                                 
>     >=sys-apps/portage-2.1.10.3[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] required by (app-portage/gentoopm-0.5.0:0/0::gentoo, installed) USE="-test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12"
>                                                                                                                                                                                                                                                                                                                                 
>     >=sys-apps/portage-3.0.57[python_targets_pypy3(-)?,python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] required by (app-portage/gentoolkit-0.6.5:0/0::gentoo, installed) USE="" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 -python3_12"
>
> [...]

My question is:

I can for sure find a solution to work-around this (e.g. enable python3_11 too for a while).

However, I am more interested in a fool-proof, standard way out of such a situation.

As I have NO python USE flag tweaks applied, only defaults, I'd expect to upgrade smoothly without issues. I do:

(1) emerge --sync
(2) emerge -a1 portage

Well, obviously, this time we have a portage update PLUS the python upgrade from 11 to 12. But anyway, shouldn't a default USE flag configuration (NO python tweaks) always work?

Extra info: I am dealing with production systems here, that are updated only once a month. Personally I had no such issues on workstations that receive updates more regularely.

What is your recommendation for a fool-proof update procedure?

Thanks
Comment 1 Mike Gilbert gentoo-dev 2024-06-11 14:55:03 UTC
Please upgrade to app-admin/webapp-config-1.55-r4.
Comment 2 m1027 2024-06-11 19:41:03 UTC
Thanks. That was not my point, though.

I was asking for a *general* update strategy. The point is that upgrading portage first, then the rest, is not working in the above case.

But I won't insist.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-06-11 19:43:27 UTC
(In reply to m1027 from comment #2)
> Thanks. That was not my point, though.
> 
> I was asking for a *general* update strategy. The point is that upgrading
> portage first, then the rest, is not working in the above case.
> 
> But I won't insist.

Portage used to say "there's an update available for me, please take it" unconditionally. It was updated for bug 722748 to not do that if there's a pending PYTHON_TARGETS change.

In this case, the only real thing you could do is follow the Python news item and defer the default change until a time of your choosing.
Comment 4 Mike Gilbert gentoo-dev 2024-06-11 19:46:09 UTC
(In reply to m1027 from comment #2)
> I was asking for a *general* update strategy. The point is that upgrading
> portage first, then the rest, is not working in the above case.

Bugzilla is really not the place to ask for general advice. I would suggest asking in IRC, mailing lists, or the forums.
Comment 5 m1027 2024-06-12 09:14:57 UTC
Great link to the bug report that addressed exactly my question!

So, for my currently failing standard Gentoo update procedure (scripts) I'll try to fix that by another initial check when *not* to upgrade portage first. I will try to find help elsewhere though on how to programmatically check whether a python_targets change is pending.