Pin rust version

Note that @andir’s approach also works with stable versions. For example, to get 1.40.0:

(rustChannelOf { channel = "1.40.0"; }).rust

You can also use nixpkgs-mozilla as a package set, rather than an overlay. This is useful when you want to use it in e.g. a derivation:

{ callPackage, fetchFromGitHub }:

let
  mozillaOverlay = fetchFromGitHub {
    owner = "mozilla";
    repo = "nixpkgs-mozilla";
    rev = "9f35c4b09fd44a77227e79ff0c1b4b6a69dff533";
    sha256 = "18h0nvh55b5an4gmlgfbvwbyqj91bklf1zymis6lbdh75571qaz0";
  };
  mozilla = callPackage "${mozillaOverlay.out}/package-set.nix" {};
  rustNightly = (mozilla.rustChannelOf { date = "2019-07-30"; channel = "nightly"; }).rust;
  rustPlatform = makeRustPlatform { cargo = rustNightly; rustc = rustNightly; };
in rustPlatform.buildRustPackage rec {
  # ...
}
2 Likes