yarn2nix: run nix-prefetch-git with --fetch-submodules

`pkgs.fetchgit` uses `fetchSubmodules = true;` by default, however
`nix-prefetch-git` doesn't. This means that hashes for a Git repository
with fetched submodules will be wrong in `yarn.nix`.

Considering that this got unnoticed before, it seems as if this case is
an exception to a certain degree.

An exemplary problem is the last `hedgedoc` update[1] where
`js-sequence-diagrams` - a Git repo with submodules - from upstream's
package.json caused a hash mismatch. This got unnoticed because
`nix-build --check` doesn't seem to reveal these issues for fixed-output
derivations.

[1] https://github.com/NixOS/nixpkgs/pull/139238

(cherry picked from commit 46c98ae1327b7d14af1927fda971762e5ee53dfe)
This commit is contained in:
Maximilian Bosch 2021-09-26 00:55:09 +02:00
parent 4eb0a2b3cb
commit c20fbabd9b
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E

View File

@ -33,7 +33,7 @@ const { execFileSync } = require('child_process')
function prefetchgit(url, rev) {
return JSON.parse(
execFileSync("nix-prefetch-git", ["--rev", rev, url], {
execFileSync("nix-prefetch-git", ["--rev", rev, url, "--fetch-submodules"], {
stdio: [ "ignore", "pipe", "ignore" ],
timeout: 60000,
})