fivdi / epoll Goto Github PK
View Code? Open in Web Editor NEWA low-level Node.js binding for the Linux epoll API
License: MIT License
A low-level Node.js binding for the Linux epoll API
License: MIT License
following error coming. I think its issue with the epoll module. I'm using it to write on lcd using lcd module on BBB. Any help will be appreciated.
debugger listening on port 15454
/usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/node_modules/bindings/bindings.js:91
throw err
^
Error: Could not locate the bindings file. Tried:
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/build/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/build/Debug/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/build/Release/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/out/Debug/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/Debug/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/out/Release/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/Release/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/build/default/epoll.node
→ /usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/compiled/0.10.29/linux/arm/epoll.node
at bindings (/usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/node_modules/bindings/bindings.js:88:9)
at Object. (/usr/local/lib/node_modules/lcd/node_modules/onoff/node_modules/epoll/epoll.js:1:99)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/usr/local/lib/node_modules/lcd/node_modules/onoff/onoff.js:4:11)
at Module._compile (module.js:456:26)
using electron-rebuild with electron v20
export DEBUG=electron-rebuild
epoll rebuilds fine with just node v16.16.0
but cannot rebuild under electron
> [email protected] postinstall
> ../../node_modules/.bin/electron-rebuild -e ../../node_modules/electron
⠋ Searching dependency tree electron-rebuild rebuilding with args: [Arguments] {
'0': {
buildPath: '/home/sam/MagicMirror/modules/MMM-PIR-Sensor',
electronVersion: '20.1.1',
arch: 'x64',
extraModules: [],
onlyModules: null,
force: undefined,
headerURL: undefined,
types: [ 'prod', 'optional' ],
mode: undefined,
debug: undefined,
prebuildTagPrefix: 'v',
forceABI: undefined,
useElectronClang: false,
disablePreGypCopy: false,
projectRootPath: '/home/sam/MagicMirror/modules/MMM-PIR-Sensor'
}
} +0ms
electron-rebuild rebuilding with args: /home/sam/MagicMirror/modules/MMM-PIR-Sensor 20.1.1 x64 Set(0) {} false https://www.electronjs.org/headers [ 'prod', 'optional' ] false +8ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/onoff +0ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll +3ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/lodash.debounce +1ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings +6ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/nan +0ms
electron-rebuild exploring /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/file-uri-to-path +2ms
electron-rebuild identified prod deps: Set(0) {
onoff: true,
epoll: true,
'lodash.debounce': true,
bindings: true,
nan: true,
'file-uri-to-path': true
} +1ms
electron-rebuild scanning: /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules +4ms
electron-rebuild rebuilding epoll with args [
'node',
'node-gyp',
'rebuild',
'--runtime=electron',
'--target=20.1.1',
'--arch=x64',
'--dist-url=https://www.electronjs.org/headers',
'--build-from-source',
'--verbose'
] +0ms
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
⠙ Building module: epoll, Completed: 0gyp verb command configure []
gyp verb download using dist-url https://www.electronjs.org/headers
gyp verb find Python Python is not set from command line or npm configuration
gyp verb find Python Python is not set from environment variable PYTHON
gyp verb find Python checking if "python3" can be used
gyp verb find Python - executing "python3" to get executable path
⠹ Building module: epoll, Completed: 0gyp verb find Python - executable path is "/usr/bin/python3"
gyp verb find Python - executing "/usr/bin/python3" to get version
⠸ Building module: epoll, Completed: 0gyp verb find Python - version is "3.6.9"
gyp info find Python using Python version 3.6.9 found at "/usr/bin/python3"
gyp verb get node dir compiling against --target node version: 20.1.1
gyp verb command install [ '20.1.1' ]
gyp verb download using dist-url https://www.electronjs.org/headers
gyp verb install input version string "20.1.1"
gyp verb install installing version: 20.1.1
gyp verb install --ensure was passed, so won't reinstall if already installed
⠼ Building module: epoll, Completed: 0gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 20.1.1
gyp verb build dir attempting to create "build" dir: /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build
gyp verb build dir "build" dir needed to be created? Yes
gyp verb python symlink creating symlink to "/usr/bin/python3" at "/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/node_gyp_bins/python3"
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/config.gypi
gyp verb config.gypi checking for gypi file: /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/config.gypi
gyp verb common.gypi checking for gypi file: /home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args '/home/sam/MagicMirror/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/sam/MagicMirror/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/sam/.electron-gyp/20.1.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/sam/.electron-gyp/20.1.1',
gyp info spawn args '-Dnode_gyp_dir=/home/sam/MagicMirror/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/home/sam/.electron-gyp/20.1.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
⠇ Building module: epoll, Completed: 0gyp verb command build []
⠏ Building module: epoll, Completed: 0gyp verb build type Release
gyp verb architecture x64
gyp verb node dev dir /home/sam/.electron-gyp/20.1.1
gyp verb `which` succeeded for `make` /usr/bin/make
gyp verb bin symlinks adding symlinks (such as Python), at "/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/node_gyp_bins", to PATH
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build'
g++ -o Release/obj.target/epoll/src/epoll.o ../src/epoll.cc '-DNODE_GYP_MODULE_NAME=epoll' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DELECTRON_ENSURE_CONFIG_GYPI' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DUSING_ELECTRON_CONFIG_GYPI' '-DV8_COMPRESS_POINTERS' '-DV8_COMPRESS_POINTERS_IN_SHARED_CAGE' '-DV8_ENABLE_SANDBOX' '-DV8_SANDBOXED_POINTERS' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_REVERSE_JSARGS' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DBUILDING_NODE_EXTENSION' -I/home/sam/.electron-gyp/20.1.1/include/node -I/home/sam/.electron-gyp/20.1.1/src -I/home/sam/.electron-gyp/20.1.1/deps/openssl/config -I/home/sam/.electron-gyp/20.1.1/deps/openssl/openssl/include -I/home/sam/.electron-gyp/20.1.1/deps/uv/include -I/home/sam/.electron-gyp/20.1.1/deps/zlib -I/home/sam/.electron-gyp/20.1.1/deps/v8/include -I../../nan -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -Wno-deprecated-declarations -Wno-cast-function-type -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++14 -MMD -MF ./Release/.deps/Release/obj.target/epoll/src/epoll.o.d.raw -std=c++17 -c
⠼ Building module: epoll, Completed: 0In file included from ../../nan/nan.h:180:0,
from ../src/epoll.cc:15:
../../nan/nan_callbacks.h:55:23: error: ‘AccessorSignature’ is not a member of ‘v8’
typedef v8::Local<v8::AccessorSignature> Sig;
^~~~~~~~~~~~~~~~~
../../nan/nan_callbacks.h:55:23: note: suggested alternative: ‘Signature’
typedef v8::Local<v8::AccessorSignature> Sig;
^~~~~~~~~~~~~~~~~
Signature
../../nan/nan_callbacks.h:55:40: error: template argument 1 is invalid
typedef v8::Local<v8::AccessorSignature> Sig;
^
⠦ Building module: epoll, Completed: 0In file included from ../src/epoll.cc:15:0:
../../nan/nan.h: In function ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, Nan::imp::Sig)’:
../../nan/nan.h:2556:3: error: no matching function for call to ‘v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>&, void (*&)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>&), void (*&)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&), v8::Local<v8::Object>&, v8::AccessControl&, v8::PropertyAttribute&, Nan::imp::Sig&)’
);
^
In file included from /home/sam/.electron-gyp/20.1.1/include/node/v8-function.h:15:0,
from /home/sam/.electron-gyp/20.1.1/include/node/v8.h:33,
from ../src/epoll.cc:11:
/home/sam/.electron-gyp/20.1.1/include/node/v8-template.h:807:8: note: candidate: void v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)
void SetAccessor(
^~~~~~~~~~~
/home/sam/.electron-gyp/20.1.1/include/node/v8-template.h:807:8: note: no known conversion for argument 7 from ‘Nan::imp::Sig {aka int}’ to ‘v8::SideEffectType’
/home/sam/.electron-gyp/20.1.1/include/node/v8-template.h:814:8: note: candidate: void v8::ObjectTemplate::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)
void SetAccessor(
^~~~~~~~~~~
/home/sam/.electron-gyp/20.1.1/include/node/v8-template.h:814:8: note: no known conversion for argument 7 from ‘Nan::imp::Sig {aka int}’ to ‘v8::SideEffectType’
⠼ Building module: epoll, Completed: 0At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-cast-function-type’
epoll.target.mk:135: recipe for target 'Release/obj.target/epoll/src/epoll.o' failed
make: *** [Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/home/sam/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build'
✖ Rebuild Failed
After giving up on fighting with getting my program running on my Banana Pi M64 I learned that Raspberry Pi had released a V4 with better performance specs, cheaper price than the BPi and more readily available via Amazon Prime. It's been much smoother sailing until I ran into this error.
Does epoll not support 64 bit system architecture? Is there a work-around I can try?
Error: /node_modules/epoll/build/Release/epoll.node: wrong ELF class: ELFCLASS64
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1003:18)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at bindings (node_modules/bindings/bindings.js:112:48)
at node_modules/epoll/epoll.js:7:31
at Object.<anonymous> (node_modules/epoll/epoll.js:15:3)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
Once I found the information that you can't install this module on non-Linux systems (#12 (comment)) it totally made sense—but I spent about 45 minutes trying to figure out what was going on before I was able to find that thread. The errors one gets suggest problems with node-gyp
or bindings
, which are both red herrings.
Would it be possible to add something to the README just calling this out, to save future people a little heartache and time?
If epoll_wait returns -1 and errno is EINTR don't handle it as an error.
Recent versions of libuv functions return -errno on error, older versions don't. For example, here's how uv_sem_init is implemented in libuv v0.11.1 and v0.11.14 respectively:
int uv_sem_init(uv_sem_t* sem, unsigned int value) {
return sem_init(sem, 0, value);
}
int uv_sem_init(uv_sem_t* sem, unsigned int value) {
if (sem_init(sem, 0, value))
return -errno;
return 0;
}
Take this into account.
Having a issue install a package (rpi-gpio) that uses epoll. As far as I can tell it is epolls' build that is failing.. Any pointers?
pi@raspberrypi:~/server $ npm install
> [email protected] install /home/pi/server/node_modules/epoll
> 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
make: Entering directory '/home/pi/server/node_modules/epoll/build'
CXX(target) Release/obj.target/epoll/src/epoll.o
In file included from ../../nan/nan.h:192:0,
from ../src/epoll.cc:15:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::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 ../src/epoll.cc:15:0:
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:835:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:171): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:850:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:164): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:865:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:157): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:
../../nan/nan.h:1479:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated (declared at /home/pi/.node-gyp/10.4.1/include/node/node.h:171): Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
));
^
epoll.target.mk:95: recipe for target 'Release/obj.target/epoll/src/epoll.o' failed
make: *** [Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/home/pi/server/node_modules/epoll/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.4.1/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:237:12)
gyp ERR! System Linux 4.4.13-v7+
gyp ERR! command "/home/pi/.nvm/versions/node/v10.4.1/bin/node" "/home/pi/.nvm/versions/node/v10.4.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/server/node_modules/epoll
gyp ERR! node -v v10.4.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN [email protected] No description
npm WARN [email protected] No repository 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-06-13T01_53_41_156Z-debug.log
pi@raspberrypi:~/server $
Hi,
I got a 3300Hz pulse attached to a RPI2 GPIO pin. And if I test the interrupts with this script
// echo 17 > /sys/class/gpio/export
// echo in > /sys/class/gpio/gpio17/direction
// echo rising > /sys/class/gpio/gpio17/edge
var Epoll = require('epoll').Epoll,
fs = require('fs'),
inputfd = fs.openSync('/sys/class/gpio/gpio17/value', 'r+'),
value = new Buffer(1), // The three Buffers here are global
count = 0,
time;
// Create a new Epoll. The callback is the interrupt handler.
var poller = new Epoll(function (err, fd, events) {
count++;
// Read GPIO value file. Reading also clears the interrupt.
fs.readSync(inputfd, value, 0, 1, 0);
});
time = process.hrtime(); // Get start time.
// Start watching for interrupts. This will trigger the first interrupt
// as the value file already has data waiting for a read.
poller.add(inputfd, Epoll.EPOLLPRI);
// Print interrupt rate to console after 5 seconds.
setTimeout(function () {
var rate;
time = process.hrtime(time); // Get run time.
rate = Math.floor(count / (time[0] + time[1] / 1E9));
console.log(rate + ' interrupts per second');
// Stop watching.
poller.remove(inputfd).close();
}, 5000);
the kworker process still is at ~8% cpu usage after the script has finished. If I disconnect the source from the pin the cpu usage goes down to 0%, so I think the deregistration of the fd does not work properly.
// Edit:
Linux raspberrypi 4.1.17-v7+ #838 SMP Tue Feb 9 13:15:09 GMT 2016 armv7l GNU/Linux
Hi,
I am having struggle with epoll installation on raspberry pi 2 (model B).
Versions:
Log from npm install
npm ERR! path /home/pi/Projects/rizeni/node_modules/epoll
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | arm
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack File "<string>", line 1
npm ERR! gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
npm ERR! gyp ERR! stack ^
npm ERR! gyp ERR! stack SyntaxError: invalid syntax
npm ERR! gyp ERR! stack
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:397:12)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1064:16)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
npm ERR! gyp ERR! System Linux 5.10.63-v7+
npm ERR! gyp ERR! command "/usr/bin/node" "/home/pi/Projects/rizeni/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /home/pi/Projects/rizeni/node_modules/epoll
npm ERR! gyp ERR! node -v v16.13.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
I can see from the log that it has an issue with getting python version (it's syntax). When I try to do the same command directly in python shell, the error is the same.
Any hints how to get around this? Do I need to downgrade Python? (I have the latest one at this moment)
Thanks,
Martin
I was able to listen to GPIO input, but after several seconds, I get the ff error:
[ 687.896153] mmc0: Timeout waiting for hardware interrupt.
[ 687.901399] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 687.908151] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
[ 687.914725] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[ 687.921296] mmc0: sdhci: Argument: 0x018488b8 | Trn mode: 0x00000023
[ 687.928229] mmc0: sdhci: Present: 0x01f00000 | Host ctl: 0x00000013
[ 687.935071] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 687.941383] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000807
[ 687.948313] mmc0: sdhci: Timeout: 0x0000000e | Int stat: 0x00000003
[ 687.954977] mmc0: sdhci: Int enab: 0x02ff004b | Sig enab: 0x02ff004b
[ 687.961730] mmc0: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000001
[ 687.968310] mmc0: sdhci: Caps: 0x25e80099 | Caps_1: 0x0000af77
[ 687.974794] mmc0: sdhci: Cmd: 0x0000193a | Max curr: 0x00000000
[ 687.981727] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x00000000
[ 687.988217] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 687.994791] mmc0: sdhci: Host ctl2: 0x00000000
[ 687.999565] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x3b07e208
[ 688.005959] mmc0: sdhci: ============================================
Here is my code snippet:
function onChange(val) {
if (has_detected) {
time_now += interval
diff = time_now - last_detect_time
console.log('diff: ', diff)
if (diff > interval * 3) {
//console.log('payment: ', current_total)
payment.received(current_total);
current_total = 0
diff = 0
time_now = 0
last_detect_time = 0
has_detected = false
}
}
if (prev === 1 && val === 0) {
has_detected = true
last_detect_time = time_now
current_total += 1
}
prev = val
}
let valuefd = fs.openSync(gpio_val, 'r')
let buffer = new Buffer(1)
let poller = new Epoll((err, fd, events) => {
// Read GPIO value file. Reading also clears the interrupt.
fs.readSync(fd, buffer, 0, 1, 0)
let v = buffer.toString() === '1' ? 1 : 0
onChange(v)
})
// Read the GPIO value file before watching to
// prevent an initial unauthentic interrupt.
fs.readSync(valuefd, buffer, 0, 1, 0);
// Start watching for interrupts.
poller.add(valuefd, Epoll.EPOLLPRI);
The AsyncResource required for a callback should be constructed when the callback is stored for later invocation. This allows the async context to be restored at the callback invocation time. Currently the AsyncResource is constructed at callback invocation time and doesn't restore the correct async context.
Installing the epoll module on my Raspberry Pi 3 fails with the following error:
> [email protected] install /home/pi/bsc-ampel/node_modules/epoll
> node-gyp rebuild
Traceback (most recent call last):
File "/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 13, in <module>
import gyp
File "/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 8, in <module>
import gyp.input
File "/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 5, in <module>
from compiler.ast import Const
File "/usr/lib/python2.7/compiler/__init__.py", line 29, in <module>
from compiler.transformer import parse, parseFile
File "/usr/lib/python2.7/compiler/transformer.py", line 28, in <module>
from compiler.ast import *
ValueError: bad marshal data (unknown type code)
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
gyp ERR! stack at ChildProcess.emit (events.js:182:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:238:12)
gyp ERR! System Linux 4.14.52-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/pi/bsc-ampel/node_modules/epoll
gyp ERR! node -v v10.8.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
To give some context, I use it in the following project: https://github.com/gingters/bsc-ampel
I did a fresh npm install
and that fails with the aforementioned problem.
I then have to rebuild that for electron, to use that in the app, but already the first installation and compilation for node fails.
That worked two or three weeks ago (with an older version, I think 2.0.3), and now I don't know how to solve that. Please advise.
Hi,
unfortunately epoll does not compile on my Pi2 running raspbian. The solution from #14 does not work for me. >Could someone give me a hint?
Here is the shortened output:
falk@raspberrypi ~/arvid $ sudo npm install --unsafe-perm epoll
/
[email protected] install /home/falk/arvid/node_modules/epoll
node-gyp rebuild
make: Entering directory '/home/falk/arvid/node_modules/epoll/build'
CXX(target) Release/obj.target/epoll/src/epoll.o
In file included from ../src/epoll.cc:11:0:
/root/.node-gyp/4.1.0/include/node/v8.h:336:1: error: expected unqualified-id before ‘using’
/root/.node-gyp/4.1.0/include/node/v8.h:469:1: error: expected unqualified-id before ‘using’
/root/.node-gyp/4.1.0/include/node/v8.h:852:1: error: expected unqualified-id before ‘using’
In file included from ../node_modules/nan/nan.h:182:0,
from ../src/epoll.cc:15:
../node_modules/nan/nan_maybe_43_inl.h:13:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:16:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:19:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:24:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:31:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:36:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:41:1: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:46:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:51:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:60:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:65:12: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:70:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:77:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:84:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:92:12: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:99:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:109:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:115:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:119:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:126:1: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:131:1: error: ‘MaybeLocal’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:136:1: error: ‘MaybeLocal’ does not name a type
...
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-unused-local-typedefs" [enabled by default]
epoll.target.mk:90: recipe for target 'Release/obj.target/epoll/src/epoll.o' failed
make: *** [Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/home/falk/arvid/node_modules/epoll/build'
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:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.1.6-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/falk/arvid/node_modules/epoll
gyp ERR! node -v v4.1.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 4.1.6-v7+
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "--unsafe-perm" "epoll"
npm ERR! node v4.1.0
npm ERR! npm v2.14.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/falk/arvid/npm-debug.log
falk@raspberrypi ~/arvid $
In some scenarios there can be segmentation faults. This is probably because Ref/Unref is not being used for Epoll instances.
NanSymbol will be deprecated soon so replace it with NanNewv8:String
Trying to use the onoff library inside my project but I always get a "Module did not self-register" error from the epoll module (bindings.js line 83).
Using latest nodejs version (tried with several other older versions back to 0.10.x). Trying inside VisualStudio, Win8.1 64bit.
Same error happens also if I try to require only the 'epoll' module.
Any idea what's causing this?
Thanks
TG
Hi I downloaded latest Debian 8.2 image for BeagleBone Black and installed it. After that, I tried npm install -g epoll
. It gives following error.
> [email protected] install /usr/local/lib/node_modules/epoll
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/epoll/build'
gyp ERR! System Linux 4.1.12-ti-r29
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/epoll
gyp ERR! node -v v0.10.38
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
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 most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls epoll
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 4.1.12-ti-r29
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "epoll"
npm ERR! cwd /root
npm ERR! node -v v0.10.38
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /root/npm-debug.log
npm ERR! not ok code 0
I'm trying to install [epoll] on my pi(RPi 1 model B 700Mz 256MB).
My node version is:v0.12.0
I'm running this command:
sudo npm install --unsafe-perm epoll
and getting back this error:
> [email protected] install /home/pi/node_modules/epoll
> node-gyp rebuild
child_process: customFds option is deprecated, use stdio instead.
gyp: /root/.node-gyp/0.12.0/common.gypi not found (cwd: /home/pi/node_modules/epoll) while reading includes of binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack at ChildProcess.emit (events.js:110:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Linux 3.12.26-rpi-aufs
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/node_modules/epoll
gyp ERR! node -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Linux 3.12.26-rpi-aufs
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--unsafe-perm" "epoll"
npm ERR! node v0.12.0
npm ERR! npm v2.5.1
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/npm-debug.log
Any idea why?
Note: All this works fine in my RPi2 model B.
root@raspberrypi:~# npm install onoff
[email protected] install /root/node_modules/epoll
node-gyp rebuild
make: ingresso nella directory "/root/node_modules/epoll/build"
CXX(target) Release/obj.target/epoll/src/epoll.o
make: g++: comando non trovato
epoll.target.mk:96: set di istruzioni per l'obiettivo "Release/obj.target/epoll/src/epoll.o" non riuscito
make: *** [Release/obj.target/epoll/src/epoll.o] Errore 127
make: uscita dalla directory "/root/node_modules/epoll/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:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.1.19+
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 /root/node_modules/epoll
gyp ERR! node -v v6.11.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/root/package.json'
npm WARN root No description
npm WARN root No repository field.
npm WARN root No README data
npm WARN root No license field.
npm ERR! Linux 4.1.19+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "onoff"
npm ERR! node v6.11.1
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs epoll
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /root/npm-debug.log
root@raspberrypi:~# npm bugs epoll
npm ERR! Linux 4.1.19+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "bugs" "epoll"
npm ERR! node v6.11.1
npm ERR! npm v3.10.10
npm ERR! code 3
npm ERR! Command failed: xdg-open https://github.com/fivdi/epoll/issues
npm ERR! /usr/bin/xdg-open: 1: eval: www-browser: not found
npm ERR! /usr/bin/xdg-open: 1: eval: links2: not found
npm ERR! /usr/bin/xdg-open: 1: eval: elinks: not found
npm ERR! /usr/bin/xdg-open: 1: eval: links: not found
npm ERR! /usr/bin/xdg-open: 1: eval: lynx: not found
npm ERR! /usr/bin/xdg-open: 1: eval: w3m: not found
npm ERR! xdg-open: no method available for opening 'https://github.com/fivdi/epoll/issues'
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request:
npm ERR! /root/npm-debug.log
root@raspberrypi:~# nano /root/npm-debug.log
GNU nano 2.2.6 File: /root/npm-debug.log
... it looks terrible.
A couple years ago I tried using epoll via this package for interrupt handling and I had a heck of time with none or excessive tripping. I tried all manner of debouncing to no avail. I gave up and started using pigpio which was way more stable and many times did not require any debouncing (for interrupt by physical switch). That code has now been battle tested for two years (I have 64 physical switches connected on 4 mcp23017 chips throwing interrupts via 8 pins on gpio bus).
That's all good but of course pigio library requires pi hardware and the pigioc library. That leaves out all my new groovy sbcs :-(.
Now two years later do you feel using your epoll package (via onoff) for interrupts is any more robust and stable on par with pigio? Were there interrupt issues that you specifically addressed in the last two years?
If so maybe I'll give onoff another shot.
I suppose I'll have to try implementing this anyway as I (and many others) are moving from pi hardware and thus the pigio library.
Do you know of any non epoll ways to monitor linux interrupts on say a rockchip64? I guess this is all a can of worms every sbc having different hardware architecture even if they share the same processor. Seems like a manufacturer should supply a devicetree module for their gpio bus interrupt with some standard software interface API.
The Linux 3.13 kernel dropped support for detecting changes on GPIO output pins per hardware interrupt.
The interrupts per second example currently relies on this feature and needs to be refactored to use an alternative technique.
Hi, I'm getting incompatibility errors when using onoff
(which has dependency on this project's latest version). Would you be able to recompile against the newest Node LTS version which is 16.13.0
at the moment?
Full error:
Error: The module /local/path/epoll.node was compiled against a different Node.js version using NODE_MODULE_VERSION 93. This version of Node.js requires NODE_MODULE_VERSION 85.
rebuilding with npm rebuild epoll --update-binary
does not help
Thanks in advance!
Hi, I'm trying to interface a multi coin acceptor with Espressobin. This coin acceptor emits pulses for every coin inserted. For example 1 peso coin (I'm in philippines) pulses 0 for 20ms and then pulses 1 for 100ms (using 'both' edge). It turns the GPIO input to 0 for 20ms and turns to 1 for 100ms. It does this one time for 1 peso coin and 5 times for 5 peso coin.
So if you print the value of 'both' edge every time an interrupt occurs, this is the output:
1 peso coin:
0
1 (after 20ms)
5 peso coin:
0
1 (after 20ms)
0 (after 100ms)
1 (after 20ms)
0 (after 100ms)
1 (after 20ms)
0 (after 100ms)
1 (after 20ms)
The problem is that sometimes, some of the interrupts are not detected by the epoll library when I'm no longer interacting with the coin acceptor after sometime. What happens is, for example inserting a 5 peso coin to the multi coin acceptor results to:
1 (after 20ms) - it skipped the first `falling edge` and/or
1 or 0 (after 120ms) - it skipped the falling/rising edge detection
0 (after 100ms)
1 (aftter 20ms)
0 (after 100ms)
1 (after 20ms)
0 (after 100ms)
1 (after 20ms)
I think the interrupt detection job is somewhat put to background or something that's why it can't properly detect the pulses when there is no activity for some time. In the next consecutive insertion of coins, it properly detects the coins again.
I can confirm that the problem is not the circuit or the coin acceptor because this doesn't happen when I use the same schematics on raspberry pi's GPIO and a python script.
I'd just like to know if you have any idea on top of your head what might be the cause of this issue.
closed will return true if close was already called, else false.
Upgrade to nan v1.8.4 for io.js v2.0.0+ compatibility. See nodejs/node#1620.
Currently Epoll.EPOLLET is -0x80000000 but it should be 0x80000000. This results in the calls to args[1]->IsUint32() in the Add and Modify methods rejecting Epoll.EPOLLET as an invalid argument.
A number of things need to be adjusted when nan 1.0.0 is released.
NanAssignPersistent has two parameters rather than three, the first is no longer required, so
NanAssignPersistent(v8::FunctionTemplate, constructor, ctor);
becomes
NanAssignPersistent(constructor, ctor);
There's now a NanNew function template and template specializations for creating new v8 objects. See also NanUndefined, NanNull, NanTrue, and NanFalse. They hide the isolate dependencies. For example
v8::FunctionTemplate::New(Epoll::New)
becomes
NanNew<v8::FunctionTemplate>(Epoll::New)
NanNewLocal has been removed and NanNew should be used as a replacement, so if NanNull is also used
NanNewLocal<v8::Value>(v8::Null())
becomes
NanNew(NanNull())
Are any other alignments required?
Can we add node-gyp to the package dependencies? Currently it's expected to be installed, but not listed as one of the things this package needs. This means Yarn PNP can't install a project that depends on this, and the user has to already have node-gyp in the path.
It would be nice if the epoll
library had some prebuilt binaries shipping with it, either using the low-level node-pre-gyp
or the higher-level prebuild
and prebuild-install
libraries. If epoll
came pre-built for the Raspberry Pi architecture, users wouldn't have to install Python, make, or g++ to install the package anymore, which would make it a lot faster for new users to use.
I'm trying to install onoff on a Raspberry Pi 3 and it's failing due to an epoll error, apparently. The OS is DietPi, which is based on Debian 11 bullseye. It's a freshly-installed system, the Node version is v16.14.2 and npm is v8.7.0.
Issue #44 seems similar, but this doesn't seem to be a Python issue. In the debug logs below you can see it finds Python 3.9.2. Any idea what's wrong here? Thanks a lot in advance!
$ npm install onoff --verbose
npm verb cli /usr/bin/node /usr/bin/npm
npm info using [email protected]
npm info using [email protected]
npm timing npm:load:whichnode Completed in 1ms
npm timing config:load:defaults Completed in 10ms
npm timing config:load:file:/usr/lib/node_modules/npm/npmrc Completed in 7ms
npm timing config:load:builtin Completed in 9ms
npm timing config:load:cli Completed in 14ms
npm timing config:load:env Completed in 2ms
npm timing config:load:file:/home/dietpi/MagicMirror/modules/MMM-ScreenControl/.npmrc Completed in 1ms
npm timing config:load:project Completed in 21ms
npm timing config:load:file:/home/dietpi/.npmrc Completed in 0ms
npm timing config:load:user Completed in 3ms
npm timing config:load:file:/usr/etc/npmrc Completed in 1ms
npm timing config:load:global Completed in 1ms
npm timing config:load:validate Completed in 1ms
npm timing config:load:credentials Completed in 4ms
npm timing config:load:setEnvs Completed in 5ms
npm timing config:load Completed in 77ms
npm timing npm:load:configload Completed in 78ms
npm timing npm:load:mkdirpcache Completed in 10ms
npm timing npm:load:mkdirplogs Completed in 2ms
npm verb title npm install
npm verb argv "install" "--loglevel" "verbose"
npm timing npm:load:setTitle Completed in 8ms
npm timing config:load:flatten Completed in 19ms
npm timing npm:load:display Completed in 68ms
npm verb logfile logs-max:10 dir:/home/dietpi/.npm/_logs
npm verb logfile /home/dietpi/.npm/_logs/2022-04-24T14_27_50_634Z-debug-0.log
npm timing npm:load:logFile Completed in 40ms
npm timing npm:load:timers Completed in 1ms
npm timing npm:load:configScope Completed in 1ms
npm timing npm:load Completed in 223ms
npm timing arborist:ctor Completed in 5ms
npm timing arborist:ctor Completed in 1ms
npm timing idealTree:init Completed in 91ms
npm timing idealTree:userRequests Completed in 1ms
npm http fetch GET 200 https://registry.npmjs.org/cron 1724ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/onoff 824ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/moment-timezone 168ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/epoll 879ms (cache revalidated)
npm timing idealTree:#root Completed in 3688ms
npm http fetch GET 200 https://registry.npmjs.org/moment 158ms (cache revalidated)
npm timing idealTree:node_modules/cron Completed in 213ms
npm timing idealTree:node_modules/moment-timezone Completed in 33ms
npm timing idealTree:node_modules/moment Completed in 1ms
npm http fetch GET 200 https://registry.npmjs.org/nan 311ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/bindings 407ms (cache revalidated)
npm timing idealTree:node_modules/onoff Completed in 465ms
npm timing idealTree:node_modules/epoll Completed in 148ms
npm timing idealTree:node_modules/bindings Completed in 1ms
npm timing idealTree:node_modules/nan Completed in 1ms
npm timing idealTree:buildDeps Completed in 4595ms
npm timing idealTree:fixDepFlags Completed in 30ms
npm timing idealTree Completed in 4755ms
npm timing reify:loadTrees Completed in 4765ms
npm timing reify:diffTrees Completed in 32ms
npm timing reify:retireShallow Completed in 22ms
npm timing reify:createSparse Completed in 63ms
npm timing reify:loadBundles Completed in 0ms
npm http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 1102ms
npm timing auditReport:getReport Completed in 1142ms
npm timing auditReport:init Completed in 0ms
npm timing reify:audit Completed in 1157ms
npm timing reifyNode:node_modules/bindings Completed in 1209ms
npm timing reifyNode:node_modules/epoll Completed in 1655ms
npm timing reifyNode:node_modules/cron Completed in 1663ms
npm timing reifyNode:node_modules/onoff Completed in 1703ms
npm timing reifyNode:node_modules/nan Completed in 1849ms
npm timing reifyNode:node_modules/moment-timezone Completed in 1909ms
npm timing reifyNode:node_modules/moment Completed in 3209ms
npm timing reify:unpack Completed in 3220ms
npm timing reify:unretire Completed in 1ms
npm timing build:queue Completed in 9ms
npm info run [email protected] install node_modules/epoll node-gyp rebuild
npm info run [email protected] install { code: 1, signal: null }
npm timing reify:rollback:createSparse Completed in 551ms
npm timing reify:rollback:retireShallow Completed in 0ms
npm timing command:install Completed in 19013ms
npm verb stack Error: command failed
npm verb stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:63:27)
npm verb stack at ChildProcess.emit (node:events:526:28)
npm verb stack at maybeClose (node:internal/child_process:1092:16)
npm verb stack at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm verb pkgid [email protected]
npm verb cwd /home/dietpi/MagicMirror/modules/MMM-ScreenControl
npm verb Linux 5.15.32-v7+
npm verb node v16.14.2
npm verb npm v8.7.0
npm ERR! code 1
npm ERR! path /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/build'
npm ERR! g++ -o Release/obj.target/epoll/src/epoll.o ../src/epoll.cc '-DNODE_GYP_MODULE_NAME=epoll' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/home/dietpi/.cache/node-gyp/16.14.2/include/node -I/home/dietpi/.cache/node-gyp/16.14.2/src -I/home/dietpi/.cache/node-gyp/16.14.2/deps/openssl/config -I/home/dietpi/.cache/node-gyp/16.14.2/deps/openssl/openssl/include -I/home/dietpi/.cache/node-gyp/16.14.2/deps/uv/include -I/home/dietpi/.cache/node-gyp/16.14.2/deps/zlib -I/home/dietpi/.cache/node-gyp/16.14.2/deps/v8/include -I../../nan -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -Wno-unused-local-typedefs -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++14 -MMD -MF ./Release/.deps/Release/obj.target/epoll/src/epoll.o.d.raw -c
npm ERR! make: Leaving directory '/home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli '/usr/bin/node',
npm ERR! gyp verb cli '/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js',
npm ERR! gyp verb cli 'rebuild'
npm ERR! gyp verb cli ]
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | arm
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb find Python Python is not set from command line or npm configuration
npm ERR! gyp verb find Python Python is not set from environment variable PYTHON
npm ERR! gyp verb find Python checking if "python3" can be used
npm ERR! gyp verb find Python - executing "python3" to get executable path
npm ERR! gyp verb find Python - executable path is "/usr/bin/python3"
npm ERR! gyp verb find Python - executing "/usr/bin/python3" to get version
npm ERR! gyp verb find Python - version is "3.9.2"
npm ERR! gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 16.14.2
npm ERR! gyp verb command install [ '16.14.2' ]
npm ERR! gyp verb install input version string "16.14.2"
npm ERR! gyp verb install installing version: 16.14.2
npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed
npm ERR! gyp verb install version is already installed, need to check "installVersion"
npm ERR! gyp verb got "installVersion" 9
npm ERR! gyp verb needs "installVersion" 9
npm ERR! gyp verb install version is good
npm ERR! gyp verb get node dir target node version installed: 16.14.2
npm ERR! gyp verb build dir attempting to create "build" dir: /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/build
npm ERR! gyp verb build dir "build" dir needed to be created? Yes
npm ERR! gyp verb build/config.gypi creating config file
npm ERR! gyp verb build/config.gypi writing out config file: /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/build/config.gypi
npm ERR! gyp verb config.gypi checking for gypi file: /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/config.gypi
npm ERR! gyp verb common.gypi checking for gypi file: /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/common.gypi
npm ERR! gyp verb gyp gyp format was not specified; forcing "make"
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/home/dietpi/.cache/node-gyp/16.14.2/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/home/dietpi/.cache/node-gyp/16.14.2',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/home/dietpi/.cache/node-gyp/16.14.2/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp verb command build []
npm ERR! gyp verb build type Release
npm ERR! gyp verb architecture arm
npm ERR! gyp verb node dev dir /home/dietpi/.cache/node-gyp/16.14.2
npm ERR! gyp verb `which` succeeded for `make` /usr/bin/make
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR! from ../../nan/nan.h:202,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:18:67: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR! 18 | val->To ## TYPE(v8::Isolate::GetCurrent()->GetCurrentContext()) \
npm ERR! | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR! | |
npm ERR! | v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
npm ERR! 22 | X(Boolean)
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3086:37: note: initializing argument 1 of ‘v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const’
npm ERR! 3086 | Local<Boolean> ToBoolean(Isolate* isolate) const;
npm ERR! | ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_converters.h:67,
npm ERR! from ../../nan/nan.h:202,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR! 37 | return val->NAME ## Value(isolate->GetCurrentContext()); \
npm ERR! | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
npm ERR! | |
npm ERR! | v8::Local<v8::Context>
npm ERR! ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
npm ERR! 40 | X(bool, Boolean)
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3096:30: note: initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
npm ERR! 3096 | bool BooleanValue(Isolate* isolate) const;
npm ERR! | ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR! from ../../nan/nan.h:203,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:103:42: error: cannot convert ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
npm ERR! 103 | return scope.Escape(v8::Function::New( isolate
npm ERR! | ^~~~~~~
npm ERR! | |
npm ERR! | v8::Isolate*
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4754:22: note: initializing argument 1 of ‘static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)’
npm ERR! 4754 | Local<Context> context, FunctionCallback callback,
npm ERR! | ~~~~~~~~~~~~~~~^~~~~~~
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR! from ../../nan/nan.h:203,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
npm ERR! 337 | return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:6196:23: note: candidate: ‘static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)’
npm ERR! 6196 | static Local<Value> New(Isolate* isolate, Local<String> value);
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:6196:23: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../../nan/nan_new.h:189,
npm ERR! from ../../nan/nan.h:203,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
npm ERR! 337 | return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR! | ^
npm ERR! ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
npm ERR! 337 | return v8::StringObject::New(value).As<v8::StringObject>();
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:
npm ERR! ../../nan/nan.h:840:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
npm ERR! 840 | v8::Isolate::GetCurrent(), target, func, argc, argv);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:12:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:184:50: note: declared here
npm ERR! 184 | NODE_EXTERN v8::Local<v8::Value> MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | __attribute__((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:
npm ERR! ../../nan/nan.h:855:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
npm ERR! 855 | v8::Isolate::GetCurrent(), target, symbol, argc, argv);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:12:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:177:50: note: declared here
npm ERR! 177 | NODE_EXTERN v8::Local<v8::Value> MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | __attribute__((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:
npm ERR! ../../nan/nan.h:870:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
npm ERR! 870 | v8::Isolate::GetCurrent(), target, method, argc, argv);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:12:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:170:50: note: declared here
npm ERR! 170 | NODE_EXTERN v8::Local<v8::Value> MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | __attribute__((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
npm ERR! ../../nan/nan.h:916:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 916 | v8::Local<v8::String> string = from->ToString();
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h:926:37: error: cannot convert ‘char*’ to ‘v8::Isolate*’
npm ERR! 926 | length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
npm ERR! | ^~~~
npm ERR! | |
npm ERR! | char*
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3277:26: note: initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR! 3277 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR! | ~~~~~~~~~^~~~~~~
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:
npm ERR! ../../nan/nan.h:1484:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
npm ERR! 1484 | ));
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:12:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:184:50: note: declared here
npm ERR! 184 | NODE_EXTERN v8::Local<v8::Value> MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | __attribute__((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1538:64: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, const v8::Local<v8::Value>&)’
npm ERR! 1538 | New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1544:42: error: no matching function for call to ‘v8::Object::Set(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’
npm ERR! 1544 | New(persistentHandle)->Set(key, value);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
npm ERR! ../../nan/nan.h:1550:44: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Local<v8::Value>&)’
npm ERR! 1550 | New(persistentHandle)->Set(index, value);
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
npm ERR! ../../nan/nan.h:1556:61: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
npm ERR! 1556 | New(persistentHandle)->Get(New(key).ToLocalChecked()));
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
npm ERR! ../../nan/nan.h:1562:55: error: no matching function for call to ‘v8::Object::Get(const v8::Local<v8::String>&)’
npm ERR! 1562 | return scope.Escape(New(persistentHandle)->Get(key));
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
npm ERR! ../../nan/nan.h:1567:57: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
npm ERR! 1567 | return scope.Escape(New(persistentHandle)->Get(index));
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from ../src/epoll.cc:15:
npm ERR! ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
npm ERR! ../../nan/nan.h:1875:7: 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]
npm ERR! 1875 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! In file included from /usr/include/c++/10/cassert:44,
npm ERR! from /home/dietpi/.cache/node-gyp/16.14.2/include/node/node_object_wrap.h:26,
npm ERR! from ../src/epoll.cc:13:
npm ERR! ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
npm ERR! ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR! 24 | assert(persistent().IsNearDeath());
npm ERR! | ^~~~~~~~~~~
npm ERR! In file included from ../../nan/nan.h:2365,
npm ERR! from ../src/epoll.cc:15:
npm ERR! ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
npm ERR! ../../nan/nan_object_wrap.h:67:18: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘MarkIndependent’
npm ERR! 67 | persistent().MarkIndependent();
npm ERR! | ^~~~~~~~~~~~~~~
npm ERR! In file included from /usr/include/c++/10/cassert:44,
npm ERR! from /home/dietpi/.cache/node-gyp/16.14.2/include/node/node_object_wrap.h:26,
npm ERR! from ../src/epoll.cc:13:
npm ERR! ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
npm ERR! ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
npm ERR! 124 | assert(wrap->handle_.IsNearDeath());
npm ERR! | ^~~~~~~~~~~
npm ERR! ../src/epoll.cc: In static member function ‘static void Epoll::Init(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
npm ERR! ../src/epoll.cc:175:39: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR! 175 | constructor.Reset(ctor->GetFunction());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:6802:46: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc:177:23: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
npm ERR! 177 | ctor->GetFunction());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/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/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:6802:46: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Add(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/epoll.cc:210:44: error: no matching function for call to ‘v8::Value::Int32Value()’
npm ERR! 210 | int err = epoll->Add(info[0]->Int32Value(), info[1]->Int32Value());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
npm ERR! 3107 | V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
npm ERR! | ^~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc:210:67: error: no matching function for call to ‘v8::Value::Int32Value()’
npm ERR! 210 | int err = epoll->Add(info[0]->Int32Value(), info[1]->Int32Value());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
npm ERR! 3107 | V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
npm ERR! | ^~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Modify(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/epoll.cc:230:47: error: no matching function for call to ‘v8::Value::Int32Value()’
npm ERR! 230 | int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
npm ERR! 3107 | V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
npm ERR! | ^~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc:230:70: error: no matching function for call to ‘v8::Value::Int32Value()’
npm ERR! 230 | int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
npm ERR! 3107 | V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
npm ERR! | ^~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate expects 1 argument, 0 provided
npm ERR! ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Remove(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! ../src/epoll.cc:247:47: error: no matching function for call to ‘v8::Value::Int32Value()’
npm ERR! 247 | int err = epoll->Remove(info[0]->Int32Value());
npm ERR! | ^
npm ERR! In file included from ../src/epoll.cc:11:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate: ‘v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const’
npm ERR! 3107 | V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
npm ERR! | ^~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/v8.h:3107:40: note: candidate expects 1 argument, 0 provided
npm ERR! In file included from ../src/epoll.cc:12:
npm ERR! ../src/epoll.cc: At global scope:
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:842:7: 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! 842 | (node::addon_register_func) (regfunc), \
npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm ERR! /home/dietpi/.cache/node-gyp/16.14.2/include/node/node.h:876:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR! 876 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
npm ERR! | ^~~~~~~~~~~~~
npm ERR! ../src/epoll.cc:381:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR! 381 | NODE_MODULE(epoll, Epoll::Init)
npm ERR! | ^~~~~~~~~~~
npm ERR! make: *** [epoll.target.mk:113: Release/obj.target/epoll/src/epoll.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 (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:526:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.15.32-v7+
npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/dietpi/MagicMirror/modules/MMM-ScreenControl/node_modules/epoll
npm ERR! gyp ERR! node -v v16.14.2
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok
npm verb exit 1
npm timing npm Completed in 19893ms
npm verb unfinished npm timer reify 1650810471387
npm verb unfinished npm timer reify:build 1650810479675
npm verb unfinished npm timer build 1650810479678
npm verb unfinished npm timer build:deps 1650810479679
npm verb unfinished npm timer build:run:install 1650810479691
npm verb unfinished npm timer build:run:install:node_modules/epoll 1650810479693
npm verb code 1
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: connect ENETUNREACH 2400:cb00:2048:1::6814:172e:443 - Local (:::0)
gyp ERR! stack at Object.exports._errnoException (util.js:874:11)
gyp ERR! stack at exports._exceptionWithHostPort (util.js:897:20)
gyp ERR! stack at connect (net.js:841:14)
gyp ERR! stack at net.js:984:7
gyp ERR! stack at GetAddrInfoReqWrap.asyncCallback as callback
gyp ERR! stack at GetAddrInfoReqWrap.onlookup as oncomplete
gyp ERR! System Linux 4.4.10-hypriotos-v7+
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 /src/node_modules/epoll
gyp ERR! node -v v4.2.1
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
(...)
npm ERR! Linux 4.4.10-hypriotos-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.2.1
npm ERR! npm v3.9.5
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs epoll
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls epoll
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /src/npm-debug.log
I've want to use rpi-gpio within electron and got the following error, I figured out that it's an issue of epoll. Would be very thankful for any help!
bindings.js:83 Uncaught Error: Module version mismatch. Expected 50, got 48.module.(anonymous function) @ ELECTRON_ASAR.js:168Module._extensions..node @ module.js:583module.(anonymous function) @ ELECTRON_ASAR.js:168Module.load @ module.js:473tryModuleLoad @ module.js:432Module._load @ module.js:424Module.require @ module.js:483require @ internal/module.js:20bindings @ bindings.js:76(anonymous function) @ epoll.js:1Module._compile @ module.js:556require.extensions.(anonymous function) @ require-hook.js:17Module.load @ module.js:473tryModuleLoad @ module.js:432Module._load @ module.js:424Module.require @ module.js:483require @ internal/module.js:20(anonymous function) @ rpi-gpio.js:6Module._compile @ module.js:556require.extensions.(anonymous function) @ require-hook.js:17Module.load @ module.js:473tryModuleLoad @ module.js:432Module._load @ module.js:424Module.require @ module.js:483require @ internal/module.js:20(anonymous function) @ index.html:inline_0.js:26
Hi --
I know this project makes no sense in running on Windows, but I do all of my development on a Windows machine before doing testing on my Raspberry Pi. As such, in my code I've abstracted away the actual calls to rpi-gpio (which uses epoll) such that I never actually invoke any code which hits epoll.
However, Node still complains that the module did not self-register even though the methods will not be called.
A quick work-around I had was to modify epoll.cc and epoll.h slightly to provide an implementation for Windows platform which does nothing. Only registers the module and provides no implementation for the API. I assume I could just no-op all of the methods so it won't blow up when trying to call them, will test this out.
My question is, would such a contribution be useful for this project? Or should I keep this in my own fork (and subsequent forked npm package)?
Thanks for the useful project!
I'm trying to install epoll on my Raspberrypi3, here's my distro info:
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Error is as follows:
> [email protected] install /app/node_modules/pi-pins/node_modules/epoll
> node-gyp rebuild
make: Entering directory '/app/node_modules/pi-pins/node_modules/epoll/build'
CXX(target) Release/obj.target/epoll/src/epoll.o
In file included from ../../nan/nan.h:192,
from ../src/epoll.cc:15:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::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 ../src/epoll.cc:15:
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:835:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:177:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h:835:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:177:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:850:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:170:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h:850:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:170:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:
../../nan/nan.h:865:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:163:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h:865:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:163:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::Callback::Call_(v8::Isolate*, v8::Local<v8::Object>, int, v8::Local<v8::Value>*) const’:
../../nan/nan.h:1479:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
));
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:177:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h:1479:5: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
));
^
In file included from ../src/epoll.cc:12:
/root/.node-gyp/10.16.0/include/node/node.h:177:50: note: declared here
NODE_EXTERN v8::Local<v8::Value> MakeCallback(
^~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
__attribute__((deprecated(message))) declarator
^~~~~~~~~~
In file included from ../src/epoll.cc:15:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:1732: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/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Add(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/epoll.cc:210:44: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
int err = epoll->Add(info[0]->Int32Value(), info[1]->Int32Value());
^
In file included from /root/.node-gyp/10.16.0/include/node/v8.h:26,
from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h:2478:46: note: declared here
V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
^~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/epoll.cc:210:67: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
int err = epoll->Add(info[0]->Int32Value(), info[1]->Int32Value());
^
In file included from /root/.node-gyp/10.16.0/include/node/v8.h:26,
from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h:2478:46: note: declared here
V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
^~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Modify(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/epoll.cc:230:47: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
^
In file included from /root/.node-gyp/10.16.0/include/node/v8.h:26,
from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h:2478:46: note: declared here
V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
^~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/epoll.cc:230:70: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
^
In file included from /root/.node-gyp/10.16.0/include/node/v8.h:26,
from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h:2478:46: note: declared here
V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
^~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Remove(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/epoll.cc:247:47: warning: ‘int32_t v8::Value::Int32Value() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
int err = epoll->Remove(info[0]->Int32Value());
^
In file included from /root/.node-gyp/10.16.0/include/node/v8.h:26,
from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h:2478:46: note: declared here
V8_DEPRECATED("Use maybe version", int32_t Int32Value() const);
^~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’
declarator __attribute__((deprecated(message)))
^~~~~~~~~~
In file included from ../src/epoll.cc:12:
../src/epoll.cc: At global scope:
/root/.node-gyp/10.16.0/include/node/node.h:573: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), \
^
/root/.node-gyp/10.16.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
^~~~~~~~~~~~~
../src/epoll.cc:381:1: note: in expansion of macro ‘NODE_MODULE’
NODE_MODULE(epoll, Epoll::Init)
^~~~~~~~~~~
In file included from ../src/epoll.cc:11:
/root/.node-gyp/10.16.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/root/.node-gyp/10.16.0/include/node/node_object_wrap.h:84:78: required from here
/root/.node-gyp/10.16.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
reinterpret_cast<Callback>(callback), type);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.node-gyp/10.16.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:66:61: required from here
/root/.node-gyp/10.16.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
make: *** [epoll.target.mk:101: Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/app/node_modules/pi-pins/node_modules/epoll/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:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.14.98
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 /app/node_modules/pi-pins/node_modules/epoll
gyp ERR! node -v v10.16.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN [email protected] No repository 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! /root/.npm/_logs/2019-08-16T00_48_04_399Z-debug.log
As mentioned in the following issue for electron, support for native modules that are not NAPI or Context Aware are going to be dropped. Electron Issue
This will result in applications that use epoll/onoff being broken after Electron 12.
Applications based on electron 10+ require the flag app.allowRendererProcessReuse = false in the Electron main.js.
Building with [email protected]
fails with:
error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
Any suggestions on how to fix this?
Below is the full log.
⠋ Building module: epoll, Completed: 0In file included from /home/pi/.electron-gyp/16.0.5/include/node/v8-local-handle.h:12,
from /home/pi/.electron-gyp/16.0.5/include/node/v8-array-buffer.h:12,
from /home/pi/.electron-gyp/16.0.5/include/node/v8.h:25,
from ../src/epoll.cc:11:
/home/pi/.electron-gyp/16.0.5/include/node/v8-internal.h:113:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
kApiSystemPointerSize == kApiInt64Size,
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/home/pi/.electron-gyp/16.0.5/include/node/v8-internal.h:471:71: warning: left shift count >= width of type [-Wshift-count-overflow]
static constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
^~
/home/pi/.electron-gyp/16.0.5/include/node/v8-internal.h:471:68: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
static constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
~~~~~~~~~~^~~~~
/home/pi/.electron-gyp/16.0.5/include/node/v8-internal.h:472:69: warning: left shift count >= width of type [-Wshift-count-overflow]
static constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
^~
/home/pi/.electron-gyp/16.0.5/include/node/v8-internal.h:472:66: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
static constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
~~~~~~~~~~^~~~~
⠧ Building module: epoll, Completed: 0make: *** [epoll.target.mk:125: Release/obj.target/epoll/src/epoll.o] Error 1
make: Leaving directory '/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build'
✖ Rebuild Failed
I get error message while installing epoll.
Here is error mesage:
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the epoll package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs epoll
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls epoll
Node v0.11.9 comes with a breaking v8 change. See NAN News & Updates for more information. Update epoll when NAN v0.6.0 is released.
I'm running a clean install of Ubuntu 18.04 Server on a raspberry PI with Node v10.16.0 and NPM v6.9.0. As the ubuntu user, I am trying to install onoff, and only onoff, with one npm install command. Attached is the full output from npm install onoff
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', 'onoff' ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session 16df9898dbc21df5
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 http fetch GET 200 https://registry.npmjs.org/onoff 103ms (from cache)
8 silly pacote tag manifest for onoff@latest fetched in 155ms
9 timing stage:loadCurrentTree Completed in 1108ms
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 timing stage:loadIdealTree:cloneCurrentTree Completed in 9ms
13 silly install loadShrinkwrap
14 timing stage:loadIdealTree:loadShrinkwrap Completed in 513ms
15 silly install loadAllDepsIntoIdealTree
16 silly resolveWithNewModule [email protected] checking installable status
17 http fetch GET 200 https://registry.npmjs.org/epoll 176ms (from cache)
18 silly pacote range manifest for epoll@^2.0.9 fetched in 197ms
19 silly resolveWithNewModule [email protected] checking installable status
20 http fetch GET 304 https://registry.npmjs.org/lodash.debounce 421ms (from cache)
21 silly pacote range manifest for lodash.debounce@^4.0.8 fetched in 431ms
22 silly resolveWithNewModule [email protected] checking installable status
23 http fetch GET 200 https://registry.npmjs.org/bindings 54ms (from cache)
24 silly pacote range manifest for bindings@^1.5.0 fetched in 63ms
25 silly resolveWithNewModule [email protected] checking installable status
26 http fetch GET 304 https://registry.npmjs.org/nan 123ms (from cache)
27 silly pacote range manifest for nan@^2.13.0 fetched in 135ms
28 silly resolveWithNewModule [email protected] checking installable status
29 http fetch GET 304 https://registry.npmjs.org/file-uri-to-path 84ms (from cache)
30 silly pacote version manifest for [email protected] fetched in 91ms
31 silly resolveWithNewModule [email protected] checking installable status
32 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 1353ms
33 timing stage:loadIdealTree Completed in 2041ms
34 silly currentTree [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├─┬ [email protected]
34 silly currentTree │ └── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree ├── [email protected]
34 silly currentTree └── [email protected]
35 silly idealTree [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├─┬ [email protected]
35 silly idealTree │ └── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree ├── [email protected]
35 silly idealTree └── [email protected]
36 silly install generateActionsToTake
37 timing stage:generateActionsToTake Completed in 57ms
38 silly diffTrees action count 5
39 silly diffTrees add [email protected]
40 silly diffTrees add [email protected]
41 silly diffTrees add [email protected]
42 silly diffTrees add [email protected]
43 silly diffTrees add [email protected]
44 silly decomposeActions action count 40
45 silly decomposeActions fetch [email protected]
46 silly decomposeActions extract [email protected]
47 silly decomposeActions preinstall [email protected]
48 silly decomposeActions build [email protected]
49 silly decomposeActions install [email protected]
50 silly decomposeActions postinstall [email protected]
51 silly decomposeActions finalize [email protected]
52 silly decomposeActions refresh-package-json [email protected]
53 silly decomposeActions fetch [email protected]
54 silly decomposeActions extract [email protected]
55 silly decomposeActions preinstall [email protected]
56 silly decomposeActions build [email protected]
57 silly decomposeActions install [email protected]
58 silly decomposeActions postinstall [email protected]
59 silly decomposeActions finalize [email protected]
60 silly decomposeActions refresh-package-json [email protected]
61 silly decomposeActions fetch [email protected]
62 silly decomposeActions extract [email protected]
63 silly decomposeActions preinstall [email protected]
64 silly decomposeActions build [email protected]
65 silly decomposeActions install [email protected]
66 silly decomposeActions postinstall [email protected]
67 silly decomposeActions finalize [email protected]
68 silly decomposeActions refresh-package-json [email protected]
69 silly decomposeActions fetch [email protected]
70 silly decomposeActions extract [email protected]
71 silly decomposeActions preinstall [email protected]
72 silly decomposeActions build [email protected]
73 silly decomposeActions install [email protected]
74 silly decomposeActions postinstall [email protected]
75 silly decomposeActions finalize [email protected]
76 silly decomposeActions refresh-package-json [email protected]
77 silly decomposeActions fetch [email protected]
78 silly decomposeActions extract [email protected]
79 silly decomposeActions preinstall [email protected]
80 silly decomposeActions build [email protected]
81 silly decomposeActions install [email protected]
82 silly decomposeActions postinstall [email protected]
83 silly decomposeActions finalize [email protected]
84 silly decomposeActions refresh-package-json [email protected]
85 silly install executeActions
86 silly doSerial global-install 40
87 verbose correctMkdir /home/ubuntu/.npm/_locks correctMkdir not in flight; initializing
88 verbose lock using /home/ubuntu/.npm/_locks/staging-8d7e60444644fc94.lock for /home/ubuntu/pilets/node_modules/.staging
89 silly doParallel extract 5
90 silly extract [email protected]
91 silly extract [email protected]
92 silly extract [email protected]
93 silly extract [email protected]
94 silly extract [email protected]
95 silly tarball trying [email protected] by hash: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
96 silly tarball trying bindings@^1.5.0 by hash: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
97 silly tarball trying nan@^2.13.0 by hash: sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
98 silly tarball trying epoll@^2.0.9 by hash: sha512-9q60N1vPy2NXIH3i9S2FPRapc40IeTGgFQ47eCbiKw/ghEZszTVB/k3z3Rul7O/fj8o3/eKqd+BS5toS902XMQ==
99 silly tarball trying onoff@latest by hash: sha512-e54ii0MhFqu3f0gJYOiWD4Mgj89GywJGjUDrV+v3NNKrc8SufLoYldsvL+SFLxORYtNor2M4U4HAsl82OIEctQ==
100 silly extract bindings@^1.5.0 extracted to /home/ubuntu/pilets/node_modules/.staging/bindings-b08fb4de (256ms)
101 silly extract [email protected] extracted to /home/ubuntu/pilets/node_modules/.staging/file-uri-to-path-3ad539ef (283ms)
102 silly extract epoll@^2.0.9 extracted to /home/ubuntu/pilets/node_modules/.staging/epoll-364b44b9 (353ms)
103 silly extract onoff@latest extracted to /home/ubuntu/pilets/node_modules/.staging/onoff-9027811e (380ms)
104 silly extract nan@^2.13.0 extracted to /home/ubuntu/pilets/node_modules/.staging/nan-56be477c (400ms)
105 timing action:extract Completed in 421ms
106 silly doReverseSerial unbuild 40
107 silly doSerial remove 40
108 silly doSerial move 40
109 silly doSerial finalize 40
110 silly finalize /home/ubuntu/pilets/node_modules/file-uri-to-path
111 silly finalize /home/ubuntu/pilets/node_modules/bindings
112 silly finalize /home/ubuntu/pilets/node_modules/nan
113 silly finalize /home/ubuntu/pilets/node_modules/epoll
114 silly finalize /home/ubuntu/pilets/node_modules/onoff
115 timing action:finalize Completed in 38ms
116 silly doParallel refresh-package-json 5
117 silly refresh-package-json /home/ubuntu/pilets/node_modules/file-uri-to-path
118 silly refresh-package-json /home/ubuntu/pilets/node_modules/bindings
119 silly refresh-package-json /home/ubuntu/pilets/node_modules/nan
120 silly refresh-package-json /home/ubuntu/pilets/node_modules/epoll
121 silly refresh-package-json /home/ubuntu/pilets/node_modules/onoff
122 timing audit submit Completed in 584ms
123 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 585ms
124 timing audit body Completed in 4ms
125 timing action:refresh-package-json Completed in 97ms
126 silly doParallel preinstall 5
127 silly preinstall [email protected]
128 info lifecycle [email protected]preinstall: [email protected]preinstall: [email protected]
129 silly preinstall [email protected]
130 info lifecycle [email protected]
131 silly preinstall [email protected]
132 info lifecycle [email protected]preinstall: [email protected]preinstall: [email protected]
133 silly preinstall [email protected]
134 info lifecycle [email protected]
135 silly preinstall [email protected]
136 info lifecycle [email protected]preinstall: [email protected]install: [email protected]
137 timing action:preinstall Completed in 12ms
138 silly doSerial build 40
139 silly build [email protected]
140 info linkStuff [email protected]
141 silly linkStuff [email protected] has /home/ubuntu/pilets/node_modules as its parent node_modules
142 silly build [email protected]
143 info linkStuff [email protected]
144 silly linkStuff [email protected] has /home/ubuntu/pilets/node_modules as its parent node_modules
145 silly build [email protected]
146 info linkStuff [email protected]
147 silly linkStuff [email protected] has /home/ubuntu/pilets/node_modules as its parent node_modules
148 silly build [email protected]
149 info linkStuff [email protected]
150 silly linkStuff [email protected] has /home/ubuntu/pilets/node_modules as its parent node_modules
151 silly build [email protected]
152 info linkStuff [email protected]
153 silly linkStuff [email protected] has /home/ubuntu/pilets/node_modules as its parent node_modules
154 timing action:build Completed in 9ms
155 silly doSerial global-link 40
156 silly doParallel update-linked 0
157 silly doSerial install 40
158 silly install [email protected]
159 info lifecycle [email protected]
160 silly install [email protected]
161 info lifecycle [email protected]install: [email protected]install: [email protected]
162 silly install [email protected]
163 info lifecycle [email protected]
164 silly install [email protected]
165 info lifecycle [email protected]install: [email protected]install: unsafe-perm in lifecycle true
166 verbose lifecycle [email protected]
167 verbose lifecycle [email protected]install: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/ubuntu/pilets/node_modules/epoll/node_modules/.bin:/home/ubuntu/pilets/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bininstall: CWD: /home/ubuntu/pilets/node_modules/epoll
168 verbose lifecycle [email protected]
169 silly lifecycle [email protected]install: Args: [ '-c', 'node-gyp rebuild' ]install: Returned: code: 1 signal: null
170 silly lifecycle [email protected]
171 info lifecycle [email protected]~install: Failed to exec install script
172 timing action:install Completed in 2630ms
173 verbose unlock done using /home/ubuntu/.npm/_locks/staging-8d7e60444644fc94.lock for /home/ubuntu/pilets/node_modules/.staging
174 timing stage:rollbackFailedOptional Completed in 124ms
175 timing stage:runTopLevelLifecycles Completed in 6770ms
176 silly saveTree [email protected]
176 silly saveTree ├─┬ [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ └─┬ [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ └─┬ [email protected]
176 silly saveTree │ └── [email protected]
176 silly saveTree ├─┬ [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ └── [email protected]
176 silly saveTree ├─┬ [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ ├── [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ ├── [email protected]
176 silly saveTree │ └── [email protected]
176 silly saveTree └─┬ [email protected]
176 silly saveTree ├─┬ [email protected]
176 silly saveTree │ ├─┬ [email protected]
176 silly saveTree │ │ └── [email protected]
176 silly saveTree │ └── [email protected]
176 silly saveTree └── [email protected]
177 warn [email protected] No description
178 warn [email protected] No repository field.
179 verbose stack Error: [email protected] install:node-gyp rebuild
179 verbose stack Exit status 1
179 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
179 verbose stack at EventEmitter.emit (events.js:198:13)
179 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
179 verbose stack at ChildProcess.emit (events.js:198:13)
179 verbose stack at maybeClose (internal/child_process.js:982:16)
179 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
180 verbose pkgid [email protected]
181 verbose cwd /home/ubuntu/pilets
182 verbose Linux 4.15.0-1040-raspi2
183 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "onoff"
184 verbose node v10.16.0
185 verbose npm v6.9.0
186 error code ELIFECYCLE
187 error errno 1
188 error [email protected] install:node-gyp rebuild
188 error Exit status 1
189 error Failed at the [email protected] install script.
189 error This is probably not a problem with npm. There is likely additional logging output above.
190 verbose exit [ 1, true ]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.