Failed to build with Node V12.4.0
Closed this issue · 11 comments
Hi. I had running application that use msgpack with Node V10.15.0.
When I updated my Node to V12.4.0, it can't build the msgpack.
And this is my computer configuration:
- System: MacOS Mojave Version 10.14.5
- Processor 2.8GHz Intel Core i7
Memory 16GB 1600MHz DDR3
/Users/heathcliff/.nvm/versions/node/v12.4.0/bin/json2msgpack -> /Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/msgpack/bin/json2msgpack
/Users/heathcliff/.nvm/versions/node/v12.4.0/bin/msgpack2json -> /Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/msgpack/bin/msgpack2json
> msgpack@1.0.2 install /Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/msgpack
> node-gyp rebuild
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
CC(target) Release/obj.target/libmsgpack/deps/msgpack/objectc.o
CC(target) Release/obj.target/libmsgpack/deps/msgpack/unpack.o
CC(target) Release/obj.target/libmsgpack/deps/msgpack/vrefbuffer.o
CC(target) Release/obj.target/libmsgpack/deps/msgpack/zone.o
CC(target) Release/obj.target/libmsgpack/deps/msgpack/version.o
LIBTOOL-STATIC Release/msgpack.a
CXX(target) Release/obj.target/msgpackBinding/src/msgpack.o
../src/msgpack.cc:102:1: error: variable has incomplete type 'void'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:15: error: use of undeclared identifier 'Handle'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:22: error: 'Value' does not refer to a value
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
/Users/heathcliff/.node-gyp/12.4.0/include/node/v8.h:2240:17: note: declared here
class V8_EXPORT Value : public Data {
^
../src/msgpack.cc:102:29: error: use of undeclared identifier 'v8obj'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:36: error: unexpected type name 'msgpack_object': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:52: error: use of undeclared identifier 'mo'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:56: error: unexpected type name 'msgpack_zone': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:70: error: use of undeclared identifier 'mz'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:74: error: unexpected type name 'size_t': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:87: error: expected ';' after top level declarator
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
;
10 errors generated.
make: *** [Release/obj.target/msgpackBinding/src/msgpack.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:200:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 18.6.0
gyp ERR! command "/Users/heathcliff/.nvm/versions/node/v12.4.0/bin/node" "/Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/heathcliff/.nvm/versions/node/v12.4.0/lib/node_modules/msgpack
gyp ERR! node -v v12.4.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! msgpack@1.0.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the msgpack@1.0.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/heathcliff/.npm/_logs/2019-06-27T03_21_30_816Z-debug.log
+1
+1
Also fails on node v12.10.0
/home/agirorn/.node-gyp/12.10.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/msgpack.cc:318:78: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
Nan::New<FunctionTemplate>(msgpack_unpack_template)->GetFunction()->Set(
^
In file included from ../src/msgpack.cc:1:0:
Save in Node v12.8.0 NPM 6.11.3 (macOS Mojave 10.14.6)
../src/msgpack.cc:102:1: error: variable has incomplete type 'void'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:15: error: use of undeclared identifier 'Handle'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:22: error: 'Value' does not refer to a value
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
/Users/dmitry/Library/Caches/node-gyp/12.8.0/include/node/v8.h:2247:17: note: declared here
class V8_EXPORT Value : public Data {
^
../src/msgpack.cc:102:29: error: use of undeclared identifier 'v8obj'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:36: error: unexpected type name 'msgpack_object': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:52: error: use of undeclared identifier 'mo'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:56: error: unexpected type name 'msgpack_zone': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:70: error: use of undeclared identifier 'mz'
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:74: error: unexpected type name 'size_t': expected expression
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
../src/msgpack.cc:102:87: error: expected ';' after top level declarator
v8_to_msgpack(Handle<Value> v8obj, msgpack_object *mo, msgpack_zone *mz, size_t depth) {
^
I started looking at this, but clearly the v8
API changed in the 12 upgrade. This isn't the only addon I have that's broken. I am fairly busy at the moment, but if someone wants to dig in, I think the problem resides in Handle<Value>
. This is just v8::Handle
and v8:Value
. I don't think this will be as easy as just re-declaring them to whatever Nan::
interface is needed, as it will likely impact the usage too. So, perhaps someone wants to take a shot?
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
This issue now has a funding of 75.0 DAI (75.0 USD @ $1.0/DAI) attached to it as part of the msgpack fund.
- If you would like to work on this issue you can 'start work' on the Gitcoin Issue Details page.
- Want to chip in? Add your own contribution here.
- Questions? Checkout Gitcoin Help or the Gitcoin Slack
- $154,312.92 more funded OSS Work available on the Gitcoin Issue Explorer
I just bountied this issue on gitcoin. If you want to take a shot at earning ◈75 DAI, see if you can update the library to get it working under node 12.x.x
. You should:
- update the NAN dependency
- fix the deprecated usage of the v8 API for a more resilient NAN interface
- the entire package should compile cleanly and all tests should pass
Good luck!
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work has been started.
These users each claimed they can complete the work by 267 years, 1 month from now.
Please review their action plans below:
1) touhonoob has been approved to start work.
- upgrade NAN to 2.14.0
- replace v8::Handle with v8::Local
Learn more on the Gitcoin Issue Details page.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work for 75.0 DAI (75.0 USD @ $1.0/DAI) has been submitted by:
@godsflaw please take a look at the submitted work:
- PR by @touhonoob
- Learn more on the Gitcoin Issue Details page
- Want to chip in? Add your own contribution here.
- Questions? Checkout Gitcoin Help or the Gitcoin Slack
- $153,167.57 more funded OSS Work available on the Gitcoin Issue Explorer
Version bumped in npm to 1.0.3
. It should compile under node 12.x.x
now. Thanks @touhonoob.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
The funding of 75.0 DAI (75.0 USD @ $1.0/DAI) attached to this issue has been approved & issued to @touhonoob.
- Learn more on the Gitcoin Issue Details page
- Questions? Checkout Gitcoin Help or the Gitcoin Slack
- $152,793.56 more funded OSS Work available on the Gitcoin Issue Explorer