Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
one package need ALL rust versions
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Frautoincnam
Guru
Guru


Joined: 19 May 2017
Posts: 335

PostPosted: Mon Mar 10, 2025 5:33 pm    Post subject: one package need ALL rust versions Reply with quote

It's very strange when updating 0ad:

Code:
# emerge -DpuN world

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

Calculating dependencies... done!
Dependency resolution took 144.48 s (backtrack: 8/20).

[ebuild  N     ] dev-lang/rust-bin-1.74.1-r102  USE="(-big-endian) -clippy -doc (-prefix) -rust-analyzer -rust-src -rustfmt -verify-sig" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="(17)"
[ebuild  NS    ] dev-lang/rust-1.74.1-r101 [1.84.1-r1] USE="(-mrustc-bootstrap)" LLVM_SLOT="(17%*)"
[ebuild  NS    ] dev-lang/rust-1.75.0-r101 [1.84.1-r1] LLVM_SLOT="(17%*)"
[ebuild  NS    ] dev-lang/rust-1.76.0-r101 [1.84.1-r1] LLVM_SLOT="(17%*)"
[ebuild  NS    ] dev-lang/rust-1.77.1-r101 [1.84.1-r1] LLVM_SLOT="(17%*)"
[ebuild  NS    ] dev-lang/rust-1.78.0-r101 [1.84.1-r1] LLVM_SLOT="(18%*)"
[ebuild  NS    ] dev-lang/rust-1.79.0-r101 [1.84.1-r1] LLVM_SLOT="(18%*)"
[ebuild  NS    ] dev-lang/rust-1.80.1-r101 [1.84.1-r1] LLVM_SLOT="(18%*)"
[ebuild  NS    ] dev-lang/rust-1.81.0-r101 [1.84.1-r1] LLVM_SLOT="(18%*)"
[ebuild  NS    ] llvm-core/llvm-18.1.8-r6 [19.1.7] USE="ncurses%*"
[ebuild  NS    ] llvm-core/llvm-toolchain-symlinks-18-r1 [19]
[ebuild  NS    ] dev-lang/spidermonkey-115.16.0-r1 [128.4.0-r1] LLVM_SLOT="18*"
[ebuild     U ~] games-strategy/0ad-0.27.0 [0.0.26_alpha-r2]

Code:
# equery l rust
 * Searching for rust ...
[IP-] [  ] dev-lang/rust-1.84.1-r1:1.84.1

0ad needs all rust versions !
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 55005
Location: 56N 3W

PostPosted: Mon Mar 10, 2025 5:41 pm    Post subject: Reply with quote

Frautoincnam,

Its a rust thing. Rust can build from one version to the next.
With the demise of the the virtual, you start from the rust you have and build all the version to get up to date rust.
It's a one time thing too ... as long as you keep up to date, or you will get this 'rust ladder' again.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Frautoincnam
Guru
Guru


Joined: 19 May 2017
Posts: 335

PostPosted: Mon Mar 10, 2025 5:46 pm    Post subject: Reply with quote

I didn't understand much.
And most importantly, I've NEVER had to install 9 versions of rust.
Given the compilation time for one version, it's unthinkable.
Why don't I have this problem if I don't update 0ad?
Honestly, I have a hard time believing that it's normal to have to install 9 versions of rust.
I'll just uninstall 0ad. Never mind.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 55005
Location: 56N 3W

PostPosted: Mon Mar 10, 2025 5:50 pm    Post subject: Reply with quote

Frautoincnam,

It's how you get from dev-lang/rust-bin-1.74.1-r102 to dev-lang/rust-1.81.0-r101 for whatever needs dev-lang/rust-1.81.0
Rust-version-a can only get you to rust-version-a+1, so you must do all the steps,

The binhost may help, so that you don't have to do any compiling.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 2053

PostPosted: Mon Mar 10, 2025 6:04 pm    Post subject: Reply with quote

Or else package.mask dev-lang/rust to force dev-lang/rust-bin for fast installs
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23177

