Squirrel.windows: CreateZipFromDirectory exception on macOS Catalina (10.15)

Created on 1 Apr 2020  ·  11Comments  ·  Source: Squirrel/Squirrel.Windows

Squirrel version(s)
1.9.1 (as bundled in electron-winstaller 4.0.0)

Description

On macOS Catalina (10.15), 32-bit apps such as 32-bit wine can no longer be run. This means that running Windows apps with wine will not work. Instead, it should be using wine64.

Steps to recreate

On macOS 10.15:

  1. Make sure wine-stable and mono are installed (brew cask install xquartz wine-stable mono)
  2. Either:

Expected behavior

Executes normally.

Actual behavior

Output:

Error {
    message: `Failed with exit code: 255␊

    Output:␊
    System.AggregateException: One or more errors occurred. () ---> System.Exception␊
      at Squirrel.Utility.CreateZipFromDirectory (System.String zipFilePath, System.String inFolder) [0x00119] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
       --- End of inner exception stack trace ---␊
      at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <b6f643ae6ccb410db69142d5eaf9b9c1>:0 ␊
      at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00043] in <b6f643ae6ccb410db69142d5eaf9b9c1>:0 ␊
      at System.Threading.Tasks.Task.Wait () [0x00000] in <b6f643ae6ccb410db69142d5eaf9b9c1>:0 ␊
      at Squirrel.ReleasePackage.CreateReleasePackage (System.String outputFile, System.String packagesRootDir, System.Func`2[T,TResult] releaseNotesProcessor, System.Action`1[T] contentsPostProcessHook) [0x001f7] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
      at Squirrel.Update.Program.Releasify (System.String package, System.String targetDir, System.String packagesDir, System.String bootstrapperExe, System.String backgroundGif, System.String signingOpts, System.String baseUrl, System.String setupIcon, System.Boolean generateMsi, System.String frameworkVersion, System.Boolean generateDeltas) [0x00214] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
      at Squirrel.Update.Program.executeCommandLine (System.String[] args) [0x004a2] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
      at Squirrel.Update.Program.main (System.String[] args) [0x00082] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
      at Squirrel.Update.Program.Main (System.String[] args) [0x00006] in <a5ee691170b94c488950c75951ce1ba3>:0 ␊
    ---> (Inner Exception #0) System.Exception␊
      at Squirrel.Utility.CreateZipFromDirectory (System.String zipFilePath, System.String inFolder) [0x00119] in <a5ee691170b94c488950c75951ce1ba3>:0 <---␊
    `,
  }

Additional information

CI output where this occurred: https://app.circleci.com/pipelines/github/electron/windows-installer/81/workflows/fa34897f-dfa9-4a50-856a-34d3c1804c12/jobs/126

To work around this, I'm using macOS 10.14 in CI, but that doesn't help folks who are trying to use electron-winstaller on Catalina.

I suspect it has something to do with this:

https://github.com/Squirrel/Squirrel.Windows/blob/1b7220b3efd9abeaa0b07a0d04c02d2a54b9b585/src/Squirrel/Utility.cs#L399-L402

My suggestion is to either:

  • check the arch at runtime and set wine or wine64 accordingly
  • use the WINE environment variable and fall back to wine

Most helpful comment

Please don't add "same issue"-type comments to this issue, it only adds noise to the folks subscribed to it. Instead, please add a reaction to the issue summary.

All 11 comments

I'm having the same issue.
It would be very helpful if someone could take a look at this.
Thanks in advance.

@malept were you able to find any workaround to this issue, as I'm running into this as well when trying to build my app on macOS Catalina. I thought I might be able to just symlink wine to wine64 on my machine to force the use on wine64, but unfortunately that still results in the same error above.

The workarounds that I know of that reliably work are:

  • Use a version of macOS before 10.15 _(this is what I'm doing in CI for electron-winstaller)_
  • Use a Windows VM
  • Use a Linux VM/container with 32-bit wine installed

same issue on catalina :(

Please don't add "same issue"-type comments to this issue, it only adds noise to the folks subscribed to it. Instead, please add a reaction to the issue summary.

I am waiting a solution for this bug too. ;)

Same for me

I'm also having this issue on Arch Linux with kernel 5.7.7 (so not MacOS exclusive).

@mattfbacon install the 32-bit version of Wine.

Hmm, I'm not sure what you mean, but I believe that you mean regenerate the .wine folder with WINEARCH=win32. I did that, but now it just says "rcedit.exe failed with exit code 1. wine: '/home/matt/.wine' is a 32-bit installation, it cannot support 64-bit applications." and exits. (I don't want to hijack this thread, but I figured I ought to let you know.)

@mattfbacon I still think you have a separate issue with a misconfigured wine (32 bit vs 64 bit). I would suggest (temporarily?) moving ~/.wine to ~/.wine32 so that the 64-bit version of wine can generate its installation.

Any further questions about your wine install should go to the Arch Linux forum or the Wine forum, since this really isn't a Wine troubleshooting issue.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JonZso picture JonZso  ·  5Comments

estyfen picture estyfen  ·  4Comments

CDAGaming picture CDAGaming  ·  4Comments

patrickklaeren picture patrickklaeren  ·  4Comments

mihaimyh picture mihaimyh  ·  4Comments