Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing dependency 404 (nonexistent) #185

Open
vazome opened this issue Aug 7, 2022 · 18 comments
Open

Missing dependency 404 (nonexistent) #185

vazome opened this issue Aug 7, 2022 · 18 comments

Comments

@vazome
Copy link

vazome commented Aug 7, 2022

Just in case, want to inform that the dependency https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-8/bluetooth_hci_socket-0.5.3-8-node-v93-linux-x64.tar.gz is nonexistent

Homebridge Log / Command Output

node-pre-gyp ERR! install response status 404 Not Found on https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-8/bluetooth_hci_socket-0.5.3-8-node-v93-linux-x64.tar.gz
@hannseman
Copy link
Owner

hannseman commented Aug 8, 2022

Hmm, looks like a node-gyp error, are you sure that you have run apt-get install build-essential to get all the needed build-tools?

I would like to see the full logs if possible.

Edit: AFAIK node-bluetooth-hci-socket does not release prebuilt binaries so you'll need to build it on your machine, that makes me think that the 404 is not the real error but rather missing build tools.

@vazome
Copy link
Author

vazome commented Aug 13, 2022

Okay, build-essential only updates the image:

build-essential is already the newest version (12.8ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up linux-image-5.4.0-124-generic (5.4.0-124.140) ...
Processing triggers for linux-image-5.4.0-124-generic (5.4.0-124.140) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.4.0-124-generic
   ...done.

But trying to install node-bluetooth-hci-socket results in a broaden error.

homebridge@home-server:/var/lib/homebridge $ npm install bluetooth-hci-socket
npm ERR! code 1
npm ERR! path /var/lib/homebridge/node_modules/bluetooth-hci-socket
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/var/lib/homebridge/node_modules/bluetooth-hci-socket/build'
npm ERR!   CXX(target) Release/obj.target/binding/src/BluetoothHciSocket.o
npm ERR! make: Leaving directory '/var/lib/homebridge/node_modules/bluetooth-hci-socket/build'
npm ERR! ../src/BluetoothHciSocket.cpp: In static member function ‘static void BluetoothHciSocket::Init(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
npm ERR! ../src/BluetoothHciSocket.cpp:128:82: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR!   128 |   target->Set(Nan::New("BluetoothHciSocket").ToLocalChecked(), tmpl->GetFunction());
npm ERR!       |                                                                                  ^
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR!                  from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:6802:46: note: candidate: ‘v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
npm ERR!  6802 |   V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
npm ERR!       |                                              ^~~~~~~~~~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:6802:46: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::poll()’:
npm ERR! ../src/BluetoothHciSocket.cpp:251:95: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
npm ERR!   251 |     Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
npm ERR!       |                                                                                               ^
npm ERR! In file included from ../src/BluetoothHciSocket.cpp:8:
npm ERR! ../node_modules/nan/nan.h:1051:46: note: declared here
npm ERR!  1051 |   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
npm ERR!       |                                              ^~~~~~~~~~~~
npm ERR! ../src/BluetoothHciSocket.cpp:251:95: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
npm ERR!   251 |     Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
npm ERR!       |                                                                                               ^
npm ERR! In file included from ../src/BluetoothHciSocket.cpp:8:
npm ERR! ../node_modules/nan/nan.h:1051:46: note: declared here
npm ERR!  1051 |   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
npm ERR!       |                                              ^~~~~~~~~~~~
npm ERR! ../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::emitErrnoError()’:
npm ERR! ../src/BluetoothHciSocket.cpp:269:109: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR!   269 |   Local<Function> errorConstructor = Local<Function>::Cast(globalObj->Get(Nan::New("Error").ToLocalChecked()));
npm ERR!       |                                                                                                             ^
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR!                  from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
npm ERR!  4007 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
npm ERR!  4010 |   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!       |                                           ^~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! ../src/BluetoothHciSocket.cpp:275:72: error: no matching function for call to ‘v8::Function::NewInstance(int, v8::Local<v8::Value> [1])’
npm ERR!   275 |   Local<Value> error = errorConstructor->NewInstance(1, constructorArgs);
npm ERR!       |                                                                        ^
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR!                  from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4759:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>, int, v8::Local<v8::Value>*) const’
npm ERR!  4759 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
npm ERR!       |                                            ^~~~~~~~~~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4759:44: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4762:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>) const’
npm ERR!  4762 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
npm ERR!       |                                            ^~~~~~~~~~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:4762:44: note:   candidate expects 1 argument, 2 provided
npm ERR! ../src/BluetoothHciSocket.cpp:282:93: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
npm ERR!   282 |   Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
npm ERR!       |                                                                                             ^
npm ERR! In file included from ../src/BluetoothHciSocket.cpp:8:
npm ERR! ../node_modules/nan/nan.h:1051:46: note: declared here
npm ERR!  1051 |   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
npm ERR!       |                                              ^~~~~~~~~~~~
npm ERR! ../src/BluetoothHciSocket.cpp:282:93: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdeprecated-declarations]
npm ERR!   282 |   Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
npm ERR!       |                                                                                             ^
npm ERR! In file included from ../src/BluetoothHciSocket.cpp:8:
npm ERR! ../node_modules/nan/nan.h:1051:46: note: declared here
npm ERR!  1051 |   NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
npm ERR!       |                                              ^~~~~~~~~~~~
npm ERR! ../src/BluetoothHciSocket.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindRaw(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/BluetoothHciSocket.cpp:395:34: error: no matching function for call to ‘v8::Value::IntegerValue()’
npm ERR!   395 |       devId = arg0->IntegerValue();
npm ERR!       |                                  ^
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR!                  from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:3101:40: note: candidate: ‘v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
npm ERR!  3101 |   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
npm ERR!       |                                        ^~~~~~~~~~~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:3101:40: note:   candidate expects 1 argument, 0 provided
npm ERR! ../src/BluetoothHciSocket.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindUser(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/BluetoothHciSocket.cpp:417:34: error: no matching function for call to ‘v8::Value::IntegerValue()’
npm ERR!   417 |       devId = arg0->IntegerValue();
npm ERR!       |                                  ^
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR!                  from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:3101:40: note: candidate: ‘v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
npm ERR!  3101 |   V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
npm ERR!       |                                        ^~~~~~~~~~~~
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/v8.h:3101:40: note:   candidate expects 1 argument, 0 provided
npm ERR! In file included from /home/homebridge/.cache/node-gyp/16.16.0/include/node/node_buffer.h:25,
npm ERR!                  from ../src/BluetoothHciSocket.cpp:7:
npm ERR! ../src/BluetoothHciSocket.cpp: At global scope:
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:847: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]
npm ERR!   847 |       (node::addon_register_func) (regfunc),                          \
npm ERR!       |                                           ^
npm ERR! /home/homebridge/.cache/node-gyp/16.16.0/include/node/node.h:881:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR!   881 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
npm ERR!       |   ^~~~~~~~~~~~~
npm ERR! ../src/BluetoothHciSocket.cpp:499:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR!   499 | NODE_MODULE(binding, BluetoothHciSocket::Init);
npm ERR!       | ^~~~~~~~~~~
npm ERR! make: *** [binding.target.mk:113: Release/obj.target/binding/src/BluetoothHciSocket.o] Error 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/opt/homebridge/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.4.0-122-generic
npm ERR! gyp ERR! command "/opt/homebridge/bin/node" "/opt/homebridge/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /var/lib/homebridge/node_modules/bluetooth-hci-socket
npm ERR! gyp ERR! node -v v16.16.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok```

@vazome
Copy link
Author

vazome commented Aug 13, 2022

Succeeded in exact version install npm install @abandonware/[email protected], but this has not changed much for homebridge-mi-hygrothermograph

@Fourthbus
Copy link

Fourthbus commented Oct 30, 2022

for some reason, package-lock points to this tgz file, which doesn't exist

"resolved": "https://registry.npmjs.org/@abandonware/bluetooth-hci-socket/-/bluetooth-hci-socket-0.5.3-8.tgz",

@mkarras
Copy link

mkarras commented Jan 9, 2023

Same here.
image

Any solution?

@BETEP-ok
Copy link

BETEP-ok commented Jun 3, 2023

same

image

after updating homebridge UI that required NodeJS to bump up - everything went bananas (( (

@kinoushe
Copy link

I encountered this 404 error today when upgrading node, but was able to resolve it manually installing:
npm install @abandonware/bluetooth-hci-socket

@the-man-machine
Copy link

I encountered this 404 error today when upgrading node, but was able to resolve it manually installing: npm install @abandonware/bluetooth-hci-socket

That seems to work. I encountered that the plugin didn't load today after the Node update, and that allowed it to rebuild using the newer version.

@mkarras
Copy link

mkarras commented Nov 13, 2023

@the-man-machine do you use Node >=18? Im stuck on Node 16.20.2 because of this issue. Tried lots of things but nothing helped.

@the-man-machine
Copy link

@mkarras yes, I am currently on v20.9.0 and temperature and humidity are reading correctly.

@mkarras
Copy link

mkarras commented Nov 13, 2023

@the-man-machine on witch device you are running Homebridge? I'm using a raspberry pi.

@the-man-machine
Copy link

@mkarras generic x86_64 box with a bluetooth dongle, Homebridge itself is running in Docker.

@EnTonyH
Copy link

EnTonyH commented Feb 10, 2024

I'm experiencing the same problem on my Raspberry Pi Model B Rev 2.

The issue appears to originate from this repository: https://github.com/abandonware/node-bluetooth-hci-socket/. It seems likely to be fixed soon, as there's a pending pull request: abandonware/node-bluetooth-hci-socket#55.

Let's wait a few days for the new version of node-bluetooth-hci-socket.

Or has anyone found a workaround?

@EnTonyH
Copy link

EnTonyH commented Feb 13, 2024

Seems the error is still the same after I install the plugin.

Error while installing:
Mravenci sdílí plochu - 13 02 2024@2x

Error after homebridge restart (because it was not installed with the plugin because of the error before):
Mravenci sdílí plochu - 13 02 2024@2x

The URL which is trying to access is nonexistent when i copy it ( https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v115-linux-arm.tar.gz ) so it seems to be missing for the plugin in homebridge.
I cant figure out from where is this link called or build from, but i think if we could just replace it by working one, it would be fine.

Maybe the link should be taken from here? https://github.com/abandonware/node-bluetooth-hci-socket/tags

It should propably call the newest version which is:
https://github.com/abandonware/node-bluetooth-hci-socket/archive/refs/tags/v0.5.3-11.tar.gz

Not sure, if its the right solution.

EDIT: Could it be worth trying to change this URL in here? From newer version in here?
https://www.npmjs.com/package/@abandonware/bluetooth-hci-socket?activeTab=versions

Mravenci%20sdi%CC%81li%CC%81%20plochu%20-%2013 02 2024

@hannseman
Copy link
Owner

hannseman commented Feb 13, 2024

@EnTonyH I just published 3.4.1 on npm with the fix from abandonware/node-bluetooth-hci-socket#55 included. Please give it a try and let me know if it helps.

@EnTonyH
Copy link

EnTonyH commented Feb 13, 2024

@hannseman I just tried it. It seems there might be a deeper problem. I would recommend rolling back to the previous version, 3.4.0, to prevent people from ending up with a failed installation.

Error with terminated installation:
Mravenci sdílí plochu - 13 02 2024@2x

Log:
2024-02-13T21_48_50_099Z-debug-0.log

I will try to look into it over the weekend.

@hannseman
Copy link
Owner

hannseman commented Feb 14, 2024

@EnTonyH It installs fine for me, took around 1 minute to complete on a RPI4 4GB RAM. By looking at your logs it appears to have been trying to install for over 20 minutes?

npm Completed in 1273410ms

What hardware are you trying to install on? Can you try and install it manually into a temporary folder and see what happens?

npm install homebridge-mi-hygrothermograph

@EnTonyH
Copy link

EnTonyH commented Feb 15, 2024

TLDR: I figured out a solution. Run the plugin installation as the pi user, preferably via SSH.

At first, i tried running it from restricted shell in homebridge terminal and got this error after installing it:
error - run from homebridge shell

I did a fresh install.
Raspberry Pi 1 Model B Rev (old and slow)
32 GB SD card U1
Installed Homebridge image 32-bit

IMPORTANT STEPS BELOW

  1. Logged via terminal to ssh as a pi user.
    ssh [email protected]

  2. Updated raspbian (propably not necessary):
    sudo apt-get update && sudo apt-get upgrade -y

  3. Installed npm to run it globally as a pi user (not from homebridge website terminal!):
    sudo apt install npm

  4. Run 2 commands to install plugin in the right folder:

pi@homebridge: $ cd /var/lib/homebridge/node_modules
pi@homebridge:/var/lib/homebridge/node_modules $ npm install homebridge-mi-hygrothermograph

Now this seemed successful:
Mravenci%20sdi%CC%81li%CC%81%20plochu%20-%2016 02 2024

  1. Check homebridge - the plugin shows up.

  2. Restarted homebridge.

Plugin loaded successfully:
Mravenci%20sdi%CC%81li%CC%81%20plochu%20-%2016 02 2024-2

So far so good, no error :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants