Squirrel.Windows: CreateZipFromDirectory exception on macOS Catalina (10.15)
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:
- Make sure
wine-stable
andmono
are installed (brew cask install xquartz wine-stable mono
) - Either:
- use
electron-winstaller
, or - run
wine Squirrel.exe --releasify MyApp.1.0.0.nupkg
- use
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:
My suggestion is to either:
- check the arch at runtime and set
wine
orwine64
accordingly - use the
WINE
environment variable and fall back towine
About this issue
- Original URL
- State: open
- Created 4 years ago
- Reactions: 43
- Comments: 18 (1 by maintainers)
Commits related to this issue
- Wine64 Support Added Fixed #1605 — committed to detayteknoloji/Squirrel.Windows by abdurrahmanekr 4 years ago
For people still experiencing this issue try this, fixed the
CreateZipFromDirectory
error for me!Same for me
I am waiting a solution for this bug too. 😉
temporary solution:
brew install 7zip
mkdir wine_proxy
wine_proxy/wine
chmod +x wine_proxy/wine
export PATH="$(pwd)/wine_proxy:$PATH"
wine_proxy/wine:
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.
macOS is officially unsupported for Squirrel.Windows - if you get it to work, that’s great, but tbh I recommend getting an actual Windows machine instead because even if you can build your Electron app on macOS, you’re gonna have to test Windows before you ship something. You can set up CI via GitHub Actions to build an installer with some work
The workarounds that I know of that reliably work are:
electron-winstaller
)@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.