nixpkgs/pkgs/development
Ricardo M. Correia 2b694c237b cargo, cargoSnapshot: add rustc runtime dependency
It turns out that cargo implicitly depends on rustc at runtime: even
`cargo help` will fail if rustc is not in the PATH.

This means that we need to wrap the cargo binary to add rustc to PATH.
However, I have opted into doing something slightly unusual: instead of
tying down a specific cargo to use a specific rustc (i.e., wrap cargo so
that "${rustc}/bin" is prefixed into PATH), instead I'm adding the rustc
used to build cargo as a fallback rust compiler (i.e., wrap cargo so
that "${rustc}/bin" is suffixed into PATH). This means that cargo will
prefer to use a rust compiler that is in the default path, but fallback
into the one used to build cargo only if there wasn't any rust compiler
in the default path.

The reason I'm doing this is that otherwise it could cause unexpected
effects. For example, if you had a build environment with the
rustcMaster and cargo derivations, you would expect cargo to use
rustcMaster to compile your project (since rustcMaster would be the only
compiler available in $PATH), but this wouldn't happen if we tied down
cargo to use the rustc that was used to compile it (because the default
cargo derivation gets compiled with the stable rust compiler).

That said, I have slightly modified makeRustPlatform so that a rust
platform will always use the rust compiler that was used to build cargo,
because this prevents mistakenly depending on two different versions of
the rust compiler (stable and unstable) in the same rust platform,
something which is usually undesirable.

Fixes #11053
2015-11-18 02:41:45 +01:00
..
arduino Fixed several "package has no version" warnings 2015-05-14 17:19:41 +02:00
compilers Replace 'with plaforms; platform' with 'platforms.platform' 2015-11-17 21:30:43 +01:00
coq-modules coqPackages.ssreflect: add ncurses as a dependency 2015-10-31 09:33:05 -07:00
dotnet-modules/patches Lay down the foundation for packaging the .NET echosystem 2015-06-06 09:06:22 -04:00
eclipse ecj: require jdk7 instead of jdk 2015-07-27 17:37:37 +02:00
go-modules goPackages.tools: add setup-hook for setting GOTOOLDIR 2015-10-28 11:01:26 +01:00
guile-modules guile-gnome-platform: 2.16.1 -> 2015/01/23 git 2015-07-23 04:13:03 -05:00
haskell-modules configuration-hackage2nix.yaml: update list of broken packages 2015-11-17 11:09:59 +01:00
interpreters Replace 'with plaforms; platform' with 'platforms.platform' 2015-11-17 21:30:43 +01:00
libraries Replace 'with plaforms; platform' with 'platforms.platform' 2015-11-17 21:30:43 +01:00
lisp-modules lisp-packages: git.b9.com moved to git.kpe.io 2015-09-30 23:41:01 +02:00
lua-modules
misc
mobile android-sdk: 24.3.4 -> 24.4, android-ndk: r10c -> r10e 2015-10-18 19:02:23 +09:00
ocaml-modules menhir: refactor to generic; init at 20151110 for OCaml >= 4.02 2015-11-11 12:30:32 +01:00
perl-modules perl-DBIx-Class: 0.082801 -> 0.082820 2015-11-11 02:23:02 +01:00
pharo xlibs: replace occurrences by xorg 2015-09-15 12:54:34 +02:00
pure-modules x11: replace its usage by xlibsWrapper directly 2015-09-15 12:08:24 +02:00
python-modules Merge pull request #10814 from NarrativeScience/no_large_file_test 2015-11-16 12:55:13 +01:00
qtcreator qtcreator: add qtdeclarative to QML2_IMPORT_PATH 2015-11-09 21:00:10 +01:00
r-modules R: regenerate CRAN packages 2015-11-17 14:34:27 +01:00
ruby-modules
tools cargo, cargoSnapshot: add rustc runtime dependency 2015-11-18 02:41:45 +01:00
web nodejs-5_0: add package 2015-11-16 17:58:11 +00:00