@@ -3236,64 +3236,66 @@ impl Step for Distcheck {
3236
3236
// local source code, built artifacts or configuration by accident
3237
3237
let root_dir = std:: env:: temp_dir ( ) . join ( "distcheck" ) ;
3238
3238
3239
- // Check that we can build some basic things from the plain source tarball
3240
- builder. info ( "Distcheck plain source tarball" ) ;
3241
- let plain_src_tarball = builder. ensure ( dist:: PlainSourceTarball ) ;
3242
- let plain_src_dir = root_dir. join ( "distcheck-plain-src" ) ;
3243
- builder. clear_dir ( & plain_src_dir) ;
3244
-
3245
- let configure_args: Vec < String > = std:: env:: var ( "DISTCHECK_CONFIGURE_ARGS" )
3246
- . map ( |args| args. split ( " " ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) )
3247
- . unwrap_or_default ( ) ;
3248
-
3249
- // FIXME: unpack the source tarballs into a directory outside the source checkout, to
3250
- // ensure that it cannot access any local state
3251
- // Also ensure that it doesn't use download-ci-llvm
3252
- command ( "tar" )
3253
- . arg ( "-xf" )
3254
- . arg ( plain_src_tarball. tarball ( ) )
3255
- . arg ( "--strip-components=1" )
3256
- . current_dir ( & plain_src_dir)
3257
- . run ( builder) ;
3258
- command ( "./configure" )
3259
- . arg ( "--set" )
3260
- . arg ( "rust.omit-git-hash=false" )
3261
- . args ( & configure_args)
3262
- . arg ( "--enable-vendor" )
3263
- . current_dir ( & plain_src_dir)
3264
- . run ( builder) ;
3265
- command ( helpers:: make ( & builder. config . host_target . triple ) )
3266
- . arg ( "check" )
3267
- // Do not run the build as if we were in CI, otherwise git would be assumed to be
3268
- // present, but we build from a tarball here
3269
- . env ( "GITHUB_ACTIONS" , "0" )
3270
- . current_dir ( & plain_src_dir)
3271
- . run ( builder) ;
3272
-
3273
- // Now make sure that rust-src has all of libstd's dependencies
3274
- builder. info ( "Distcheck rust-src" ) ;
3275
- let src_tarball = builder. ensure ( dist:: Src ) ;
3276
- let src_dir = root_dir. join ( "distcheck-src" ) ;
3277
- builder. clear_dir ( & src_dir) ;
3278
-
3279
- command ( "tar" )
3280
- . arg ( "-xf" )
3281
- . arg ( src_tarball. tarball ( ) )
3282
- . arg ( "--strip-components=1" )
3283
- . current_dir ( & src_dir)
3284
- . run ( builder) ;
3285
-
3286
- let toml = src_dir. join ( "rust-src/lib/rustlib/src/rust/library/std/Cargo.toml" ) ;
3287
- command ( & builder. initial_cargo )
3288
- // Will read the libstd Cargo.toml
3289
- // which uses the unstable `public-dependency` feature.
3290
- . env ( "RUSTC_BOOTSTRAP" , "1" )
3291
- . arg ( "generate-lockfile" )
3292
- . arg ( "--manifest-path" )
3293
- . arg ( & toml)
3294
- . current_dir ( & src_dir)
3295
- . run ( builder) ;
3296
- }
3239
+ distcheck_plain_source_tarball ( builder, & root_dir. join ( "distcheck-plain-src" ) ) ;
3240
+ distcheck_rust_src ( builder, & root_dir. join ( "distcheck-src" ) ) ;
3241
+ }
3242
+ }
3243
+
3244
+ fn distcheck_plain_source_tarball ( builder : & Builder < ' _ > , plain_src_dir : & Path ) {
3245
+ // Check that we can build some basic things from the plain source tarball
3246
+ builder. info ( "Distcheck plain source tarball" ) ;
3247
+ let plain_src_tarball = builder. ensure ( dist:: PlainSourceTarball ) ;
3248
+ builder. clear_dir ( & plain_src_dir) ;
3249
+
3250
+ let configure_args: Vec < String > = std:: env:: var ( "DISTCHECK_CONFIGURE_ARGS" )
3251
+ . map ( |args| args. split ( " " ) . map ( |s| s. to_string ( ) ) . collect :: < Vec < String > > ( ) )
3252
+ . unwrap_or_default ( ) ;
3253
+
3254
+ command ( "tar" )
3255
+ . arg ( "-xf" )
3256
+ . arg ( plain_src_tarball. tarball ( ) )
3257
+ . arg ( "--strip-components=1" )
3258
+ . current_dir ( & plain_src_dir)
3259
+ . run ( builder) ;
3260
+ command ( "./configure" )
3261
+ . arg ( "--set" )
3262
+ . arg ( "rust.omit-git-hash=false" )
3263
+ . args ( & configure_args)
3264
+ . arg ( "--enable-vendor" )
3265
+ . current_dir ( & plain_src_dir)
3266
+ . run ( builder) ;
3267
+ command ( helpers:: make ( & builder. config . host_target . triple ) )
3268
+ . arg ( "check" )
3269
+ // Do not run the build as if we were in CI, otherwise git would be assumed to be
3270
+ // present, but we build from a tarball here
3271
+ . env ( "GITHUB_ACTIONS" , "0" )
3272
+ . current_dir ( & plain_src_dir)
3273
+ . run ( builder) ;
3274
+ }
3275
+
3276
+ fn distcheck_rust_src ( builder : & Builder < ' _ > , src_dir : & Path ) {
3277
+ // Now make sure that rust-src has all of libstd's dependencies
3278
+ builder. info ( "Distcheck rust-src" ) ;
3279
+ let src_tarball = builder. ensure ( dist:: Src ) ;
3280
+ builder. clear_dir ( & src_dir) ;
3281
+
3282
+ command ( "tar" )
3283
+ . arg ( "-xf" )
3284
+ . arg ( src_tarball. tarball ( ) )
3285
+ . arg ( "--strip-components=1" )
3286
+ . current_dir ( & src_dir)
3287
+ . run ( builder) ;
3288
+
3289
+ let toml = src_dir. join ( "rust-src/lib/rustlib/src/rust/library/std/Cargo.toml" ) ;
3290
+ command ( & builder. initial_cargo )
3291
+ // Will read the libstd Cargo.toml
3292
+ // which uses the unstable `public-dependency` feature.
3293
+ . env ( "RUSTC_BOOTSTRAP" , "1" )
3294
+ . arg ( "generate-lockfile" )
3295
+ . arg ( "--manifest-path" )
3296
+ . arg ( & toml)
3297
+ . current_dir ( & src_dir)
3298
+ . run ( builder) ;
3297
3299
}
3298
3300
3299
3301
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
0 commit comments