lsongdev / lsongdev/node-bluetooth

Failed to install on Mac

Open
#48 4 comments 19 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
205
Forks
56
PR merge metrics
No merged PRs in 30d

Description

Tried to downgrade nan as per #38 with no luck.
```
> node-bluetooth@1.2.6 install /Users/extempl/Projects/escpos/node_modules/node-bluetooth
> node-gyp configure build

CXX(target) Release/obj.target/BluetoothSerialPort/src/osx/DeviceINQ.o
../src/osx/DeviceINQ.mm:75:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
found->Call(2, argv);
^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
NAN_DEPRECATED inline v8::Local
^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
^
../src/osx/DeviceINQ.mm:78:15: warning: 'Call' is deprecated [-Wdeprecated-declarations]
callback->Call(0, 0);
^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
NAN_DEPRECATED inline v8::Local
^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
^
../src/osx/DeviceINQ.mm:109:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
baton->cb->Call(1, argv);
^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
NAN_DEPRECATED inline v8::Local
^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
^
../src/osx/DeviceINQ.mm:121:28: error: expected ')'
void DeviceINQ::Init(Handle target) {
^
../src/osx/DeviceINQ.mm:121:21: note: to match this '('
void DeviceINQ::Init(Handle target) {
^
../src/osx/DeviceINQ.mm:121:17: error: out-of-line definition of 'Init' does not match any declaration in 'DeviceINQ'
void DeviceINQ::Init(Handle target) {
^~~~
../src/osx/DeviceINQ.mm:133:5: error: use of undeclared identifier 'target'
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
^
../src/osx/DeviceINQ.mm:133:72: error: too few arguments to function call, single argument 'context' was not specified
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
^
../src/osx/DeviceINQ.mm:134:5: error: use of undeclared identifier 'target'
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
^
../src/osx/DeviceINQ.mm:134:72: error: too few arguments to function call, single argument 'context' was not specified
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
^
../src/osx/DeviceINQ.mm:135:5: error: use of undeclared identifier 'target'
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
^
../src/osx/DeviceINQ.mm:135:72: error: too few arguments to function call, single argument 'context' was not specified
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
^
../src/osx/DeviceINQ.mm:136:5: error: use of undeclared identifier 'target'
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
^
../src/osx/DeviceINQ.mm:136:72: error: too few arguments to function call, single argument 'context' was not specified
target->Set(Nan::New("DeviceINQ").ToLocalChecked(), t->GetFunction());
~~~~~~~~~~~~~~ ^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:5955:3: note: 'GetFunction' declared here
V8_WARN_UNUSED_RESULT MaybeLocal GetFunction(
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
^
../src/osx/DeviceINQ.mm:228:16: warning: 'Call' is deprecated [-Wdeprecated-declarations]
found->Call(2, argv);
^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
NAN_DEPRECATED inline v8::Local
^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
^
../src/osx/DeviceINQ.mm:231:15: warning: 'Call' is deprecated [-Wdeprecated-declarations]
callback->Call(0, 0);
^
../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here
NAN_DEPRECATED inline v8::Local
^
../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
^
../src/osx/DeviceINQ.mm:246:23: error: no matching constructor for initialization of 'String::Utf8Value'
String::Utf8Value address(info[0]);
^ ~~~~~~~
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3009:5: note: candidate constructor not viable: no known conversion from 'v8::Local' to 'const v8::String::Utf8Value' for
1st argument
Utf8Value(const Utf8Value&) = delete;
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3002:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
Utf8Value(Isolate* isolate, Local obj);
^
../src/osx/DeviceINQ.mm:297:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
deviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::New([device.nameOrAddress UTF8String]).ToLocalChecked());
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:298:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
deviceObj->Set(Nan::New("address").ToLocalChecked(), Nan::New([device.addressString UTF8String]).ToLocalChecked());
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:308:25: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
serviceObj->Set(Nan::New("channel").ToLocalChecked(), Nan::New((int)channelID));
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:311:29: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
serviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::New([[service getServiceName] UTF8String]).ToLocalChecked());
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:313:29: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
serviceObj->Set(Nan::New("name").ToLocalChecked(), Nan::Undefined());
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:315:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
servicesArray->Set(j, serviceObj);
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3374:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:317:20: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
deviceObj->Set(Nan::New("services").ToLocalChecked(), servicesArray);
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3365:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:319:22: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
resultArray->Set(i, deviceObj);
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8.h:3374:3: note: 'Set' has been explicitly marked deprecated here
V8_DEPRECATE_SOON("Use maybe version",
^
/Users/extempl/Library/Caches/node-gyp/12.7.0/include/node/v8config.h:326:29: note: expanded from macro 'V8_DEPRECATE_SOON'
declarator __attribute__((deprecated(message)))
^
../src/osx/DeviceINQ.mm:325:9: error: too few arguments to function call, expected 4, have 3; did you mean 'Nan::Call'?
cb->Call(Nan::GetCurrentContext()->Global(), 1, argv);
^~~~
Nan::Call
../../nan/nan_maybe_43_inl.h:345:30: note: 'Nan::Call' declared here
inline MaybeLocal Call(
^
13 warnings and 12 errors generated.
make: *** [Release/obj.target/BluetoothSerialPort/src/osx/DeviceINQ.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/extempl/.nvm/versions/node/v12.7.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:203:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 18.7.0
gyp ERR! command "/Users/extempl/.nvm/versions/node/v12.7.0/bin/node" "/Users/extempl/.nvm/versions/node/v12.7.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"
gyp ERR! cwd /Users/extempl/Projects/escpos/node_modules/node-bluetooth
gyp ERR! node -v v12.7.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok

```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The failure occurs while node-gyp runs configure build for src/osx/DeviceINQ.mm; start by reproducing the Mac installation and reviewing the reported V8 and NAN compatibility errors. Determine the supported Node.js and macOS combinations, then verify that installation completes successfully on the affected setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, node.js
Domain
build-system, embedded-iot, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.