electron-userland / electron-builder-binaries

172 stars 60 forks source link

Building Windows on Linux failing with wine error #15

Closed gkrizek closed 5 years ago

gkrizek commented 6 years ago

I'm trying to build a Electron for Windows using Linux with Wine. Following the instructions here: https://www.electron.build/multi-platform-build

When I run the command: electron-builder --windows it fails with the follow output:

  • downloading     path=/root/.cache/electron-builder/app-builder/app-builder-v0.6.1-x64 url=https://github.com/develar/app-builder/releases/download/v0.6.1/app-builder-v0.6.1-linux-x64.7z

  • downloading     path=/root/.cache/electron-builder/winCodeSign/winCodeSign-1.9.0 url=https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-1.9.0/winCodeSign-1.9.0.7z

Error: Exit code: null. Command failed: wine /root/.cache/electron-builder/winCodeSign/winCodeSign-1.9.0/rcedit.exe /codebuild/output/src740387401/src/github.com/owner/repo/dist/win-unpacked/APP.exe --set-version-string FileDescription APP --set-version-string ProductName APP --set-version-string LegalCopyright Copyright © 2018 Owner --set-file-version 0.0.0 --set-product-version 0.0.0.0 --set-version-string InternalName APP --set-version-string OriginalFilename  --set-version-string CompanyName Owner --set-icon /codebuild/output/src740387401/src/github.com/owner/repo/build/icon.ico
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)

I have the following in my package.json:

  "build": {
    "win": {
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ]
    }
}

I tried this with electron-build version 19.56.0 and 20.14.7 with the same result. I'm not sure why this is failing and I can't figure it out. Could someone point me in the right direction?

nkprince007 commented 5 years ago

Same issue here. Is there no proper fix for this yet?

Error: Exit code: null. Command failed: wine /builds/pandas/electron/.cache/electron-builder/winCodeSign/winCodeSign-2.3.1/rcedit-ia32.exe /builds/pandas/electron/dist_electron/win-unpacked/Precon.exe --set-version-string FileDescription Precon --set-version-string ProductName Precon --set-version-string LegalCopyright Copyright © 2018 The Viperdev Developers --set-file-version 0.0.1 --set-product-version 0.0.1.0 --set-version-string InternalName Precon --set-version-string OriginalFilename  --set-version-string CompanyName The Viperdev Developers --set-icon /builds/pandas/electron/build/icons/icon.ico
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0026:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0022:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0022:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.

000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0026:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0022:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0022:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.

Error: Exit code: null. Command failed: wine /builds/pandas/electron/.cache/electron-builder/winCodeSign/winCodeSign-2.3.1/rcedit-ia32.exe /builds/pandas/electron/dist_electron/win-unpacked/Precon.exe --set-version-string FileDescription Precon --set-version-string ProductName Precon --set-version-string LegalCopyright Copyright © 2018 The Viperdev Developers --set-file-version 0.0.1 --set-product-version 0.0.1.0 --set-version-string InternalName Precon --set-version-string OriginalFilename  --set-version-string CompanyName The Viperdev Developers --set-icon /builds/pandas/electron/build/icons/icon.ico
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0026:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0022:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0022:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.

