diff options
| author | bors <bors@rust-lang.org> | 2021-05-02 07:09:38 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-05-02 07:09:38 +0000 |
| commit | 6d4e3c1ed61ace03ba5d9ee9e4bfa87c1f586efe (patch) | |
| tree | 030f553b38affefb32393e7f94be1bbf011b8751 | |
| parent | e244e840f2ada19616ad3f18c388de9ea37a2550 (diff) | |
| parent | 69f3ead6b0fde6e52f9b0207548c83fdc6b206cb (diff) | |
| download | rust-6d4e3c1ed61ace03ba5d9ee9e4bfa87c1f586efe.tar.gz rust-6d4e3c1ed61ace03ba5d9ee9e4bfa87c1f586efe.zip | |
Auto merge of #84750 - jyn514:nix-cargo, r=Mark-Simulacrum
Don't download cargo twice when download-rustc is set Previously, this caused a bug on NixOS: 1. bootstrap.py would download and patch stage0/cargo 2. bootstrap.py would download nightly cargo, but extract it to stage0/cargo instead of ci-rustc/cargo. It would still try (and fail) to patch ci-rustc/cargo. 3. bootstrap.py would fail to build rustbuild because stage0/cargo wasn't patched. The "proper" fix is to extract nightly cargo to ci-rustc instead, but it doesn't seem to be necessary at all, so this just skips downloading it instead. Fixes https://github.com/rust-lang/rust/issues/84702
| -rw-r--r-- | src/bootstrap/bootstrap.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 4111420e474..356d9f5d1ff 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -414,10 +414,13 @@ class RustBuild(object): filename = "rustc-{}-{}{}".format(rustc_channel, self.build, tarball_suffix) self._download_component_helper(filename, "rustc", tarball_suffix, stage0) - filename = "cargo-{}-{}{}".format(rustc_channel, self.build, - tarball_suffix) - self._download_component_helper(filename, "cargo", tarball_suffix) - if not stage0: + # download-rustc doesn't need its own cargo, it can just use beta's. + if stage0: + filename = "cargo-{}-{}{}".format(rustc_channel, self.build, + tarball_suffix) + self._download_component_helper(filename, "cargo", tarball_suffix) + self.fix_bin_or_dylib("{}/bin/cargo".format(bin_root)) + else: filename = "rustc-dev-{}-{}{}".format(rustc_channel, self.build, tarball_suffix) self._download_component_helper( filename, "rustc-dev", tarball_suffix, stage0 @@ -425,7 +428,6 @@ class RustBuild(object): self.fix_bin_or_dylib("{}/bin/rustc".format(bin_root)) self.fix_bin_or_dylib("{}/bin/rustdoc".format(bin_root)) - self.fix_bin_or_dylib("{}/bin/cargo".format(bin_root)) lib_dir = "{}/lib".format(bin_root) for lib in os.listdir(lib_dir): if lib.endswith(".so"): |
