Commit Graph

266 Commits

Author SHA1 Message Date
Frederik Rietdijk
b981eca057 Merge master into staging-next 2020-10-14 11:32:49 +02:00
John Ericson
f3db41d730
Merge pull request #99335 from obsidiansystems/make-rust-platform-separate
makeRustPlatform: Put back in it's own file.
2020-10-13 22:15:47 -04:00
John Ericson
54b4b470c3 makeRustPlatform: Put back in it's own file.
We expose it on the top level, but I don't think it makes sense to pull
it from a specific version of the rust tools when it is in fact version
agnostic.

This reverts a tiny portion of 912dca193a.
2020-10-13 20:05:29 -04:00
Frederik Rietdijk
9e1943edc0 Merge master into staging-next 2020-10-13 19:34:34 +02:00
Ben Wolsieffer
f0fdecfbb4 buildRustCrate: fix target config environment variables on 32-bit ARM 2020-09-29 01:40:06 -04:00
Bas van Dijk
c01133316f rust: remove 1.44.1 since firefox and thunderbird build with 1.46 2020-09-23 16:29:30 +02:00
Bas van Dijk
b837bd4305 rust: 1.45.2 -> 1.46.0
This adds the rust toolchain 1.46.0:

https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1460-2020-08-27

Because rustc-1.46.0 enables static PIE by default for
`x86_64-unknown-linux-musl` this release will suffer from:

https://github.com/NixOS/nixpkgs/issues/94228

So this commit doesn't remove the 1.45.2 release.

This commit also specifies the right LLVM packages to use for each
rust release.
2020-09-23 16:26:20 +02:00
Frederik Rietdijk
0ac85bc455 Merge master into staging-next 2020-08-17 14:54:39 +02:00
zowoq
473536e3b5 buildRustPackage: remove platform.all from packages 2020-08-16 12:48:18 +10:00
Alyssa Ross
5d65255d57 rust: 1.45.0 -> 1.45.2 2020-08-11 00:09:00 +00:00
Konrad Borowski
41d681c85f rustc: use LLVM 10
Fixes rust-lang/rust#74585
2020-07-31 08:52:22 +02:00
Symphorien Gibol
2885306df0 rls: fix build
fix copied from rustfmt
2020-07-25 12:00:00 +00:00
Jan Tojnar
2988feba8c
Merge branch 'master' into staging-next 2020-07-23 08:19:14 +02:00
Aaron Janse
60fd049b65 redox: add as target 2020-07-21 13:11:36 -07:00
Cole Helbling
22fdfc7fbc
rustfmt: fix build with rustc 1.45.0
Due to a recent change in rustc 1.45.0, rustfmt now requires two
additional environment variables to be set in order to build
successfully: `CFG_RELEASE` and `CFG_RELEASE_CHANNEL`.
2020-07-21 10:32:59 -07:00
Alyssa Ross
e33bed77ce rust: 1.44.1 -> 1.45.0
Thunderbird and Firefox don't build with 1.45.
2020-07-18 05:18:49 +00:00
Alyssa Ross
204d583573 rust_1_42: drop
Nothing seems to need this to build any more.
2020-07-02 17:42:39 +02:00
Alyssa Ross
1f9cd4cf0a rustc: 1.43.0 -> 1.44.1 2020-07-02 17:42:39 +02:00
Robert Helgesson
82daa41e29
cargo: install bash and zsh completion scripts 2020-06-27 21:21:43 +02:00
Frederik Rietdijk
8576d24b2a Merge staging-next into staging 2020-06-08 12:08:51 +02:00
Luka Blaskovic
f7bc0a3996 rls: set RUST_SRC_PATH
rls has racer baked in which needs to know where the rust source
is to be able to do completion for std libs. By default rls will use:
$(rustc --print sysroot)/lib/rustlib/src/rust/src
which is nonexistent, this commit sets the correct source path
in a same way like it's done in racer expression.
2020-06-07 14:18:41 +00:00
Vladimír Čunát
677e3960b5
Merge #82342: rustPlatform: increase build-speed of checkPhase
...for rust-packages (into staging)
2020-06-05 09:12:30 +02:00
Maximilian Bosch
6b23cfe689
rustPlatform: add buildAndTestSubdir-argument
There are several tarballs (such as the `rust-lang/rust`-source) with a
`Cargo.toml` at root and several sub-packages (with their own Cargo.toml)
without using workspaces[1].

