Merge pull request #16052 from dvc94ch/rust-cross

Rust and cargo improvements
This commit is contained in:
Moritz Ulrich 2016-06-16 09:42:23 +02:00 committed by GitHub
commit e72282be84
27 changed files with 310 additions and 315 deletions

View File

@ -1,4 +1,4 @@
{ stdenv, cacert, git, cargo, rustRegistry }:
{ stdenv, cacert, git, rust, rustRegistry }:
{ name, depsSha256
, src ? null
, srcs ? null
@ -10,7 +10,7 @@
let
fetchDeps = import ./fetchcargo.nix {
inherit stdenv cacert git cargo rustRegistry;
inherit stdenv cacert git rust rustRegistry;
};
cargoDeps = fetchDeps {
@ -23,7 +23,7 @@ in stdenv.mkDerivation (args // {
patchRegistryDeps = ./patch-registry-deps;
buildInputs = [ git cargo cargo.rustc ] ++ buildInputs;
buildInputs = [ git rust.cargo rust.rustc ] ++ buildInputs;
configurePhase = args.configurePhase or "true";

View File

@ -1,9 +1,9 @@
{ stdenv, cacert, git, cargo, rustRegistry }:
{ stdenv, cacert, git, rust, rustRegistry }:
{ name ? "cargo-deps", src, srcs, sourceRoot, sha256, cargoUpdateHook ? "" }:
stdenv.mkDerivation {
name = "${name}-fetch";
buildInputs = [ cargo git ];
buildInputs = [ rust.cargo rust.rustc git ];
inherit src srcs sourceRoot rustRegistry cargoUpdateHook;
phases = "unpackPhase installPhase";

View File

@ -0,0 +1,27 @@
{ stdenv, callPackage, rustPlatform,
targets ? [], targetToolchains ? [], targetPatches ? [] }:
rec {
rustc = callPackage ./rustc.nix {
shortVersion = "beta-1.10.0";
forceBundledLLVM = false;
configureFlags = [ "--release-channel=beta" ];
srcRev = "d18e321abeecc69e4d1bf9cafba4fba53ddf267d";
srcSha = "1ck8mbjrq0bzq5xzwgaqdilakwm2ab0xpzqibjycds62ad4yw774";
patches = [ ./patches/disable-lockfile-check.patch ]
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
inherit targets;
inherit targetPatches;
inherit targetToolchains;
inherit rustPlatform;
};
cargo = callPackage ./cargo.nix rec {
version = "0.10.0";
srcRev = "refs/tags/${version}";
srcSha = "06scvx5qh60mgvlpvri9ig4np2fsnicsfd452fi9w983dkxnz4l2";
depsSha256 = "0js4697n7v93wnqnpvamhp446w58llj66za5hkd6wannmc0gsy3b";
inherit rustc; # the rustc that will be wrapped by cargo
inherit rustPlatform; # used to build cargo
};
}

View File

@ -0,0 +1,78 @@
{ stdenv, fetchurl, makeWrapper, cacert, zlib }:
let
platform =
if stdenv.system == "i686-linux"
then "i686-unknown-linux-gnu"
else if stdenv.system == "x86_64-linux"
then "x86_64-unknown-linux-gnu"
else if stdenv.system == "i686-darwin"
then "i686-apple-darwin"
else if stdenv.system == "x86_64-darwin"
then "x86_64-apple-darwin"
else abort "missing boostrap url for platform ${stdenv.system}";
# fetch hashes by running `print-hashes.sh 1.9.0`
bootstrapHash =
if stdenv.system == "i686-linux"
then "dd4d9bf1b9393867eb18d00431e8fb733894984f2c7b5154bc1b64d045077b45"
else if stdenv.system == "x86_64-linux"
then "288ff13efa2577e81c77fc2cb6e2b49b1ed0ceab51b4fa12f7efb87039ac49b7"
else if stdenv.system == "i686-darwin"
then "4d4d4b256d6bd6ae2527cf61007b2553de200f0a1910b7ad41e4f51d2b21e536"
else if stdenv.system == "x86_64-darwin"
then "d59b5509e69c1cace20a57072e3b3ecefdbfd8c7e95657b0ff2ac10aa1dfebe6"
else throw "missing boostrap hash for platform ${stdenv.system}";
src = fetchurl {
url = "https://static.rust-lang.org/dist/rust-${version}-${platform}.tar.gz";
sha256 = bootstrapHash;
};
version = "1.9.0";
in
rec {
rustc = stdenv.mkDerivation rec {
name = "rustc-bootstrap-${version}";
inherit version;
inherit src;
buildInputs = [ makeWrapper ];
phases = ["unpackPhase" "installPhase"];
installPhase = ''
./install.sh --prefix=$out \
--components=rustc,rust-std-${platform},rust-docs
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/rustc"
wrapProgram "$out/bin/rustc"
'';
};
cargo = stdenv.mkDerivation rec {
name = "cargo-bootstrap-${version}";
inherit version;
inherit src;
buildInputs = [ makeWrapper zlib rustc ];
phases = ["unpackPhase" "installPhase"];
installPhase = ''
./install.sh --prefix=$out \
--components=cargo
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/bin/cargo"
wrapProgram "$out/bin/cargo" \
--suffix PATH : "${rustc}/bin"
'';
};
}

View File

@ -0,0 +1,64 @@
{ stdenv, fetchgit, file, curl, pkgconfig, python, openssl, cmake, zlib
, makeWrapper, libiconv, cacert, rustPlatform, rustc
, version, srcRev, srcSha, depsSha256 }:
rustPlatform.buildRustPackage rec {
name = "cargo-${version}";
inherit version;
src = fetchgit {
url = "https://github.com/rust-lang/cargo";
rev = srcRev;
sha256 = srcSha;
};
inherit depsSha256;
passthru.rustc = rustc;
buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ]
++ stdenv.lib.optional stdenv.isDarwin libiconv;
configurePhase = ''
./configure --enable-optimize --prefix=$out --local-cargo=${rustPlatform.rust.cargo}/bin/cargo
'';
buildPhase = "make";
installPhase = ''
make install
${postInstall}
'';
postInstall = ''
rm "$out/lib/rustlib/components" \
"$out/lib/rustlib/install.log" \
"$out/lib/rustlib/rust-installer-version" \
"$out/lib/rustlib/uninstall.sh" \
"$out/lib/rustlib/manifest-cargo"
wrapProgram "$out/bin/cargo" \
--suffix PATH : "${rustc}/bin" \
--run "export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt" \
${stdenv.lib.optionalString stdenv.isDarwin ''--suffix DYLD_LIBRARY_PATH : "${rustc}/lib"''}
'';
checkPhase = ''
# Export SSL_CERT_FILE as without it one test fails with SSL verification error
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
# Disable cross compilation tests
export CFG_DISABLE_CROSS_TESTS=1
cargo test
'';
# Disable check phase as there are failures (author_prefers_cargo test fails)
doCheck = false;
meta = with stdenv.lib; {
homepage = http://crates.io;
description = "Downloads your Rust project's dependencies and builds your project";
maintainers = with maintainers; [ wizeman retrry ];
license = [ licenses.mit licenses.asl20 ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@ -0,0 +1,33 @@
{ stdenv, callPackage, recurseIntoAttrs, makeRustPlatform,
targets ? [], targetToolchains ? [], targetPatches ? [] }:
let
rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {}) rustPlatform);
rustSnapshotPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./snapshot.nix {}) rustPlatform);
in
rec {
rustc = callPackage ./rustc.nix {
shortVersion = "1.9.0";
isRelease = true;
forceBundledLLVM = false;
configureFlags = [ "--release-channel=stable" ];
srcRev = "e4e8b666850a763fdf1c3c2c142856ab51e32779";
srcSha = "1pz4qx70mqv78fxm4w1mq7csk5pssq4qmr2vwwb5v8hyx03caff8";
patches = [ ./patches/remove-uneeded-git.patch ]
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
inherit targets;
inherit targetPatches;
inherit targetToolchains;
rustPlatform = rustSnapshotPlatform;
};
cargo = callPackage ./cargo.nix rec {
version = "0.10.0";
srcRev = "refs/tags/${version}";
srcSha = "06scvx5qh60mgvlpvri9ig4np2fsnicsfd452fi9w983dkxnz4l2";
depsSha256 = "0js4697n7v93wnqnpvamhp446w58llj66za5hkd6wannmc0gsy3b";
inherit rustc; # the rustc that will be wrapped by cargo
inherit rustPlatform; # used to build cargo
};
}

View File

@ -0,0 +1,27 @@
{ stdenv, callPackage, rustPlatform,
targets ? [], targetToolchains ? [], targetPatches ? [] }:
rec {
rustc = callPackage ./rustc.nix {
shortVersion = "master-1.11.0";
forceBundledLLVM = false;
srcRev = "298730e7032cd55809423773da397cd5c7d827d4";
srcSha = "0hyz5j1z75sjkgsifzgxviv3b1lhgaz8wqwvmq80xx5vd78yd0c1";
patches = [ ./patches/disable-lockfile-check.patch
./patches/use-rustc-1.9.0.patch ]
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
inherit targets;
inherit targetPatches;
inherit targetToolchains;
inherit rustPlatform;
};
cargo = callPackage ./cargo.nix rec {
version = "2016.06.07";
srcRev = "3e70312a2a4ebedace131fc63bb8f27463c5db28";
srcSha = "0nibzyfjkiqfnq0c00hhqvs856l5qls8wds252p97q5q92yvp40f";
depsSha256 = "1xbb33aqnf5yyws6gjys9w8kznbh9rh6hw8mpg1hhq1ahipc2j1f";
inherit rustc; # the rustc that will be wrapped by cargo
inherit rustPlatform; # used to build cargo
};
}

View File

@ -0,0 +1,17 @@
#!/bin/sh
PLATFORMS="i686-unknown-linux-gnu x86_64-unknown-linux-gnu i686-apple-darwin x86_64-apple-darwin"
BASEURL="https://static.rust-lang.org/dist"
VERSION=$1
if [[ -z $VERSION ]]
then
echo "No version supplied"
exit -1
fi
for PLATFORM in $PLATFORMS
do
URL="$BASEURL/rust-$VERSION-$PLATFORM.tar.gz.sha256"
curl $URL
done

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchgit, fetchzip, file, python2, tzdata, procps
, llvm, jemalloc, ncurses, darwin, binutils, rustc
, llvm, jemalloc, ncurses, darwin, binutils, rustPlatform, git
, isRelease ? false
, shortVersion
@ -7,22 +7,11 @@
, srcSha, srcRev
, configureFlags ? []
, patches
, targets
, targetPatches
, targetToolchains
} @ args:
/* Rust's build process has a few quirks :
- The Rust compiler is written is Rust, so it requires a bootstrap
compiler, which is downloaded during the build. To make the build
pure, we download it ourself before and put it where it is
expected. Once the language is stable (1.0) , we might want to
switch it to use nix's packaged rust compiler. This might not be possible
as the compiler is highly coupled to the bootstrap.
NOTE : some derivation depend on rust. When updating this, please make
sure those derivations still compile. (racer, for example).
*/
let
version = if isRelease then
"${shortVersion}"
@ -35,15 +24,7 @@ let
llvmShared = llvm.override { enableSharedLibraries = true; };
target = if stdenv.system == "i686-linux"
then "i686-unknown-linux-gnu"
else if stdenv.system == "x86_64-linux"
then "x86_64-unknown-linux-gnu"
else if stdenv.system == "i686-darwin"
then "i686-apple-darwin"
else if stdenv.system == "x86_64-darwin"
then "x86_64-apple-darwin"
else abort "no snapshot to bootstrap for this platform (missing target triple)";
target = builtins.replaceStrings [" "] [","] (builtins.toString targets);
meta = with stdenv.lib; {
homepage = http://www.rust-lang.org/;
@ -71,13 +52,15 @@ stdenv.mkDerivation {
# We need rust to build rust. If we don't provide it, configure will try to download it.
configureFlags = configureFlags
++ [ "--enable-local-rust" "--local-rust-root=${rustc}" "--enable-rpath" ]
++ [ "--enable-local-rust" "--local-rust-root=${rustPlatform.rust.rustc}" "--enable-rpath" ]
# ++ [ "--jemalloc-root=${jemalloc}/lib"
++ [ "--default-linker=${stdenv.cc}/bin/cc" "--default-ar=${binutils.out}/bin/ar" ]
++ stdenv.lib.optional (stdenv.cc.cc ? isClang) "--enable-clang"
++ stdenv.lib.optional (targets != []) "--target=${target}"
++ stdenv.lib.optional (!forceBundledLLVM) "--llvm-root=${llvmShared}";
inherit patches;
patches = patches ++ targetPatches;
passthru.target = target;
postPatch = ''
substituteInPlace src/rust-installer/gen-install-script.sh \
@ -112,8 +95,8 @@ stdenv.mkDerivation {
'';
# ps is needed for one of the test cases
nativeBuildInputs = [ file python2 procps rustc ];
buildInputs = [ ncurses ]
nativeBuildInputs = [ file python2 procps rustPlatform.rust.rustc git ];
buildInputs = [ ncurses ] ++ targetToolchains
++ stdenv.lib.optional (!forceBundledLLVM) llvmShared;
# https://github.com/rust-lang/rust/issues/30181
@ -125,4 +108,5 @@ stdenv.mkDerivation {
preCheck = "export TZDIR=${tzdata}/share/zoneinfo";
doCheck = true;
dontSetConfigureCross = true;
}

View File

@ -1,4 +1,8 @@
{ stdenv, fetchurl }:
/* NOTE: Rust 1.9.0 is the last version that uses snapshots
This file can be deleted after the 1.10.0 release and bootstrap.nix
can be used instead
*/
{ stdenv, fetchurl, callPackage }:
let
platform = if stdenv.system == "i686-linux"
@ -17,7 +21,6 @@ let
https://github.com/rust-lang/rust/blob/{$shortVersion}/src/snapshots.txt
with the set you want at the top. Make sure this is the latest snapshot
for the tagged release and not a snapshot in the current HEAD.
NOTE: Rust 1.9.0 is the last version that uses snapshots
*/
snapshotHashLinux686 = "0e0e4448b80d0a12b75485795244bb3857a0a7ef";
@ -40,19 +43,23 @@ let
snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshotHash}.tar.bz2";
in
stdenv.mkDerivation {
name = "rust-bootstrap";
src = fetchurl {
url = "http://static.rust-lang.org/stage0-snapshots/${snapshotName}";
sha1 = snapshotHash;
rec {
rustc = stdenv.mkDerivation {
name = "rustc-snapshot";
src = fetchurl {
url = "http://static.rust-lang.org/stage0-snapshots/${snapshotName}";
sha1 = snapshotHash;
};
dontStrip = true;
installPhase = ''
mkdir -p "$out"
cp -r bin "$out/bin"
'' + stdenv.lib.optionalString stdenv.isLinux ''
patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
--set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/" \
"$out/bin/rustc"
'';
};
dontStrip = true;
installPhase = ''
mkdir -p "$out"
cp -r bin "$out/bin"
'' + stdenv.lib.optionalString stdenv.isLinux ''
patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
--set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/" \
"$out/bin/rustc"
'';
cargo = null;
}

View File

@ -1,12 +0,0 @@
{ stdenv, callPackage, rustcStable }:
callPackage ./generic.nix {
shortVersion = "beta-1.10.0";
forceBundledLLVM = false;
configureFlags = [ "--release-channel=beta" ];
srcRev = "39f3c16cca889ef3f1719d9177e3315258222a65";
srcSha = "01bx6616lslp2mbj4h8bb6m042fs0y1z8g0jgpxvbk3fbhzwafrx";
patches = [ ./patches/disable-lockfile-check.patch ] ++
stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
rustc = rustcStable;
}

View File

@ -1,13 +0,0 @@
# Please make sure to check if rustfmt still builds when updating nightly
{ stdenv, callPackage, rustcStable }:
callPackage ./generic.nix {
shortVersion = "master-1.11.0";
forceBundledLLVM = false;
srcRev = "298730e7032cd55809423773da397cd5c7d827d4";
srcSha = "0hyz5j1z75sjkgsifzgxviv3b1lhgaz8wqwvmq80xx5vd78yd0c1";
patches = [ ./patches/disable-lockfile-check.patch
./patches/use-rustc-1.9.0.patch ] ++
stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
rustc = rustcStable;
}

View File

@ -1,13 +0,0 @@
{ stdenv, callPackage }:
callPackage ./generic.nix {
shortVersion = "1.9.0";
isRelease = true;
forceBundledLLVM = false;
configureFlags = [ "--release-channel=stable" ];
srcRev = "e4e8b666850a763fdf1c3c2c142856ab51e32779";
srcSha = "1pz4qx70mqv78fxm4w1mq7csk5pssq4qmr2vwwb5v8hyx03caff8";
patches = [ ./patches/remove-uneeded-git.patch ]
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
rustc = callPackage ./bootstrap.nix {};
}

View File

@ -1,38 +0,0 @@
{stdenv, version, rustc}:
{
inherit version;
name = "cargo-${version}";
postInstall = ''
rm "$out/lib/rustlib/components" \
"$out/lib/rustlib/install.log" \
"$out/lib/rustlib/rust-installer-version" \
"$out/lib/rustlib/uninstall.sh" \
"$out/lib/rustlib/manifest-cargo"
wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" \
${stdenv.lib.optionalString stdenv.isDarwin ''--suffix DYLD_LIBRARY_PATH : "${rustc}/lib"''}
'';
platform = if stdenv.system == "i686-linux"
then "i686-unknown-linux-gnu"
else if stdenv.system == "x86_64-linux"
then "x86_64-unknown-linux-gnu"
else if stdenv.system == "i686-darwin"
then "i686-apple-darwin"
else if stdenv.system == "x86_64-darwin"
then "x86_64-apple-darwin"
else throw "no snapshot to bootstrap for this platform (missing platform url suffix)";
passthru.rustc = rustc;
meta = with stdenv.lib; {
homepage = http://crates.io;
description = "Downloads your Rust project's dependencies and builds your project";
maintainers = with maintainers; [ wizeman retrry ];
license = [ licenses.mit licenses.asl20 ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@ -1,49 +0,0 @@
{ stdenv, lib, cacert, fetchgit, rustPlatform, file, curl, python, pkgconfig, openssl
, cmake, zlib, makeWrapper
# Darwin dependencies
, libiconv }:
with rustPlatform;
with ((import ./common.nix) {
inherit stdenv rustc;
version = "0.10.0";
});
buildRustPackage rec {
inherit name version meta passthru;
# Needs to use fetchgit instead of fetchFromGitHub to fetch submodules
src = fetchgit {
url = "git://github.com/rust-lang/cargo";
rev = "refs/tags/${version}";
sha256 = "06scvx5qh60mgvlpvri9ig4np2fsnicsfd452fi9w983dkxnz4l2";
};
depsSha256 = "0js4697n7v93wnqnpvamhp446w58llj66za5hkd6wannmc0gsy3b";
buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ]
++ lib.optional stdenv.isDarwin libiconv;
configurePhase = ''
./configure --enable-optimize --prefix=$out --local-cargo=${cargo}/bin/cargo
'';
buildPhase = "make";
checkPhase = ''
# Export SSL_CERT_FILE as without it one test fails with SSL verification error
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
# Disable cross compilation tests
export CFG_DISABLE_CROSS_TESTS=1
cargo test
'';
# Disable check phase as there are failures (author_prefers_cargo test fails)
doCheck = false;
installPhase = ''
make install
${postInstall}
'';
}

View File

@ -1,39 +0,0 @@
{ stdenv, fetchgit, rustPlatform, file, curl, python, pkgconfig, openssl
, cmake, zlib, makeWrapper }:
with rustPlatform;
with ((import ./common.nix) {
inherit stdenv rustc;
version = "2016-03-20";
});
buildRustPackage rec {
inherit name version meta passthru;
# Needs to use fetchgit instead of fetchFromGitHub to fetch submodules
src = fetchgit {
url = "git://github.com/rust-lang/cargo";
rev = "7d79da08238e3d47e0bc4406155bdcc45ccb8c82";
sha256 = "190qdii53s4vk940yzs2iizhfs22y2v8bzw051bl6bk9bs3y4fdd";
};
depsSha256 = "1xbb33aqnf5yyws6gjys9w8kznbh9rh6hw8mpg1hhq1ahipc2j1f";
buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ];
configurePhase = ''
./configure --enable-optimize --prefix=$out --local-cargo=${cargo}/bin/cargo
'';
buildPhase = "make";
# Disable check phase as there are lots of failures (some probably due to
# trying to access the network).
doCheck = false;
installPhase = ''
make install
${postInstall}
'';
}

View File

@ -1,55 +0,0 @@
{ stdenv, fetchurl, zlib, makeWrapper, rustc }:
/* Cargo binary snapshot */
let snapshotDate = "2016-01-31";
in
with ((import ./common.nix) {
inherit stdenv rustc;
version = "snapshot-${snapshotDate}";
});
let snapshotHash = if stdenv.system == "i686-linux"
then "7e2f9c82e1af5aa43ef3ee2692b985a5f2398f0a"
else if stdenv.system == "x86_64-linux"
then "4c03a3fd2474133c7ad6d8bb5f6af9915ca5292a"
else if stdenv.system == "i686-darwin"
then "4d84d31449a5926f9e7ceb344540d6e5ea530b88"
else if stdenv.system == "x86_64-darwin"
then "f8baef5b0b3e6f9825be1f1709594695ac0f0abc"
else throw "no snapshot for platform ${stdenv.system}";
snapshotName = "cargo-nightly-${platform}.tar.gz";
in
stdenv.mkDerivation {
inherit name version meta passthru;
src = fetchurl {
url = "https://static-rust-lang-org.s3.amazonaws.com/cargo-dist/${snapshotDate}/${snapshotName}";
sha1 = snapshotHash;
};
buildInputs = [ makeWrapper ];
dontStrip = true;
__propagatedImpureHostDeps = [
"/usr/lib/libiconv.2.dylib"
"/usr/lib/libssl.0.9.8.dylib"
"/usr/lib/libcurl.4.dylib"
"/System/Library/Frameworks/GSS.framework/GSS"
"/System/Library/Frameworks/GSS.framework/Versions/Current"
"/System/Library/PrivateFrameworks/Heimdal.framework/Heimdal"
"/System/Library/PrivateFrameworks/Heimdal.framework/Versions/Current"
];
installPhase = ''
mkdir -p "$out"
./install.sh "--prefix=$out"
'' + (if stdenv.isLinux then ''
patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
--set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/:${zlib.out}/lib" \
"$out/bin/cargo"
'' else "") + postInstall;
}

View File

@ -17,13 +17,13 @@ buildRustPackage rec {
buildInputs = [ makeWrapper ];
preCheck = ''
export RUST_SRC;_PATH="${rustc.src}/src"
export RUST_SRC;_PATH="${rustPlatform.rust.rustc.src}/src"
'';
installPhase = ''
mkdir -p $out/bin
cp -p target/release/racer $out/bin/
wrapProgram $out/bin/racer --set RUST_SRC_PATH "${rustc.src}/src"
wrapProgram $out/bin/racer --set RUST_SRC_PATH "${rustPlatform.rust.rustc.src}/src"
'';
meta = with stdenv.lib; {

View File

@ -17,7 +17,7 @@ buildRustPackage rec {
buildInputs = [ makeWrapper ];
RUST_SRC_PATH = ''${rustc.src}/src'';
RUST_SRC_PATH = ''${rustPlatform.rust.rustc.src}/src'';
installPhase = ''
mkdir -p $out/bin

View File

@ -1,7 +1,7 @@
# TODO check that no license information gets lost
{ fetchurl, bash, stdenv, python, go, cmake, vim, vimUtils, perl, ruby, unzip
, which, fetchgit, fetchFromGitHub, fetchhg, fetchzip, llvmPackages, zip
, vim_configurable, vimPlugins, xkb_switch, git, racerdRust, fzf
, vim_configurable, vimPlugins, xkb_switch, git, rustracerd, fzf
, Cocoa ? null
}:
@ -1116,7 +1116,7 @@ rec {
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
propogatedBuildInputs = [
racerdRust
rustracerd
];
buildPhase = ''

View File

@ -5,7 +5,7 @@
] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
propogatedBuildInputs = [
racerdRust
rustracerd
];
buildPhase = ''

View File

@ -6,7 +6,7 @@ buildRustPackage rec {
name = "exa-${version}";
version = "2016-04-20";
depsSha256 = "1rpynsni2r3gim10xc1qkj51wpbzafwsr99y61zh41v4vh047g1k";
depsSha256 = "0dm8zaxy29pfbq68ysssab9i06sj4azgi3vib9617rklg7w3hdmk";
src = fetchFromGitHub {
owner = "ogham";

View File

@ -2531,7 +2531,7 @@ in
netatalk = callPackage ../tools/filesystems/netatalk { };
netcdf = callPackage ../development/libraries/netcdf { };
netcdf-mpi = appendToName "mpi" (netcdf.override {
hdf5 = hdf5-mpi;
});
@ -4495,7 +4495,7 @@ in
inherit (self.haskellPackages) ghc;
cabal-install = haskell.lib.disableSharedExecutables haskellPackages.cabal-install;
stack = haskell.lib.overrideCabal haskellPackages.stack (drv: {
enableSharedExecutables = false;
isLibrary = false;
@ -5267,36 +5267,31 @@ in
rtags = callPackage ../development/tools/rtags/default.nix {};
rustc = rustcStable;
rustcStable = callPackage ../development/compilers/rustc/stable.nix {};
rustcBeta = lowPrio (callPackage ../development/compilers/rustc/beta.nix {});
rustcUnstable = lowPrio (callPackage ../development/compilers/rustc/head.nix {});
rust = rustStable;
rustStable = callPackage ../development/compilers/rust {};
rustBeta = lowPrio (callPackage ../development/compilers/rust/beta.nix {});
rustUnstable = lowPrio (callPackage ../development/compilers/rust/head.nix {});
rustPlatform = rustStable;
rustStable = recurseIntoAttrs (makeRustPlatform cargo rustStable);
rustBeta = lowPrio (recurseIntoAttrs (makeRustPlatform cargoUnstable rustBeta));
rustUnstable = lowPrio (recurseIntoAttrs (makeRustPlatform cargoUnstable rustUnstable));
cargo = rust.cargo;
rustc = rust.rustc;
rustPlatform = recurseIntoAttrs (makeRustPlatform rust rustPlatform);
# rust platform to build cargo itself (with cargoSnapshot)
rustCargoPlatform = makeRustPlatform (cargoSnapshot rustcStable) rustCargoPlatform;
rustUnstableCargoPlatform = makeRustPlatform (cargoSnapshot rustcUnstable) rustUnstableCargoPlatform;
makeRustPlatform = cargo: self:
makeRustPlatform = rust: self:
let
callPackage = newScope self;
in {
inherit cargo;
rustc = cargo.rustc;
inherit rust;
rustRegistry = callPackage ./rust-packages.nix { };
buildRustPackage = callPackage ../build-support/rust {
inherit cargo;
inherit rust;
};
};
rustfmt = callPackage ../development/tools/rust/rustfmt { };
rustracer = callPackage ../development/tools/rust/racer { };
rustracerd = callPackage ../development/tools/rust/racerd { };
sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {};
sbcl = callPackage ../development/compilers/sbcl {};
@ -5961,20 +5956,6 @@ in
byacc = callPackage ../development/tools/parsing/byacc { };
cargo = callPackage ../development/tools/build-managers/cargo {
# cargo needs to be built with rustCargoPlatform, which uses cargoSnapshot
rustPlatform = rustCargoPlatform;
};
cargoUnstable = lowPrio (callPackage ../development/tools/build-managers/cargo/head.nix {
rustPlatform = rustUnstableCargoPlatform;
});
cargoSnapshot = rustc:
callPackage ../development/tools/build-managers/cargo/snapshot.nix {
inherit rustc;
};
casperjs = callPackage ../development/tools/casperjs {
inherit (texFunctions) fontsConf;
};
@ -6387,10 +6368,6 @@ in
withDocumentation = false; # 'true' is currently broken with qt>=5.5
};
racerRust = callPackage ../development/tools/rust/racer { };
racerdRust = callPackage ../development/tools/rust/racerd { };
radare = callPackage ../development/tools/analysis/radare {
inherit (gnome) vte;
lua = lua5;
@ -7520,7 +7497,7 @@ in
};
libkrb5 = self.krb5Full.override { type = "lib"; };
lasso = callPackage ../development/libraries/lasso { };
lasso = callPackage ../development/libraries/lasso { };
LASzip = callPackage ../development/libraries/LASzip { };
@ -10852,7 +10829,7 @@ in
batman_adv = callPackage ../os-specific/linux/batman-adv {};
bcc = callPackage ../os-specific/linux/bcc { };
bbswitch = callPackage ../os-specific/linux/bbswitch {};
ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
@ -16029,7 +16006,7 @@ in
openspecfun = callPackage ../development/libraries/science/math/openspecfun {};
magma = callPackage ../development/libraries/science/math/magma { };
magma = callPackage ../development/libraries/science/math/magma { };
mathematica = callPackage ../applications/science/math/mathematica { };
mathematica9 = callPackage ../applications/science/math/mathematica/9.nix { };