• Re: [gentoo-user] Fragile rust update is wedged. (Was: Fragile python u

    From Eli Schwartz@21:1/5 to Alan Mackenzie on Fri May 2 19:50:01 2025
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------gZPUqohmFxodlCcRLKlxkfUf
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable

    On 5/2/25 1:07 PM, 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).

    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:


    This is clearly not a python update, then.


    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?


    It is not a bug in the rust ebuild -- the rust ebuild has always,
    always, always depended on itself. In the past, the rust ebuild silently downloaded a temporary copy of dev-lang/rust-bin to work around this.

    This was changed in November 2024.

    The rust compiler is written in the rust programming language, using bleeding-edge features of the most recent version of rust. They are
    aware that this is a bootstrap problem and don't consider it a problem,
    because rust is officially installed by downloading prebuilt binaries
    into $HOME.

    Compiling rust officially requires building the pre 1.0 version of rust,
    itself written in ocaml, and then building *every* version of rust since
    then, one by one, in turn, without skipping a single one. That is over
    80 different versions of rust, you need to compile all of them in order
    to get to the current one.

    On amd64, you can use the unofficial dev-lang/mrustc (third-party reimplementation of rust written in C++) which allows you to skip all
    the way to rust 1.74, and from there it is "only" 13 or so versions to
    build.

    Or, you may use rust-bin. Alternatively, you may use:

    ```
    emerge --getbinpkg dev-lang/rust
    ```


    --
    Eli Schwartz

    --------------gZPUqohmFxodlCcRLKlxkfUf--

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

    wnsEABYIACMWIQTnFNnmK0TPZHnXm3qEp9ErcA0vVwUCaBUFFgUDAAAAAAAKCRCEp9ErcA0vV7cR AQCmHl/cMNMczaZU08iWCegoUWXO8KHcycTO6GHdmzs/VAEArH5XbMmI66NNFZWLkI9W8ojJrqRm j1OhgWXmAo96Pgk=
    =8k5n
    -----END PGP SIGNATURE-----

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