msgpack / msgpack-node

MessagePack implementation for Node.js
Other
311 stars 71 forks source link

Failed to build with Node V12.4.0 #50

Closed heathcliff-hu closed 4 years ago

heathcliff-hu commented 5 years ago

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:

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 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 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 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 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 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 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 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 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 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 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

chetverikov commented 4 years ago

+1

743v45 commented 4 years ago

+1

agirorn commented 4 years ago

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:
WilixLead commented 4 years ago

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) {
                                                                                      ^
godsflaw commented 4 years ago

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?

gitcoinbot commented 4 years ago

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.

godsflaw commented 4 years ago

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:

Good luck!

gitcoinbot commented 4 years ago

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.

Learn more on the Gitcoin Issue Details page.

gitcoinbot commented 4 years ago

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:

  1. @touhonoob

@godsflaw please take a look at the submitted work:


godsflaw commented 4 years ago

Version bumped in npm to 1.0.3. It should compile under node 12.x.x now. Thanks @touhonoob.

gitcoinbot commented 4 years ago

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.