• [gentoo-user] Fragile python update is wedged.

    From Alan Mackenzie@21:1/5 to All on Fri May 2 19:10:01 2025
    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).

    On my old machine, however, there was a seg fault while merging rust.
    This is a known problem in certain first generation Ryzen processors.

    However, this left the build wedged: emerge says that there's a circular dependency from rust to itself. More precisely, the error message looks
    like:

    #########################################################################

    [ebuild NS ] dev-lang/rust-1.85.1:1.85.1::gentoo [1.81.0-r100:1.81.0::gentoo, 1.82.0-r101:1.82.0::gentoo, 1.83.0-r2:1.83.0::gentoo, 1.84.1-r1:1.84.1::gentoo] USE="(-big-endian) -clippy -debug -dist -doc (-llvm-libunwind) -lto -rust-analyzer -rust-src
    -rustfmt (-system-llvm) -test -verify-sig -wasm (-miri%) (-nightly%) (-parallel-compiler%)" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="(19)" LLVM_TARGETS="(X86) -AArch64 -AMDGPU -ARC -ARM -AVR -BPF -CSKY -DirectX -Hexagon -Lanai -LoongArch
    -M68k -MSP430 -Mips -NVPTX -PowerPC -RISCV -SPIRV -Sparc -SystemZ -VE -WebAssembly -XCore -Xtensa" 0 KiB

    Total: 1 package (1 in new slot), Size of downloads: 0 KiB

    * Error: circular dependencies:

    (dev-lang/rust-1.85.1:1.85.1/1.85.1::gentoo, ebuild scheduled for merge) depends on
    (dev-lang/rust-1.85.1:1.85.1/1.85.1::gentoo, ebuild scheduled for merge) (buildtime)

    * Note that circular dependencies can often be avoided by temporarily
    * disabling USE flags that trigger optional dependencies.

    !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict:

    dev-python/gpep517:0

    #########################################################################

    (and so on).

    This would appear to be a bug in the rust ebuild - it has set itself as a builtime dependency before it had been built - or something like that.

    How do I best recover from this?

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pramod V U@21:1/5 to All on Fri May 2 19:30:01 2025
    You need a rust compiler to compile rust's own rust compiler.

    You either need dev-lang/rust-bin, a package with binaries... Either just use it or compile the main rust package for use.

    If that's a problem. dev-lang/mrustc is another compiler for rust, written in C/C++. It has been written specifically for this purpose of compiling rust's own rust compiler.

    Kind regards,
    Pramod

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wol@21:1/5 to Alan Mackenzie on Sun May 11 14:00:02 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Frank Schletz@21:1/5 to All on Sun May 11 14:50:01 2025
    Am Sun, 11 May 2025 12:54:48 +0100
    schrieb Wol <antlists@youngman.org.uk>:

    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.


    Hello.

    The "Safer upgrade procedure" in https://www.gentoo.org/support/news-items/2025-03-24-python3-13.html
    works for me like a charm.

    yes, looks funny for some people, if in
    /etc/portage/package.use/python
    there is something like

    */* PYTHON_TARGETS: -* python3_12 python3_13
    */* PYTHON_SINGLE_TARGET: -* python3_12

    But that is right.

    My old file consist of:
    */* PYTHON_TARGETS: -* python3_11 python3_12
    */* PYTHON_SINGLE_TARGET: -* python3_12

    so I start as mentioned in the news with
    emerge -1vUD @world
    emerge -a --depclean (I always take care and in doubt don't delete)

    Then change to
    */* PYTHON_TARGETS: -* python3_12 python3_13
    */* PYTHON_SINGLE_TARGET: -* python3_12
    and repeat with emerge.
    Finally change to
    */* PYTHON_TARGETS: -* python3_13
    */* PYTHON_SINGLE_TARGET: -* python3_13
    and repeat.

    It works for me and looks very straight forward.
    I got a non-systemd system and not that much packages.

    Hope you got a clean emerge @world at the beginning.

    Frank

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Philip Webb@21:1/5 to All on Sun May 11 15:30:01 2025
    I noticed others reporting Python update problems & didn't follow it,
    but in my regular Sat update today encountered a big mess.
    'setuptools-scm' offered 13 screens of conflicts,
    which were reduced to 10 by ' --backtrack=60 '.
    I tried a 'quickpkg' + 'emerge -k', but was refused as the ebuild was missing. Finally, I did a few 'emerge -C' brute-forces on some listed pkgs,
    which allowed a straightforward 'emerge' of 18 Python pkgs.
    The underlying problem seemed to be a jump to Python 3.13 .

    That solution is risky, but it has always worked before + today.
    I don't understand why Python can't do it automatically,
    but am tired of complaining & remain a strong fan of Gentoo.

    PS I've never done 'emerge World' without '-pv' since 2003 :
    I always pick/choose which pkgs to update a few at a time.

    --
    ========================,,============================================
    SUPPORT ___________//___, Philip Webb
    ELECTRIC /] [] [] [] [] []| Cities Centre, University of Toronto
    TRANSIT `-O----------O---' purslowatcadotinterdotnet

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wol@21:1/5 to Frank Schletz on Sun May 11 15:40:01 2025
    On 11/05/2025 13:43, Frank Schletz wrote:
    It works for me and looks very straight forward.
    I got a non-systemd system and not that much packages.

    Hope you got a clean emerge @world at the beginning.

    Yup I always make sure everything's depclean'd at the end.

    It's now updating stage 1 fine (approx 250 packages), but my usual backtrack=100 didn't work - I made it 1000 and it's fine.

    Little tip - if you use backtrack I think it comes up with a little
    status report - it said something like "backtrack 100/100". I'm guessing
    what that means is backtrack was set to 100, and it used 100, which is
    why it failed ... useful info if I'm right ... :-)

    Cheers,
    Wol

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Wol on Sun May 11 17:10:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------nATv51pQLpL6XcrOc6uRkqj0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 5/11/25 7:54 AM, 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.


    You must have done something more than just emerge --sync followed by
    emerge -uDU @world.

    OR you must have had old package.use entries setting duplicate USE flags already.


    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.


    I'm confused and baffled that, when a news item describes some blocks of
    code as "the package.use samples provided below", you are totally lost
    and declare that you don't "do" python as it's double dutch to you.

    And why on earth would you assume they are comments?

    You don't need to know python and aren't expected to either. The news
    item describes the fact that:

    - a group of packages using the python programming language, are
    switching their versioned USE flags, here's the correct way to migrate
    the USE

    - it involves building many packages for the changed USE. Rebuilding
    many packages at the same time can sometimes result in complex issues,
    these are a USE_EXPAND and can be migrated in stages, which is safer.



    --
    Eli Schwartz

    --------------nATv51pQLpL6XcrOc6uRkqj0--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCaCC8eQUDAAAAAAAKCRCEp9ErcA0vV6qi AP9q68qYg48xiT2AkqN8qx/EIdcYAiIDomN+HEp5iEt3pQD+MZblfHFTP8OTrdSPQt50utm+LaWI RGL0K4rQYjWasg4=
    =WckC
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Philip Webb on Sun May 11 17:20:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------461t8V2m4HaALbJLaF6osN3o
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 5/11/25 9:26 AM, Philip Webb wrote:
    I noticed others reporting Python update problems & didn't follow it,
    but in my regular Sat update today encountered a big mess.
    'setuptools-scm' offered 13 screens of conflicts,
    which were reduced to 10 by ' --backtrack=60 '.
    I tried a 'quickpkg' + 'emerge -k', but was refused as the ebuild was missing.
    Finally, I did a few 'emerge -C' brute-forces on some listed pkgs,
    which allowed a straightforward 'emerge' of 18 Python pkgs.
    The underlying problem seemed to be a jump to Python 3.13 .


    I doubt the problem was that package specifically, as it supports all
    python versions already. Probably, it was just set by the default
    upgrade changes to 3.13, but some other package was stuck on 3.12. This
    in turn prevented updating setuptools-scm at all, which meant other
    packages which required setuptools-scm, couldn't be rebuilt for 3.13

    The "safe" approach solves that, fwiw. (You may not be able to do the
    second stage and remove 3.12, ddepending.)

    Please consider emerge -c --with-bdeps=n before something as dangerous
    as -C. If the former works, then you're guaranteed a correct system
    dependency graph and will just have to freshly emerge build
    dependencies, which is a valid and supported scenario, whereas emerge -C
    is *not*.

    As you say, "that solution is risky"... but -c --with-bdeps=n would mean
    you aren't doing risky things at all...


    --
    Eli Schwartz

    --------------461t8V2m4HaALbJLaF6osN3o--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCaCC+1AUDAAAAAAAKCRCEp9ErcA0vV10H AQCqbeRKoX8WPvlqofrjxATPyxotaawjPWNk0zh8UQq4SAEA0yjk6cYDNWe+bn2uS7WJyPo+mb3B jfbW7osUzKFFbwU=
    =41ii
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wol@21:1/5 to Eli Schwartz on Sun May 11 19:50:01 2025
    On 11/05/2025 16:04, Eli Schwartz wrote:
    On 5/11/25 7:54 AM, 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.


    You must have done something more than just emerge --sync followed by
    emerge -uDU @world.

    What else would I have done? I ran the sync, read the news, and followed
    the instructions at the bottom. The emerge failed with loads of errors.

    The only thing else I did was delete avidemux (which I think was broken anyway), because that was an obvious problem that wouldn't cause
    problems if I deleted it.

    OR you must have had old package.use entries setting duplicate USE flags already.


    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.


    I'm confused and baffled that, when a news item describes some blocks of
    code as "the package.use samples provided below", you are totally lost
    and declare that you don't "do" python as it's double dutch to you.

    Found it. I will investigate, but to the best of my memory I have no
    "targets" settings whatsoever. I will take a look, but at the moment I'm running the emerge. So from what the news item says, it looks like
    everything should have "just worked" - except it didn't.

    And I can see what happened now. It doesn't help that I didn't have my
    glasses, but the news item says:

    "At this point, you have a few configuration options to choose from:"

    I jumped straight to option 4, so I didn't read option 1 - why should I? Especially if I'm having difficulty reading.

    And why on earth would you assume they are comments?

    Because the news item, as written, led me up the garden path!

    "Safer upgrade procedure
    =======================
    A safer approach is to add Python 3.13 support to your system first,
    and only then remove Python 3.12. However, note that this involves two rebuilds of all the affected packages, so it will take noticeably
    longer.

    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"

    It says "run the upgrade commands - COLON". As I understand English,
    that says that what follows is a list of COMMANDS. And "*/*" looks like
    a weird comment marker. Why would I assume it's a declaration snippet?


    You don't need to know python and aren't expected to either. The news
    item describes the fact that:

    That's clear now. But the combination of not reading a paragraph that
    clearly appeared to be irrelevant, and the use of non-idiomatic grammar
    that read completely differently than intended, meant I completely
    failed to understand what I was supposed to do.

    Oh - and I've just checked - there is no mention of Python in my
    package.use (apart from what I've just created to do the upgrade). So I
    don't appear to have any python targets anywhere .

    Cheers,
    Wol

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael@21:1/5 to All on Sun May 11 19:06:34 2025
    On Sunday, 11 May 2025 18:40:44 British Summer Time Wol wrote:

    Found it. I will investigate, but to the best of my memory I have no "targets" settings whatsoever. I will take a look, but at the moment I'm running the emerge. So from what the news item says, it looks like
    everything should have "just worked" - except it didn't.

    This won't help you, but I have updated 4 systems so far and a 4th somewhat abandoned waiting for my time, with no problems so far whatsoever. I do understand and it was explained, it is a matter of which packages may be installed in a system if you may face a failed update.


    And I can see what happened now. It doesn't help that I didn't have my glasses, but the news item says:

    "At this point, you have a few configuration options to choose from:"

    I jumped straight to option 4, so I didn't read option 1 - why should I? Especially if I'm having difficulty reading.

    Perhaps because a numbered list is meant to be followed in the numbered order?

    I started with option 1 and had no problems, but others sooner or later run aground and had to consider subsequent options depending on their individual situation.


    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"

    It says "run the upgrade commands - COLON". As I understand English,
    that says that what follows is a list of COMMANDS. And "*/*" looks like
    a weird comment marker. Why would I assume it's a declaration snippet?

    Because an asterisk "*" is a special character treated as a wildcard when parsed by a Unix shell. It will match any number of unknown characters.

    The "*/*" statement at the start of a file under /etc/portage/ can be interpreted as a filter matching:

    any category/any package

    with the next "-*" statement interpreted as:

    disable any python targets and then finally set only the python target(s) that follow.


    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEXqhvaVh2ERicA8Ceseqq9sKVZxkFAmgg5yoACgkQseqq9sKV ZxkH4RAA5lICp5a2NNeIKh0k4KccDt26P++VogjjmpTUYupZUaauccnXZz8dZJma g68uuQrESbiYLHocktsXXcduzkvvT3szkrGfYs5hiuE1nAIAey3OSR4i73bEjYDb 8KtUATuSADWEnGmiP7uEw9rFKUukRBuTsJjgEpouUva23GvozATPkV7bcqTTivMP sC5QX3RRY5ySkNlpd4ulJMv3zXCc+9mlVNkBpfi1ggzbtTGfB8NneW+wh/DqwWEg gCHtRNZVnqtidNGuJ9W7NDV6cw3aEcWYF1x6YZJ0FRiQfWoY5v0BBgdry6qVBmus DN0H9tiGQhQEwF2e3MLyPimblEP3I84IpU/2LZ9YvvyWYTT7X5II0NxgPMyxouS0 wgLDedZzl9zlEF7EXamuR4rd16yvPIk88fq1LR3l86qQ/f8rCK4sDH6Yh3KXrfWY ArPx0q8fkiqy1VtVm5dQLmTslF3H+512Dqwo6HavTp2m1IQ67vAVYihxzDp/PlI7 +E9NtxV4ElYRZWIoartv46kwu/Uyhue/wjm+/Q59ZjhBXck7lYNqE7ASTVQVcRrr Ed1/jrIKvstXGt8JpjxPvuxYg4RUFgN71YADTzWhd/BtnjsLPhXotHwsMzzPCUJM y4yFHtRbd7CPsyibzDU8f8r0kcFS5K+DaAwlavXXJK8towsKFD0=
    =D9Mm
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Wol on Sun May 11 20:20:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------pOFc74XdXNLEcPPC3U0KYzvQ
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 5/11/25 1:40 PM, Wol wrote:
    On 11/05/2025 16:04, Eli Schwartz wrote:
    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.


    You must have done something more than just emerge --sync followed by
    emerge -uDU @world.

    What else would I have done? I ran the sync, read the news, and followed
    the instructions at the bottom. The emerge failed with loads of errors.

    The only thing else I did was delete avidemux (which I think was broken anyway), because that was an obvious problem that wouldn't cause
    problems if I deleted it.


    You didn't post full output so it's difficult to say for sure. But,
    "requires just one of" sounds like this:

    $ PYTHON_SINGLE_TARGET='python3_13 python3_12' emerge -1a glib-utils

    These are the packages that would be merged, in order:

    Calculating dependencies -

    !!! Problem resolving dependencies for dev-util/glib-utils
    ... done!
    Dependency resolution took 1.01 s (backtrack: 0/20).


    !!! The ebuild selected to satisfy "glib-utils" has unmet requirements.
    - dev-util/glib-utils-2.82.5::gentoo USE="" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_12 python3_13 -python3_11"

    The following REQUIRED_USE flag constraints are unsatisfied:
    exactly-one-of ( python_single_target_python3_11 python_single_target_python3_12 python_single_target_python3_13 )



    The "exactly-one-of" means you have set two USE flags for the package
    and can only choose one at the same time.

    The ::gentoo repository of ebuilds does not set both at the same time.
    In order to get both, you must have one somewhere outside of the gentoo repository...


    OR you must have had old package.use entries setting duplicate USE flags
    already.


    ... which is why I suggested this.


    And I can see what happened now. It doesn't help that I didn't have my glasses, but the news item says:

    "At this point, you have a few configuration options to choose from:"

    I jumped straight to option 4, so I didn't read option 1 - why should I? Especially if I'm having difficulty reading.


    Sorry? What? This wasn't part of option 1, this was from the paragraph
    before "at this point you have a few configuration options".

    You jumped straight over the paragraph before the one telling you to
    make a choice.


    And why on earth would you assume they are comments?

    Because the news item, as written, led me up the garden path!

    "Safer upgrade procedure
    =======================
    A safer approach is to add Python 3.13 support to your system first,
    and only then remove Python 3.12.  However, note that this involves two rebuilds of all the affected packages, so it will take noticeably
    longer.

    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"

    It says "run the upgrade commands - COLON". As I understand English,
    that says that what follows is a list of COMMANDS. And "*/*" looks like
    a weird comment marker. Why would I assume it's a declaration snippet?


    First, enable both python 3.12 an python 3.13:

    <package.use stuff>

    and then run the upgrade commands.

    It is not lacking the quality of being idiomatic, to write the colon
    after the full sentence rather than splitting the sentence in two. I see
    both quite often. But regardless,

    it certainly isn't a weird comment marker given:

    - it looks EXACTLY like package.use syntax (because it is)

    - there are no COMMANDS. No "emerge" either. Did you try to copy/paste
    it into a bash shell?


    You don't need to know python and aren't expected to either. The news
    item describes the fact that:

    That's clear now. But the combination of not reading a paragraph that
    clearly appeared to be irrelevant,


    This is not what happened, so the news item is not responsible for your
    failure to read the paragraph *before* the one you felt was irrelevant.

    Sorry.


    --
    Eli Schwartz

    --------------pOFc74XdXNLEcPPC3U0KYzvQ--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCaCDntAUDAAAAAAAKCRCEp9ErcA0vV2cD AQDh6208USDW5Uj1ragU4D0zY82BSrImbIVl9FKzY/7qxgD/QW0Q0l1Wj8R2q4rnLRAQAoncUQMT m7ANojkmMQc/dgo=
    =ykMy
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wol@21:1/5 to Eli Schwartz on Sun May 11 21:20:01 2025
    On 11/05/2025 19:08, Eli Schwartz wrote:
    Because the news item, as written, led me up the garden path!

    "Safer upgrade procedure
    =======================
    A safer approach is to add Python 3.13 support to your system first,
    and only then remove Python 3.12.  However, note that this involves two
    rebuilds of all the affected packages, so it will take noticeably
    longer.

    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"

    It says "run the upgrade commands - COLON". As I understand English,
    that says that what follows is a list of COMMANDS. And "*/*" looks like
    a weird comment marker. Why would I assume it's a declaration snippet?

    First, enable both python 3.12 an python 3.13:

    <package.use stuff>

    and then run the upgrade commands.

    It is not lacking the quality of being idiomatic, to write the colon
    after the full sentence rather than splitting the sentence in two. I see
    both quite often. But regardless,

    The problem is, if I see "commands COLON", that means that what follows
    the colon is a list of commands. And it's clearly a list so I assumed it
    was commands ...

    From his name, I assume Michał Górny is not a native English speaker,
    and I have no problem with that. I speak four languages to varying
    amounts of ability and the quality of foreigners' English never ceases
    to amaze me. But the fact remains I did not understand what this news
    item said! It's been explained and it's now clear what was meant,
    whether that's what was actually written or not.

    And going back a bit - having carefully read the news item to find what
    it said about package.use, it's magically changed!?!? I now can't find
    any mention of "package.use snippets", which I am sure I found when
    carefully reading the item!

    But anyway - a bit more - the actual targets ...

    You didn't post full output so it's difficult to say for sure. But, "requires just one of" sounds like this:

    $ PYTHON_SINGLE_TARGET='python3_13 python3_12' emerge -1a glib-utils

    That's basically what I got, except it was demanding python 11 or 12.
    Given that I have absolutely no mention that I can find of python, in
    either make.conf or package.use (other than the snippet I've just added
    to force the upgrade), it looks to me like option 1 should have "just
    worked". So why didn't it? Where else would there be stuff that tells my
    system that Python 13 is "persona non grata"?

    The only thing that feels like it might be a problem (and if Python 13
    is now the default that's REALLY weird) is I don't have ~amd64 as
    default ... (and my system is systemd/kde, but that also should be
    irrelevant).

    Cheers,
    Wol

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eli Schwartz@21:1/5 to Wol on Sun May 11 21:50:02 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------lXj6ah0HxkESheu0mgZUxySB
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 5/11/25 3:10 PM, Wol wrote:
    But anyway - a bit more - the actual targets ...

    You didn't post full output so it's difficult to say for sure. But,
    "requires just one of" sounds like this:

    $ PYTHON_SINGLE_TARGET='python3_13 python3_12' emerge -1a glib-utils

    That's basically what I got, except it was demanding python 11 or 12.


    ... but you originally said,

    "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."


    You should definitely not have only 3.11 and 3.12 as options for "most
    of kde, systemd-dbus, and so on".

    Here's a list of packages that only have 3.11 and 3.12 support:

    https://qa-reports.gentoo.org/output/gpyutils/312-to-313.txt

    Courtesy of the dashboard at https://qa-reports.gentoo.org/

    A mere 269 packages, out of numerous thousands of packages in gentoo.
    And "most of KDE" was certainly ready. A common theme of those that
    weren't is that they are usually not well maintained or popular. sci-*/ packages are quite a chunk.

    Either way, that goes back to the general discussion about "not all
    packages were ready yet", and that is a topic of discussion every single
    year. As the news item said, it's possible to take a slower approach and
    defer the whole thing.


    Given that I have absolutely no mention that I can find of python, in
    either make.conf or package.use (other than the snippet I've just added
    to force the upgrade), it looks to me like option 1 should have "just worked". So why didn't it? Where else would there be stuff that tells my system that Python 13 is "persona non grata"?


    Full portage output could no doubt shed a light on which package is
    missing support for 3.13 entirely.


    --
    Eli Schwartz

    --------------lXj6ah0HxkESheu0mgZUxySB--

    -----BEGIN PGP SIGNATURE-----

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCaCD+4QUDAAAAAAAKCRCEp9ErcA0vV4WY AQDIMdTHDXCt3YRPMkAamMK/7rdtzXvrWD+/XSFYrlRfHgEA8Y+T/ShEy9qih5SULyYsJpE5q1lm ulqVDi59olOU/g4=
    =7ub8
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael@21:1/5 to All on Sun May 18 13:06:10 2025
    On Saturday, 17 May 2025 08:17:34 British Summer Time Dale wrote:
    Dale wrote:
    <<<< SNIP >>>>
    Oh, tried to do the last step on my main rig, emerge spit out a nice
    loud and hard to miss, NO!!!. There's still a lot of packages not ready for python 3.13 yet. Maybe next week. If I don't forget. Again.

    Dale

    :-) :-)

    Little update. I just went to the third step in the python update news
    item, safer method. The only package I have left at 3.12 is media-libs/avidemux-plugins. It is a lonely package for python 3.12.
    Even Kicad is up to 3.13 now.

    So, for those still stuck at step 2, may want to give step three a try
    and see how close you are to being able to fully switch.

    Dale

    :-) :-)

    First, a big thank you to devs and maintainers for making this python upgrade so seamless and for me at least, painless. Four PCs were updated without any intervention by me whatsoever.

    The fifth upgrade involved an old laptop which had not seen an update for more than 9 months. I thought this would present some problems and require my manual intervention, if only because portage and its contents have moved on some distance over this time.

    Emerge added a load of python target related USE flags in zz-autounmask, which I accepted. Then I added '--backtrack=99' before I let it rip. It took overnight, emerged close to 900 packages and arrived at a fully working system and desktop. After a --depclean session I removed the zz-autounmask USE
    flags, whereby a number of python related packages were re-emerged and everything is working as expected.

    Finally, another laptop with a very similar collection of packages had an almost seamless upgrade ... except that I stopped it some way through. When I restarted emerge a day later there were problems. Packages were asking to be emerged in a different order. Rust had a circular hissy fit as Alan reported initially and qt-base and friends were blocking because they didn't like some of the recently emerged dependencies - or something like that. Anyway, I emerged rust-bin for now, unmerged qt-base and left the emerge well alone to proceeded with further issues.

    Given this anecdotal experience, I made a mental note for next time to leave systems complete a major upgrade once I commit to it, rather than interrupt emerge from doing its thing.
    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEXqhvaVh2ERicA8Ceseqq9sKVZxkFAmgpzTMACgkQseqq9sKV Zxm+qRAAvTxUSZcqo3zQvf7VuZr4y3mZwvDSzJLNdxD/jNzcbPmMKvKMuJumPxxc w5MkGOouAFV4IoyFveXYYFfDfCjejGtjaRT+NdgRBvBF/kpgyk7Pmjzl2sLnsH+M zky4SxhG5ro4E1Vm/C18OlCvSVQHNAXsLy4JKbfImiZ+QMp4gO57OSr8ydoncMcy tLOduAgx+1BJ7fkfr9mYspscOVoM1e8Kn/jFg7nO9KbDjCHpguqfI6Il8eANFlYM YGca6trxqDHKfOwhZbB2lsXNZu6a6yz0fFqgqYYHWZHLX6ybf6A6osknI4r5/fTV z/5/X7a86W5W8R0DnkLeqRvzwrjzMTllKPEBJoPuNDgnbRr5aPprZLyCm1P7WLxh 0PM6inxObTr+Aep9VWa5WY9aF7UFU6gwlNZWvJzNjMXPsB25ftRz0l+RmT1shffz JK55tklcNvO1c5HYAcxq4zjRaQJ/lBEtNIs1x7CcOrwwphvsiLubk05SRxHrieDU q5FTWCPWXUchp/61av2yu5BqxWWQTXZtK0soH5d6rhgsazNjLtRylNC0lhui8uen 9wV7LuQ6qnRayt7V0ZBfQKsnNfp0//nGfXflg9I5u7/5keb1liixSrWfvp1bDvam fQ15Shwg7i7XtYL+YY4a+k6bUYXftZ/Ya0Gf8PlzYxB5Ak06nK4=
    =zel2
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)