From cc1caa87fbbc11338a650623c7776bf57402cd16 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Mon, 25 Oct 2021 17:19:24 +0200 Subject: [PATCH] Use Rust binaries from Nix instead of rustup --- default.nix | 13 ++----------- nix/common.nix | 6 ------ shell.nix | 14 +++++++++----- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/default.nix b/default.nix index 940f38233..d44d57414 100644 --- a/default.nix +++ b/default.nix @@ -11,26 +11,17 @@ with import ./nix/common.nix; let crossSystem = { config = target; }; in let - pkgs = import pkgsSrc { inherit system crossSystem; - overlays = [ cargo2nixOverlay rustOverlay ]; + overlays = [ cargo2nixOverlay ]; }; - rustDist = pkgs.buildPackages.rust-bin.stable.latest.default; /* The following complexity should be abstracted by makePackageSet' (note the final quote). However its code uses deprecated features of rust-overlay that can lead to bug. Instead, we build our own rustChannel object with the recommended API of rust-overlay. */ - rustChannel = rustDist // { - cargo = rustDist; - rustc = rustDist.override { - targets = [ - (pkgs.rustBuilder.rustLib.realHostTriple pkgs.stdenv.targetPlatform) - ]; - }; - }; + rustChannel = pkgs.rustPlatform.rust; overrides = pkgs.buildPackages.rustBuilder.overrides.all ++ [ (pkgs.rustBuilder.rustLib.makeOverride { diff --git a/nix/common.nix b/nix/common.nix index aee38bd8c..eafaa088c 100644 --- a/nix/common.nix +++ b/nix/common.nix @@ -12,16 +12,10 @@ rec { url = "https://github.com/superboum/cargo2nix"; rev = "1364752cd784764db2ef5b1e1248727cebfae2ce"; }; - rustOverlaySrc = fetchGit { - # As of 2021-10-05 - url = "https://github.com/oxalica/rust-overlay"; - rev = "9c2fc6a62ccbc6f420d71ecac6bf0b84dbbee64f"; - }; /* * Shared objects */ - rustOverlay = import rustOverlaySrc; cargo2nix = import cargo2nixSrc; cargo2nixOverlay = import "${cargo2nixSrc}/overlay"; } diff --git a/shell.nix b/shell.nix index f407ed95d..a91a9e20d 100644 --- a/shell.nix +++ b/shell.nix @@ -1,6 +1,5 @@ { system ? builtins.currentSystem, - crossSystem ? null, rust ? true, integration ? true, release ? true, @@ -10,10 +9,9 @@ with import ./nix/common.nix; let pkgs = import pkgsSrc { - inherit system crossSystem; - overlays = [ cargo2nixOverlay rustOverlay ]; + inherit system; + overlays = [ cargo2nixOverlay ]; }; - rustDist = pkgs.buildPackages.rust-bin.stable.latest.default; kaniko = (import ./nix/kaniko.nix) pkgs; in @@ -60,7 +58,13 @@ function refresh_index { ''; nativeBuildInputs = - (if rust then [ rustDist (pkgs.callPackage cargo2nix {}).package ] else []) + (if rust then [ + pkgs.rustPlatform.rust.rustc + pkgs.rustPlatform.rust.cargo + pkgs.clippy + pkgs.rustfmt + /*(pkgs.callPackage cargo2nix {}).package*/ + ] else []) ++ (if integration then [ pkgs.s3cmd pkgs.awscli2 pkgs.minio-client pkgs.rclone pkgs.socat pkgs.psmisc pkgs.which ] else []) ++