MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    electron-rebuild and MagicMirror v2.18 (and more)

    Scheduled Pinned Locked Moved Development
    40 Posts 16 Posters 17.5k Views 21 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bugsounetB Offline
      bugsounet Banned
      last edited by

      Hi, because (sometime) i’m kind

      I will offer you a tips for next release of MagicMirror (it’s comes 01/01/2022)

      Some modules need library linked to MagicMirror and do electron-rebuild step.

      • Last electron-rebuild package is actually not really ready for MagicMirror using (install many package not used)
      • Last package is not really ready for raspberry pi, and rebuild build will failed
        • problems with SSL
        • Problems with sub-dependencies (lzma-native can failed on build)

      So ?

      • I just write the new rebuild library dedicated to MagicMirror
      • I will maintened it (For my modules and yours if you want)
      • It will use exactly what MagicMirror needs (and ONLY that)
      • it will replace the electron-rebuild package

      What’s this new library ?

      • This library is magicmirror-rebuild
      • You can use it directly in your package.json file
        "dependencies": {
          "magicmirror-rebuild": "^1.0.0",
          ....
        }
      
      • You can install it directly with this command in a module directory:
      npm i magicmirror-rebuild
      
      • you can ask the rebuild step of MagicMirror (electron) with this command (in a module root directory)
      ./node_modules/.bin/MagicMirror-rebuild
      

      Sample with MagicMirror v2.18 and MMM-PIR-Sensor module

      bugsounet@debian:~/MagicMirror/modules/MMM-PIR-Sensor$ npm install
      npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
      npm WARN deprecated [email protected]: this library is no longer supported
      npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
      
      > [email protected] install /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll
      > node-gyp rebuild
      
      make : on entre dans le répertoire « /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build »
        CXX(target) Release/obj.target/epoll/src/epoll.o
        SOLINK_MODULE(target) Release/obj.target/epoll.node
        COPY Release/epoll.node
      make : on quitte le répertoire « /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build »
      
      > [email protected] postinstall /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor
      > electron-rebuild -e ../../node_modules/electron
      
      ⠋ Searching dependency tree
      An unhandled error occurred inside electron-rebuild
      Could not detect abi for version 16.0.5 and runtime electron.  Updating "node-abi" might help solve this issue if it is a new release of electron
      
      Error: Could not detect abi for version 16.0.5 and runtime electron.  Updating "node-abi" might help solve this issue if it is a new release of electron
          at Object.getAbi (/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/node-abi/index.js:36:9)
          at new Rebuilder (/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/src/rebuild.js:126:48)
          at rebuildWithOptions (/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/src/rebuild.js:404:23)
          at Object.doRebuild [as rebuild] (/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/src/rebuild.js:427:16)
          at /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/src/cli.js:124:33
          at Generator.next (<anonymous>)
          at fulfilled (/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/electron-rebuild/lib/src/cli.js:6:58)
      npm ERR! code ELIFECYCLE
      npm ERR! errno 255
      npm ERR! [email protected] postinstall: `electron-rebuild -e ../../node_modules/electron`
      npm ERR! Exit status 255
      npm ERR! 
      npm ERR! Failed at the [email protected] postinstall script.
      npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
      
      npm ERR! A complete log of this run can be found in:
      npm ERR!     /home/bugsounet/.npm/_logs/2021-12-23T12_20_03_436Z-debug.log
      

      So the result is failed !

      1. Let’s install magicmirror-rebuild library
      bugsounet@debian:~/MagicMirror/modules/MMM-PIR-Sensor$ npm i magicmirror-rebuild
      npm notice created a lockfile as package-lock.json. You should commit this file.
      + [email protected]
      
      1. Now try to execute MagicMirror-rebuild script for rebuild
      bugsounet@debian:~/MagicMirror/modules/MMM-PIR-Sensor$ ./node_modules/.bin/MagicMirror-rebuild 
      ⠼ MagicMirror Building module: epoll, Completed: 0gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
      ⠴ MagicMirror Building module: epoll, Completed: 0gyp http GET https://www.electronjs.org/headers/v16.0.5/node-v16.0.5-headers.tar.gz
      ⠼ MagicMirror Building module: epoll, Completed: 0gyp http 200 https://www.electronjs.org/headers/v16.0.5/node-v16.0.5-headers.tar.gz
      ⠏ MagicMirror Building module: epoll, Completed: 0gyp http GET https://www.electronjs.org/headers/v16.0.5/SHASUMS256.txt
      ⠧ MagicMirror Building module: epoll, Completed: 0gyp http 200 https://www.electronjs.org/headers/v16.0.5/SHASUMS256.txt
      gyp info spawn /usr/bin/python3
      gyp info spawn args [
      gyp info spawn args   '/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/magicmirror-rebuild/node_modules/node-gyp/gyp/gyp_main.py',
      gyp info spawn args   'binding.gyp',
      gyp info spawn args   '-f',
      gyp info spawn args   'make',
      gyp info spawn args   '-I',
      gyp info spawn args   '/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/config.gypi',
      gyp info spawn args   '-I',
      gyp info spawn args   '/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/magicmirror-rebuild/node_modules/node-gyp/addon.gypi',
      gyp info spawn args   '-I',
      gyp info spawn args   '/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/16.0.5/include/node/common.gypi',
      gyp info spawn args   '-Dlibrary=shared_library',
      gyp info spawn args   '-Dvisibility=default',
      gyp info spawn args   '-Dnode_root_dir=/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/16.0.5',
      gyp info spawn args   '-Dnode_gyp_dir=/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/magicmirror-rebuild/node_modules/node-gyp',
      gyp info spawn args   '-Dnode_lib_file=/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/16.0.5/<(target_arch)/node.lib',
      gyp info spawn args   '-Dmodule_root_dir=/home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll',
      gyp info spawn args   '-Dnode_engine=v8',
      gyp info spawn args   '--depth=.',
      gyp info spawn args   '--no-parallel',
      gyp info spawn args   '--generator-output',
      gyp info spawn args   'build',
      gyp info spawn args   '-Goutput_dir=.'
      gyp info spawn args ]
      ⠋ MagicMirror Building module: epoll, Completed: 0gyp info spawn make
      gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
      make : on entre dans le répertoire « /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build »
        CXX(target) Release/obj.target/epoll/src/epoll.o
      ⠸ MagicMirror Building module: epoll, Completed: 0  SOLINK_MODULE(target) Release/obj.target/epoll.node
      ⠼ MagicMirror Building module: epoll, Completed: 0  COPY Release/epoll.node
      make : on quitte le répertoire « /home/bugsounet/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build »
      ✔ MagicMirror Rebuild Complete
      

      That you see MagicMirror Rebuild Complete !
      Your module is now installed correctly

      wishmaster270W C G LusbuebL 4 Replies Last reply Reply Quote 5
      • hedmikH Offline
        hedmik
        last edited by

        Wow, thanks for sharing this!!!
        Now, I’m back on track again :-)

        bugsounetB 1 Reply Last reply Reply Quote 0
        • wishmaster270W Offline
          wishmaster270 Module Developer @bugsounet
          last edited by

          @bugsounet Thanks for this lib. Integrated it into two of my modules yesterday because I couldn’t get them compiled with electron-rebuild.

          bugsounetB 1 Reply Last reply Reply Quote 0
          • bugsounetB Offline
            bugsounet Banned @wishmaster270
            last edited by

            @wishmaster270 :

            If it can help, it’s perfect ;)
            I have do the same too for rebuild modules

            but don’t forget to delete "electron-rebuild": "v.xxx", from for package.json file ;)
            because this old package is not needed now

            @bugsounet

            1 Reply Last reply Reply Quote 0
            • bugsounetB Offline
              bugsounet Banned @hedmik
              last edited by

              @hedmik : i just share (one of) my own library ;)

              1 Reply Last reply Reply Quote 0
              • C Offline
                cyber152 @bugsounet
                last edited by

                @bugsounet thank you very much, for weeks I am looking for a solution to finally be able to add an essential function to the mirror :thumbs_up:

                1 Reply Last reply Reply Quote 0
                • G Offline
                  gonzonia @bugsounet
                  last edited by

                  @bugsounet THANK YOU! This saved me a lot of headaches. I went ahead and updated to 2.18 and got the exact error you reference in the exact same module. A quick search and I found your very helpful solution. Thank you for sharing.

                  1 Reply Last reply Reply Quote 0
                  • L Offline
                    lhops
                    last edited by

                    I get an error when " ~/node_modules $ ~/.bin/MagicMirror-rebuild"
                    error=(an unhandled error occurred inside electron-rebuild)
                    unable to find electron’s version number of MagicMirror etc

                    L bugsounetB 2 Replies Last reply Reply Quote 0
                    • L Offline
                      lhops @lhops
                      last edited by

                      @lhops
                      Can or has anyone written code for an new MMM-PIR-Sensor module that will work will the new version of MagicMirror. If not is that something that your can do? I wish I knew more about the code I would do it myself.

                      1 Reply Last reply Reply Quote 0
                      • bugsounetB Offline
                        bugsounet Banned @lhops
                        last edited by

                        @lhops said in electron-rebuild and MagicMirror v2.18 (and more):

                        I get an error when " ~/node_modules $ ~/.bin/MagicMirror-rebuild"

                        execute ./node_modules/.bin/MagicMirror-rebuild INSIDE the module directory ;)

                        not inside other directory ;)
                        Note :

                        1. every module in MagicMirror is there:
                        cd ~/MagicMirror/modules
                        
                        1. After change again the directory to your wanted module,
                          for MMM-PIR-Sensor module (for example):
                        cd MMM-PIR-Sensor
                        
                        1. after install magicmirror-rebuild
                        npm i magicmirror-rebuild
                        
                        1. execute MagicMirror-rebuild program
                        ./node_modules/.bin/MagicMirror-rebuild
                        
                        1. you will see MagicMirror Rebuild Complete

                        2. it’s done ;)

                        L 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 1 / 4
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy
                          OSZAR »