Commit graph

49 commits

Author SHA1 Message Date
Josh Stone
c0e2543147 Simplify the rayon calls in the installer
Rayon's `try_for_each` makes the `CombinedEncoder` a lot simpler.
2024-06-05 13:20:17 -07:00
Jakub Beránek
877e8d456d
Sort directories when generating tarballs 2024-03-31 12:56:05 +02:00
Jakub Beránek
18d9d44bd6
Make tarball generation more deterministic 2024-03-31 12:56:05 +02:00
onur-ozkan
3197aee8b3 support no-op compression profile in rust-installer
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-02-22 01:35:57 +03:00
Rowan S-L
30b8b44990 use /usr/bin/env bash instead of /bin/bash 2024-01-21 12:43:09 -05:00
klensy
eed89185bb bump some deps
drop num_cpus from rust-installer as not used
update rayon, rayon-core, which drops it's deps on num_cpus and crossbeam-channel (for bootstrap too) (https://github.com/rayon-rs/rayon/blob/v1.8.0/RELEASES.md)
update erro, which drops errno-dragonfly (5341791935/CHANGELOG.md)
2023-11-07 15:33:59 +03:00
Alex Zepeda
302ad2175d rust-installer: Use env(1) in the shebang.
This fixes the case (e.g. *BSD) where bash is installed on the host
system, but not at the typical location of /bin.
2023-07-21 17:55:49 -07:00
klensy
d5dbe867f6 fix typo 2023-07-04 19:19:50 +03:00
klensy
46d3fc7812 fix bash long lines and replace TODO with FIXME 2023-07-04 18:39:53 +03:00
klensy
02e9262c11 replace tabs with 4 spaces in .sh 2023-07-04 18:39:52 +03:00
klensy
f3d9248c22 rust-installer and rls no longer submodule, so fix rustfmt.toml 2023-07-04 18:39:48 +03:00
klensy
fd1439ed8b change edition to 2021, fix clippy warns 2023-06-21 12:43:14 +03:00
klensy
e1c3313d38 rust-installer: drop clap v3, migrate to v4 2023-06-21 12:32:34 +03:00
Arlo Siemsen
4d9b476bb1 Update dependencies with reported vulnerabilities
bumpalo 3.12.1 (yanked)
  * updated to 3.13.0
tokio 1.8.4 - https://rustsec.org/advisories/RUSTSEC-2023-0001
  * updated to 1.28.2
remove_dir_all 0.5.3 - https://rustsec.org/advisories/RUSTSEC-2023-0018
  * removed by using the standard library function in `rust-installer` instead and updating to `tempfile@3.5.0` (which also removes the dependency).
2023-06-02 12:34:01 -05:00
Michael Howell
374024336a Improve comments 2023-05-25 08:14:33 -07:00
Michael Howell
8488e8aed9 rust-installer: include RUSTC_BOOTSTRAP when generating installer 2023-05-25 08:14:33 -07:00
Matthias Krüger
2118667ffa
Rollup merge of #110188 - Nilstrieb:remove-remove-dir-all, r=jyn514
Remove orphaned remove_dir_all implementation from rust-installer

I have no idea why it's here, but it's not used at all.

r? Mark-Simulacrum
2023-04-12 17:04:32 +02:00
nils
a11053ae08 Remove orphaned remove_dir_all implementation from rust-installer
I have no idea why it's here, but it's not used at all.
2023-04-11 14:23:31 +02:00
Mark Rousskov
0da526b5f3 Remove optimal xz settings from CI
This is a companion PR to rust-lang/promote-release#58, which moves the
relevant optimal code to rust-lang/promote-release. As mentioned in the
comments of that PR, this is expected to cut CI costs (and time, though
predominantly felt on fast builders) and reduce wasted resources due to
in-practice single-threaded compression not using the full 8+ vCPU
builders we have available.
2023-04-03 07:44:58 -04:00
Jon Gjengset
4d5501037a Allow long link names in tar files
Without this, users trying to run `x.py dist` under a sufficiently long
path run into problems when we build the resulting tarballs due to
length limits in the original tar spec. The error looks like:

        Finished release [optimized + debuginfo] target(s) in 0.34s
    Copying stage0 std from stage0 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-musl)
    Building stage0 tool rust-installer (x86_64-unknown-linux-gnu)
        Finished release [optimized] target(s) in 0.35s
    Dist rust-std-1.67.1-x86_64-unknown-linux-musl
    Error: failed to generate installer

    Caused by:
        0: failed to tar file '/home/AAAAAAAAAAAAAA/BBBBBB/CCCC/DDD/EEEEE/FFFFFFFFFFFF/GGGGGGGGGGGGGGGG/HHHHHHHHHH/IIIIIIIIIIIIIII/JJJJJ/KKKKKKK/src/build/tmp/tarball/rust-std/x86_64-unknown-linux-musl/rust-std-1.67.1-x86_64-unknown-linux-musl/rust-std-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/libc.a'
        1: provided value is too long when setting link name for
    Build completed unsuccessfully in 0:00:03