PostPosted: Mon Mar 10, 2025 6:36 pm    Post subject: Reply with quote

When posting questions like this, using --tree to indent dependencies can help.
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 4704
Location: Germany

PostPosted: Mon Mar 10, 2025 7:07 pm    Post subject: Reply with quote

I think
Code:
emerge -avuDU @world games-strategy/0ad -1 rust-bin:1.81.0
should work for you.
Back to top
View user's profile Send private message
Frautoincnam
Guru
Guru


Joined: 19 May 2017
Posts: 335

PostPosted: Mon Mar 10, 2025 7:15 pm    Post subject: Reply with quote

But why do you all assume I want binary packages?
If that's what I wanted, I wouldn't have been on Gentoo for over 22 years.

You want to get around the problem by allowing me to install 9 versions of rust faster. I say, one version of rust is enough. I've only ever had one, and I'll only have one. I can't understand why the 0AD update would force me to have 9.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23177

PostPosted: Mon Mar 10, 2025 7:48 pm    Post subject: Reply with quote

That was explained to you above. To recap:
  • The Rust project is terrible about compatibility. If you want to install rust version 1.81, you need rust-1.80 or newer installed in order to compile rust-1.81. The project explicitly disclaims that you can skip versions, so while rust-1.79 may work to build rust-1.81, there is no guarantee it will.
  • The same applies down the line. If you don't have 1.80, and need it, then you need rust-1.79 in order to build rust-1.80.
  • When you get down to rust-1.74.1, Portage gives up and grabs a rust-bin, which it can use to build rust-1.74.1 from source.
So your choices are:
  • Keep a rust-free system, avoiding any packages that require a working rust compiler.
  • Install the latest rust, using either a binary package directly (to avoid compiling rust) or a binary package to get you a compiler that can build the latest rust.
  • Install someone else's binary package of an old rust, and use that to build iteratively newer versions of rust.
Now, for the dirty part at the end: if you don't want to use a binary package, you can't build rust, because you need someone else's previously built rust compiler in order to build a current rust compiler. The only way out of that is to go all the way back to the earliest days of Rust, when you only needed an OCaml compiler to build rust.
Back to top
View user's profile Send private message
Frautoincnam
Guru
Guru


Joined: 19 May 2017
Posts: 335

PostPosted: Mon Mar 10, 2025 7:53 pm    Post subject: Reply with quote

Ok, but, as I told in my first message, I already have rust installed. Why do I need NOW to install 8 previous versions ?

I feel like no one took into account what I wrote.
Frautoincnam wrote:
Code:
# equery l rust
 * Searching for rust ...
[IP-] [  ] dev-lang/rust-1.84.1-r1:1.84.1
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 2200

PostPosted: Mon Mar 10, 2025 10:13 pm    Post subject: Reply with quote

Taking into account the above information, if you only have a newer version of Rust, and 0ad needs an older version of Rust, what do you expect to happen?
Back to top
View user's profile Send private message
CooSee
Veteran
Veteran


Joined: 20 Nov 2004
Posts: 1532
Location: Earth

PostPosted: Mon Mar 10, 2025 11:22 pm    Post subject: Reply with quote

i copied spidermonkey to my local overlay and edited for llvm-19 - also bumped premake to 5.0.0_beta4, now *-beta5 because the current one failed on my system somehow.

the issue is llvm, because older versions of rust expects 18 - spidermonkey too.
Code:
[I] app-eselect/eselect-rust
     Available versions:  20210703{gpkg}
     Installed versions:  20210703{gpkg}(16:38:18 07.03.2025)
     Homepage:            https://gitweb.gentoo.org/proj/eselect-rust.git
     Description:         Eselect module for management of multiple Rust versions

