node-v4l2camera icon indicating copy to clipboard operation
node-v4l2camera copied to clipboard

Installation fails with Node.js 10

Open T-vK opened this issue 6 years ago • 7 comments

Tested on a Raspberry Pi with Raspbian Stretch:

pi@raspi_bell:~/projects/intercom $ npm install v4l2camera

> [email protected] install /home/pi/projects/intercom/node_modules/v4l2camera
> node-gyp rebuild

make: Entering directory '/home/pi/projects/intercom/node_modules/v4l2camera/build'
  CC(target) Release/obj.target/v4l2camera/capture.o
In file included from ../capture.h:7:0,
                 from ../capture.c:1:
/usr/include/linux/videodev2.h:2126:20: error: field ‘timestamp’ has incomplete type
  struct timespec   timestamp;
                    ^~~~~~~~~
v4l2camera.target.mk:111: recipe for target 'Release/obj.target/v4l2camera/capture.o' failed
make: *** [Release/obj.target/v4l2camera/capture.o] Error 1
make: Leaving directory '/home/pi/projects/intercom/node_modules/v4l2camera/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/pi/.nvm/versions/node/v10.1.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:235:12)
gyp ERR! System Linux 4.14.37+
gyp ERR! command "/home/pi/.nvm/versions/node/v10.1.0/bin/node" "/home/pi/.nvm/versions/node/v10.1.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/projects/intercom/node_modules/v4l2camera
gyp ERR! node -v v10.1.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm WARN enoent ENOENT: no such file or directory, open '/home/pi/projects/intercom/package.json'
npm WARN intercom No description
npm WARN intercom No repository field.
npm WARN intercom No README data
npm WARN intercom No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] 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/2018-05-13T10_12_12_414Z-debug.log

T-vK avatar May 13 '18 10:05 T-vK

I am also getting this same error - same output as above.

twilkes149 avatar Jul 28 '18 04:07 twilkes149

My build is failing under 8.x

gyp ERR! node -v v8.11.3  
gyp ERR! node-gyp -v v3.6.2

SwissArmyBud avatar Aug 23 '18 20:08 SwissArmyBud

failing under 10.x from npm install v4l2camera ....

[email protected] install /home/me/myfolder/node_modules/v4l2camera node-gyp rebuild

