meg768 / rpi-ws281x

rpi-ws281x
22 stars 26 forks source link

Fails to install on Raspberry Pi 4B w/ May 2020 32-bit Raspi OS, Node v12.18.1 #4

Closed jtcmedia closed 4 years ago

jtcmedia commented 4 years ago

When trying to install:

pi@raspberrypi:~/leds $ npm i rpi-ws281x

> rpi-ws281x@1.0.33 install /home/pi/leds/node_modules/rpi-ws281x
> node-gyp rebuild

make: Entering directory '/home/pi/leds/node_modules/rpi-ws281x/build'
  CXX(target) Release/obj.target/rpi-ws281x/src/addon.o
In file included from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/addon.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Addon::configure(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cpp:67:93: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     v8::Local<v8::Value> debug = options->Get(Nan::New<v8::String>("debug").ToLocalChecked());
                                                                                             ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:72:95: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::Local<v8::Value> leds = options->Get(Nan::New<v8::String>("leds").ToLocalChecked());
                                                                                               ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:83:93: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::Local<v8::Value> dma = options->Get(Nan::New<v8::String>("dma").ToLocalChecked());
                                                                                             ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:92:95: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
         v8::Local<v8::Value> gpio = options->Get(Nan::New<v8::String>("gpio").ToLocalChecked());
                                                                                               ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:101:107: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 8::Local<v8::Value> brightness = options->Get(Nan::New<v8::String>("brightness").ToLocalChecked());
                                                                                                  ^

In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:110:100: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
       v8::Local<v8::Value> stripType = options->Get(Nan::New<v8::String>("type").ToLocalChecked());
                                                                                                  ^

In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:113:84: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
             stripType = options->Get(Nan::New<v8::String>("strip").ToLocalChecked());
                                                                                    ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:116:88: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
             stripType = options->Get(Nan::New<v8::String>("stripType").ToLocalChecked());
                                                                                        ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:3553:51: note: declared here
   V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
                                                   ^~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp:119:61: error: no matching function for call to ‘v8::Value::ToString()’
             v8::String::Utf8Value value(stripType->ToString());
                                                             ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2668:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                            ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2684:31: note: candidate: ‘v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const’
                 Local<String> ToString(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided
                 Local<String> ToString(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/addon.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Addon::sleep(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/addon.cpp:217:32: error: no matching function for call to ‘v8::Value::Int32Value()’
     usleep(info[0]->Int32Value() * 1000);
                                ^
In file included from /home/pi/.cache/node-gyp/12.18.1/include/node/node.h:67,
                 from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2709:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
   V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
                                        ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.1/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided
In file included from ../../nan/nan.h:56,
                 from ../src/addon.h:5,
                 from ../src/addon.cpp:1:
../src/addon.cpp: At global scope:
/home/pi/.cache/node-gyp/12.18.1/include/node/node.h:608:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/home/pi/.cache/node-gyp/12.18.1/include/node/node.h:642:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/addon.cpp:233:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, initAddon);
 ^~~~~~~~~~~
make: *** [rpi-ws281x.target.mk:120: Release/obj.target/rpi-ws281x/src/addon.o] Error 1
make: Leaving directory '/home/pi/leds/node_modules/rpi-ws281x/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 4.19.118-v7l+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/leds/node_modules/rpi-ws281x
gyp ERR! node -v v12.18.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN leds@1.0.0 No description
npm WARN leds@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! rpi-ws281x@1.0.33 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the rpi-ws281x@1.0.33 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!     /home/pi/.npm/_logs/2020-06-20T15_17_52_038Z-debug.log

The error seems to be: error: no matching function for call to ‘v8::Value::Int32Value()

Is this module not compatible with Node >= v12?

jtcmedia commented 4 years ago

This is a duplicate of #6 so I will close it.