Skip to content

Bug: Installation problem on node 24 #43

@KristjanESPERANTO

Description

@KristjanESPERANTO

Steps to reproduce on debian

  1. use node 24
    e.g.: nvm use 24
  2. Setup new project
    npm init
  3. install libgpiod
    sudo apt install gpiod libgpiod2 libgpiod-dev libnode-dev
  4. install node-libgpiod
    npm i node-libgpiod

Result

See output npm error code 1 npm error path /home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod npm error command failed npm error command sh -c node-gyp rebuild npm error make: Entering directory '/home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod/build' npm error CXX(target) Release/obj.target/node-libgpiod/src/main.o npm error CXX(target) Release/obj.target/node-libgpiod/src/misc.o npm error CXX(target) Release/obj.target/node-libgpiod/src/chip.o npm error CXX(target) Release/obj.target/node-libgpiod/src/line.o npm error make: Leaving directory '/home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod/build' npm error gyp info it worked if it ends with ok npm error gyp info using node-gyp@10.2.0 npm error gyp info using node@24.0.0 | linux | x64 npm error gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3" npm error gyp info spawn /usr/bin/python3 npm error gyp info spawn args [ npm error gyp info spawn args '/home/kristjan/.local/share/pnpm/global/5/.pnpm/npm@10.9.0/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm error gyp info spawn args 'binding.gyp', npm error gyp info spawn args '-f', npm error gyp info spawn args 'make', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod/build/config.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/kristjan/.local/share/pnpm/global/5/.pnpm/npm@10.9.0/node_modules/npm/node_modules/node-gyp/addon.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/kristjan/.cache/node-gyp/24.0.0/include/node/common.gypi', npm error gyp info spawn args '-Dlibrary=shared_library', npm error gyp info spawn args '-Dvisibility=default', npm error gyp info spawn args '-Dnode_root_dir=/home/kristjan/.cache/node-gyp/24.0.0', npm error gyp info spawn args '-Dnode_gyp_dir=/home/kristjan/.local/share/pnpm/global/5/.pnpm/npm@10.9.0/node_modules/npm/node_modules/node-gyp', npm error gyp info spawn args '-Dnode_lib_file=/home/kristjan/.cache/node-gyp/24.0.0/<(target_arch)/node.lib', npm error gyp info spawn args '-Dmodule_root_dir=/home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod', npm error gyp info spawn args '-Dnode_engine=v8', npm error gyp info spawn args '--depth=.', npm error gyp info spawn args '--no-parallel', npm error gyp info spawn args '--generator-output', npm error gyp info spawn args 'build', npm error gyp info spawn args '-Goutput_dir=.' npm error gyp info spawn args ] npm error gyp info spawn make npm error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm error In file included from ../src/misc.hh:7, npm error from ../src/main.cc:2: npm error ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’: npm error ../../nan/nan.h:1173:36: warning: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ is deprecated: Use WriteUtf8V2 instead. [-Wdeprecated-declarations] npm error 1173 | length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_, npm error | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 1174 | static_cast(len), 0, flags); npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error In file included from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-object.h:12, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-array-buffer.h:14, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8.h:24, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:74, npm error from ../../nan/nan.h:62: npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-primitive.h:212:7: note: declared here npm error 212 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, npm error | ^~~~~~~~~ npm error ../../nan/nan.h: In function ‘v8::Local Nan::Encode(const void*, size_t, Encoding)’: npm error ../../nan/nan.h:2418:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const uint16_t*, size_t)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2418 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2419 | isolate npm error | ~~~~~~~ npm error 2420 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2421 | , len / 2); npm error | ~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1173:50: note: declared here npm error 1173 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error ../../nan/nan.h:2423:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const char*, size_t, encoding)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2423 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2424 | isolate npm error | ~~~~~~~ npm error 2425 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2426 | , len npm error | ~~~~~ npm error 2427 | , node_enc); npm error | ~~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1165:38: note: declared here npm error 1165 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error ../src/main.cc: At global scope: npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1263:7: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local, v8::Local, void*)’} [-Wcast-function-type] npm error 1263 | (node::addon_register_func) (regfunc), \ npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1297:3: note: in expansion of macro ‘NODE_MODULE_X’ npm error 1297 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) npm error | ^~~~~~~~~~~~~ npm error ../src/main.cc:17:1: note: in expansion of macro ‘NODE_MODULE’ npm error 17 | NODE_MODULE(NativeExtension, InitAll) npm error | ^~~~~~~~~~~ npm error In file included from ../src/misc.hh:7, npm error from ../src/misc.cc:1: npm error ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’: npm error ../../nan/nan.h:1173:36: warning: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ is deprecated: Use WriteUtf8V2 instead. [-Wdeprecated-declarations] npm error 1173 | length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_, npm error | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 1174 | static_cast(len), 0, flags); npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error In file included from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-object.h:12, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-array-buffer.h:14, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8.h:24, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:74, npm error from ../../nan/nan.h:62: npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-primitive.h:212:7: note: declared here npm error 212 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, npm error | ^~~~~~~~~ npm error ../../nan/nan.h: In function ‘v8::Local Nan::Encode(const void*, size_t, Encoding)’: npm error ../../nan/nan.h:2418:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const uint16_t*, size_t)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2418 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2419 | isolate npm error | ~~~~~~~ npm error 2420 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2421 | , len / 2); npm error | ~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1173:50: note: declared here npm error 1173 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error ../../nan/nan.h:2423:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const char*, size_t, encoding)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2423 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2424 | isolate npm error | ~~~~~~~ npm error 2425 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2426 | , len npm error | ~~~~~ npm error 2427 | , node_enc); npm error | ~~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1165:38: note: declared here npm error 1165 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error In file included from ../src/chip.hh:5, npm error from ../src/chip.cc:1: npm error ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’: npm error ../../nan/nan.h:1173:36: warning: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ is deprecated: Use WriteUtf8V2 instead. [-Wdeprecated-declarations] npm error 1173 | length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_, npm error | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 1174 | static_cast(len), 0, flags); npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error In file included from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-object.h:12, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-array-buffer.h:14, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8.h:24, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:74, npm error from ../../nan/nan.h:62: npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-primitive.h:212:7: note: declared here npm error 212 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, npm error | ^~~~~~~~~ npm error ../../nan/nan.h: In function ‘v8::Local Nan::Encode(const void*, size_t, Encoding)’: npm error ../../nan/nan.h:2418:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const uint16_t*, size_t)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2418 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2419 | isolate npm error | ~~~~~~~ npm error 2420 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2421 | , len / 2); npm error | ~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1173:50: note: declared here npm error 1173 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error ../../nan/nan.h:2423:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const char*, size_t, encoding)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2423 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2424 | isolate npm error | ~~~~~~~ npm error 2425 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2426 | , len npm error | ~~~~~ npm error 2427 | , node_enc); npm error | ~~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1165:38: note: declared here npm error 1165 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error In file included from ../src/line.hh:5, npm error from ../src/line.cc:1: npm error ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local)’: npm error ../../nan/nan.h:1173:36: warning: ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’ is deprecated: Use WriteUtf8V2 instead. [-Wdeprecated-declarations] npm error 1173 | length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_, npm error | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 1174 | static_cast(len), 0, flags); npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error In file included from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-object.h:12, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-array-buffer.h:14, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8.h:24, npm error from /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:74, npm error from ../../nan/nan.h:62: npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/v8-primitive.h:212:7: note: declared here npm error 212 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, npm error | ^~~~~~~~~ npm error ../../nan/nan.h: In function ‘v8::Local Nan::Encode(const void*, size_t, Encoding)’: npm error ../../nan/nan.h:2418:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const uint16_t*, size_t)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2418 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2419 | isolate npm error | ~~~~~~~ npm error 2420 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2421 | , len / 2); npm error | ~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1173:50: note: declared here npm error 1173 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error ../../nan/nan.h:2423:24: warning: ‘v8::Local node::Encode(v8::Isolate*, const char*, size_t, encoding)’ is deprecated: Use TryEncode(...) instead [-Wdeprecated-declarations] npm error 2423 | return node::Encode( npm error | ~~~~~~~~~~~~^ npm error 2424 | isolate npm error | ~~~~~~~ npm error 2425 | , reinterpret_cast(buf) npm error | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error 2426 | , len npm error | ~~~~~ npm error 2427 | , node_enc); npm error | ~~~~~~~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:1165:38: note: declared here npm error 1165 | NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, npm error | ^~~~~~ npm error /home/kristjan/.cache/node-gyp/24.0.0/include/node/node.h:117:42: note: in definition of macro ‘NODE_DEPRECATED’ npm error 117 | __attribute__((deprecated(message))) declarator npm error | ^~~~~~~~~~ npm error In file included from ../../nan/nan_callbacks.h:123, npm error from ../../nan/nan.h:182: npm error ../../nan/nan_callbacks_12_inl.h: In instantiation of ‘v8::Local Nan::FunctionCallbackInfo::Holder() const [with T = v8::Value]’: npm error ../src/line.cc:106:51: required from here npm error ../../nan/nan_callbacks_12_inl.h:112:62: error: ‘const class v8::FunctionCallbackInfo’ has no member named ‘Holder’ npm error 112 | inline v8::Local Holder() const { return info_.Holder(); } npm error | ~~~~~~^~~~~~ npm error make: *** [node-libgpiod.target.mk:115: Release/obj.target/node-libgpiod/src/line.o] Error 1 npm error gyp ERR! build error npm error gyp ERR! stack Error: `make` failed with exit code: 2 npm error gyp ERR! stack at ChildProcess. (/home/kristjan/.local/share/pnpm/global/5/.pnpm/npm@10.9.0/node_modules/npm/node_modules/node-gyp/lib/build.js:216:23) npm error gyp ERR! System Linux 5.10.0-20-amd64 npm error gyp ERR! command "/home/kristjan/.nvm/versions/node/v24.0.0/bin/node" "/home/kristjan/.local/share/pnpm/global/5/.pnpm/npm@10.9.0/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" npm error gyp ERR! cwd /home/kristjan/Development/test-node-libgpiod/node_modules/node-libgpiod npm error gyp ERR! node -v v24.0.0 npm error gyp ERR! node-gyp -v v10.2.0 npm error gyp ERR! not ok npm error A complete log of this run can be found in: /home/kristjan/.npm/_logs/2025-05-07T09_12_52_130Z-debug-0.log

Comparission with node 23

When I switch to node 23, it's working:

$ nvm use 23
Now using node v23.6.1 (npm v10.9.0)

$ npm i node-libgpiod

added 4 packages, and audited 5 packages in 14s

found 0 vulnerabilities

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggpiod-1.xall related to underlying libgpiod-1.x series

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions