ardatan / graphql-mesh

🕸️ GraphQL Mesh - The Graph of Everything - Federated architecture for any API service

Home Page:https://the-guild.dev/graphql/mesh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`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

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