serialport / node-serialport

Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!
https://serialport.io
MIT License
5.8k stars 1.01k forks source link

Warnings while using npm install serialport --build-from-source #2134

Closed mn567 closed 4 years ago

mn567 commented 4 years ago

Code to Reproduce the Issue

Versions, Operating System and Hardware

docker run -it --rm alpine:3.12 /bin/ash Unable to find image 'alpine:3.12' locally 3.12: Pulling from library/alpine Digest: sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 Status: Downloaded newer image for alpine:3.12 / # sudo apk add --no-cache node /bin/ash: sudo: not found / # apk add --no-cache node fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz ERROR: unsatisfiable constraints: node (missing): required by: world[node] / # apk add --no-cache nodejs fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz (1/8) Installing ca-certificates (20191127-r4) (2/8) Installing brotli-libs (1.0.7-r5) (3/8) Installing c-ares (1.16.1-r0) (4/8) Installing libgcc (9.3.0-r2) (5/8) Installing nghttp2-libs (1.41.0-r0) (6/8) Installing libstdc++ (9.3.0-r2) (7/8) Installing libuv (1.37.0-r0) (8/8) Installing nodejs (12.18.3-r0) Executing busybox-1.31.1-r16.trigger Executing ca-certificates-20191127-r4.trigger OK: 37 MiB in 22 packages / # apk add --no-cache make gcc g++ python linux-headers udev fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz ERROR: unsatisfiable constraints: python (missing): required by: world[python] / # apk add --no-cache make gcc g++ python2 linux-headers udev fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz (1/30) Upgrading musl (1.1.24-r8 -> 1.1.24-r9) (2/30) Installing binutils (2.34-r1) (3/30) Installing gmp (6.2.0-r0) (4/30) Installing isl (0.18-r0) (5/30) Installing libgomp (9.3.0-r2) (6/30) Installing libatomic (9.3.0-r2) (7/30) Installing libgphobos (9.3.0-r2) (8/30) Installing mpfr4 (4.0.2-r4) (9/30) Installing mpc1 (1.1.0-r1) (10/30) Installing gcc (9.3.0-r2) (11/30) Installing musl-dev (1.1.24-r9) (12/30) Installing libc-dev (0.7.2-r3) (13/30) Installing g++ (9.3.0-r2) (14/30) Installing linux-headers (5.4.5-r1) (15/30) Installing make (4.3-r0) (16/30) Installing libbz2 (1.0.8-r1) (17/30) Installing expat (2.2.9-r1) (18/30) Installing libffi (3.3-r2) (19/30) Installing gdbm (1.13-r1) (20/30) Installing ncurses-terminfo-base (6.2_p20200523-r0) (21/30) Installing ncurses-libs (6.2_p20200523-r0) (22/30) Installing readline (8.0.4-r0) (23/30) Installing sqlite-libs (3.32.1-r0) (24/30) Installing python2 (2.7.18-r0) (25/30) Installing udev-init-scripts (33-r1) Executing udev-init-scripts-33-r1.post-install (26/30) Installing eudev-libs (3.2.9-r3) (27/30) Installing libblkid (2.35.2-r0) (28/30) Installing xz-libs (5.2.5-r0) (29/30) Installing kmod-libs (27-r0) (30/30) Installing eudev (3.2.9-r3) Executing busybox-1.31.1-r16.trigger Executing eudev-3.2.9-r3.trigger OK: 279 MiB in 51 packages / # apk add --update nodejs nodejs-npm fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz (1/1) Installing npm (12.18.3-r0) Executing busybox-1.31.1-r16.trigger OK: 306 MiB in 52 packages / # /usr/local/bin/npm install serialport --unsafe-perm --build-from-source /bin/ash: /usr/local/bin/npm: not found / # /usr/local/bin/npm install serialport --unsafe-perm --build-from-source /bin/ash: /usr/local/bin/npm: not found / # npm install serialport --unsafe-perm --build-from-source

@serialport/bindings@9.0.1 install /node_modules/@serialport/bindings prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild

make: Entering directory '/node_modules/@serialport/bindings/build' CXX(target) Release/obj.target/bindings/src/serialport.o In file included from ../src/./serialport.h:6, from ../src/serialport.cpp:1: ../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker)': ../../../nan/nan.h:2294: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] 2294 | , reinterpret_cast(AsyncExecuteComplete) | ^ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:78:69: 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] 78 | uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); | ^~~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:135:71: 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] 135 | uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); | ^~~~~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:175:70: 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] 175 | uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); | ^~~~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:215:70: 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] 215 | uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); | ^~~~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:270:68: 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] 270 | uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); | ^~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:314:68: 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] 314 | uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); | ^~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:363:76: 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] 363 | uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); | ^~~~~~~~ ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)': ../src/serialport.cpp:409:70: 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] 409 | uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); | ^~~~~~ ../src/serialport.cpp: At global scope: ../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of 'ToParityEnum' [-Wparentheses] 430 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local& v8str)) { | ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of 'ToStopBitEnum' [-Wparentheses] 449 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { | ^ In file included from ../../../nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /root/.cache/node-gyp/12.18.3/include/node/node.h:608:43: 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] 608 | (node::addon_register_func) (regfunc), \ | ^ /root/.cache/node-gyp/12.18.3/include/node/node.h:642:3: note: in expansion of macro 'NODE_MODULE_X' 642 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) | ^~~~~ ../src/serialport.cpp:483:1: note: in expansion of macro 'NODE_MODULE' 483 | NODE_MODULE(serialport, init); | ^~~ CXX(target) Release/obj.target/bindings/src/serialport_unix.o In file included from ../src/serialport.h:6, from ../src/serialport_unix.cpp:2: ../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker)': ../../../nan/nan.h:2294: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] 2294 | , reinterpret_cast(AsyncExecuteComplete) | ^ ../src/serialport_unix.cpp: In function 'int setup(int, OpenBaton)': ../src/serialport_unix.cpp:176:82: warning: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] 176 | snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); | ^~ ../src/serialport_unix.cpp:176:13: note: 'snprintf' output 20 or more bytes (assuming 1043) into a destination of size 1024 176 | snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); | ~~^~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function 'void EIO_Open(uv_work_t)': ../src/serialport_unix.cpp:86:84: warning: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] 86 | snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); | ^~ ../src/serialport_unix.cpp:86:13: note: 'snprintf' output 22 or more bytes (assuming 1045) into a destination of size 1024 86 | snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); | ~~^~~~~~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/bindings/src/poller.o In file included from ../src/poller.cpp:1: ../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker)': ../../../nan/nan.h:2294: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] 2294 | , reinterpret_cast(AsyncExecuteComplete) | ^ CXX(target) Release/obj.target/bindings/src/serialport_linux.o SOLINK_MODULE(target) Release/obj.target/bindings.node COPY Release/bindings.node make: Leaving directory '/node_modules/@serialport/bindings/build'

serialport@9.0.1 postinstall /node_modules/serialport node thank-you.js

Thank you for using serialport! If you rely on this package, please consider supporting our open collective:

https://opencollective.com/serialport/donate

npm WARN saveError ENOENT: no such file or directory, open '/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/package.json' npm WARN !invalid#1 No description npm WARN !invalid#1 No repository field. npm WARN !invalid#1 No README data npm WARN !invalid#1 No license field.

2 packages are looking for funding run npm fund for details

found 0 vulnerabilities

/ #

reconbot commented 4 years ago

It compiled successfully. These are warnings that have come with the latest nodejs releases and we haven't addressed them yet, they don't impact functionality. Happy to accept patches updating the code to get rid of them.