summary refs log tree commit diff
path: root/src/bootstrap/dist.rs
AgeCommit message (Collapse)AuthorLines
2017-07-13[beta] Remove rls from the workspace and extended buildsJosh Stone-5/+1
Its git dependencies don't work when building with vendored crates, so for now it will just be removed from the workspace and disabled in the rustbuild rules. cc #42719
2017-06-05Revert "Add RLS to .exe and .msi installers"Alex Crichton-36/+0
This reverts commit eeebfd667bd1524476229ecb910f9751405e85c7.
2017-06-05Revert "Add RLS to .pkg installer"Alex Crichton-10/+0
This reverts commit 7c362732dc49d7ab6d3fcf973922337dae53dd5c.
2017-06-01Rollup merge of #42306 - efyang:rls-packaging, r=alexcrichtonCorey Farwell-0/+46
Add the RLS to .exe, .msi, and .pkg installers This directly addresses issue #42157, adding the RLS as a non-default component in the mentioned installers. The windows installers appear to have the right functionality added, but I don't have a machine that runs OSX, so it would be great if someone could test whether my .pkg commit adds the RLS correctly. The final commit also fixes some formatting issues I'd noticed while working on the installers, but I don't know if that's within the scope of this PR, so input would be appreciated.
2017-05-29Add RLS to .pkg installerEdward Yang-0/+10
2017-05-29Add RLS to .exe and .msi installersEdward Yang-0/+36
2017-05-28rust-src: include everything needed to compile libstd with jemallocRalf Jung-6/+21
2017-05-27Auto merge of #42109 - Keruspe:master, r=alexcrichtonbors-91/+91
rustbuild: don't create a source tarball when installing This splits Install out of Dist as it is not a full dist anymore, and creates the source tarball only for the Dist command. This will allow splitting install in a few rules if we want as it's done for other phases.
2017-05-25Auto merge of #41932 - wesleywiser:py-to-rust, r=alexcrichtonbors-17/+137
Rewrite make-win-dist.py in Rust Fixes #41568
2017-05-22Create the bin dirWesley Wiser-0/+1
2017-05-22rustbuild: split Install out of Dist subcommandMarc-Antoine Perennou-91/+91
only create source tarball for the Dist subcommand mark install rule as default for Kind::Install split install-docs split install-std factor out empty_dir handling split install-cargo split install-analysis split install-src rework install-rustc properly handle cross-compilation setups for install use pkgname in install split plain source tarball generation from rust-src dist document src-tarball in config.toml.exmaple Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: fix bash completion installation dirMarc-Antoine Perennou-2/+2
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-14Don't use sanitize_sh with rust-installerJosh Stone-41/+40
There's no shell interpreting the file paths under the new Rusty rust-installer, so we don't need to use `sanitize_sh` for it. Plus, the drive-letter transformation is actually harmful for the now-native Windows rust-installer to understand those paths.
2017-05-14Use "rust-installer tarball" to create rustc-src tooJosh Stone-4/+8
This gives us an extra rustc-src.tar.xz, which is 33% smaller than the .tar.gz!
2017-05-14Update to the oxidized rust-installerJosh Stone-24/+22
2017-05-14Rewrite make-win-dist.py in RustWesley Wiser-17/+136
Fixes #41568
2017-04-29Rollup merge of #41608 - cuviper:distcheck-rust-src, r=alexcrichtonCorey Farwell-0/+7
Add a distcheck for rust-src completeness This is for the last commit of #41546. For some reason, @bors only saw the first two commits, and wouldn't approve the last even when explicitly directed so. r? @alexcrichton
2017-04-29Update stage0 bootstrap compilerAlex Crichton-4/+2
We've got a freshly minted beta compiler, let's update to use that on nightly! This has a few other changes associated with it as well * A bump to the rustc version number (to 1.19.0) * Movement of the `cargo` and `rls` submodules to their "proper" location in `src/tools/{cargo,rls}`. Now that Cargo workspaces support the `exclude` option this can work. * Updates of the `cargo` and `rls` submodules to their master branches. * Tweak to the `src/stage0.txt` format to be more amenable for Cargo version numbers. On the beta channel Cargo will bootstrap from a different version than rustc (e.g. the version numbers are different), so we need different configuration for this. * Addition of `dev` as a readable key in the `src/stage0.txt` format. If present then stage0 compilers are downloaded from `dev-static.rust-lang.org` instead of `static.rust-lang.org`. This is added to accomodate our updated release process with Travis and AppVeyor.
2017-04-26Rollup merge of #41546 - cuviper:reduced-rust-src, r=alexcrichtonAriel Ben-Yehuda-27/+61
Shrink the rust-src component Before this change, the installable rust-src component had essentially the same contents as the rustc-src dist tarball, just additionally wrapped in a rust-installer. As discussed on [internals], rust-src is only meant to support uses for the standard library, so it doesn't really need the rest of the compiler sources. Now rust-src only contains libstd and its path dependencies, which roughly matches the set of crates that have rust-analysis data. The result is **significantly** smaller, from 36MB to 1.3MB compressed, and from 247MB to 8.5MB uncompressed. [internals]: https://internals.rust-lang.org/t/minimizing-the-rust-src-component/5117
2017-04-26Add a distcheck for rust-src completenessJosh Stone-0/+7
2017-04-25Reduce the contents of the rust-src componentJosh Stone-1/+29
2017-04-25Build the rustc-src tarball before the rust-src componentJosh Stone-27/+33
2017-04-24Adds rust-windbg.cmd scriptAndrew Gaspar-1/+6
2017-04-11Touch up rls integrationAlex Crichton-2/+16
* Use the right version when building combined installer * Update dependencies of rls as it depends on rustc and plugins * Fix build-manifest and the versions it uses for the rls
2017-04-10Remove --enable-save-analysis configure flagNick Cameron-5/+3
2017-04-10Reviewer changesNick Cameron-52/+7
2017-04-10Build an RLS package as part of the dist targetNick Cameron-1/+92
2017-04-03Only use cargo-vendor if building from git sourcesJosh Stone-19/+22
2017-03-21rustbuild: Don't hardcode 'nightly' for CargoAlex Crichton-8/+11
It now follows rustc release trains
2017-03-15Auto merge of #40383 - ishitatsuyuki:easy-dist-analysis, r=alexcrichtonbors-9/+5
rustbuild: Make save-analysis an option This makes save-analysis an option independent from the release channel. The CI build scripts have been modified to enable the flag. *Merge with caution.* I haven't tested this, and this can cause nightly breakage.
2017-03-11rustbuild: Fix a bug when manifesting with CargoAlex Crichton-1/+1
The wrong Cargo version was passed down so it ended up panicking the build-manifest script as it couldn't find the right tarball.
2017-03-11rustbuild: Skip saving analysis when disabledTatsuyuki Ishi-0/+4
2017-03-11rustbuild: Make save-analysis an optionTatsuyuki Ishi-9/+1
2017-03-10Test fixes and rebase conflictsAlex Crichton-1/+1
2017-03-10Don't put Cargo into the rustc workspaceAlex Crichton-5/+6
This causes problems when first cloning and bootstrapping the repository unfortunately, so let's ensure that Cargo sticks around in its own workspace. Because Cargo is a submodule it's not available by default on the inital clone of the rust-lang/rust repository. Normally it's the responsibility of the rustbuild to take care of this, but unfortunately to build rustbuild itself we need to resolve the workspace conflicts. To deal with this we'll just have to ensure that all submodules are in their own workspace, which sort of makes sense anyway as updates to dependencies as bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any case this commit removes Cargo from the global workspace which should resolve the issues that we've been seeing. To actually perform this the `cargo` submodule has been moved to the top directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.
2017-03-03rustbuild: Add support for compiling CargoAlex Crichton-58/+76
This commit adds support to rustbuild for compiling Cargo as part of the release process. Previously rustbuild would simply download a Cargo snapshot and repackage it. With this change we should be able to turn off artifacts from the rust-lang/cargo repository and purely rely on the artifacts Cargo produces here. The infrastructure added here is intended to be extensible to other components, such as the RLS. It won't exactly be a one-line addition, but the addition of Cargo didn't require too much hooplah anyway. The process for release Cargo will now look like: * The rust-lang/rust repository has a Cargo submodule which is used to build a Cargo to pair with the rust-lang/rust release * Periodically we'll update the cargo submodule as necessary on rust-lang/rust's master branch * When branching beta we'll create a new branch of Cargo (as we do today), and the first commit to the beta branch will be to update the Cargo submodule to this exact revision. * When branching stable, we'll ensure that the Cargo submodule is updated and then make a stable release. Backports to Cargo will look like: * Send a PR to cargo's master branch * Send a PR to cargo's release branch (e.g. rust-1.16.0) * Send a PR to rust-lang/rust's beta branch updating the submodule * Eventually send a PR to rust-lang/rust's master branch updating the submodule For reference, the process to add a new component to the rust-lang/rust release would look like: * Add `$foo` as a submodule in `src/tools` * Add a `tool-$foo` step which compiles `$foo` with the specified compiler, likely mirroring what Cargo does. * Add a `dist-$foo` step which uses `src/tools/$foo` and the `tool-$foo` output to create a rust-installer package for `$foo` likely mirroring what Cargo does. * Update the `dist-extended` step with a new dependency on `dist-$foo` * Update `src/tools/build-manifest` for the new component.
2017-02-16Auto merge of #39824 - alexcrichton:disable-dist-src, r=brsonbors-0/+4
travis: Disable source tarballs on most builders Currently we create a source tarball on almost all of the `DEPLOY=1` builders but this has the adverse side effect of all source tarballs overriding themselves in the S3 bucket. Normally this is ok but unfortunately a source tarball created on Windows is not buildable on Unix. On Windows the vendored sources contain paths with `\` characters in them which when interpreted on Unix end up in "file not found" errors. Instead of this overwriting behavior, whitelist just one linux builder for producing tarballs and avoid producing tarballs on all other hosts.
2017-02-15travis: Disable source tarballs on most buildersAlex Crichton-0/+4
Currently we create a source tarball on almost all of the `DEPLOY=1` builders but this has the adverse side effect of all source tarballs overriding themselves in the S3 bucket. Normally this is ok but unfortunately a source tarball created on Windows is not buildable on Unix. On Windows the vendored sources contain paths with `\` characters in them which when interpreted on Unix end up in "file not found" errors. Instead of this overwriting behavior, whitelist just one linux builder for producing tarballs and avoid producing tarballs on all other hosts.
2017-02-15use bash when invoking dist shell scripts on solarisShawn Walker-Salas-7/+14
Partially fixes #25845
2017-02-14Automatically vendor Cargo deps when building the source tarballs.Eduard-Mihai Burtescu-7/+25
2017-02-08Rollup merge of #39598 - alexcrichton:cargo-branch, r=brsonCorey Farwell-3/+1
Fix branch name Cargo's downloaded from This landed on beta in #39546 and this is bringing the patch back to master.
2017-02-06Fix branch name Cargo's downloaded fromAlex Crichton-3/+1
This landed on beta in #39546 and this is bringing the patch back to master.
2017-02-06rustbuild: Fix a few locations with makefiles goneAlex Crichton-2/+0
* Add version info to channel.rs as main.mk is no longer available * Update `Makefile.in` used with bootstrap to not try to require `mk/util.mk` * Update the `dist` target to avoid the makefile pieces
2017-02-02rustbuild: Add x.py to source tarballsAlex Crichton-1/+2
We should be sure to add our build system entry point! Closes #39476
2017-01-30travis: Tweak artifact uploadsAlex Crichton-1/+3
* Don't upload `*.wixpdb` files by accident * Don't upload `doc` dir by accident * Fix level of indirection on Travis
2017-01-25rustbuild: Add manifest generation in-treeAlex Crichton-1/+32
This commit adds a new tool, `build-manifest`, which is used to generate a distribution manifest of all produced artifacts. This tool is intended to replace the `build-rust-manifest.py` script that's currently located on the buildmaster. The intention is that we'll have a builder which periodically: * Downloads all artifacts for a commit * Runs `./x.py dist hash-and-sign`. This will generate `sha256` and `asc` files as well as TOML manifests. * Upload all generated hashes and manifests to the directory the artifacts came from. * Upload *all* artifacts (tarballs and hashes and manifests) to an archived location. * If necessary, upload all artifacts to the main location. This script is intended to just be the second step here where orchestrating uploads and such will all happen externally from the build system itself.
2017-01-24rustbuild: Start building --enable-extendedAlex Crichton-8/+384
This commit adds a new flag to the configure script, `--enable-extended`, which is intended for specifying a desire to compile the full suite of Rust tools such as Cargo, the RLS, etc. This is also an indication that the build system should create combined installers such as the pkg/exe/msi artifacts. Currently the `--enable-extended` flag just indicates that combined installers should be built, and Cargo is itself not compiled just yet but rather only downloaded from its location. The intention here is to quickly get to feature parity with the current release process and then we can start improving it afterwards. All new files in this PR inside `src/etc/installer` are copied from the rust-packaging repository.
2017-01-12travis: Start uploading artifacts on commitsAlex Crichton-4/+7
This commit starts adding the infrastructure for uploading release artifacts from AppVeyor/Travis on each commit. The idea is that eventually we'll upload a full release to AppVeyor/Travis in accordance with plans [outlined earlier]. Right now this configures Travis/Appveyor to upload all tarballs in the `dist` directory, and various images are updated to actually produce tarballs in these directories. These are nowhere near ready to be actual release artifacts, but this should allow us to play around with it and test it out. Once this commit lands we should start seeing artifacts uploaded on each commit. [outlined earlier]: https://internals.rust-lang.org/t/rust-ci-release-infrastructure-changes/4489
2017-01-04rustbuild: Quickly `dist` cross-host compilersAlex Crichton-6/+1
This commit optimizes the compile time for creating tarballs of cross-host compilers and as a proof of concept adds two to the standard Travis matrix. Much of this commit is further refactoring and refining of the `step.rs` definitions along with the interpretation of `--target` and `--host` flags. This has gotten confusing enough that I've also added a small test suite to `src/bootstrap/step.rs` to ensure what we're doing works and doesn't regress. After this commit when you execute: ./x.py dist --host $MY_HOST --target $MY_HOST the build system will compile two compilers. The first is for the build platform and the second is for the host platform. This second compiler is then packaged up and placed into `build/dist` and is ready to go. With a fully cached LLVM and docker image I was able to create a cross-host compiler in around 20 minutes locally. Eventually we plan to add a whole litany of cross-host entries to the Travis matrix, but for now we're just adding a few before we eat up all the extra capacity. cc #38531
2017-01-02rustbuild: fix dist-analysis with full bootstrap disabledWang Xuerui-1/+9