make: Entering directory '/home/me/myfolde/node_modules/v4l2camera/build' CC(target) Release/obj.target/v4l2camera/capture.o CXX(target) Release/obj.target/v4l2camera/v4l2camera.o In file included from ../../nan/nan.h:190:0, from ../v4l2camera.cc:3: ../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe Nan::ForceSet(v8::Localv8::Object, v8::Localv8::Value, v8::Localv8::Value, v8::PropertyAttribute)’: ../../nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’ return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs); ^ In file included from ../../nan/nan_new.h:189:0, from ../../nan/nan.h:196, from ../v4l2camera.cc:3: ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’: ../../nan/nan_implementation_12_inl.h:337:37: warning: ‘static v8::Localv8::Value v8::StringObject::New(v8::Localv8::String)’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:5052): Use Isolate* version [-Wdeprecated-declarations] return v8::StringObject::New(value).Asv8::StringObject(); ^ In file included from ../v4l2camera.cc:3:0: ../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’: ../../nan/nan.h:833:60: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/node.h:175): Use MakeCallback(..., async_context) [-Wdeprecated-declarations] v8::Isolate::GetCurrent(), target, func, argc, argv); ^ ../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’: ../../nan/nan.h:848:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/node.h:168): Use MakeCallback(..., async_context) [-Wdeprecated-declarations] v8::Isolate::GetCurrent(), target, symbol, argc, argv); ^ ../../nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char, int, v8::Localv8::Value)’: ../../nan/nan.h:863:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/node.h:161): Use MakeCallback(..., async_context) [-Wdeprecated-declarations] v8::Isolate::GetCurrent(), target, method, argc, argv); ^ ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’: ../../nan/nan.h:909:53: warning: ‘v8::Localv8::String v8::Value::ToString() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:10040): Use maybe version [-Wdeprecated-declarations] v8::Localv8::String string = from->ToString(); ^ ../../nan/nan.h:919:74: warning: ‘int v8::String::WriteUtf8(char, int, int*, int) const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:2658): Use Isolate* version [-Wdeprecated-declarations] length_ = string->WriteUtf8(str_, static_cast(len), 0, flags); ^ ../../nan/nan.h: In member function ‘v8::Localv8::Value Nan::Callback::Call_(v8::Isolate*, v8::Localv8::Object, int, v8::Localv8::Value) const’: ../../nan/nan.h:1477:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/node.h:175): Use MakeCallback(..., async_context) [-Wdeprecated-declarations] )); ^ ../v4l2camera.cc: In function ‘camera_format_t {anonymous}::convertCFormat(v8::Localv8::Object)’: ../v4l2camera.cc:215:49: warning: ‘v8::Localv8::Object v8::Value::ToObject() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:10046): Use maybe version [-Wdeprecated-declarations] const auto interval = finterval->ToObject(); ^ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ConfigSet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:367:59: warning: ‘v8::Localv8::Object v8::Value::ToObject() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:10046): Use maybe version [-Wdeprecated-declarations] const auto cformat = convertCFormat(info[0]->ToObject()); ^ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ControlGet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:384:42: warning: ‘uint32_t v8::Value::Uint32Value() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:2477): Use maybe version [-Wdeprecated-declarations] const auto id = info[0]->Uint32Value(); ^ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ControlSet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:400:42: warning: ‘uint32_t v8::Value::Uint32Value() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:2477): Use maybe version [-Wdeprecated-declarations] const auto id = info[0]->Uint32Value(); ^ ../v4l2camera.cc:401:44: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated (declared at /home/pi/.node-gyp/10.12.0/include/node/v8.h:2478): Use maybe version [-Wdeprecated-declarations] const auto value = info[1]->Int32Value(); ^ In file included from ../../nan/nan_callbacks.h:83:0, from ../../nan/nan.h:146, from ../v4l2camera.cc:3: ../../nan/nan_callbacks_12_inl.h: In instantiation of ‘v8::Localv8::Function Nan::FunctionCallbackInfo<T>::Callee() const [with T = v8::Value]’: ../v4l2camera.cc:255:48: required from here ../../nan/nan_callbacks_12_inl.h:108:71: error: ‘const class v8::FunctionCallbackInfov8::Value’ has no member named ‘Callee’ inline v8::Localv8::Function Callee() const { return info_.Callee(); } ^ ../../nan/nan_callbacks_12_inl.h: In member function ‘v8::Localv8::Function Nan::FunctionCallbackInfo<T>::Callee() const [with T = v8::Value]’: ../../nan/nan_callbacks_12_inl.h:108:74: warning: control reaches end of non-void function [-Wreturn-type] inline v8::Localv8::Function Callee() const { return info_.Callee(); } ^ v4l2camera.target.mk:114: recipe for target 'Release/obj.target/v4l2camera/v4l2camera.o' failed make: *** [Release/obj.target/v4l2camera/v4l2camera.o] Error 1 make: Leaving directory '/home/pi/SuperSourceTesla/node_modules/v4l2camera/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/opt/nodejs/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:182:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12) gyp ERR! System Linux 4.9.13-v7+ gyp ERR! command "/opt/nodejs/bin/node" "/opt/nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/me/myfolder/node_modules/v4l2camera gyp ERR! node -v v10.12.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] 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/2018-10-14T22_34_15_508Z-debug.log

daverathbone avatar Oct 14 '18 22:10 daverathbone

Hello, I am also getting this error on Raspberry Pi 3b+ with Raspbian Stretch. Curiously on my old Raspberry Pi (arm6) also with Stretch the fix 412f9eb works perfectly fine and everything is compiling. Wish I could do more than just this bug report :-)

My error:

[email protected] install /home/uullrich/v4l2camera/node_modules/v4l2camera/v4l2camera node-gyp rebuild

