Wol wrote: > > > On 02/05/2025 18:07, Alan Mackenzie wrote: >> Hello, Gentoo. >> >> I've just been trying the update for python 3.13. It went well on my >> new machine (well, after unmerging app-portage/unsymlink-lib, which was >> debris from some 2019 update). > > I'm now trying to update my system. And it's not even fragile or > wedged, it just won't. > > I followed the instructions at the end - depclean, -1uVD, and it just > fails completely with "requires just one of 3_11 or 3_12". Including > important stuff like most of kde, systemd-dbus, and so on. > > I thought I'd try increasing backtrack like I usually do - to 100 - > but that made no difference. > > I missed out the stuff at the start of the news item, sorry, but see > below ... > > Giveb that I don't "do" Python, I've got nothing in make.conf that > mentions python. I guess I have nothing in package.use etc unless the > system set it for me ... > > So I guess I need to do the "safer" upgrade, but it gives me two lines > that look like comments, and says "use these to blah blah", How do I > use them? Where do I put them? I don't "do" python - this is double > dutch to me. > > Cheers, > Wol > >
I'm going to do this in segments from the news item. I had to read it a couple times to get the idea myself. Keep in mind, I ran into the same thing as you and ended up stopping at step two. I have not done a complete switch yet because several packages still want 3.12. NEWS ITEM: First, enable both Python 3.12 and Python 3.13, and then run the upgrade commands: */* PYTHON_TARGETS: -* python3_12 python3_13 */* PYTHON_SINGLE_TARGET: -* python3_12 END NEWS ITEM Put that in package.use, or some other file you may want to use. I ran my normal emerge -auDN world. I have some defaults like --with-bdeps y --backtrack=500 in make.conf. You may or may not want to use those as well. If you get a clean update from that, nothing fails, then move to the next step. You only change the second line from 12 to 13 next. NEWS ITEM: Then switch PYTHON_SINGLE_TARGET and run the second batch of upgrades: */* PYTHON_TARGETS: -* python3_12 python3_13 */* PYTHON_SINGLE_TARGET: -* python3_13 END NEWS ITEM If you get a clean update with that, then change to the next step. The top line changes this time. Just remove the 3.12 bit. Keep in mind, I haven't got that far yet. I need to try again tho. I forgot during the update I did this morning. NEWS ITEM: Finally, switch to the final version and upgrade: */* PYTHON_TARGETS: -* python3_13 */* PYTHON_SINGLE_TARGET: -* python3_13 END NEWS ITEM If you lucky, that last part works and you get a clean update. If you get a long list of packages that won't work, you either have to set it back to step two and wait until the packages update or make exceptions for each package in package.use and try to check for updates later so you can remove all the python stuff in package.use. I've read that unless you really know what you doing, setting python versions long term in package.use isn't a good idea. If one forgets, which I do a LOT, packages can start to fail and cause all sorts of issues that makes emerge spit out encrypted error messages that most of us can't decode. I might add, Eli said it is safe to stop at step two if the last step is just to soon. I have some packages, Kicad and such, that you likely don't and that is one set that is causing problems for me. Unless you have a lot of packages that have to have 3.12, it should work. It just results in compiling the same packages several times. If nothing else, maybe the above will give you a idea on how you can adjust the above to fit your needs. Basically, it's a three step process. I hope you can make it to the end and get a clean update. Oh, don't forget --depclean too. Dale :-) :-)

