{ stdenv, buildNpmPackage, fetchFromGitHub, lib, nodejs, }: (buildNpmPackage.override { inherit nodejs; }) rec { pname = "node-gyp"; version = "12.1.0"; src = fetchFromGitHub { owner = "nodejs"; repo = "node-gyp"; tag = "v${version}"; hash = "sha256-2BiRCFpGtuV/mL3U3jUkN1Tw91ON78y9iabDM0CMm2U="; }; npmDepsHash = "sha256-1ARSkUAIId0Y2xtyNjJ4FVx7y6kHZhYi83e4T4A2qS8="; postPatch = '' ln -s ${./package-lock.json} package-lock.json substituteInPlace gyp/pylib/gyp/**.py \ --replace-quiet sys.platform '"${stdenv.targetPlatform.parsed.kernel.name}"' ''; dontNpmBuild = true; # Teach node-gyp to use nodejs headers locally rather that download them form https://nodejs.org. # This is important when build nodejs packages in sandbox. makeWrapperArgs = [ "--set npm_config_nodedir ${nodejs}" ]; passthru.updateScript = ./update.sh; meta = { changelog = "https://github.com/nodejs/node-gyp/blob/${src.rev}/CHANGELOG.md"; description = "Node.js native addon build tool"; homepage = "https://github.com/nodejs/node-gyp"; license = lib.licenses.mit; mainProgram = "node-gyp"; maintainers = with lib.maintainers; [ dotlambda ]; }; }