[I] dev-lang/rust-bin
     Available versions: 
     (1.71.1) 1.71.1-r102^s
     (1.74.1) 1.74.1-r102^s
     (1.75.0) 1.75.0-r102^s
     (1.76.0) 1.76.0-r101^s
     (1.77.1) 1.77.1-r102^s
     (1.78.0) 1.78.0-r102^s
     (1.79.0) 1.79.0-r103^s
     (1.80.1) 1.80.1-r103^s
     (1.81.0) 1.81.0-r103^s
     (1.82.0) 1.82.0-r103^s
     (1.83.0) 1.83.0-r2^s
     (1.84.0) ~1.84.0-r2^s
     (1.84.1) 1.84.1-r2^s{gpkg}
     (1.85.0) ~1.85.0^s ~1.85.0-r1^s
     (1.86.0) **1.86.0_beta20250218^s **1.86.0_beta20250218-r1^s **1.86.0_beta20250225^s
     (9999) **9999*l^s
       {big-endian clippy doc prefix rust-analyzer rust-src rustfmt verify-sig ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32" CPU_FLAGS_X86="sse2" LLVM_SLOT="+16 +17 +18 +19 +20"}
     Installed versions:  1.84.1-r2(1.84.1)^s{gpkg}(11:21:37 23.02.2025)(rustfmt -big-endian -clippy -doc -prefix -rust-analyzer -rust-src -verify-sig ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" CPU_FLAGS_X86="sse2" LLVM_SLOT="19")
     Homepage:            https://www.rust-lang.org/
     Description:         Systems programming language from Mozilla

[I] dev-lang/rust-common
     Available versions:  1.81.0 1.82.0 1.83.0 1.84.1{gpkg} ~1.85.0 **1.86.0_beta20250218 **9999*l {verify-sig}
     Installed versions:  1.84.1{gpkg}(11:21:05 23.02.2025)(-verify-sig)
     Homepage:            https://www.rust-lang.org/
     Description:         Common files shared between multiple slots of Rust

[I] dev-util/premake
     Available versions: 
     (4)    4.3-r2
     (5)    5.0.0_beta2 (~)5.0.0_beta4{xpak}[1] (~)5.0.0_beta5{gpkg}[1]
     Installed versions:  5.0.0_beta5(5){gpkg}[1](20:46:37 10.03.2025)
     Homepage:            https://premake.github.io
     Description:         A makefile generation tool

[I] games-strategy/0ad
     Available versions:  (~)0.0.26_alpha-r2^t (~)0.27.0^t{gpkg} (~)0.27.0^t{gpkg}[1] {editor +lobby nvtt pch test verify-sig}
     Installed versions:  0.27.0^t{gpkg}[1](20:01:35 30.01.2025)(lobby -editor -nvtt -pch -test -verify-sig)
     Homepage:            https://play0ad.com/
     Description:         A free, real-time strategy game

[I] dev-lang/spidermonkey
     Available versions: 
     (102)  102.15.0-r1^t
     (115)  115.16.0-r1^t{gpkg} 115.16.0-r1^t{gpkg}[1]
     (128)  [m]128.4.0-r1^t ~128.6.0^t ~128.7.0^t ~128.8.0^t
       {clang debug +jit lto test CPU_FLAGS_ARM="neon" LLVM_SLOT="(+)17 (+)18 +19"}
     Installed versions:  115.16.0-r1(115)^t{gpkg}[1](17:05:15 07.03.2025)(jit -clang -debug -lto -test CPU_FLAGS_ARM="-neon" LLVM_SLOT="19")
     Homepage:            https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html
     Description:         Mozilla's JavaScript engine written in C and C++

8)

EDIT: IIRC i depcleaned older version of 0ad before emerging 27
_________________
" Die Realität ist eine Illusion, die durch Mangel an ehrlicher Kommunikation entsteht "
---
" Der Mensch ist von Natur aus neugierig, was am Ende übrig bleibt ist die Gier "
Back to top
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3487
Location: Canada

PostPosted: Mon Mar 10, 2025 11:50 pm    Post subject: Reply with quote

sam_ wrote:
Taking into account the above information, if you only have a newer version of Rust, and 0ad needs an older version of Rust, what do you expect to happen?


So rust cannot compile itself not only forward, but also backward ?? That's an amazing design, I must admit
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum