regular / ssb-electroparty

isomorphic (electron/browser) SSB clients with auto-update deployed via ssb blobs!
5 stars 6 forks source link

Windows executable #1

Open regular opened 7 years ago

regular commented 7 years ago

@mmckegg / @alubbe would one of you be available for hire to make a Win7 (64bit) executable of this? @mmckegg, I followed your instructions somewhere on the Scuttleverse, and I got far. But things went south (is that expression in use in NZ?) when ssb-party tried to spawn another process. (Works fine on OSX)

alubbe commented 7 years ago

Hi Jan - long time no speak. Are you sure you meant to ping me? I haven't used ssb so far

regular commented 7 years ago

@alubbe I meant you, because you use node on windows and possibly are familiar with complications with building native modules under windows?

alubbe commented 7 years ago

No, I have not experienced issues once things were building correctly. I assumed you were talking about a runtime error regarding additional processes?

regular commented 7 years ago

That's correct, but it might be a delayed effect of leveldown not being built correctly. The error message is rather bizarre (might be because I had to use a german copy of Win7 because it is impossible to find this ancient OS these days, but it is the required target platform so I figured I probably should use it as a build environment as well)

[...]
dom ready
Starting scuttlebot...

Node version: v7.9.0
PACKED
spawned SBOT
C:\Users\regular\dev\ssb-electroparty\build\SSB-Electroparty-win32-x64\resources\app\node_modules\bindings\bindings.js:83
        throw e
        ^

Error: Das System hat keinen Meldungstext für die Meldungsnummer 0x%1 in der Meldungsdatei %2 gefunden.
\\?\C:\Users\regular\dev\ssb-electroparty\build\SSB-Electroparty-win32-x64\resources\app\node_modules\leveldown\build\Release\leveldown.node
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at bindings (C:\Users\regular\dev\ssb-electroparty\build\SSB-Electroparty-win32-x64\resources\app\node_modules\bindings\bindings.js:76:44)
    at Object.<anonymous> (C:\Users\regular\dev\ssb-electroparty\build\SSB-Electroparty-win32-x64\resources\app\node_modules\leveldown\leveldown.js:4:46)
regular commented 7 years ago

The file build\SSB-Electroparty-win32-x64\resources\app\node_modules\leveldown\build\Release\leveldown.node does exist, butt apparently there's an issue with dynamically loading it?

mmckegg commented 7 years ago

@regular

This looks a lot like the sort of error you get when the native addon was built for the wrong ABI version (V8). This error pops up your installed version of Node doesn't match the electron version.

Have you tried rebuilding with electron as the target? See patchwork's package.json for an example: https://github.com/ssbc/patchwork/blob/master/package.json#L12

regular commented 7 years ago

@mmckegg I copied your exact script: https://github.com/regular/ssb-electroparty/blob/master/package.json#L14

I ran npm run rebuild, then npm run pack. Electron starts up fine. When I type require('leveldown') into Electron's dev tools console, I get the above error message. Yea, I agree it looks a lot like an ABI version mismatch ... hm.

regular commented 7 years ago

Thanks for your comments! It just works now! For same strange reason that only the gods of Windows know, it fails when being started from git bash, but works when double clicked!

alubbe commented 7 years ago

Cool - now please pay us as you suggested initially :)

On 29 Sep 2017 6:07 pm, "Jan Bölsche" notifications@github.com wrote:

Thanks for your comments! It just works now! For same strange reason that only the gods of Windows know, it fails when being started from git bash, but works when double clicked!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/regular/ssb-electroparty/issues/1#issuecomment-333168777, or mute the thread https://github.com/notifications/unsubscribe-auth/AB7yIT_I8r5ceBB1Ceg4XPvrKN_kiOqsks5snRXKgaJpZM4PoiHY .

mmckegg commented 7 years ago

For same strange reason that only the gods of Windows know, it fails when being started from git bash, but works when double clicked!

I had a lot of trouble on Windows with native addons and weird terminals too, so I've stuck with PowerShell in admin mode and never had any issues.

regular commented 7 years ago

@mmckegg that's good advise. For example, if I do npm i, I get no progress indication whatsoever when using git bash. One of my goals with electroparty is to provide generic binaries for all platforms that can be used for all kinds of different ssb-based applications. By replacing a blob reference in the config file, I can turn this windows binary into a desktop client for ssb-cms, or a social media client. So, hopefully in the future, less people will have to struggle with building native executables.