`yarn install` fails, due to `node_libcurl` & node >= 20 combination
gilgardosh opened this issue · comments
Issue workflow progress
Progress of the issue based on the
Contributor Workflow
- 1. The issue provides a reproduction available on
Github,
Stackblitz
or
CodeSandbox
Make sure to fork this template and run
yarn generate
in the terminal.Please make sure Mesh package versions under
package.json
matches yours.
- 2. A failing test has been provided
- 3. A local solution has been provided
- 4. A pull request is pending review
Describe the bug
On projects running node >= 20, with @graphql-mesh/cli: 0.89.8
added, dependency installation fails with this error prompt:
warning Error running install script for optional dependency: "/project/node_modules/node-libcurl: Command failed.
Exit code: 1
Command: node-pre-gyp install --fallback-to-build
Arguments:
Directory: /project/node_modules/node-libcurl
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using node-pre-gyp@1.0.11
node-pre-gyp info using node@21.7.1 | darwin | arm64
(node:71676) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
node-pre-gyp info check checked for \"/project/node_modules/node-libcurl/lib/binding/node_libcurl.node\" (not found)
node-pre-gyp http GET https://github.com/JCMais/node-libcurl/releases/download/v4.0.0/node_libcurl-v4.0.0-node-v120-darwin-arm64-unknown.tar.gz
node-pre-gyp ERR! install response status 404 Not Found on https://github.com/JCMais/node-libcurl/releases/download/v4.0.0/node_libcurl-v4.0.0-node-v120-darwin-arm64-unknown.tar.gz
node-pre-gyp WARN Pre-built binaries not installable for node-libcurl@4.0.0 and node@21.7.1 (node-v120 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/JCMais/node-libcurl/releases/download/v4.0.0/node_libcurl-v4.0.0-node-v120-darwin-arm64-unknown.tar.gz
gyp info it worked if it ends with ok
gyp info using node-gyp@10.0.1
gyp info using node@21.7.1 | darwin | arm64
gyp info ok
gyp info it worked if it ends with ok
gyp info using node-gyp@10.0.1
gyp info using node@21.7.1 | darwin | arm64
gyp info find Python using Python version 3.9.6 found at \"/Library/Developer/CommandLineTools/usr/bin/python3\"
gyp info spawn /Library/Developer/CommandLineTools/usr/bin/python3
gyp info spawn args [
gyp info spawn args '/project/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/project/node_modules/node-libcurl/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/project/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/user/Library/Caches/node-gyp/21.7.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/user/Library/Caches/node-gyp/21.7.1',
gyp info spawn args '-Dnode_gyp_dir=/project/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/user/Library/Caches/node-gyp/21.7.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/project/node_modules/node-libcurl',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info ok
gyp info it worked if it ends with ok
gyp info using node-gyp@10.0.1
gyp info using node@21.7.1 | darwin | arm64
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
CXX(target) Release/obj.target/node_libcurl/src/node_libcurl.o
clang: error: no such file or directory: '/usr/include'
make: *** [Release/obj.target/node_libcurl/src/node_libcurl.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.<anonymous> (/project/node_modules/node-gyp/lib/build.js:209:23)
gyp ERR! System Darwin 23.2.0
gyp ERR! command \"/Users/user/Library/Application Support/fnm/node-versions/v21.7.1/installation/bin/node\" \"/project/node_modules/node-gyp/bin/node-gyp.js\" \"build\" \"--fallback-to-build\" \"--module=/project/node_modules/node-libcurl/lib/binding/node_libcurl.node\" \"--module_name=node_libcurl\" \"--module_path=/project/node_modules/node-libcurl/lib/binding\" \"--napi_version=9\" \"--node_abi_napi=napi\" \"--napi_build_version=0\" \"--node_napi_label=node-v120\"
gyp ERR! cwd /project/node_modules/node-libcurl
gyp ERR! node -v v21.7.1
gyp ERR! node-gyp -v v10.0.1
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/Users/user/Library/Application Support/fnm/node-versions/v21.7.1/installation/bin/node /project/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/project/node_modules/node-libcurl/lib/binding/node_libcurl.node --module_name=node_libcurl --module_path=/project/node_modules/node-libcurl/lib/binding --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v120' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/project/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
node-pre-gyp ERR! stack at ChildProcess.emit (node:events:519:28)
node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1105:16)
node-pre-gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:305:5)
node-pre-gyp ERR! System Darwin 23.2.0
node-pre-gyp ERR! command \"/Users/user/Library/Application Support/fnm/node-versions/v21.7.1/installation/bin/node\" \"/project/node_modules/node-libcurl/node_modules/.bin/node-pre-gyp\" \"install\" \"--fallback-to-build\"
node-pre-gyp ERR! cwd /project/node_modules/node-libcurl
node-pre-gyp ERR! node -v v21.7.1
node-pre-gyp ERR! node-pre-gyp -v v1.0.11
node-pre-gyp ERR! not ok
Failed to execute '/Users/user/Library/Application Support/fnm/node-versions/v21.7.1/installation/bin/node /project/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/project/node_modules/node-libcurl/lib/binding/node_libcurl.node --module_name=node_libcurl --module_path=/project/node_modules/node-libcurl/lib/binding --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v120' (1)"
To Reproduce Steps to reproduce the behavior:
Setup node v.21.7.1 env, with package.json
such as this:
{
"name": "mesh-bug-manifestation",
"engines": {
"node": "21.7.1"
},
"dependencies": {
"@graphql-mesh/cli": "0.89.8"
}
}
run yarn install
Expected behavior
Installation be successful
Environment:
"@graphql-mesh/cli": "0.89.8"
- NodeJS: 21.7.1
additional context
can be solved locally, using npm_config_curl_include_dirs="$(xcrun --show-sdk-path)/usr/include" yarn install