1{ stdenv, callPackage, recurseIntoAttrs, makeRustPlatform, llvm, fetchurl
2, targets ? []
3, targetToolchains ? []
4, targetPatches ? []
5}:
6
7let
8 rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {}));
9in
10rec {
11 rustc = callPackage ./rustc.nix {
12 inherit llvm targets targetPatches targetToolchains rustPlatform;
13
14 version = "beta-2017-05-27";
15
16 configureFlags = [ "--release-channel=beta" ];
17
18 src = fetchurl {
19 url = "https://static.rust-lang.org/dist/2017-05-27/rustc-beta-src.tar.gz";
20 sha256 = "9f3f92efef7fb2b4bf38e57e4ff1f416dc221880b90841c4bdaee350801c0b57";
21 };
22
23 patches = [
24 ./patches/darwin-disable-fragile-tcp-tests.patch
25 ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
26
27 doCheck = false;
28 };
29
30 cargo = callPackage ./cargo.nix rec {
31 version = "0.18.0";
32 srcRev = "fe7b0cdcf5ca7aab81630706ce40b70f6aa2e666";
33 srcSha = "164iywv1l3v87b0pznf5kkzxigd6w19myv9d7ka4c65zgrk9n9px";
34 depsSha256 = "1mrgd8ib48vxxbhkvsqqq4p19sc6b74x3cd8p6lhhlm6plrajrvm";
35
36 inherit rustc; # the rustc that will be wrapped by cargo
37 inherit rustPlatform; # used to build cargo
38 };
39}