frida/frida-node

Please commit the binding.gyp to NPM package.

Invincibl-e opened this issue · 4 comments

When node 13, the prebuilt does not exist.
So, node gyp will be called to compile.
The binding.gyp and src is part of NPM package.

On node 13, run npm -g install frida will fail with message below which caused by missing binding.gyp and src:

prebuild-install WARN install No prebuilt binaries found (target=13.1.0 runtime=node arch=x64 libc= platform=darwin)
gyp: binding.gyp not found (cwd: /usr/local/lib/node_modules/frida) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/Cellar/node/13.1.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/frida
gyp ERR! node -v v13.1.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! frida@12.7.22 install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1

@oleavr please, do something here. It's end of 2020 and it's still failing to build properly. See NorthwaveSecurity/fridax#14

@duraki The easiest solution is probably to wire up automation that downloads and extracts a frida-core devkit (from our releases page), and builds against that. Currently we require a Frida source checkout that's already built, and pointing an environment variable named FRIDA at its path. PRs welcome!

(But for those of you running into this: we currently only provide prebuilds for 10, 12, and 14. So if you're on 13, upgrade to 14.)