From 49d9ddaa0f823c8c768ef3f0cee810f4660f1b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 6 Jun 2024 14:41:22 +0200 Subject: [PATCH 1/2] pnpm.fetchDeps: misc cleanup --- pkgs/development/tools/pnpm/fetch-deps/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix index 83972abf8b08..41c322013877 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/default.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix @@ -1,6 +1,5 @@ { stdenvNoCC, - fetchurl, callPackage, jq, moreutils, @@ -11,7 +10,6 @@ { fetchDeps = { - src, hash ? "", pname, ... @@ -36,10 +34,10 @@ name = "${pname}-pnpm-deps"; nativeBuildInputs = [ + cacert jq moreutils pnpm - cacert ]; installPhase = '' From 7a1cd1fcf17e10c910d805104fa93f9ffd728e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 6 Jun 2024 14:41:44 +0200 Subject: [PATCH 2/2] pnpm.fetchDeps: error if lockfile version has a mismatch --- pkgs/development/tools/pnpm/fetch-deps/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix index 41c322013877..eb8b847960c5 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/default.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix @@ -1,4 +1,5 @@ { + lib, stdenvNoCC, callPackage, jq, @@ -6,6 +7,7 @@ cacert, makeSetupHook, pnpm, + yq, }: { fetchDeps = @@ -38,11 +40,18 @@ jq moreutils pnpm + yq ]; installPhase = '' runHook preInstall + lockfileVersion="$(yq -r .lockfileVersion pnpm-lock.yaml)" + if [[ ''${lockfileVersion:0:1} -gt ${lib.versions.major pnpm.version} ]]; then + echo "ERROR: lockfileVersion $lockfileVersion in pnpm-lock.yaml is too new for the provided pnpm version ${lib.versions.major pnpm.version}!" + exit 1 + fi + export HOME=$(mktemp -d) pnpm config set store-dir $out # Some packages produce platform dependent outputs. We do not want to cache those in the global store