000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0026:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0026:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0022:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0022:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.

    at /builds/pandas/electron/node_modules/builder-util/src/util.ts:128:16
    at ChildProcess.exithandler (child_process.js:296:5)
    at ChildProcess.emit (events.js:182:13)
    at ChildProcess.EventEmitter.emit (domain.js:442:20)
    at maybeClose (internal/child_process.js:962:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
From previous event:
    at execWine (/builds/pandas/electron/node_modules/app-builder-lib/src/wine.ts:64:8)
    at /builds/pandas/electron/node_modules/app-builder-lib/out/winPackager.js:565:34
    at Generator.next (<anonymous>)
    at runCallback (timers.js:705:18)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
    at process.topLevelDomainCallback (domain.js:121:23)
From previous event:
    at WinPackager.signAndEditResources (/builds/pandas/electron/node_modules/app-builder-lib/src/winPackager.ts:339:5)
    at _bluebirdLst.default.map.file (/builds/pandas/electron/node_modules/app-builder-lib/out/winPackager.js:609:25)
    at go$readdir$cb (/builds/pandas/electron/node_modules/graceful-fs/graceful-fs.js:149:14)
    at FSReqWrap.oncomplete (fs.js:141:20)
From previous event:
    at /builds/pandas/electron/node_modules/app-builder-lib/src/winPackager.ts:367:7
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signApp (/builds/pandas/electron/node_modules/app-builder-lib/src/winPackager.ts:390:9)
    at /builds/pandas/electron/node_modules/app-builder-lib/src/platformPackager.ts:236:16
From previous event:
    at WinPackager.doPack (/builds/pandas/electron/node_modules/app-builder-lib/src/platformPackager.ts:166:165)
    at /builds/pandas/electron/node_modules/app-builder-lib/src/platformPackager.ts:112:16
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.pack (/builds/pandas/electron/node_modules/app-builder-lib/src/platformPackager.ts:110:95)
    at /builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:376:24
From previous event:
    at Packager.doBuild (/builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:344:39)
    at /builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:314:57
From previous event:
    at Packager._build (/builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:285:133)
    at /builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:281:23
    at Generator.next (<anonymous>)
    at runCallback (timers.js:705:18)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
    at process.topLevelDomainCallback (domain.js:121:23)
From previous event:
    at Packager.build (/builds/pandas/electron/node_modules/app-builder-lib/src/packager.ts:238:14)
    at build (/builds/pandas/electron/node_modules/app-builder-lib/src/index.ts:58:28)
    at Object.build (/builds/pandas/electron/node_modules/electron-builder/src/builder.ts:227:10)
    at buildApp (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/index.js:172:14)
    at bundle.run (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/index.js:154:15)
    at finalCallback (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:210:39)
    at hooks.done.callAsync.err (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:259:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/builds/pandas/electron/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:15:1)
    at AsyncSeriesHook.lazyCompileHook (/builds/pandas/electron/node_modules/tapable/lib/Hook.js:154:20)
    at emitRecords.err (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:257:22)
    at Compiler.emitRecords (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:371:39)
    at emitAssets.err (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:251:10)
    at hooks.afterEmit.callAsync.err (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:357:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/builds/pandas/electron/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (/builds/pandas/electron/node_modules/tapable/lib/Hook.js:154:20)
    at asyncLib.forEach.err (/builds/pandas/electron/node_modules/vue-cli-plugin-electron-builder/node_modules/webpack/lib/Compiler.js:354:27)
    at done (/builds/pandas/electron/node_modules/neo-async/async.js:2854:11)
    at /builds/pandas/electron/node_modules/neo-async/async.js:2805:7
    at /builds/pandas/electron/node_modules/graceful-fs/graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:141:20)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: Job failed: exit code 1
gkrizek commented 5 years ago

@nkprince007 It's been a long time since I looked at this, but I know I fixed the issue and I'm able to build Electron for Windows now. I'm using Linux and npm. It looks like you are using Windows and Yarn maybe? Either way, I did a lot of googling at the time which I can't find now. But I have these in by build file and I'm pretty sure it fixed it for me. Worth a short at least:

- sed -e '3393d' /opt/wine-stable/share/wine/wine.inf > ./wine.inf
- rm -rf /opt/wine-stable/share/wine/wine.inf
- mv ./wine.inf /opt/wine-stable/share/wine/wine.inf
nkprince007 commented 5 years ago

@gkrizek, I’m using the docker container on a GitLab CI machine which has no X. Is there some way to fix this in CI systems? It works fine on building in my machine. It’s just failing on the CI. If possible please add some docs on how to use it readily with GitLab CI like the docs for Appveyor and Travis on electron.build

repomaa commented 5 years ago

Please reopen. This still happens in CI (headless) environments.

ghost commented 3 years ago

boobie