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

:-)  :-) 

Reply via email to