@@ -159,40 +159,41 @@ def format_build_time(duration):
159159class RustBuild (object ):
160160 def download_stage0 (self ):
161161 cache_dst = os .path .join (self .build_dir , "cache" )
162- rustc_cache = os .path .join (cache_dst , self .stage0_rustc_date ())
162+ rustc_cache = os .path .join (cache_dst , self .stage0_date ())
163163 if not os .path .exists (rustc_cache ):
164164 os .makedirs (rustc_cache )
165165
166- channel = self .stage0_rustc_channel ()
166+ rustc_channel = self .stage0_rustc_channel ()
167+ cargo_channel = self .stage0_cargo_channel ()
167168
168169 if self .rustc ().startswith (self .bin_root ()) and \
169170 (not os .path .exists (self .rustc ()) or self .rustc_out_of_date ()):
170171 self .print_what_it_means_to_bootstrap ()
171172 if os .path .exists (self .bin_root ()):
172173 shutil .rmtree (self .bin_root ())
173- filename = "rust-std-{}-{}.tar.gz" .format (channel , self .build )
174- url = "https://static.rust-lang.org/ dist/" + self .stage0_rustc_date ()
174+ filename = "rust-std-{}-{}.tar.gz" .format (rustc_channel , self .build )
175+ url = self . _download_url + "/ dist/" + self .stage0_date ()
175176 tarball = os .path .join (rustc_cache , filename )
176177 if not os .path .exists (tarball ):
177178 get ("{}/{}" .format (url , filename ), tarball , verbose = self .verbose )
178179 unpack (tarball , self .bin_root (),
179180 match = "rust-std-" + self .build ,
180181 verbose = self .verbose )
181182
182- filename = "rustc-{}-{}.tar.gz" .format (channel , self .build )
183- url = "https://static.rust-lang.org/ dist/" + self .stage0_rustc_date ()
183+ filename = "rustc-{}-{}.tar.gz" .format (rustc_channel , self .build )
184+ url = self . _download_url + "/ dist/" + self .stage0_date ()
184185 tarball = os .path .join (rustc_cache , filename )
185186 if not os .path .exists (tarball ):
186187 get ("{}/{}" .format (url , filename ), tarball , verbose = self .verbose )
187188 unpack (tarball , self .bin_root (), match = "rustc" , verbose = self .verbose )
188189 self .fix_executable (self .bin_root () + "/bin/rustc" )
189190 self .fix_executable (self .bin_root () + "/bin/rustdoc" )
190191 with open (self .rustc_stamp (), 'w' ) as f :
191- f .write (self .stage0_rustc_date ())
192+ f .write (self .stage0_date ())
192193
193194 if "pc-windows-gnu" in self .build :
194- filename = "rust-mingw-{}-{}.tar.gz" .format (channel , self .build )
195- url = "https://static.rust-lang.org/ dist/" + self .stage0_rustc_date ()
195+ filename = "rust-mingw-{}-{}.tar.gz" .format (rustc_channel , self .build )
196+ url = self . _download_url + "/ dist/" + self .stage0_date ()
196197 tarball = os .path .join (rustc_cache , filename )
197198 if not os .path .exists (tarball ):
198199 get ("{}/{}" .format (url , filename ), tarball , verbose = self .verbose )
@@ -201,15 +202,15 @@ def download_stage0(self):
201202 if self .cargo ().startswith (self .bin_root ()) and \
202203 (not os .path .exists (self .cargo ()) or self .cargo_out_of_date ()):
203204 self .print_what_it_means_to_bootstrap ()
204- filename = "cargo-{}-{}.tar.gz" .format (channel , self .build )
205- url = "https://static.rust-lang.org/ dist/" + self .stage0_rustc_date ()
205+ filename = "cargo-{}-{}.tar.gz" .format (cargo_channel , self .build )
206+ url = self . _download_url + "/ dist/" + self .stage0_date ()
206207 tarball = os .path .join (rustc_cache , filename )
207208 if not os .path .exists (tarball ):
208209 get ("{}/{}" .format (url , filename ), tarball , verbose = self .verbose )
209210 unpack (tarball , self .bin_root (), match = "cargo" , verbose = self .verbose )
210211 self .fix_executable (self .bin_root () + "/bin/cargo" )
211212 with open (self .cargo_stamp (), 'w' ) as f :
212- f .write (self .stage0_rustc_date ())
213+ f .write (self .stage0_date ())
213214
214215 def fix_executable (self , fname ):
215216 # If we're on NixOS we need to change the path to the dynamic loader
@@ -264,12 +265,15 @@ def fix_executable(self, fname):
264265 print ("warning: failed to call patchelf: %s" % e )
265266 return
266267
267- def stage0_rustc_date (self ):
268- return self ._rustc_date
268+ def stage0_date (self ):
269+ return self ._date
269270
270271 def stage0_rustc_channel (self ):
271272 return self ._rustc_channel
272273
274+ def stage0_cargo_channel (self ):
275+ return self ._cargo_channel
276+
273277 def rustc_stamp (self ):
274278 return os .path .join (self .bin_root (), '.rustc-stamp' )
275279
@@ -280,13 +284,13 @@ def rustc_out_of_date(self):
280284 if not os .path .exists (self .rustc_stamp ()) or self .clean :
281285 return True
282286 with open (self .rustc_stamp (), 'r' ) as f :
283- return self .stage0_rustc_date () != f .read ()
287+ return self .stage0_date () != f .read ()
284288
285289 def cargo_out_of_date (self ):
286290 if not os .path .exists (self .cargo_stamp ()) or self .clean :
287291 return True
288292 with open (self .cargo_stamp (), 'r' ) as f :
289- return self .stage0_rustc_date () != f .read ()
293+ return self .stage0_date () != f .read ()
290294
291295 def bin_root (self ):
292296 return os .path .join (self .build_dir , self .build , "stage0" )
@@ -572,7 +576,13 @@ def bootstrap():
572576 shutil .rmtree ('.cargo' )
573577
574578 data = stage0_data (rb .rust_root )
575- rb ._rustc_channel , rb ._rustc_date = data ['rustc' ].split ('-' , 1 )
579+ rb ._date = data ['date' ]
580+ rb ._rustc_channel = data ['rustc' ]
581+ rb ._cargo_channel = data ['cargo' ]
582+ if 'dev' in data :
583+ rb ._download_url = 'https://dev-static.rust-lang.org'
584+ else :
585+ rb ._download_url = 'https://static.rust-lang.org'
576586
577587 # Fetch/build the bootstrap
578588 rb .build = rb .build_triple ()
0 commit comments