pnpm.fetchDeps: ensure consistent permissions for fetcherVersion >=2

Co-authored-by: Oliver Breitwieser <oliver@breitwieser.eu>
This commit is contained in:
Gutyina Gergő
2025-07-09 13:52:43 +02:00
parent 25f7b297db
commit 71e3980f18
2 changed files with 19 additions and 1 deletions

View File

@@ -444,7 +444,7 @@ stdenv.mkDerivation (finalAttrs: {
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "...";
fetcherVersion = 1;
fetcherVersion = 2;
};
})
```
@@ -593,6 +593,7 @@ Changes can include workarounds or bug fixes to existing PNPM issues.
##### Version history {#javascript-pnpm-fetcherVersion-versionHistory}
- 1: Initial version, nothing special
- 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975)
### Yarn {#javascript-yarn}

View File

@@ -118,6 +118,23 @@ in
jq --sort-keys "del(.. | .checkedAt?)" $f | sponge $f
done
# Ensure consistent permissions
# NOTE: For reasons not yet fully understood, pnpm might create files with
# inconsistent permissions, for example inside the ubuntu-24.04
# github actions runner.
# To ensure stable derivations, we need to set permissions
# consistently, namely:
# * All files with `-exec` suffix have 555.
# * All other files have 444.
# * All folders have 555.
# See https://github.com/NixOS/nixpkgs/pull/350063
# See https://github.com/NixOS/nixpkgs/issues/422889
if [[ ${toString fetcherVersion} -ge 2 ]]; then
find $out -type f -name "*-exec" -print0 | xargs -0 chmod 555
find $out -type f -not -name "*-exec" -print0 | xargs -0 chmod 444
find $out -type d -print0 | xargs -0 chmod 555
fi
runHook postFixup
'';