In such a case it's needed to move into a subdir to only build the
specified sub-package (e.g. `rustfmt` or `rsl`), however the artifacts
are at `/target` in the root-dir of the build environment. This breaks
the build since `buildRustPackage` searches for executables in `target`
(which is at the build-env's root) at the end of the `buildPhase`.

With the optional `buildAndTestSubdir`-argument, the builder moves into
the specified subdir using `pushd`/`popd` during `buildPhase` and
`checkPhase`.

Also moved the logic to find executables and libs to the end of the `buildPhase`
from a custom `postBuild`-hook to fix packages with custom `build`/`install`-procedures
such as `uutils-coreutils`.

[1] https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
2020-05-13 01:47:17 +02:00
Alyssa Ross
daf032e2ff rustc: 1.42.0 -> 1.43.0
Kept 1.42 around for Thunderbird.

i686-apple-darwin is no longer supported upstream.  We could still
support building it, for this one release, since we have the binary
for the previous release, (or bootstrap it for future releases from
Rust 1.42,) but since this release is the one that drops support, I
think it makes sense to do it now.  (And probably nobody is using it
anyway.)
2020-05-09 09:11:37 +02:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Aneesh Agrawal
ce9bec83da
rustc: remove test-only git dependency
The tests have been disabled for over a year,
and AFAIK `git` was added and is only used for the rustc tests.
2020-03-29 06:36:06 +01:00
Orivej Desh
1b89aa3f7a Merge branch 'master' into staging 2020-03-23 00:53:16 +00:00
John Ericson
19a0b38cbe
Merge pull request #82882 from obsidiansystems/armv6-embedded
Misc fixes for armv6 bare metal cross
2020-03-19 10:38:22 -04:00
Benjamin Hipple
05343f6ff1 rust: remove legacy cargo fetcher
We have now migrated every single Rust package in NixPkgs! This deletes the
legacy fetcher, which is now unused.

Resolves #79975
2020-03-18 20:12:32 -07:00
Alyssa Ross
dcb43197ea rust_1_38_0: drop 2020-03-14 16:55:06 +00:00
Alyssa Ross
7f00b33261
rust_1_38, rust_1_42: drop patch version from attr
I find it extremely unlikely we'll ever package two different patch
versions of the same minor Rust version.  New patch versions should
generally be compatible, so we shouldn't give people the expectation
they'll be able to pin to one.  And by including the patch version in
the attribute name, we'd have to change the attribute every time a
patch version was released, which would unnecessarily create diff
noise and maintenance headaches for what should be a seamless upgrade.
2020-03-13 21:24:07 +00:00
Alyssa Ross
dc3c338e29 rustc: 1.41.0 -> 1.42.0
The patch is included in rust master[1], but neither that, nor the
QuiltOS version we were using previously, apply to 1.42.0, so I've
included the fixed version here.

[1]: 4f15867faf
2020-03-13 19:51:52 +00:00
John Ericson
783fa4616e rustc: Add way to override the arch and config triple for rust
Sometimes it is useful for it to be slightly different. Going forward we
should, however, try to make this fallback rarely needed.
2020-03-12 09:56:55 -04:00
John Ericson
83a4705f49
Merge pull request #80843 from obsidiansystems/rust-no-std
rust 1.41: Fix build with no_std only target
2020-02-23 00:48:45 -05:00
John Ericson
0b0e691833 rust 1.41: Fix build with no_std only target
See https://github.com/rust-lang/rust/pull/69381
2020-02-22 18:34:05 -05:00
Cole Helbling
2edec098de
rls: add llvm to buildInputs
The Hydra build [1] was failing because it was unable to link `LLVM-9`.
Additionally, quote the homepage URL for compliance with RFC 45.

[1] https://hydra.nixos.org/build/112823631/nixlog/2
2020-02-19 20:03:56 -08:00
Cole Helbling
502c0ee899
clippy: add rustc.llvm to buildInputs
The Hydra build [1] failed because it was unable to link to `LLVM9`; add
`llvmShared` to `passthru` in order to stay up to date with required
LLVM versions. Also quote the homepage URLs, since that's preferred.

[1] https://hydra.nixos.org/build/112989779/nixlog/1
2020-02-18 08:46:31 -08:00
Alyssa Ross
e1ed62abc2 cargo: install man pages
I thought about doing a seperate output for these, but they're tiny
compared to the size of the binary, so there's no point.

(cherry picked from commit 0489c1b4b20d13fa04e6460ead73893889ff2529)
2020-02-12 17:56:01 +01:00
Andreas Rammhold
5c8612d90c
cargo: use bundled libgit2
Cargo uses git-rs which is made to be built against the bundled libgit2
version that hasn't been part of a stable release yet. Using our libgit2
instead of the master version fails during runtime as they are not
compatible anymore.

After the next libgit2 update we can try again but it is likely that
there will also be yet another cargo release at that point in time…
2020-02-12 17:16:32 +01:00
Benjamin Hipple
2115a2037c fetchcargo: use flat tar.gz file for vendored src instead of recursive hash dir
This has several advantages:

1. It takes up less space on disk in-between builds in the nix store.
2. It uses less space in the binary cache for vendor derivation packages.
3. It uses less network traffic downloading from the binary cache.
4. It plays nicely with hashed mirrors like tarballs.nixos.org, which only
   substitute --flat hashes on single files (not recursive directory hashes).
5. It's consistent with how simple `fetchurl` src derivations work.
6. It provides a stronger abstraction between input src-package and output
   package, e.g., it's harder to accidentally depend on the src derivation at
   runtime by referencing something like `${src}/etc/index.html`. Likewise, in
   the store it's harder to get confused with something that is just there as a
   build-time dependency vs. a runtime dependency, since the build-time
   src dependencies are tarred up.

Disadvantages are:
1. It takes slightly longer to untar at the start of a build.

As currently implemented, this attaches the compacted vendor.tar.gz feature as a
rider on `verifyCargoDeps`, since both of them are relatively newly implemented
behavior that change the `cargoSha256`.

If this PR is accepted, I will push forward the remaining rust packages with a
series of treewide PRs to update the `cargoSha256`s.
2020-02-10 10:17:29 -05:00
Bastian Köcher
60a479d91d rustc: 1.40.0 -> 1.41.0 2020-02-09 09:20:07 +01:00
Daiderd Jordan
8df4338f51
rustPackages: make rustc-dev optional
This was only introduced in 1.40.0 and doesn't work on older versions.

    thread 'main' panicked at 'Error: no rules matched rustc-dev.', src/bootstrap/builder.rs:231:21
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    failed to run: /build/rustc-1.38.0-src/build/bootstrap/debug/bootstrap dist rustc-dev
2020-01-18 10:57:13 +01:00
Symphorien Gibol
47681d7c5c rust: include the rustc-dev component
This enables to compile rls and rustc

See also https://github.com/rust-lang/rust/pull/64823
2020-01-11 12:00:00 +00:00
Maximilian Bosch
823b96a52b
rustc: fix for structured attrs 2019-12-31 01:29:57 +01:00
Robin Gloster
981ae25113
treewide: NIX_*_COMPILE -> string 2019-12-31 00:07:21 +01:00
Jan Tojnar
4bbc6cc66f
Merge branch 'staging-next' into staging 2019-12-25 05:18:52 +01:00
Jan Tojnar
ca39dd3a8a
Merge branch 'master' into staging-next 2019-12-25 05:15:06 +01:00
Eelco Dolstra
e82fae1a39
rustc: 1.39 -> 1.40 2019-12-24 16:15:36 +00:00
Alyssa Ross
b9d274b89d rustPlatform.fetchcargo: expose 2019-12-23 18:27:56 +00:00
Jörg Thalheim
d68c70f1bb
rustc: add QA documentation (#73296)
rustc: add QA documentation
2019-12-20 14:10:33 +00:00