summary refs log tree commit diff
path: root/pkgs/development/compilers/rust
diff options
context:
space:
mode:
authorReno Reckling <e-github@wthack.de>2017-01-11 11:50:42 +0100
committerJoachim Schiele <js@lastlog.de>2017-01-11 11:50:42 +0100
commit2b17620d59af1cd85ef352e7b1ab5d7df5e36796 (patch)
tree1791caebe22d0f7f2e8ee4dfda351c6e9faf7d4f /pkgs/development/compilers/rust
parent5746eec9fd8b0180b11a3bb7bde109d4c9217a6d (diff)
downloadnixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar.gz
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar.bz2
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar.lz
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar.xz
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.tar.zst
nixlib-2b17620d59af1cd85ef352e7b1ab5d7df5e36796.zip
update rustBeta and rustNightly (#21800)
looks good
Diffstat (limited to 'pkgs/development/compilers/rust')
-rw-r--r--pkgs/development/compilers/rust/beta.nix53
-rw-r--r--pkgs/development/compilers/rust/nightly.nix51
2 files changed, 81 insertions, 23 deletions
diff --git a/pkgs/development/compilers/rust/beta.nix b/pkgs/development/compilers/rust/beta.nix
index a4e55f970eba..5205c8fc93f2 100644
--- a/pkgs/development/compilers/rust/beta.nix
+++ b/pkgs/development/compilers/rust/beta.nix
@@ -1,27 +1,56 @@
-{ stdenv, callPackage, rustPlatform,
+{ stdenv, callPackage, rustPlatform, cacert, gdb,
   targets ? [], targetToolchains ? [], targetPatches ? [] }:
 
 rec {
-  rustc = callPackage ./rustc.nix {
-    shortVersion = "beta-2016-11-16";
-    forceBundledLLVM = false;
+  rustc = stdenv.lib.overrideDerivation (callPackage ./rustc.nix {
+    shortVersion = "beta-2017-01-07";
+    forceBundledLLVM = true; # TODO: figure out why linking fails without this
     configureFlags = [ "--release-channel=beta" ];
-    srcRev = "e627a2e6edbc7b7fd205de8ca7c86cff76655f4d";
-    srcSha = "14sbhn6dp6rri1rpkspjlmy359zicwmyppdak52xj1kqhcjn71wa";
+    srcRev = "a035041ba450ce3061d78a2bdb9c446eb5321d0d";
+    srcSha = "12xsm0yp1y39fvf9j218gxv73j8hhahc53jyv3q58kiriyqvfc1s";
     patches = [
-      ./patches/disable-lockfile-check-beta.patch
+     ./patches/disable-lockfile-check-nightly.patch
     ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
     inherit targets;
     inherit targetPatches;
     inherit targetToolchains;
     inherit rustPlatform;
-  };
+  }) (oldAttrs: {
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ gdb rustPlatform.rust.cargo ];
+    postUnpack = ''
+      export CARGO_HOME="$(realpath deps)"
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+    '';
+    postPatch = ''
+      ${oldAttrs.postPatch}
+
+      # Remove failing debuginfo tests because of old gdb version: https://github.com/rust-lang/rust/issues/38948#issuecomment-271443596
+      rm -vr src/test/debuginfo/borrowed-enum.rs || true
+      rm -vr src/test/debuginfo/generic-struct-style-enum.rs || true
+      rm -vr src/test/debuginfo/generic-tuple-style-enum.rs || true
+      rm -vr src/test/debuginfo/packed-struct.rs || true
+      rm -vr src/test/debuginfo/recursive-struct.rs || true
+      rm -vr src/test/debuginfo/struct-in-enum.rs || true
+      rm -vr src/test/debuginfo/struct-style-enum.rs || true
+      rm -vr src/test/debuginfo/tuple-style-enum.rs || true
+      rm -vr src/test/debuginfo/union-smoke.rs || true
+      rm -vr src/test/debuginfo/unique-enum.rs || true
+
+      # make external cargo work until https://github.com/rust-lang/rust/issues/38950 is fixed
+      sed -i "s#    def cargo(self):#    def cargo(self):\n        return \"${rustPlatform.rust.cargo}/bin/cargo\"#g" src/bootstrap/bootstrap.py
+      substituteInPlace \
+        src/bootstrap/config.rs \
+        --replace \
+        'self.cargo = Some(push_exe_path(path, &["bin", "cargo"]));' \
+        ''$'self.cargo = Some(\n                        "${rustPlatform.rust.cargo}\\\n                        /bin/cargo".into());'
+    '';
+  });
 
   cargo = callPackage ./cargo.nix rec {
-    version = "0.14.0";
-    srcRev = "eca9e159b6b0d484788ac757cf23052eba75af55";
-    srcSha = "1zm5rzw1mvixnkzr4775pcxx6k235qqxbysyp179cbxsw3dm045s";
-    depsSha256 = "0gpn0cpwgpzwhc359qn6qplx371ag9pqbwayhqrsydk1zm5bm3zr";
+    version = "beta-2017-01-10";
+    srcRev = "6dd4ff0f5b59fff524762c4a7b65882adda713c0";
+    srcSha = "1x6d42qq2zhr1iaw0m0nslhv6c1w6x6schmd96max0p9xb47l9zj";
+    depsSha256 = "1sywnhzgambmqsjs2xlnzracfv7vjljha55hgf8wca2marafr5dp";
 
     inherit rustc; # the rustc that will be wrapped by cargo
     inherit rustPlatform; # used to build cargo
diff --git a/pkgs/development/compilers/rust/nightly.nix b/pkgs/development/compilers/rust/nightly.nix
index 81741105e261..d9ae8c140abe 100644
--- a/pkgs/development/compilers/rust/nightly.nix
+++ b/pkgs/development/compilers/rust/nightly.nix
@@ -1,13 +1,13 @@
-{ stdenv, callPackage, rustPlatform,
+{ stdenv, callPackage, rustPlatform, cacert, gdb,
   targets ? [], targetToolchains ? [], targetPatches ? [] }:
 
 rec {
-  rustc = callPackage ./rustc.nix {
-    shortVersion = "nightly-2016-11-23";
-    forceBundledLLVM = false;
+  rustc = stdenv.lib.overrideDerivation (callPackage ./rustc.nix {
+    shortVersion = "nightly-2017-01-10";
+    forceBundledLLVM = true; # TODO: figure out why linking fails without this
     configureFlags = [ "--release-channel=nightly" ];
-    srcRev = "d5814b03e652043be607f96e24709e06c2b55429";
-    srcSha = "0x2vr1mda0mr8q28h96zfpv0f26dyrg8jwxznlh6gk0y0mprgcbr";
+    srcRev = "7bffede97cf58f7159e261eac592f9cf88ce209d";
+    srcSha = "1784jvsf9g03cglwask1zhjmba4ghycbin3rw0hmhb41cz2y4q8v";
     patches = [
      ./patches/disable-lockfile-check-nightly.patch
     ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
@@ -15,13 +15,42 @@ rec {
     inherit targetPatches;
     inherit targetToolchains;
     inherit rustPlatform;
-  };
+  }) (oldAttrs: {
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ gdb rustPlatform.rust.cargo ];
+    postUnpack = ''
+      export CARGO_HOME="$(realpath deps)"
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+    '';
+    postPatch = ''
+      ${oldAttrs.postPatch}
+
+      # Remove failing debuginfo tests because of old gdb version: https://github.com/rust-lang/rust/issues/38948#issuecomment-271443596
+      rm -vr src/test/debuginfo/borrowed-enum.rs || true
+      rm -vr src/test/debuginfo/generic-struct-style-enum.rs || true
+      rm -vr src/test/debuginfo/generic-tuple-style-enum.rs || true
+      rm -vr src/test/debuginfo/packed-struct.rs || true
+      rm -vr src/test/debuginfo/recursive-struct.rs || true
+      rm -vr src/test/debuginfo/struct-in-enum.rs || true
+      rm -vr src/test/debuginfo/struct-style-enum.rs || true
+      rm -vr src/test/debuginfo/tuple-style-enum.rs || true
+      rm -vr src/test/debuginfo/union-smoke.rs || true
+      rm -vr src/test/debuginfo/unique-enum.rs || true
+
+      # make external cargo work until https://github.com/rust-lang/rust/issues/38950 is fixed
+      sed -i "s#    def cargo(self):#    def cargo(self):\n        return \"${rustPlatform.rust.cargo}/bin/cargo\"#g" src/bootstrap/bootstrap.py
+      substituteInPlace \
+        src/bootstrap/config.rs \
+        --replace \
+        'self.cargo = Some(push_exe_path(path, &["bin", "cargo"]));' \
+        ''$'self.cargo = Some(\n                        "${rustPlatform.rust.cargo}\\\n                        /bin/cargo".into());'
+    '';
+  });
 
   cargo = callPackage ./cargo.nix rec {
-    version = "nightly-2016-07-25";
-    srcRev = "f09ef68cc47956ccc5f99212bdcdd15298c400a0";
-    srcSha = "1r6q9jd0fl6mzhwkvrrcv358q2784hg51dfpy28xgh4n61m7c155";
-    depsSha256 = "055ky0lkrcsi976kmvc4lqyv0sjdpcj3jv36kz9hkqq0gip3crjc";
+    version = "nightly-2017-01-10";
+    srcRev = "6dd4ff0f5b59fff524762c4a7b65882adda713c0";
+    srcSha = "1x6d42qq2zhr1iaw0m0nslhv6c1w6x6schmd96max0p9xb47l9zj";
+    depsSha256 = "1sywnhzgambmqsjs2xlnzracfv7vjljha55hgf8wca2marafr5dp";
 
     inherit rustc; # the rustc that will be wrapped by cargo
     inherit rustPlatform; # used to build cargo