The fix is to make use of the widely-supported GNU tar extensions which
lift this restriction. Switching to [`tar::Builder::append_link`] takes
care of that for us. See also alexcrichton/tar-rs#273.

[`tar::Builder::append_link`]: https://docs.rs/tar/0.4.38/tar/struct.Builder.html#method.append_link
2023-03-24 17:44:32 -07:00
Pietro Albini
0a1b9834b3
add dist.compression-profile option to control compression speed 2023-03-14 15:42:53 +01:00
Pietro Albini
b33172a2df
replace legacy copyright annotations in submodules 2023-03-09 12:24:47 +01:00
Mark Rousskov
dabafb44e0 Use 3 or 6 compression threads for rust-installer
Limit to 3 threads for 32-bit platforms, otherwise we use 6 threads.
This avoids exceeding the amount of memory we can allocate on a 32-bit
platform.
2023-03-07 08:30:08 -05:00
Mark Rousskov
ddc2d1e806 Add bootstrap support for rust-installer 2023-03-07 08:30:08 -05:00
Mark Rousskov
8d9cef4709 Directly import rust-installer submodule
This moves the rust-installer code to be directly hosted in
rust-lang/rust, since it's not used elsewhere and this makes it easier
to make and review changes without needing a separate upstream commit.
2023-03-07 08:30:08 -05:00
Mark Rousskov
e733ff797f Bump rust-installer
This brings in rust-lang/rust-installer#123, which enables a larger
compression window (8 -> 64MB) amongst other changes to the xz
compression settings. The net effect should be smaller compressed
tarballs which will decrease bandwidth usage for
static.rust-lang.org, download times, and decompression time.

This comes at the cost of higher baseline requirements for running
rustup to use these files, which we believe should be largely acceptable
(running rustc is likely to use at least this much memory) but if we get
specific reports we may explore options to decrease impact (e.g., using
the gzip tarballs automatically in rustup).
2023-03-07 08:30:07 -05:00
Jon Gjengset
50e2509a6c Bump rust-installer
Makes generation of `manifest.in` deterministic:
https://github.com/rust-lang/rust-installer/pull/120
2023-02-03 17:59:49 -08:00
Mark Rousskov
0018bcc2d3 Bump rust-installer
* `--without=component-a,component-b` now requires full component names.
  This fixes rust-lang/rust#105755 (rust-lang/rust-installer#119).
2022-12-27 16:27:49 -05:00
Michael Howell
271bad9b08 Update submodule rust-installer
This includes the following pull requests:

* https://github.com/rust-lang/rust-installer/pull/114
* https://github.com/rust-lang/rust-installer/pull/113
2022-07-09 09:49:05 -07:00
Pietro Albini
c482ffd1a3
bump rust-installer submodule 2020-12-28 12:48:11 +01:00
Michael Forney
32025fd76a Update rust-installer to latest version
This pulls in a fix for the install script on some tr(1) implementations,
as well as an update to use `anyhow` instead of `failure` for error
handling.
2020-07-07 14:15:51 -07:00
Josh Stone
35717892b9 Update rust-installer to limit memory use 2019-08-28 14:48:02 -07:00
Alex Crichton
2fb2e00f20 Update the rust-installer submodule
This pulls in a commit which uses parallel xz encoding which should
hopefully help shave some time off the dist builders which spend an
inordinate amount of time compressing this data.
2019-07-04 11:59:09 -07:00
Hirokazu Hata
4ca3c7b156 update rust-installer from 27dec6c to ccdc47b 2019-02-05 01:21:07 +09:00
Tom Tromey
6e3a4f4ddd Add lldb to the build
This optionally adds lldb (and clang, which it needs) to the build.

