Welcome to Our Community

Some features disabled for guests. Register Today.

OpenBuilds Control and RPi

Discussion in 'Control Software' started by John Davies, Jun 18, 2019.

Tags:
  1. DarkPenguin

    DarkPenguin Well-Known
    Builder

    Joined:
    Sep 16, 2017
    Messages:
    201
    Likes Received:
    65
    Anyone created a docker container of this?
     
  2. JustinTime

    JustinTime Veteran
    Builder

    Joined:
    Dec 18, 2013
    Messages:
    759
    Likes Received:
    253
    What is a 'docker container'? I use the RPi 3B with a Teensy. I 3d printed a case the holds both and has the fan for the RPi mounted to the case. Is that what you're talking about?
     
  3. Mark Mcleod

    Builder

    Joined:
    Oct 13, 2020
    Messages:
    23
    Likes Received:
    6
    Paul,

    I'm curious how you got Openbuilds Control to work on the Pi4? I'm running the latest stock Pi OS and have the Openbuilds Control on my desktop - whenever I click it and try either execute or execute in terminal, an hourglass pops up and nothing happens.
     
  4. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Note the version it was tested against is mentioned in the Wiki (not latest as instructions hasn't been updated in a couple months) Follow the instructions closely. We might provide instructions for newer versions in time, but first someone will have to figure out what needs changing and contribute toward updating the install script or depencies etc as needed. Being an unofficial platform, it is hard to allocate work time to that, so if you do figure out what needs changing, let us know
     
  5. Mark Mcleod

    Builder

    Joined:
    Oct 13, 2020
    Messages:
    23
    Likes Received:
    6
    Just went back and reinstalled the legacy version of PiOS and it worked. The new version, and maybe the Pi 4, appear to have full GL and not the Fake KMS. The option to enable Fake KMS isn’t in raspi-config at all. Installing the legacy version allowed me to install Openbuilds.
     
    Peter Van Der Walt likes this.
  6. Ryan James

    Builder

    Joined:
    Sep 8, 2014
    Messages:
    41
    Likes Received:
    15
    What version of PiOS did you install?
     
  7. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Use the version referenced in the Wiki
     
  8. Ryan James

    Builder

    Joined:
    Sep 8, 2014
    Messages:
    41
    Likes Received:
    15
    Ashamed to say I thought of that about 5 seconds after I posted.
     
  9. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    Hello

    I've running the Pi 4 2GB with Opnebuilds Control since a long time on the Blackbos.
    All works fine and I was very happy.
    Unfortunatly Openbuild Control will not longer start.

    In the past I have compiled the OBC software but I'm not a IT Hacker und I dont want to touch the running system for many years. ;)

    Now I want to understand that is happen.
    I've start no Update of the linux system.
    Nothing is touch. No new software. Nothing.

    It is possible that the start command for the OBC software download new files from git?

    git fetch --all; git reset --hard origin/master;
     
  10. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    I was brave and updated the Raspbian system.
    Then I restarted the compilation of OpenBuild Control.
    Five minutes later, the compilation went through without any serious errors.

    OpenBuild Control starts without problems!
    I am thrilled!
    It also seems to start faster.

    I hesitated for a long time because I had a lot of problems with the first compilation and I don't know why it worked at some point. :)
    But I seem to have resolved all dependencies properly at that time. This time the compilation was very easy.

    Many thanks to the OpenBuild Control community for their fantastic work!
    :)

    Regards
    Mark

    Translated with www.DeepL.com/Translator (free version)
     
    David the swarfer likes this.
  11. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    Hello friends

    I have again problems with Openbuilds Control on my RPi4.
    Without warning it does not start anymore.
    I have changed absolutely nothing. No update of the operating system.
    I suspect that Openbulds Control is downloading the latest version every time I start git.
    I then updated the Raspbian using apt.
    Did not help.
    Then deleted the openbuild folder and reinstalled completely.
    Also without success.
    The first error message that comes up is the following:

    Code:
    ~/OpenBuilds-CONTROL $ cd ~/OpenBuilds-CONTROL; git fetch --all; git reset --hard origin/master; MESA_EXTENSION_OVERRIDE=-GL_MESA_framebuffer_flip_y ~/OpenBuilds-CONTROL/node_modules/.bin/electron ~/OpenBuilds-CONTROL
    Fordere an von origin
    HEAD ist jetzt bei 17d8f51 v1.0.361
    App threw an error during load
    Error: No native build was found for platform=linux arch=arm runtime=electron abi=113 uv=1 armv=default libc=glibc node=18.12.1 electron=23.1.3
        loaded from: /home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings-cpp
    
        at load.resolve.load.path (/home/pi/OpenBuilds-CONTROL/node_modules/node-gyp-build/node-gyp-build.js:60:9)
        at load (/home/pi/OpenBuilds-CONTROL/node_modules/node-gyp-build/node-gyp-build.js:22:30)
        at Object.<anonymous> (/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings-cpp/dist/load-bindings.js:11:46)
        at Module._compile (node:internal/modules/cjs/loader:1174:14)
        at Module._extensions..js (node:internal/modules/cjs/loader:1229:10)
        at Module.load (node:internal/modules/cjs/loader:1044:32)
        at Module._load (node:internal/modules/cjs/loader:885:12)
        at f._load (node:electron/js2c/asar_bundle:2:13330)
        at Module.require (node:internal/modules/cjs/loader:1068:19)
        at require (node:internal/modules/cjs/helpers:103:18)
    Error: No native build was found for platform=linux arch=arm runtime=electron abi=113 uv=1 armv=default libc=glibc node=18.12.1 electron=23.1.3
        loaded from: /home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings-cpp
    
    
    Is this a real error or just a cosmetic error?
    Can anyone confirm if opbenbuildscontrol is currently running on the RPi?

    Am grateful for any help!

    Greetings
    Mark
     
  12. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    It does - staying up to date is important so all users has the latest bugfixes and features


    As its still Unofficial status, we don't test against the Pi. But for it to work well, in general, you just want an up-to-date OS, with the latest version of Node LTS, and the latest CONTROL.

    Your error looks like you may need to run electron-rebuild: OpenBuilds-CONTROL/pi-install.sh at master · OpenBuilds/OpenBuilds-CONTROL (The install script should have) to rebuild node-serialports bindings for ARM. Make sure to run an 'npm install' too to make sure all the latest dependencies are indeed installed

    If its not that, being unofficial, the community (i.e. you) will have to investigate and resolve, we cannot spend troubleshooting time on unofficial platforms unfortunately (Refer the warning along the top of the page at Installing on Pi4 ) and report back if docs or script needs updating
     
  13. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
  14. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    Node is 19:
    Code:
    pi@raspberrypi:~/OpenBuilds-CONTROL $ node --version
    v19.8.1
    
    electron makes trouble:

    Code:
    > [email protected] postinstall
    > electron-builder install-app-deps
    
      • electron-builder  version=24.0.0
      • loaded configuration  file=package.json ("build" field)
      • executing @electron/rebuild  appDir=/home/pi/OpenBuilds-CONTROL arch=armv7l
      • loaded configuration  file=package.json ("build" field)
      ⨯ node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    
    Error: EACCES: permission denied, unlink 'build/Makefile'
    
      failedTask=installAppDeps stackTrace=Error: node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
                                                                                                                                                                                                                                                               Error: EACCES: permission denied, unlink 'build/Makefile'
                                                                                                                                                                                                                                                                   at NodeGyp.rebuildModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-type/node-gyp.ts:133:13)
        at ModuleRebuilder.rebuildNodeGypModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:93:5)
        at ModuleRebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:129:8)
        at Rebuilder.rebuildModuleAt (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:203:9)
        at Rebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:158:9)
        at installOrRebuild (/home/pi/OpenBuilds-CONTROL/node_modules/app-builder-lib/src/util/yarn.ts:29:5)
        at installAppDeps (/home/pi/OpenBuilds-CONTROL/node_modules/electron-builder/src/cli/install-app-deps.ts:59:3)
    npm ERR! code 1
    npm ERR! path /home/pi/OpenBuilds-CONTROL
    npm ERR! command failed
    npm ERR! command sh -c electron-builder install-app-deps
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2023-03-15T22_46_04_606Z-debug-0.log
    (9/10) Recompiling OpenBuilds-CONTROL dependencies...
    npm ERR! code 1
    npm ERR! path /home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings
    npm ERR! command failed
    npm ERR! command sh -c prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
    npm ERR! prebuild-install warn install No prebuilt binaries found (target=19.8.1 runtime=node arch=arm libc= platform=linux)
    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! clean error
    npm ERR! gyp ERR! stack Error: EACCES: permission denied, unlink 'build/Makefile'
    npm ERR! gyp ERR! System Linux 5.10.103-v7l+
    npm ERR! gyp ERR! command "/usr/bin/node" "/home/pi/OpenBuilds-CONTROL/node_modules/.bin/node-gyp" "rebuild"
    npm ERR! gyp ERR! cwd /home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings
    npm ERR! gyp ERR! node -v v19.8.1
    npm ERR! gyp ERR! node-gyp -v v9.3.1
    npm ERR! gyp ERR! not ok
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2023-03-15T22_46_14_393Z-debug-0.log
    
    up to date, audited 556 packages in 4s
    
    81 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    ✔ Rebuild Complete
    (10/10) Creating Menu and Desktop Shortcuts...
    ---------------------------------------------------
    [COMPLETE] Install Complete!  Thank you!
    ---------------------------------------------------
    
     
  15. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Looks like a permissions problem - chmod/chown etc - check why the running process was denied access
     
  16. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    OK, I've solve this problem with rm
    npm cache clean --force


    Now the install script run a little bit longer :)

    First Error:
    Code:
    > [email protected] postinstall
    > electron-builder install-app-deps
    
      • electron-builder  version=24.0.0
      • loaded configuration  file=package.json ("build" field)
      • executing @electron/rebuild  appDir=/home/pi/OpenBuilds-CONTROL arch=armv7l
      • loaded configuration  file=package.json ("build" field)
    make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
      CXX(target) Release/obj.target/bindings/src/serialport.o
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-local-handle.h:12,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:12,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:62: warning: left shift count >= width of type [-Wshift-count-overflow]
     constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
                                                                  ^~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
     constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
                                                     ~~~~~~~~~~^~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:60: warning: left shift count >= width of type [-Wshift-count-overflow]
     constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
                                                                ^~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
     constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
                                                   ~~~~~~~~~~^~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:128:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
         kApiSystemPointerSize == kApiInt64Size,
         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    
     
  17. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Post the full log if there's more
     
  18. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    :)

    The complete log. It's a lot:

    Code:
    pi@raspberrypi:~ $ curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -
    ---------------------------------------------------
    [STARTING]  OPENBUILDS-CONTROL INSTALL SCRIPT:     
                Please wait for each step to complete.
    ---------------------------------------------------
    (1/10) Updating Repositories...
    OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease                                                                               
    OK:2 http://archive.raspberrypi.org/debian buster InRelease                                                                                   
    OK:3 https://deb.nodesource.com/node_19.x buster InRelease                   
    Paketlisten werden gelesen... Fertig
    (2/10) Upgrading RaspiOS...
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    Paketaktualisierung (Upgrade) wird berechnet... Fertig
    Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
      python-colorzero
    Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    (3/10) Installing remote desktop (TightVNC and XRDP)...
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    tightvncserver ist schon die neueste Version (1:1.3.9-9+deb10u1).
    Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
      python-colorzero
    Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    xrdp ist schon die neueste Version (0.9.9-1+deb10u1).
    Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
      python-colorzero
    Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    (4/10) Installing GIT...
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    git ist schon die neueste Version (1:2.20.1-2+deb10u8).
    Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
      python-colorzero
    Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    (5/10) Installing NodeJS 19.x...
    
    ## Installing the NodeSource Node.js 19.x repo...
    
    
    ## Populating apt-get cache...
    
    + apt-get update
    OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
    OK:2 http://archive.raspberrypi.org/debian buster InRelease                             
    OK:3 https://deb.nodesource.com/node_19.x buster InRelease                               
    Paketlisten werden gelesen... Fertig                             
    
    ## Confirming "buster" is supported...
    
    + curl -sLf -o /dev/null 'https://deb.nodesource.com/node_19.x/dists/buster/Release'
    
    ## Adding the NodeSource signing key to your keyring...
    
    + curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null
    gpg: WARNUNG: Unsicheres Besitzverhältnis des Home-Verzeichnis `/home/pi/.gnupg'
    
    ## Creating apt sources list file for the NodeSource Node.js 19.x repo...
    
    + echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_19.x buster main' > /etc/apt/sources.list.d/nodesource.list
    + echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_19.x buster main' >> /etc/apt/sources.list.d/nodesource.list
    
    ## Running `apt-get update` for you...
    
    + apt-get update
    OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
    OK:2 http://archive.raspberrypi.org/debian buster InRelease                             
    OK:3 https://deb.nodesource.com/node_19.x buster InRelease                               
    Paketlisten werden gelesen... Fertig                             
    
    ## Run `sudo apt-get install -y nodejs` to install Node.js 19.x and npm
    ## You may also need development tools to build native addons:
         sudo apt-get install gcc g++ make
    ## To install the Yarn package manager, run:
         curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
         echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
         sudo apt-get update && sudo apt-get install yarn
    
    
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    nodejs ist schon die neueste Version (19.8.1-deb-1nodesource1).
    Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
      python-colorzero
    Verwenden Sie »sudo apt autoremove«, um es zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
    (6/10) Updating npm...
    
    changed 16 packages in 7s
    
    16 packages are looking for funding
      run `npm fund` for details
    (7/10) Downloading OpenBuilds-CONTROL source code...
    Klone nach 'OpenBuilds-CONTROL' ...
    remote: Enumerating objects: 13353, done.
    remote: Counting objects: 100% (467/467), done.
    remote: Compressing objects: 100% (174/174), done.
    remote: Total 13353 (delta 258), reused 344 (delta 218), pack-reused 12886
    Empfange Objekte: 100% (13353/13353), 124.02 MiB | 1.57 MiB/s, Fertig.
    Löse Unterschiede auf: 100% (7815/7815), Fertig.
    Checke Dateien aus: 100% (703/703), Fertig.
    (8/10) Installing OpenBuilds-CONTROL dependencies...
    npm WARN skipping integrity check for git dependency ssh://[email protected]/noopkat/browser-serialport.git
    npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
    npm WARN deprecated [email protected]: Please use @electron/notarize moving forward.  There is no API change, just a package name change
    npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward.  There is no API change, just a package name change
    
    > [email protected] postinstall
    > electron-builder install-app-deps
    
      • electron-builder  version=24.0.0
      • loaded configuration  file=package.json ("build" field)
      • executing @electron/rebuild  appDir=/home/pi/OpenBuilds-CONTROL arch=armv7l
      • loaded configuration  file=package.json ("build" field)
    make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
      CXX(target) Release/obj.target/bindings/src/serialport.o
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-local-handle.h:12,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:12,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:62: warning: left shift count >= width of type [-Wshift-count-overflow]
     constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
                                                                  ^~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
     constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
                                                     ~~~~~~~~~~^~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:60: warning: left shift count >= width of type [-Wshift-count-overflow]
     constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
                                                                ^~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
     constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
                                                   ~~~~~~~~~~^~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:128:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
         kApiSystemPointerSize == kApiInt64Size,
         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:186:38: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘1099511627776’ to ‘0’ [-Woverflow]
     constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;
                                     ~~~~~^~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:204:50: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738368’ to ‘0’ [-Woverflow]
     constexpr size_t kSandboxGuardRegionSize = 32ULL * GB;
                                                ~~~~~~^~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:220:56: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘8589934592’ to ‘0’ [-Woverflow]
     constexpr size_t kSandboxMinimumReservationSize = 8ULL * GB;
                                                       ~~~~~^~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:230:60: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738367’ to ‘4294967295’ [-Woverflow]
     constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;
                                                     ~~~~~~~~~~~^~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:231:44: error: static assertion failed: The maximum allowed buffer size must not be larger than the sandbox's guard regions
     static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:236:48: error: static assertion failed: The maximum size of a BoundedSize must be synchronized with the kMaxSafeBufferSizeForSandbox
     static_assert(1ULL << (64 - kBoundedSizeShift) ==
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
                       kMaxSafeBufferSizeForSandbox + 1,
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:260:56: error: static assertion failed: kExternalPointerTableReservationSize and kExternalPointerIndexShift don't match
     static_assert((1 << (32 - kExternalPointerIndexShift)) == kMaxExternalPointers,
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
       using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
         public v8::CopyablePersistentTraits<T> {};
                    ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ../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]
       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]
       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]
       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]
       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:271: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]
       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:316: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]
       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:366: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]
       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:412: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]
       uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
                                                                          ^~~~~~~~~~~~~~
    ../src/serialport.cpp: At global scope:
    ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
     SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
                                ^
    ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
     SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
                                  ^
    In file included from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/node.h:991: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),                          \
                                               ^
    /home/pi/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
       NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
       ^~~~~~~~~~~~~
    ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
     NODE_MODULE(serialport, init);
     ^~~~~~~~~~~
    make: *** [bindings.target.mk:128: Release/obj.target/bindings/src/serialport.o] Fehler 1
    make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
      ⨯ node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    
    Error: `make` failed with exit code: 2
    
      failedTask=installAppDeps stackTrace=Error: node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
                                                                                                                                                                                                                                            Error: `make` failed with exit code: 2
                                                                                                                                                                                                                                                at NodeGyp.rebuildModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-type/node-gyp.ts:133:13)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at ModuleRebuilder.rebuildNodeGypModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:93:5)
        at ModuleRebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:129:8)
        at Rebuilder.rebuildModuleAt (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:203:9)
        at Rebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:158:9)
        at installOrRebuild (/home/pi/OpenBuilds-CONTROL/node_modules/app-builder-lib/src/util/yarn.ts:29:5)
        at installAppDeps (/home/pi/OpenBuilds-CONTROL/node_modules/electron-builder/src/cli/install-app-deps.ts:59:3)
    npm ERR! code 1
    npm ERR! path /home/pi/OpenBuilds-CONTROL
    npm ERR! command failed
    npm ERR! command sh -c electron-builder install-app-deps
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2023-03-16T09_45_11_959Z-debug-0.log
    (9/10) Recompiling OpenBuilds-CONTROL dependencies...
    npm ERR! code 1
    npm ERR! path /home/pi/OpenBuilds-CONTROL
    npm ERR! command failed
    npm ERR! command sh -c electron-builder install-app-deps
    npm ERR! • electron-builder  version=24.0.0
    npm ERR!   • loaded configuration  file=package.json ("build" field)
    npm ERR!   • executing @electron/rebuild  appDir=/home/pi/OpenBuilds-CONTROL arch=armv7l
    npm ERR!   • loaded configuration  file=package.json ("build" field)
    npm ERR! make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
    npm ERR!   CXX(target) Release/obj.target/bindings/src/serialport.o
    npm ERR! make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
    npm ERR!   ⨯ node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    npm ERR! For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    npm ERR!
    npm ERR! Error: `make` failed with exit code: 2
    npm ERR!
    npm ERR!   failedTask=installAppDeps stackTrace=Error: node-gyp failed to rebuild '/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    npm ERR! For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    npm ERR!                                                                                                                                                                                                                                         Error: `make` failed with exit code: 2
    npm ERR!                                                                                                                                                                                                                                             at NodeGyp.rebuildModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-type/node-gyp.ts:133:13)
    npm ERR!     at processTicksAndRejections (node:internal/process/task_queues:95:5)
    npm ERR!     at ModuleRebuilder.rebuildNodeGypModule (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:93:5)
    npm ERR!     at ModuleRebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:129:8)
    npm ERR!     at Rebuilder.rebuildModuleAt (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:203:9)
    npm ERR!     at Rebuilder.rebuild (/home/pi/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:158:9)
    npm ERR!     at installOrRebuild (/home/pi/OpenBuilds-CONTROL/node_modules/app-builder-lib/src/util/yarn.ts:29:5)
    npm ERR!     at installAppDeps (/home/pi/OpenBuilds-CONTROL/node_modules/electron-builder/src/cli/install-app-deps.ts:59:3)
    npm ERR! In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-local-handle.h:12,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:12,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:62: warning: left shift count >= width of type [-Wshift-count-overflow]
    npm ERR!  constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
    npm ERR!                                                               ^~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
    npm ERR!  constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
    npm ERR!                                                  ~~~~~~~~~~^~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:60: warning: left shift count >= width of type [-Wshift-count-overflow]
    npm ERR!  constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
    npm ERR!                                                             ^~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: error: right operand of shift expression ‘(1 << 32)’ is >= than the precision of the left operand [-fpermissive]
    npm ERR!  constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
    npm ERR!                                                ~~~~~~~~~~^~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:128:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
    npm ERR!      kApiSystemPointerSize == kApiInt64Size,
    npm ERR!      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:186:38: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘1099511627776’ to ‘0’ [-Woverflow]
    npm ERR!  constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;
    npm ERR!                                  ~~~~~^~~~~~~~~~~~~~~~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:204:50: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738368’ to ‘0’ [-Woverflow]
    npm ERR!  constexpr size_t kSandboxGuardRegionSize = 32ULL * GB;
    npm ERR!                                             ~~~~~~^~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:220:56: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘8589934592’ to ‘0’ [-Woverflow]
    npm ERR!  constexpr size_t kSandboxMinimumReservationSize = 8ULL * GB;
    npm ERR!                                                    ~~~~~^~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:230:60: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738367’ to ‘4294967295’ [-Woverflow]
    npm ERR!  constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;
    npm ERR!                                                  ~~~~~~~~~~~^~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:231:44: error: static assertion failed: The maximum allowed buffer size must not be larger than the sandbox's guard regions
    npm ERR!  static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,
    npm ERR!                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:236:48: error: static assertion failed: The maximum size of a BoundedSize must be synchronized with the kMaxSafeBufferSizeForSandbox
    npm ERR!  static_assert(1ULL << (64 - kBoundedSizeShift) ==
    npm ERR!                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
    npm ERR!                    kMaxSafeBufferSizeForSandbox + 1,
    npm ERR!                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-internal.h:260:56: error: static assertion failed: kExternalPointerTableReservationSize and kExternalPointerIndexShift don't match
    npm ERR!  static_assert((1 << (32 - kExternalPointerIndexShift)) == kMaxExternalPointers,
    npm ERR!                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
    npm ERR!    using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
    npm ERR!                                             ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
    npm ERR!  struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
    npm ERR!                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
    npm ERR!      public v8::CopyablePersistentTraits<T> {};
    npm ERR!                 ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
    npm ERR!  struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
    npm ERR!                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
    npm ERR!                                                                      ^~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
    npm ERR!                                                                        ^~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
    npm ERR!                                                                       ^~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
    npm ERR!                                                                       ^~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:271: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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
    npm ERR!                                                                     ^~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:316: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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
    npm ERR!                                                                     ^~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:366: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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
    npm ERR!                                                                             ^~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:412: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]
    npm ERR!    uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
    npm ERR!                                                                       ^~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: At global scope:
    npm ERR! ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
    npm ERR!  SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
    npm ERR!                             ^
    npm ERR! ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
    npm ERR!  SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
    npm ERR!                               ^
    npm ERR! In file included from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/node.h:991:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
    npm ERR!        (node::addon_register_func) (regfunc),                          \
    npm ERR!                                            ^
    npm ERR! /home/pi/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
    npm ERR!    NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
    npm ERR!    ^~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
    npm ERR!  NODE_MODULE(serialport, init);
    npm ERR!  ^~~~~~~~~~~
    npm ERR! make: *** [bindings.target.mk:128: Release/obj.target/bindings/src/serialport.o] Fehler 1
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2023-03-16T09_47_56_536Z-debug-0.log
    npm WARN skipping integrity check for git dependency ssh://[email protected]/noopkat/browser-serialport.git
    
    changed 1 package, and audited 556 packages in 5s
    
    81 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    ⠸ Building module: bindings, Completed: 0make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
      CXX(target) Release/obj.target/bindings/src/serialport.o
    ⠴ Building module: bindings, Completed: 0In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
       using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠋ Building module: bindings, Completed: 0In file included from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
         public v8::CopyablePersistentTraits<T> {};
                    ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠹ Building module: bindings, Completed: 0../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]
       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]
       uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
                                                                           ^~~~~~~~~~~~~~~
    ⠸ Building module: bindings, Completed: 0../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]
       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]
       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:271: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]
       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:316: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]
       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:366: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]
       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:412: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]
       uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
                                                                          ^~~~~~~~~~~~~~
    ../src/serialport.cpp: At global scope:
    ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
     SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
                                ^
    ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
     SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
                                  ^
    In file included from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/node.h:991: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),                          \
                                               ^
    /home/pi/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
       NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
       ^~~~~~~~~~~~~
    ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
     NODE_MODULE(serialport, init);
     ^~~~~~~~~~~
    ⠏ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/serialport_unix.o
    ⠙ Building module: bindings, Completed: 0In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
       using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0In file included from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
         public v8::CopyablePersistentTraits<T> {};
                    ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠼ Building module: bindings, Completed: 0../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:
    ../src/serialport_unix.cpp:179:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
         snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/serialport_unix.cpp:179:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024
         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:89:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
         snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/serialport_unix.cpp:89:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024
         snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/poller.o
    ⠇ Building module: bindings, Completed: 0In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/poller.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
       using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠸ Building module: bindings, Completed: 0In file included from ../src/poller.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated [-Wdeprecated-declarations]
         public v8::CopyablePersistentTraits<T> {};
                    ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/pi/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/pi/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/pi/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/poller.cpp:1:
    /home/pi/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
     struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠇ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/serialport_linux.o
    ⠋ Building module: bindings, Completed: 0  SOLINK_MODULE(target) Release/obj.target/bindings.node
    ⠸ Building module: bindings, Completed: 0  COPY Release/bindings.node
    make: Verzeichnis „/home/pi/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
    ✔ Rebuild Complete
    (10/10) Creating Menu and Desktop Shortcuts...
    ---------------------------------------------------
    [COMPLETE] Install Complete!  Thank you!
    ---------------------------------------------------
    
     
  19. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Nothing pops out as obvious - could be Make versions, build-essentials versions etc (deprecation warnings)
    Will spin up a clean copy of RaspiOS when I get a chance (might not be today) and see
     
  20. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    Thank you for your help!
    This is not self-evident and I appreciate it very much.
    Especially because the Pi is not officially supported.

    If you can confirm that it runs on a clean installation I will rebuild the Pi.

    I'm not in a hurry, I don't have any urgent milling projects at the moment. I'm also using a laptop, which is fine for a bit of milling, but it won't survive in the long run because of the dust.

    A quick feedback on the Pi:
    Openbuild Control works fine on a Pi4 with 2GB Ram and the original 7" touch display.
    I've been milling with it for about a year and have no problems. No crashes and no hangups. My milling jobs are not very big though. No 3D surface machining.
    The nice thing about the Pi with the touch display is the compactness and extreme dust immunity.
    I would be very happy if the Pi would continue to be supported unofficially.

    Tip for all those who are considering using the Pi for control:
    In the beginning I often had the milling machine stop and Openbuild Control had to be reconnected to the black box.
    The problem was the very long power supply line into my workshop, more than 30m over a thin cable. The milling motor was interfering with the power supply to the black box during load fluctuations, causing the USB connection to break down.
    Now I use a separate power supply cable for the milling motor. Since then there are no more problems.
    :)
     
  21. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    If you have a moment and a spare SD, you might get that test done before I get a spare moment :)


    Great to hear - tough call on supporting Pi as an "official" platform is the occational linux quirks (IT support not related to CONTROL) that non-linux users have troubles with


    As long as we support x86/64 based linux, it should run on the Pi too - so unlikely to go away - but with all the recent update work, possibly just something that needs to be newer (newer base RaspiOS, newer node, newer build-essentials, something like that)
     
  22. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    I do it now :)
     
    Peter Van Der Walt likes this.
  23. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    14,001
    Likes Received:
    4,113
    Sweet! Try the latest - about time we get that up to date :)
     
  24. Mark_0815

    Mark_0815 New
    Builder

    Joined:
    Feb 28, 2022
    Messages:
    16
    Likes Received:
    7
    Dont work :-(

    Code:
      run `npm fund` for details
    (7/10) Downloading OpenBuilds-CONTROL source code...
    Klone nach 'OpenBuilds-CONTROL' ...
    remote: Enumerating objects: 13353, done.
    remote: Counting objects: 100% (467/467), done.
    remote: Compressing objects: 100% (174/174), done.
    remote: Total 13353 (delta 258), reused 344 (delta 218), pack-reused 12886
    Empfange Objekte: 100% (13353/13353), 124.02 MiB | 1.37 MiB/s, fertig.
    Löse Unterschiede auf: 100% (7815/7815), fertig.
    Aktualisiere Dateien: 100% (703/703), fertig.
    (8/10) Installing OpenBuilds-CONTROL dependencies...
    npm WARN skipping integrity check for git dependency ssh://[email protected]/noopkat/browser-serialport.git
    npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
    npm WARN deprecated [email protected]: Please use @electron/notarize moving forward.  There is no API change, just a package name change
    npm WARN deprecated [email protected]: Please use @electron/rebuild moving forward.  There is no API change, just a package name change
    
    > [email protected] postinstall
    > electron-builder install-app-deps
    
      • electron-builder  version=24.0.0
      • loaded configuration  file=package.json ("build" field)
      • executing @electron/rebuild  appDir=/home/mark/OpenBuilds-CONTROL arch=armv7l
      • loaded configuration  file=package.json ("build" field)
    make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
      CXX(target) Release/obj.target/bindings/src/serialport.o
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-local-handle.h:12,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:12,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: warning: left shift count >= width of type [-Wshift-count-overflow]
      124 | constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
          |                                                 ~~~~~~~~~~^~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: error: right operand of shift expression ‘(1 << 32)’ is greater than or equal to the precision 32 of the left operand [-fpermissive]
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: warning: left shift count >= width of type [-Wshift-count-overflow]
      125 | constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
          |                                               ~~~~~~~~~~^~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: error: right operand of shift expression ‘(1 << 32)’ is greater than or equal to the precision 32 of the left operand [-fpermissive]
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:128:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
      128 |     kApiSystemPointerSize == kApiInt64Size,
          |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:186:38: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘1099511627776’ to ‘0’ [-Woverflow]
      186 | constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;
          |                                 ~~~~~^~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:204:50: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738368’ to ‘0’ [-Woverflow]
      204 | constexpr size_t kSandboxGuardRegionSize = 32ULL * GB;
          |                                            ~~~~~~^~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:206:61: error: non-constant condition for static assertion
      206 | static_assert((kSandboxGuardRegionSize % kSandboxAlignment) == 0,
          |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:220:56: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘8589934592’ to ‘0’ [-Woverflow]
      220 | constexpr size_t kSandboxMinimumReservationSize = 8ULL * GB;
          |                                                   ~~~~~^~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:222:46: error: non-constant condition for static assertion
      222 | static_assert(kSandboxMinimumReservationSize > kPtrComprCageReservationSize,
          |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:230:60: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738367’ to ‘4294967295’ [-Woverflow]
      230 | constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;
          |                                                 ~~~~~~~~~~~^~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:231:44: error: static assertion failed: The maximum allowed buffer size must not be larger than the sandbox's guard regions
      231 | static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,
          |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:236:48: error: static assertion failed: The maximum size of a BoundedSize must be synchronized with the kMaxSafeBufferSizeForSandbox
      236 | static_assert(1ULL << (64 - kBoundedSizeShift) ==
          |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      237 |                   kMaxSafeBufferSizeForSandbox + 1,
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:260:56: error: static assertion failed: kExternalPointerTableReservationSize and kExternalPointerIndexShift don't match
      260 | static_assert((1 << (32 - kExternalPointerIndexShift)) == kMaxExternalPointers,
          |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      256 |   using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
          |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      206 |     public v8::CopyablePersistentTraits<T> {};
          |                ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
    ../src/serialport.cpp:78:51: 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:53: 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:52: 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:52: 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:271:50: 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]
      271 |   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:316:50: 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]
      316 |   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:366:58: 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]
      366 |   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:412:52: 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]
      412 |   uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
          |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/serialport.cpp: At global scope:
    ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
      433 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
          |                            ^
    ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
      452 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
          |                              ^
    In file included from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/node.h:991: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]
      991 |       (node::addon_register_func) (regfunc),                          \
          |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
     1025 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
          |   ^~~~~~~~~~~~~
    ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
      486 | NODE_MODULE(serialport, init);
          | ^~~~~~~~~~~
    make: *** [bindings.target.mk:128: Release/obj.target/bindings/src/serialport.o] Fehler 1
    make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
      ⨯ node-gyp failed to rebuild '/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    
    Error: `make` failed with exit code: 2
    
      failedTask=installAppDeps stackTrace=Error: node-gyp failed to rebuild '/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
                                                                                                                                                                                                                                              Error: `make` failed with exit code: 2
                                                                                                                                                                                                                                                  at NodeGyp.rebuildModule (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-type/node-gyp.ts:133:13)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at ModuleRebuilder.rebuildNodeGypModule (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:93:5)
        at ModuleRebuilder.rebuild (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:129:8)
        at Rebuilder.rebuildModuleAt (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:203:9)
        at Rebuilder.rebuild (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:158:9)
        at installOrRebuild (/home/mark/OpenBuilds-CONTROL/node_modules/app-builder-lib/src/util/yarn.ts:29:5)
        at installAppDeps (/home/mark/OpenBuilds-CONTROL/node_modules/electron-builder/src/cli/install-app-deps.ts:59:3)
    npm ERR! code 1
    npm ERR! path /home/mark/OpenBuilds-CONTROL
    npm ERR! command failed
    npm ERR! command sh -c electron-builder install-app-deps
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/mark/.npm/_logs/2023-03-16T16_02_46_773Z-debug-0.log
    (9/10) Recompiling OpenBuilds-CONTROL dependencies...
    npm ERR! code 1
    npm ERR! path /home/mark/OpenBuilds-CONTROL
    npm ERR! command failed
    npm ERR! command sh -c electron-builder install-app-deps
    npm ERR! • electron-builder  version=24.0.0
    npm ERR!   • loaded configuration  file=package.json ("build" field)
    npm ERR!   • executing @electron/rebuild  appDir=/home/mark/OpenBuilds-CONTROL arch=armv7l
    npm ERR!   • loaded configuration  file=package.json ("build" field)
    npm ERR! make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
    npm ERR!   CXX(target) Release/obj.target/bindings/src/serialport.o
    npm ERR! make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
    npm ERR!   ⨯ node-gyp failed to rebuild '/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    npm ERR! For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    npm ERR!
    npm ERR! Error: `make` failed with exit code: 2
    npm ERR!
    npm ERR!   failedTask=installAppDeps stackTrace=Error: node-gyp failed to rebuild '/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings'.
    npm ERR! For more information, rerun with the DEBUG environment variable set to "electron-rebuild".
    npm ERR!                                                                                                                                                                                                                                           Error: `make` failed with exit code: 2
    npm ERR!                                                                                                                                                                                                                                               at NodeGyp.rebuildModule (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-type/node-gyp.ts:133:13)
    npm ERR!     at processTicksAndRejections (node:internal/process/task_queues:95:5)
    npm ERR!     at ModuleRebuilder.rebuildNodeGypModule (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:93:5)
    npm ERR!     at ModuleRebuilder.rebuild (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/module-rebuilder.ts:129:8)
    npm ERR!     at Rebuilder.rebuildModuleAt (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:203:9)
    npm ERR!     at Rebuilder.rebuild (/home/mark/OpenBuilds-CONTROL/node_modules/@electron/rebuild/src/rebuild.ts:158:9)
    npm ERR!     at installOrRebuild (/home/mark/OpenBuilds-CONTROL/node_modules/app-builder-lib/src/util/yarn.ts:29:5)
    npm ERR!     at installAppDeps (/home/mark/OpenBuilds-CONTROL/node_modules/electron-builder/src/cli/install-app-deps.ts:59:3)
    npm ERR! In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-local-handle.h:12,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:12,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: warning: left shift count >= width of type [-Wshift-count-overflow]
    npm ERR!   124 | constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32;
    npm ERR!       |                                                 ~~~~~~~~~~^~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:124:59: error: right operand of shift expression ‘(1 << 32)’ is greater than or equal to the precision 32 of the left operand [-fpermissive]
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: warning: left shift count >= width of type [-Wshift-count-overflow]
    npm ERR!   125 | constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32;
    npm ERR!       |                                               ~~~~~~~~~~^~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:125:57: error: right operand of shift expression ‘(1 << 32)’ is greater than or equal to the precision 32 of the left operand [-fpermissive]
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:128:27: error: static assertion failed: Pointer compression can be enabled only for 64-bit architectures
    npm ERR!   128 |     kApiSystemPointerSize == kApiInt64Size,
    npm ERR!       |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:186:38: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘1099511627776’ to ‘0’ [-Woverflow]
    npm ERR!   186 | constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;
    npm ERR!       |                                 ~~~~~^~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:204:50: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738368’ to ‘0’ [-Woverflow]
    npm ERR!   204 | constexpr size_t kSandboxGuardRegionSize = 32ULL * GB;
    npm ERR!       |                                            ~~~~~~^~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:206:61: error: non-constant condition for static assertion
    npm ERR!   206 | static_assert((kSandboxGuardRegionSize % kSandboxAlignment) == 0,
    npm ERR!       |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:220:56: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘8589934592’ to ‘0’ [-Woverflow]
    npm ERR!   220 | constexpr size_t kSandboxMinimumReservationSize = 8ULL * GB;
    npm ERR!       |                                                   ~~~~~^~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:222:46: error: non-constant condition for static assertion
    npm ERR!   222 | static_assert(kSandboxMinimumReservationSize > kPtrComprCageReservationSize,
    npm ERR!       |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:230:60: warning: conversion from ‘long long unsigned int’ to ‘size_t’ {aka ‘unsigned int’} changes value from ‘34359738367’ to ‘4294967295’ [-Woverflow]
    npm ERR!   230 | constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;
    npm ERR!       |                                                 ~~~~~~~~~~~^~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:231:44: error: static assertion failed: The maximum allowed buffer size must not be larger than the sandbox's guard regions
    npm ERR!   231 | static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,
    npm ERR!       |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:236:48: error: static assertion failed: The maximum size of a BoundedSize must be synchronized with the kMaxSafeBufferSizeForSandbox
    npm ERR!   236 | static_assert(1ULL << (64 - kBoundedSizeShift) ==
    npm ERR!       |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
    npm ERR!   237 |                   kMaxSafeBufferSizeForSandbox + 1,
    npm ERR!       |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-internal.h:260:56: error: static assertion failed: kExternalPointerTableReservationSize and kExternalPointerIndexShift don't match
    npm ERR!   260 | static_assert((1 << (32 - kExternalPointerIndexShift)) == kMaxExternalPointers,
    npm ERR!       |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
    npm ERR!   256 |   using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
    npm ERR!       |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
    npm ERR!   255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
    npm ERR!       |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
    npm ERR!   206 |     public v8::CopyablePersistentTraits<T> {};
    npm ERR!       |                ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
    npm ERR!                  from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
    npm ERR!                  from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
    npm ERR!   255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
    npm ERR!       |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:78:51: 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!    78 |   uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
    npm ERR!       |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:135:53: 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!   135 |   uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
    npm ERR!       |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:175:52: 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!   175 |   uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
    npm ERR!       |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:215:52: 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!   215 |   uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
    npm ERR!       |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:271:50: 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!   271 |   uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
    npm ERR!       |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:316:50: 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!   316 |   uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
    npm ERR!       |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:366:58: 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!   366 |   uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
    npm ERR!       |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
    npm ERR! ../src/serialport.cpp:412:52: 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!   412 |   uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
    npm ERR!       |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp: At global scope:
    npm ERR! ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
    npm ERR!   433 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
    npm ERR!       |                            ^
    npm ERR! ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
    npm ERR!   452 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
    npm ERR!       |                              ^
    npm ERR! In file included from ../../../nan/nan.h:60,
    npm ERR!                  from ../src/./serialport.h:13,
    npm ERR!                  from ../src/serialport.cpp:1:
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/node.h:991: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!   991 |       (node::addon_register_func) (regfunc),                          \
    npm ERR!       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    npm ERR! /home/mark/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
    npm ERR!  1025 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
    npm ERR!       |   ^~~~~~~~~~~~~
    npm ERR! ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
    npm ERR!   486 | NODE_MODULE(serialport, init);
    npm ERR!       | ^~~~~~~~~~~
    npm ERR! make: *** [bindings.target.mk:128: Release/obj.target/bindings/src/serialport.o] Fehler 1
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/mark/.npm/_logs/2023-03-16T16_23_45_151Z-debug-0.log
    npm WARN skipping integrity check for git dependency ssh://[email protected]/noopkat/browser-serialport.git
    
    changed 1 package, and audited 556 packages in 6s
    
    81 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    ⠴ Building module: bindings, Completed: 0make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird betreten
      CXX(target) Release/obj.target/bindings/src/serialport.o
    ⠦ Building module: bindings, Completed: 0In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      256 |   using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
          |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0In file included from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      206 |     public v8::CopyablePersistentTraits<T> {};
          |                ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠏ Building module: bindings, Completed: 0../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
    ../src/serialport.cpp:78:51: 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:53: 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:52: 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:52: 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:271:50: 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]
      271 |   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:316:50: 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]
      316 |   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:366:58: 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]
      366 |   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:412:52: 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]
      412 |   uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
          |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../src/serialport.cpp: At global scope:
    ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
      433 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
          |                            ^
    ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
      452 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
          |                              ^
    In file included from ../../../nan/nan.h:60,
                     from ../src/./serialport.h:13,
                     from ../src/serialport.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/node.h:991: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]
      991 |       (node::addon_register_func) (regfunc),                          \
          |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/node.h:1025:3: note: in expansion of macro ‘NODE_MODULE_X’
     1025 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
          |   ^~~~~~~~~~~~~
    ../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
      486 | NODE_MODULE(serialport, init);
          | ^~~~~~~~~~~
    ⠴ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/serialport_unix.o
    ⠦ Building module: bindings, Completed: 0In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      256 |   using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
          |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0In file included from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      206 |     public v8::CopyablePersistentTraits<T> {};
          |                ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/serialport.h:13,
                     from ../src/serialport_unix.cpp:2:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠼ Building module: bindings, Completed: 0../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:
    ../src/serialport_unix.cpp:179:82: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
      179 |     snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
          |                                                                                  ^~
    ../src/serialport_unix.cpp:179:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024
      179 |     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:89:84: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
       89 |     snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
          |                                                                                    ^~
    ../src/serialport_unix.cpp:89:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024
       89 |     snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
          |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/poller.o
    ⠧ Building module: bindings, Completed: 0In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/poller.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:256:44: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      256 |   using CopyablePersistent = Persistent<T, CopyablePersistentTraits<T>>;
          |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠧ Building module: bindings, Completed: 0In file included from ../src/poller.cpp:1:
    ../../../nan/nan.h:206:16: warning: ‘template<class T> struct v8::CopyablePersistentTraits’ is deprecated: Use v8::Global instead [-Wdeprecated-declarations]
      206 |     public v8::CopyablePersistentTraits<T> {};
          |                ^~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /home/mark/.electron-gyp/23.1.3/include/node/v8-object.h:10,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8-array-buffer.h:13,
                     from /home/mark/.electron-gyp/23.1.3/include/node/v8.h:24,
                     from /home/mark/.electron-gyp/23.1.3/include/node/node.h:79,
                     from ../../../nan/nan.h:60,
                     from ../src/poller.cpp:1:
    /home/mark/.electron-gyp/23.1.3/include/node/v8-persistent-handle.h:255:48: note: declared here
      255 | struct V8_DEPRECATED("Use v8::Global instead") CopyablePersistentTraits {
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
    ⠦ Building module: bindings, Completed: 0  CXX(target) Release/obj.target/bindings/src/serialport_linux.o
    ⠙ Building module: bindings, Completed: 0  SOLINK_MODULE(target) Release/obj.target/bindings.node
    ⠴ Building module: bindings, Completed: 0  COPY Release/bindings.node
    make: Verzeichnis „/home/mark/OpenBuilds-CONTROL/node_modules/@serialport/bindings/build“ wird verlassen
    ✔ Rebuild Complete
    (10/10) Creating Menu and Desktop Shortcuts...
    mark@raspberrypi:~ $ curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubusercontent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -openbuilds installing on Pi4openbuilds installing on Pi4openbuilds installing on Pi4TROL/master/pi-install.sh | bash -curl ntent.com/OpenBuilds/OpenBuilds-CONTROL/master/pi-install.sh | bash -curl -sL https://raw.githubus
    
    
     
    Peter Van Der Walt likes this.
  25. Reuben Morgan

    Builder

    Joined:
    May 5, 2023
    Messages:
    1
    Likes Received:
    2
    This is as a note for myself and anybody else that might run into the same problem.

    I ran into an issue during the install process on my Pi 4 regarding the serialport module; Error: No native build was found for platform=linux arch=arm...

    This was due to no prebuilt binary available for the pi and the npm install process not building it for some reason.

    I fixed it by doing the following:

    sudo npm install -g node-gyp node-pre-gyp
    cd node_modules/@serialport/bindings-cpp
    sudo node-gyp configure build


    After this CONTROL opes as expected.

    Source: Can't install on Raspberry Pi 4 · Issue #2534 · serialport/node-serialport
     
    JakeNull and Peter Van Der Walt like this.
  26. JakeNull

    JakeNull New
    Builder

    Joined:
    Nov 13, 2018
    Messages:
    10
    Likes Received:
    4
    I ran into this same issue while working on another project today.
    This saved me so much time. Thanks for posting this!
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice