uhop / node-re2

node.js bindings for RE2: fast, safe alternative to backtracking regular expression engines.
Other
489 stars 53 forks source link

re2 Don't build on Node 16 #153

Closed fasenderos closed 1 year ago

fasenderos commented 1 year ago

Node Version: 16.15.1 Compiler: gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) Platform

$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

Hi, I'm using metascraper which use re2 and when I run npm install I get this error:

Verbose output ``` npm ERR! command failed npm ERR! command sh -c install-from-cache --artifact build/Release/re2.node --host-var RE2_DOWNLOAD_MIRROR --skip-path-var RE2_DOWNLOAD_SKIP_PATH --skip-ver-var RE2_DOWNLOAD_SKIP_VER || npm run rebuild npm ERR! Trying https://github.com/uhop/node-re2/releases/download/1.17.8/linux-arm64-93.br ... npm ERR! Trying https://github.com/uhop/node-re2/releases/download/1.17.8/linux-arm64-93.gz ... npm ERR! Building locally ... npm ERR! npm ERR! > re2@1.17.8 rebuild npm ERR! > node-gyp rebuild npm ERR! npm ERR! make: Entering directory `/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build' npm ERR! CXX(target) Release/obj.target/re2/lib/addon.o npm ERR! make: Leaving directory `/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build' npm ERR! npm ERR! > re2@1.17.8 rebuild npm ERR! > node-gyp rebuild npm ERR! npm ERR! make: Entering directory `/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build' npm ERR! CXX(target) Release/obj.target/re2/lib/addon.o npm ERR! make: Leaving directory `/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build' npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.3.1 npm ERR! gyp info using node@16.15.1 | linux | arm64 npm ERR! gyp info find Python using Python version 3.7.16 found at "/usr/bin/python3" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.cache/node-gyp/16.15.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/home/my-user/.cache/node-gyp/16.15.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/home/my-user/.cache/node-gyp/16.15.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! g++: error: unrecognized command line option ‘-std=c++2a’; did you mean ‘-std=c++03’? npm ERR! make: *** [Release/obj.target/re2/lib/addon.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) npm ERR! gyp ERR! System Linux 4.14.294-220.533.amzn2.aarch64 npm ERR! gyp ERR! command "/home/my-user/.nvm/versions/node/v16.15.1/bin/node" "/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/.bin/node-gyp" "rebuild" npm ERR! gyp ERR! cwd /home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2 npm ERR! gyp ERR! node -v v16.15.1 npm ERR! gyp ERR! node-gyp -v v9.3.1 npm ERR! gyp ERR! not ok npm ERR! node:internal/process/promises:279 npm ERR! triggerUncaughtException(err, true /* fromPromise */); npm ERR! ^ npm ERR! npm ERR! [UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "1".] { npm ERR! code: 'ERR_UNHANDLED_REJECTION' npm ERR! } npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.3.1 npm ERR! gyp info using node@16.15.1 | linux | arm64 npm ERR! gyp info find Python using Python version 3.7.16 found at "/usr/bin/python3" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/my-user/.cache/node-gyp/16.15.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/home/my-user/.cache/node-gyp/16.15.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/home/my-user/.cache/node-gyp/16.15.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! g++: error: unrecognized command line option ‘-std=c++2a’; did you mean ‘-std=c++03’? npm ERR! make: *** [Release/obj.target/re2/lib/addon.o] Error 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) npm ERR! gyp ERR! System Linux 4.14.294-220.533.amzn2.aarch64 npm ERR! gyp ERR! command "/home/my-user/.nvm/versions/node/v16.15.1/bin/node" "/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/.bin/node-gyp" "rebuild" npm ERR! gyp ERR! cwd /home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2 npm ERR! gyp ERR! node -v v16.15.1 npm ERR! gyp ERR! node-gyp -v v9.3.1 npm ERR! gyp ERR! not ok npm ERR! A complete log of this run can be found in: npm ERR! /home/my-user/.npm/_logs/2023-01-30T10_05_39_838Z-debug-0.log ```
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! g++: error: unrecognized command line option ‘-std=c++2a’; did you mean ‘-std=c++03’?
npm ERR! make: *** [Release/obj.target/re2/lib/addon.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/node-gyp/lib/build.js:203:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 4.14.294-220.533.amzn2.aarch64
npm ERR! gyp ERR! command "/home/my-user/.nvm/versions/node/v16.15.1/bin/node" "/home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /home/my-user/.nvm/versions/node/v16.15.1/lib/node_modules/@my-scope/my-app/node_modules/re2
npm ERR! gyp ERR! node -v v16.15.1
npm ERR! gyp ERR! node-gyp -v v9.3.1
npm ERR! gyp ERR! not ok
npm ERR! node:internal/process/promises:279
npm ERR!             triggerUncaughtException(err, true /* fromPromise */);
uhop commented 1 year ago

This line:

npm ERR! g++: error: unrecognized command line option ‘-std=c++2a’; did you mean ‘-std=c++03’?

indicates that you should use a newer C++ compiler. See https://github.com/google/re2/wiki/Install for more details. To find out what versions support C++2a refer to https://en.wikipedia.org/wiki/C%2B%2B20 and look for "c++2a" on the page.

fasenderos commented 1 year ago

@uhop ok thank you for the reply, I'll check what I can do.

uhop commented 1 year ago

I assume that the issue was resolved for you.