Because rust uses LLVM 7, and because clang 7 is not yet released, a
recent git master version of clang is used.

The lldb that is used includes the Rust plugin.

lldb is only built when asked for, or when doing a nightly build on
macOS.  Only macOS is done for now due to difficulties with the Python
dependency.
2018-08-14 18:59:23 -06:00
Mark Simulacrum
ad97f8b491 Bootstrap from 1.28.0-beta.3 2018-06-30 13:17:49 -07:00
Mark Simulacrum
43557fc8f9 Revert "Auto merge of #51662 - Mark-Simulacrum:beta-next, r=Mark-Simulacrum"
This reverts commit fff1abadd7, reversing
changes made to 01172a7d13.
2018-06-21 06:53:26 -06:00
Mark Simulacrum
09a0bc7975 Fix error-chain warnings 2018-06-20 19:52:07 -06:00
Bastien Orivel
4858065ab9 Reupdate rust-installer
Removes the walkdir 1.0 and same-file 0.1 dependencies
2018-03-02 16:49:01 +01:00
Bastien Orivel
75fd9109a3 Update rust-installer
This removes the last dependency on rayon 0.9
2018-03-02 15:34:32 +01:00
Josh Stone
2c5542fcec Update rust-installer for streaming parallelism
Pull in rust-lang/rust-installer#76 to get streamed tarball generation,
rather than batching it all in memory, while still getting the benefit
of compressing in parallel.
2018-01-16 18:06:32 -08:00
Malo Jaffré
8ed13d643a Update crates and submodules to pull doc fixes
Update `rand` crate to `0.3.19`.
Update `log` crate to `0.3.9` and `0.4.1`.
Update `parking_lot_core` crate to `0.2.9`.
Upgrade all flate2 dependencies to `1.0.1`.
- Update `rust-installer` submodule.
2018-01-01 14:44:10 +01:00
Ralf Jung
9a01dc43ff update rust-installer 2017-09-15 16:29:21 +02:00
Alex Crichton
38bedfabb9 rustbuild: Switch back to using hard links
The `copy` function historically in rustbuild used hard links to speed up the
copy operations that it does. This logic was backed out, however, in #39518 due
to a bug that only showed up on Windows, described in #39504. The cause
described in #39504 happened because Cargo, on a fresh build, would overwrite
the previous artifacts with new hard links that Cargo itself manages.

This behavior in Cargo was fixed in rust-lang/cargo#4390 where it no longer
should overwrite files on fresh builds, opportunistically leaving the filesystem
intact and not touching it.

Hopefully this can help speed up local builds by doing fewer copies all over the
place!
2017-09-09 21:14:44 -07:00
Josh Stone
0fba1f753d Update rust-installer for Windows executable mode
It now marks a few whitelisted extensions as executable in the tarball,
so Windows packages can be extracted on other platforms and directly
execute install.sh.

It also includes a fix for the chmod on bulk dirs, so now the html docs
won't be marked executable en masse.

Fixes #42121
r? @alexcrichton
2017-05-31 17:21:00 -07:00
Josh Stone
84a155f502 Update rust-installer to normalize manifest paths 2017-05-20 21:55:18 -07:00
Marc-Antoine Perennou
24a8cbc793 update rust-installer
This fixes the default value for sysconfdir

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-20 18:52:57 +02:00
Tatsuyuki Ishi
0e79b9790a Unify all stage2 tools into a workspace
This avoids double compiled Cargo. Hopefully this would speed up (extended) compilation for ~10m.

Notes: when updating Cargo submodule, the replacement version may also need to be updated.
2017-05-18 00:30:54 +09:00
Josh Stone
020c5ecca7 Update to the oxidized rust-installer 2017-05-14 21:06:23 -07:00