@@ -8,7 +8,10 @@ use std::fs::{self, File};
88use std:: io;
99use tempfile:: tempdir;
1010
11- static RUSTUP_BASE_URL : & str = "https://static.rust-lang.org/rustup/dist" ;
11+ // we're using an old version of rustup, since rustup 1.28 is broken for rustwide for now.
12+ // We'll try to either fix rustup, or adapt rustwide to fix this, until then, we'll use this version.
13+ // see https://github.com/rust-lang/rustup/issues/4224
14+ static RUSTUP_VERSION : & str = "1.27.1" ;
1215
1316pub ( crate ) struct Rustup ;
1417
@@ -37,10 +40,10 @@ impl Tool for Rustup {
3740 fs:: create_dir_all ( workspace. rustup_home ( ) ) ?;
3841
3942 let url = format ! (
40- "{ }/{}/rustup-init{}" ,
41- RUSTUP_BASE_URL ,
42- crate :: HOST_TARGET ,
43- EXE_SUFFIX
43+ "https://static.rust-lang.org/rustup/archive/{version }/{target }/rustup-init{exe_suffix }" ,
44+ version = RUSTUP_VERSION ,
45+ target = crate :: HOST_TARGET ,
46+ exe_suffix = EXE_SUFFIX
4447 ) ;
4548 let mut resp = workspace
4649 . http_client ( )
@@ -75,11 +78,7 @@ impl Tool for Rustup {
7578
7679 fn update ( & self , workspace : & Workspace , _fast_install : bool ) -> anyhow:: Result < ( ) > {
7780 Command :: new ( workspace, & RUSTUP )
78- . args ( & [ "self" , "update" ] )
79- . run ( )
80- . context ( "failed to update rustup" ) ?;
81- Command :: new ( workspace, & RUSTUP )
82- . args ( & [ "update" , MAIN_TOOLCHAIN_NAME ] )
81+ . args ( & [ "update" , MAIN_TOOLCHAIN_NAME , "--no-self-update" ] )
8382 . run ( )
8483 . with_context ( || format ! ( "failed to update main toolchain {}" , MAIN_TOOLCHAIN_NAME ) ) ?;
8584 Ok ( ( ) )
0 commit comments