make: Verzeichnis „/home/uullrich/v4l2camera/node_modules/v4l2camera/v4l2camera/build“ wird betreten CC(target) Release/obj.target/v4l2camera/capture.o CXX(target) Release/obj.target/v4l2camera/v4l2camera.o In file included from ../node_modules/nan/nan_new.h:189:0, from ../node_modules/nan/nan.h:222, from ../v4l2camera.cc:3: ../node_modules/nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’: ../node_modules/nan/nan_implementation_12_inl.h:340:37: warning: ‘static v8::Localv8::Value v8::StringObject::New(v8::Localv8::String)’ is deprecated: Use Isolate* version [-Wdeprecated-declarations] return v8::StringObject::New(value).Asv8::StringObject(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:26:0, from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:5053:37: note: declared here static Local<Value> New(Local<String> value)); ^ /home/uullrich/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~ In file included from ../v4l2camera.cc:3:0: ../node_modules/nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’: ../node_modules/nan/nan.h:1066:53: warning: ‘v8::Localv8::String v8::Value::ToString() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] v8::Localv8::String string = from->ToString(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63:0, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:10040:15: note: declared here Local<String> Value::ToString() const { ^~~~~ In file included from ../v4l2camera.cc:3:0: ../node_modules/nan/nan.h:1080:74: warning: ‘int v8::String::WriteUtf8(char*, int, int*, int) const’ is deprecated: Use Isolate* version [-Wdeprecated-declarations] length_ = string->WriteUtf8(str_, static_cast(len), 0, flags); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:26:0, from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:2659:21: note: declared here int WriteUtf8(char* buffer, int length = -1, ^ /home/uullrich/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~ ../v4l2camera.cc: In function ‘camera_format_t {anonymous}::convertCFormat(v8::Localv8::Object)’: ../v4l2camera.cc:215:49: warning: ‘v8::Localv8::Object v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] const auto interval = finterval->ToObject(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63:0, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:10046:15: note: declared here Local<Object> Value::ToObject() const { ^~~~~ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::New(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:255:41: error: ‘const class Nan::FunctionCallbackInfov8::Value’ has no member named ‘Callee’ auto inst = Nan::NewInstance(info.Callee(), args.size(), args.data()); ^~~~~~ ../v4l2camera.cc: In lambda function: ../v4l2camera.cc:299:47: warning: ‘v8::Localv8::Value Nan::Callback::Call(v8::Localv8::Object, int, v8::Localv8::Value) const’ is deprecated [-Wdeprecated-declarations] data->callback->Call(thisObj, 0, nullptr); ^ In file included from ../v4l2camera.cc:3:0: ../node_modules/nan/nan.h:1633:3: note: declared here Call(v8::Localv8::Object target ^~~~ ../v4l2camera.cc: In lambda function: ../v4l2camera.cc:319:61: warning: ‘v8::Localv8::Value Nan::Callback::Call(v8::Localv8::Object, int, v8::Localv8::Value) const’ is deprecated [-Wdeprecated-declarations] data->callback->Call(thisObj, args.size(), args.data()); ^ In file included from ../v4l2camera.cc:3:0: ../node_modules/nan/nan.h:1633:3: note: declared here Call(v8::Localv8::Object target ^~~~ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ConfigSet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:367:59: warning: ‘v8::Localv8::Object v8::Value::ToObject() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] const auto cformat = convertCFormat(info[0]->ToObject()); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63:0, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:10046:15: note: declared here Local<Object> Value::ToObject() const { ^~~~~ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ControlGet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:384:42: warning: ‘uint32_t v8::Value::Uint32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] const auto id = info[0]->Uint32Value(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:26:0, from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:2477:47: note: declared here V8_DEPRECATED("Use maybe version", uint32_t Uint32Value() const); ^ /home/uullrich/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~ ../v4l2camera.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Camera::ControlSet(Nan::NAN_METHOD_ARGS_TYPE)’: ../v4l2camera.cc:400:42: warning: ‘uint32_t v8::Value::Uint32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] const auto id = info[0]->Uint32Value(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:26:0, from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:2477:47: note: declared here V8_DEPRECATED("Use maybe version", uint32_t Uint32Value() const); ^ /home/uullrich/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~ ../v4l2camera.cc:401:44: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations] const auto value = info[1]->Int32Value(); ^ In file included from /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:26:0, from /home/uullrich/.node-gyp/10.12.0/include/node/node.h:63, from ../node_modules/nan/nan.h:52, from ../v4l2camera.cc:3: /home/uullrich/.node-gyp/10.12.0/include/node/v8.h:2478:46: note: declared here V8_DEPRECATED("Use maybe version", int32_t Int32Value() const); ^ /home/uullrich/.node-gyp/10.12.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator attribute((deprecated(message))) ^~~~~~~~~~ v4l2camera.target.mk:114: die Regel für Ziel „Release/obj.target/v4l2camera/v4l2camera.o“ scheiterte make: *** [Release/obj.target/v4l2camera/v4l2camera.o] Fehler 1 make: Verzeichnis „/home/uullrich/v4l2camera/node_modules/v4l2camera/v4l2camera/build“ wird verlassen gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:182:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12) gyp ERR! System Linux 4.14.71-v7+ gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/uullrich/v4l2camera/node_modules/v4l2camera/v4l2camera gyp ERR! node -v v10.12.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] 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/uullrich/.npm/_logs/2018-10-18T16_25_22_491Z-debug.log

uullrich avatar Oct 18 '18 16:10 uullrich

Here's a fix that works for node 12: https://github.com/bellbind/node-v4l2camera/pull/48

sebakerckhof avatar Sep 04 '19 12:09 sebakerckhof

I am also getting this exact same error on Raspian Buster Node JS v10.

totem415 avatar Jan 03 '20 19:01 totem415

I can also confirm that @sebakerckhof fix solved the installation problem on Raspian NodeJS v10+. Try cloning his forked repo and you are good to go.

Something like this: https://github.com/sebakerckhof/node-v4l2camera.git git checkout fix/node12 npm install

By the way: Thank you so much @sebakerckhof :-)

uullrich avatar Jan 04 '20 09:01 uullrich