Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. IRobot Roomba Adapter

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    IRobot Roomba Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Toby275 last edited by

      Hallo zusammen,

      ich habe ein Prblem bei der Installation von Canvas. Bei Schritt 4 der Anleitung (https://www.npmjs.com/package/iobroker.roomba) bekomme ich folgende Fehlermeldung:

      gyp info spawn args ]
      gyp: binding.gyp not found (cwd: C:\Windows\System32) while trying to load binding.gyp
      gyp ERR! configure error
      gyp ERR! stack Error: gyp failed with exit code: 1
      gyp ERR! stack at ChildProcess.onCpExit (C:\Users\Toby\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:351:16)
      gyp ERR! stack at ChildProcess.emit (events.js:311:20)
      gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
      gyp ERR! System Windows_NT 10.0.18363
      gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Toby\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--GTK_Root=C:\opt\GTK"
      gyp ERR! cwd C:\Windows\System32
      gyp ERR! node -v v12.16.1
      gyp ERR! node-gyp -v v6.1.0
      gyp ERR! not ok

      Hat jemand eine Idee was hier schief läuft?
      Beste Grüße aus dem hohen Norden 🙂

      Toby

      Zefau 1 Reply Last reply Reply Quote 0
      • Zefau
        Zefau @Toby275 last edited by

        @Toby275 in welchem Ordner hast du den Befehl denn ausgeführt ? Er findet binding.gyp nicht. Wo liegt die Datei? Ggf. den Pfad in der PATH Systemvariablen ergänzen.

        T 1 Reply Last reply Reply Quote 0
        • T
          Toby275 @Zefau last edited by

          @Zefau vielen Dank für die schnelle Antwort.
          Aus dem Verzeichnis C:\GTK heraus. Ist das falsch? Wo liegt denn die binding.gyp bzw. aus welchem Verzeichnis heraus muss ich den Befehl starten?

          Zefau 1 Reply Last reply Reply Quote 0
          • Zefau
            Zefau @Toby275 last edited by

            @Toby275 ich nutze ioBroker nicht auf Windows und hab daher keine Ahnung. Einfach mal googeln.

            Glaube unter Windows musste die Datei anlegen.

            https://github.com/nodejs/node-gyp#how-to-use

            https://github.com/Automattic/node-canvas/blob/master/binding.gyp

            1 Reply Last reply Reply Quote 0
            • T
              Toby275 last edited by

              Danke für die Antwort. Hab alles auf Linux neu aufgesetzt, jetzt habe ich keine Probleme mehr 🙂

              1 Reply Last reply Reply Quote 0
              • Newpicsel
                Newpicsel last edited by Newpicsel

                Moin ich nochmal 😅

                Mein Problem von oben, mit den fehlenden missions Datenpunkten konnte ich leider noch nicht beheben und hoffe weiterhin auf Hilfe ☹

                Da ich momentan etwas Zeit habe, bastel ich mir nun doch eine VIS.
                Jetzt bin ich gerade dabei den Roomba einzubinden und mir ist aufgefallen, dass die Werte für Einstellungen wie zB. Der Saugleistung oder kantenreinigung (roomba.0/commands/device/preferences/...),
                sowie die Daten für geplante Reinigungsdurchgänge nicht geändert werden können.

                Währe es möglich das zu ändern?
                Wäre natürlich super wenn ich hier alles über eine Oberfläche nutzen könnte, gerade die Programmierung der geplanten Aufgaben nutze ich gerne, diese lassen sich momentan nur anzeigen wenn ich das richtig gesehen habe.

                Danke und schöne Grüße

                EDIT: Sorry war etwas voreilig, Werte für die geplanten Aufgaben können geändert werden, nur die anderen Einstellungen nicht!

                AADC2506-6D53-4813-BCF0-EFA0588794A2.jpeg

                A1C23EDF-BC71-4CE3-A850-DE1A3EE90A64.png

                1 Reply Last reply Reply Quote 0
                • Newpicsel
                  Newpicsel last edited by Newpicsel

                  Wirklich keiner eine Idee, warum bei mir die Missionsdaten verschwunden sind?
                  Ich weiß nicht mehr weiter, kann auch im netz nichts finden, was mir weiterhilft! 😢

                  Kleines Update, ich weiß nicht warum ich das nicht früher schon getestet habe, aber wenn ich eine zweite Instanz erstelle sind alle Daten da, wenn ich die erste allerdings lösche und eine neue erstelle fehlen die Daten wieder.
                  Sind hier noch weitere Daten zu dieser Instanz irgendwo anders gespeichert, die Aussagen welche Objekte erstellt werden? Anders kann ich mir das nicht erklären!
                  So geht es zwar erstmal, ich deaktiviere einfach die erste Instanz und lasse die zweite laufen, ob die Objekte auch geladen oder aktualisiert werden weiß ich allerdings nicht, momentan sind sie leer, Ich habe aber auch noch keine Reinigung gestartet.
                  Als dieses Problem anfing, waren die Objekte auch erst vorhanden, wurden allerdings nicht aktualisiert, erst bei einer Neuinstallation wurden die Objekte dann nicht mehr erstellt.

                  Außerdem ist mir aufgefallen, dass der Wert von dem Objekt „docked (State whether robot is docked)“ im Ordner states, zwar nach dem docken auf true wechselt, nach kurzer Zeit jedoch wieder auf false springt, habe nur ich dieses Problem oder liegt der falsche Wert am Roboter?

                  Und wegen den Einstellungen, hier stehen die Objekte:

                  /device/preferences/openOnly
                  /device/preferences/noAutoPassesa
                  /device/preferences/twoPass
                  /device/preferences/carpetBoostAuto
                  /device/preferences/carpetBoostHigh

                  Auf „Write:false“, würde es hier reichen diese auf „true“ zu ändern, oder würde der geänderte wert nicht an den Roboter übermittelt werden?

                  Danke für Hilfe und schöne Grüße

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User last edited by

                    Hallo,

                    habe leider selber das Problem mit den fehlenden Missionsdaten. Schaue ich in die Objekte dann fehlt das Objekt "History".

                    Lade ich die iRobot Roobma VIS dann wird mir die Karte vom 17.02.2020 als letzte angezeigt.

                    Bitte auch um Hilfe. Danke im vorraus.

                    Newpicsel 1 Reply Last reply Reply Quote 0
                    • Newpicsel
                      Newpicsel @Guest last edited by

                      @smart-home

                      Auch wenn es nicht hilft!

                      Danke, ich dachte schon ich werde verrückt!

                      Morgen wird gesaugt, ich bin gespannt ob die zweite Instanz hilft!
                      Die Objekte sind ja zumindest wieder da, Ich werde berichten...

                      1 Reply Last reply Reply Quote 0
                      • Newpicsel
                        Newpicsel last edited by Newpicsel

                        Moin moin,

                        @smart-home
                        Kleines Update, leider bleiben die Werte der Objekte für die Missionen wie auch die history json, der zweiten Instanz leer! 😞

                        @Zefau
                        Hast du eventuell eine Idee was hier der Fehler sein könnte oder zumindest einen Ansatz wo wir nach einem Problem suchen könnten?

                        Ich bin mir ja nicht einmal sicher ob das Problem wirklich bei dem Adapter liegt, dann hätten vermutlich mehrere dieses Problem...

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User last edited by A Former User

                          Also ich habe mich auch grade mal mit dem Adapter versucht.

                          1. Feststellung: Ich kann die letzte Version nicht Installieren also kein Downgrade von 1.1.1 auf 1.0.7 möglich

                          dann habe ich folgende 2 Ordner manuell gelöscht

                          fc147842-3f07-47e2-b609-cf3c69d284c8-grafik.png

                          und den Adapter Deinstalliert und wieder neu Installiert mit folgendem Erfolg:

                          In der fertigen Adapter VIS habe ich plötzlich die letzte aktuelle fahrt vom Roomba inkl. Map-Grafik:

                          52694a2e-c8fa-4074-88cd-6a0df88e9954-grafik.png

                          schaue ich mir den Quelltext dieser VIS an dann findet man folgendes:

                          51980647-8fb2-4653-9c8b-acbfde2ed1eb-grafik.png

                          schaue ich wieder in die Objekte dann finde ich diese nicht:
                          f6a7e2ee-22f8-4a49-a1a6-46a8eecead8b-grafik.png

                          heist für mich das der Adapter die Daten aus dem Roomba bekommt, aber nicht in den Objekten anzeigt.

                          Newpicsel 1 Reply Last reply Reply Quote 0
                          • Newpicsel
                            Newpicsel @Guest last edited by

                            @smart-home

                            Interessant, dann stellt sich mir die Frage, wo die vis die Daten abruft!
                            Aus einer Datenbank im Adapter oder direkt aus dem roomba?
                            Die history ist ja ebenfalls leer!

                            Können dort dann eventuell auch diese Daten abgerufen werden?
                            Wäre zwar nur eine Notlösung aber im Zweifel besser als nichts...

                            Aber was anderes, wie komme ich zu dieser vis? 🤣

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User last edited by

                              3d2dd2db-6aac-42b1-a771-bd8d3e736d50-grafik.png

                              Newpicsel 1 Reply Last reply Reply Quote 0
                              • Newpicsel
                                Newpicsel @Guest last edited by

                                @smart-home
                                Ach, nie nachgeschaut! 😝

                                Merkwürdigerweise ist bei mir auch diese vis leer!
                                Einzig der akkstand und der Status wird angezeigt, die Werte sind bei mir auch in den Objekten vorhanden.

                                ? 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @Newpicsel last edited by A Former User

                                  @Newpicsel
                                  Ich glaube wir zwei kommen da nicht weiter! Ich denke im Adapter müssen die createStates angepasst werden.

                                  @Zefau
                                  Kannst du dich bitte dem Problem annehmen? Ich denke wir haben es jetzt ausreichend beschrieben.
                                  PS. Mein System ist ein Raspberry PI4

                                  Zefau 1 Reply Last reply Reply Quote 0
                                  • Zefau
                                    Zefau @Guest last edited by

                                    @smart-home seid ihr der Anleitung gefolgt und ist canvas installiert? Siehe https://github.com/iobroker-community-adapters/ioBroker.roomba/blob/master/README.md#installation

                                    Die Objekte werden nur angelegt, wenn die Missions-Daten verarbeitet werden.

                                    Zefau Newpicsel 2 Replies Last reply Reply Quote 0
                                    • Zefau
                                      Zefau @Zefau last edited by Zefau

                                      welche ioBroker Version habt ihr installiert?

                                      ? Newpicsel 2 Replies Last reply Reply Quote 0
                                      • ?
                                        A Former User @Zefau last edited by

                                        @Zefau

                                        danke schon mal für deine Hilfe.

                                        Also wir haben beide das Problem das es schon mal ging und wir nichts an der Installation geändert haben. Und dann ab Tag X gab es die History nicht mehr.

                                        Ich habe jetzt nochmal nach der Anleitung canvas drüber gebügelt, einzigste auffälligkeit war diese:
                                        20db1ce9-7bb6-45d1-8c2f-68f83f4006cd-grafik.png

                                        Zur IoBroker Version: Immer die aktuellste
                                        29a84f65-37ff-4b7d-9817-b8fab006139d-grafik.png

                                        Kann es mit dem umstieg auf Raspberry PI 4 zusammenhängen?

                                        1 Reply Last reply Reply Quote 0
                                        • Newpicsel
                                          Newpicsel @Zefau last edited by

                                          @Zefau
                                          Moin und danke schon mal,

                                          Also ich hatte auch vorher schon den pi4.

                                          JS controler 3.0.14

                                          Canvas hau ich heute Nachmittag nochmal drauf, gibt es hier etwas, was vorher gelöscht werden sollte?

                                          1 Reply Last reply Reply Quote 0
                                          • Newpicsel
                                            Newpicsel @Zefau last edited by

                                            @Zefau
                                            so, habe alles wie angegeben durchgeführt, leider ohne erfolg.

                                            sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

                                            Paketlisten werden gelesen... Fertig
                                            Abhängigkeitsbaum wird aufgebaut.
                                            Statusinformationen werden eingelesen.... Fertig
                                            build-essential ist schon die neueste Version (12.6).
                                            libgif-dev ist schon die neueste Version (5.1.4-3).
                                            libjpeg-dev ist schon die neueste Version (1:1.5.2-2).
                                            libpango1.0-dev ist schon die neueste Version (1.42.4-7~deb10u1).
                                            librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1).
                                            libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1).
                                            0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
                                            

                                            sudo npm install canvas --unsafe-perm=true

                                            > canvas@2.6.1 install /opt/iobroker/node_modules/iobroker.roomba/node_modules/canvas
                                            > node-pre-gyp install --fallback-to-build
                                            
                                            node-pre-gyp WARN Using request for node-pre-gyp https download
                                            node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v64-linux-glibc-arm.tar.gz
                                            node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@10.17.0 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
                                            make: Verzeichnis „/opt/iobroker/node_modules/iobroker.roomba/node_modules/canvas/build“ wird betreten
                                              SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node
                                              COPY Release/canvas-postbuild.node
                                              CXX(target) Release/obj.target/canvas/src/backend/Backend.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/backend/Backend.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/backend/Backend.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/backend/ImageBackend.h:3,
                                                             from ../src/backend/ImageBackend.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/backend/ImageBackend.h:3,
                                                             from ../src/backend/ImageBackend.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/backend/PdfBackend.h:3,
                                                             from ../src/backend/PdfBackend.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/backend/PdfBackend.h:3,
                                                             from ../src/backend/PdfBackend.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/backend/SvgBackend.h:3,
                                                             from ../src/backend/SvgBackend.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/backend/SvgBackend.h:3,
                                                             from ../src/backend/SvgBackend.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o
                                            ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’:
                                            ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
                                               E(ptr - data > imgdOffset, "image data overlaps with another structure");
                                                 ~~~~~~~~~~~^~~~~~~~~~~~
                                            ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’
                                             #define E(cond, msg) if(cond) return setErr(msg)
                                                                     ^~~~
                                            ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
                                               E(ptr - data + imgdSize > len, "not enough image data");
                                                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~
                                            ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’
                                             #define E(cond, msg) if(cond) return setErr(msg)
                                                                     ^~~~
                                              CXX(target) Release/obj.target/canvas/src/Backends.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/Backends.h:3,
                                                             from ../src/Backends.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Backends.h:3,
                                                             from ../src/Backends.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/Canvas.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/Canvas.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’:
                                            ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare]
                                                 if (canvas->nBytes() > node::Buffer::kMaxLength) {
                                                     ~~~~~~~~~~~~~~~~~^~~~~~
                                            ../src/Canvas.cc:479:79: 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]
                                             ue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
                                                                                                                 ^~~~~~~~~~~~~~~~~~
                                            
                                            ../src/Canvas.cc:520:80: 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]
                                             e_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
                                                                                                                 ^~~~~~~~~~~~~~~~~~
                                            
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/Canvas.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
                                            In file included from ../src/CanvasGradient.h:5,
                                                             from ../src/CanvasGradient.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/CanvasGradient.h:5,
                                                             from ../src/CanvasGradient.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
                                            In file included from ../src/CanvasPattern.h:6,
                                                             from ../src/CanvasPattern.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/CanvasPattern.h:6,
                                                             from ../src/CanvasPattern.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/CanvasRenderingContext2d.h:6,
                                                             from ../src/CanvasRenderingContext2d.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/CanvasRenderingContext2d.h:6,
                                                             from ../src/CanvasRenderingContext2d.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/closure.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/closure.h:5,
                                                             from ../src/closure.cc:1:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Canvas.h:5,
                                                             from ../src/closure.h:5,
                                                             from ../src/closure.cc:1:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/color.o
                                              CXX(target) Release/obj.target/canvas/src/Image.o
                                            In file included from ../src/Image.h:8,
                                                             from ../src/Image.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/Image.h:8,
                                                             from ../src/Image.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/ImageData.o
                                            In file included from ../src/ImageData.h:5,
                                                             from ../src/ImageData.cc:3:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/ImageData.h:5,
                                                             from ../src/ImageData.cc:3:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/init.o
                                            In file included from ../src/backend/Backend.h:6,
                                                             from ../src/Backends.h:3,
                                                             from ../src/init.cc:17:
                                            ../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
                                            ../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
                                                 , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                                                                          ^
                                            In file included from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Backends.h:3,
                                                             from ../src/init.cc:17:
                                            ../src/init.cc: At global scope:
                                            /root/.cache/node-gyp/10.17.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
                                                   (node::addon_register_func) (regfunc),                          \
                                                                                       ^
                                            /root/.cache/node-gyp/10.17.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
                                               NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
                                               ^~~~~~~~~~~~~
                                            ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’
                                             NODE_MODULE(canvas, init);
                                             ^~~~~~~~~~~
                                            In file included from /root/.cache/node-gyp/10.17.0/include/node/node.h:63,
                                                             from ../../nan/nan.h:56,
                                                             from ../src/backend/Backend.h:6,
                                                             from ../src/Backends.h:3,
                                                             from ../src/init.cc:17:
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
                                            /root/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                                            reinterpret_cast<Callback>(callback), type);
                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
                                            ../../nan/nan_object_wrap.h:65:61:   required from here
                                            /root/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                                              CXX(target) Release/obj.target/canvas/src/register_font.o
                                              SOLINK_MODULE(target) Release/obj.target/canvas.node
                                              COPY Release/canvas.node
                                            make: Verzeichnis „/opt/iobroker/node_modules/iobroker.roomba/node_modules/canvas/build“ wird verlassen
                                            npm notice created a lockfile as package-lock.json. You should commit this file.
                                            + canvas@2.6.1
                                            added 73 packages from 79 contributors and audited 108 packages in 69.034s
                                            found 0 vulnerabilities
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            939
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            100
                                            829
                                            180315
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo