• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.1k 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.
  • B Offline
    bugsounet Banned
    last edited by Dec 23, 2021, 12:28 PM

    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 request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
    npm WARN deprecated har-validator@5.1.5: this library is no longer supported
    npm WARN deprecated uuid@3.4.0: 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.
    
    > epoll@4.0.1 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 »
    
    > Magic-Mirror-Module-PIR-Sensor@1.1.0 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! Magic-Mirror-Module-PIR-Sensor@1.1.0 postinstall: `electron-rebuild -e ../../node_modules/electron`
    npm ERR! Exit status 255
    npm ERR! 
    npm ERR! Failed at the Magic-Mirror-Module-PIR-Sensor@1.1.0 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.
    + magicmirror-rebuild@1.0.3
    
    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

    W C G L 4 Replies Last reply Jan 5, 2022, 6:16 PM Reply Quote 5
    • H Offline
      hedmik
      last edited by Jan 5, 2022, 5:33 PM

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

      B 1 Reply Last reply Jan 5, 2022, 6:24 PM Reply Quote 0
      • W Offline
        wishmaster270 Module Developer @bugsounet
        last edited by Jan 5, 2022, 6:16 PM

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

        B 1 Reply Last reply Jan 5, 2022, 6:21 PM Reply Quote 0
        • B Offline
          bugsounet Banned @wishmaster270
          last edited by Jan 5, 2022, 6:21 PM

          @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
          • B Offline
            bugsounet Banned @hedmik
            last edited by Jan 5, 2022, 6:24 PM

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

            1 Reply Last reply Reply Quote 0
            • C Offline
              cyber152 @bugsounet
              last edited by Jan 5, 2022, 9:39 PM

              @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 Jan 5, 2022, 10:03 PM

                @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 Jan 9, 2022, 10:32 PM

                  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 B 2 Replies Last reply Jan 9, 2022, 10:42 PM Reply Quote 0
                  • L Offline
                    lhops @lhops
                    last edited by Jan 9, 2022, 10:42 PM

                    @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
                    • B Offline
                      bugsounet Banned @lhops
                      last edited by Jan 9, 2022, 10:46 PM

                      @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 Jan 10, 2022, 2:51 PM 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