From c420dcad9e14f6d668f02273d11e84f67dc7f63b Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 9 May 2019 20:58:57 +0200 Subject: [PATCH] nix/fetchcargo: restrict src to just Cargo.{toml,lock} should result in less -vendor pkgs in the nix store --- nix/adc2tcp.nix | 2 +- nix/fetchcargo.nix | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/nix/adc2tcp.nix b/nix/adc2tcp.nix index 9c5fb7e..83b7b06 100644 --- a/nix/adc2tcp.nix +++ b/nix/adc2tcp.nix @@ -8,7 +8,7 @@ let inherit (rust) cargo; }; adc2tcpDeps = fetchcargo { - name = "adc2tcp-deps"; + name = "adc2tcp"; src = ../.; inherit sha256; }; diff --git a/nix/fetchcargo.nix b/nix/fetchcargo.nix index 6195a72..1e37b79 100644 --- a/nix/fetchcargo.nix +++ b/nix/fetchcargo.nix @@ -1,9 +1,21 @@ { stdenv, cacert, git, cargo, cargo-vendor }: { name, src, sha256 }: +let + # `src` restricted to the two files that define dependencies + cargoOnlySrc = stdenv.mkDerivation { + name = "${name}-cargo"; + inherit src; + phases = "installPhase"; + installPhase = '' + mkdir $out + cp ${src}/Cargo.{toml,lock} $out/ + ''; + }; +in stdenv.mkDerivation { name = "${name}-vendor"; nativeBuildInputs = [ cacert git cargo cargo-vendor ]; - inherit src; + src = cargoOnlySrc; phases = "unpackPhase patchPhase installPhase";