Skip to content

fix(mac): Workaround for hdiutil randomly failing (#5431) #5464

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

chokladmal
Copy link
Contributor

@chokladmal chokladmal commented Dec 10, 2020

For some but not all Mac users building dmg files often fails.

After some investigations the cause seems to be that hdiutil create (when being run to create a temporary dmg file in createStageDmg) fail when trying to unmount the created volume due to "resource busy". As this only affects some Macs it seems to be caused by something on those machines. Suggested is antivirus software but that's not confirmed.

It turns out that after retrying the hdiutil create command a few times it usually succeeds and this workaround is based on that idea - to simply retry the command up to five times before throwing and failing the build. This does not fix the real issue!

Tracking issue: #5431

Unverified

This user has not yet uploaded their public signing key.
…5431)

For unknown reasons hdiutil fails randomly when trying to create the dmg in
the tmp location. This workaround simply retries until it works or throws
the latest error if it fails ten times.
Copy link
Collaborator

@mmaietta mmaietta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure on what could be the actual solution here, as the random failures seem to be more OS-related from what I've searched and my personal experience.

As an improvement here, I'd recommend using builder-util retry<T> function.
https://github.com/electron-userland/electron-builder/blob/master/packages/builder-util/src/util.ts#L384
Just need to export it and it simplifies all your usage to 2 lines.

Related notes: This may be misusing the logger's debug flag, but you could also conditionally add -debug since the retry function doesn't have any explicit logging info. I also increased duration to 1s as sometimes I had to wait that long before a retry when I had my own hdiutil bash scripts

if (log.isDebugEnabled) {
  imageArgs.push("-debug")
}
await retry(spawn("hdiutil", imageArgs), 5, 1000)
return tempDmg

@BelinChung
Copy link

It seems to be the problem caused by this line

// imageArgs.push("-fs", "HFS+", "-fsargs", "-c c=64,a=16,e=16")

When I commented it out, the dmg package was successfully built on Big Sur.

@mmaietta
Copy link
Collaborator

Out of curiosity, can you try just omitting the -fsargs < >? I'm wondering if all we need is

imageArgs.push("-fs", "HFS+")

From the man:

-fsargs newfs_args
                          additional arguments to pass to whatever newfs pro-
                          gram is implied by -fs.  newfs_hfs(8) has a number
                          of options that can reduce the amount of space
                          needed by the filesystem's data structures.  Sup-
                          pressing the journal with -fs HFS+ and passing argu-
                          ments such as -c c=64,a=16,e=16 to -fsargs will min-
                          imize gaps at the front of the filesystem, allowing
                          resize to squeeze more space from the filesystem.
                          For truly optimal filesystems, use makehybrid.

@chokladmal
Copy link
Contributor Author

Thank you for your comments! I really appreciate that you're helping out with this :)
As I mentioned in the issue thread I've tried running hdiutils with -attach with some success. It doesn't fail but it will have to be unmounted at a later stage instead. Right now I have somewhat limited time but I will keep trying, especially the suggested changes to the args.

@lutzroeder
Copy link
Contributor

lutzroeder commented Dec 17, 2020

@chokladmal

  • Is there a linked issue with repro steps this change is tracking?
  • What version of electron-builder and macOS are you running and does the Terminal have full disk access?
  • Did you track down the actual error by running with export DEBUG_DMG=true and repro by running the hdiutil command in isolation?

Trying to find ways to move this from "no idea why this is happening but a for loop might hide it" towards having a reliable repro, diagnosing the underlying issue and driving a fix.

@chokladmal
Copy link
Contributor Author

@lutzroeder I saw that you had already commented in the issue but for the record it's this one #5431

I'm running electron-builder 22.9.1 and macOS Catalina 10.15.17

In #5431 we've narrowed it down to hdiutil failing due to "resource busy" when hdiutil create tries to unmount the volume.

@chokladmal
Copy link
Contributor Author

Out of curiosity, can you try just omitting the -fsargs < >? I'm wondering if all we need is

imageArgs.push("-fs", "HFS+")

From the man:

-fsargs newfs_args
                          additional arguments to pass to whatever newfs pro-
                          gram is implied by -fs.  newfs_hfs(8) has a number
                          of options that can reduce the amount of space
                          needed by the filesystem's data structures.  Sup-
                          pressing the journal with -fs HFS+ and passing argu-
                          ments such as -c c=64,a=16,e=16 to -fsargs will min-
                          imize gaps at the front of the filesystem, allowing
                          resize to squeeze more space from the filesystem.
                          For truly optimal filesystems, use makehybrid.

I've tried it. At first it seemed to be working but it finally failed with the same


DIHLDiskImageCreate() returned 49168
hdiutil: create failed - Resource busy

after ten or so tries.

Unverified

This user has not yet uploaded their public signing key.
Instead of having a similar implementation in createStageDmg as
the already existing "retry" function in builder-util it is now
exported from that package and used to handle the rerun-on-failure
in createStageDmg.
@mmaietta
Copy link
Collaborator

This should be fixed (from a PR revert) in the latest prerelease cut 22.10.4

@lutzroeder
Copy link
Contributor

lutzroeder commented Dec 23, 2020

@mmaietta #5431 might be a different issue? The reverted PR was a recent regression in 22.10.3 which isn't broadly used and it repros reliably. This issue sounds like it succeeds on retry, shows a different error and also happened on previous versions? Next steps are probably either finding a reliable repro and tracking down why this is happening.

@chokladmal
Copy link
Contributor Author

chokladmal commented Dec 23, 2020 via email

@lutzroeder
Copy link
Contributor

lutzroeder commented Dec 23, 2020

@chokladmal, the goal is to root cause the issue, less how to recreate behavior that would require adding a retry approach to the build pipeline. Masking fragile behavior that isn't well understood tends to lead to more fragile and unpredictable behavior. For example, if this is caused by a virus scanner, the right fix is probably to suspend the scanner during build, add an exclusion or work with the vendor. If the issue is a bug in hdiutil the right fix would be fixing hdiutil. Retry should be more of a last resort if the underlying issue is understood and the real fix is blocked. Even then it should probably be opt-in based on a flag.

@shrpne
Copy link

shrpne commented Jan 12, 2021

@lutzroeder can it be released as a workaround to fix current issue and then be replaced with real fix, when it ready?

Because for now there is no workaround. I even can't install chokladmal's fork because it is monorepo. And since it is typescript it requires a lot of tooling to apply his patch to my own project.

I see no problems with releasing it. It should not cause performance issues or bugs to other users. The only problem with it, it is not beautiful, but it works.

@mmaietta
Copy link
Collaborator

@shrpne here's a script that @lutzroeder put together for compiling any branch and patching the results. Run from your current app directory (with electron-builder one dir up. You can adjust paths as needed)

#!/bin/bash

pushd ../electron-builder
yarn compile
popd

rsync --recursive ../electron-builder/packages/app-builder-lib/out/ ./node_modules/app-builder-lib/out/
rsync --recursive ../electron-builder/packages/app-builder-lib/electron-osx-sign/ ./node_modules/app-builder-lib/electron-osx-sign/
rsync --recursive ../electron-builder/packages/builder-util/out/ ./node_modules/builder-util/out/
rsync --recursive ../electron-builder/packages/dmg-builder/out/ ./node_modules/dmg-builder/out/

cp ../electron-builder/packages/app-builder-lib/scheme.json ./node_modules/app-builder-lib/scheme.json

yarn patch-package app-builder-lib
yarn patch-package builder-util
yarn patch-package dmg-builder

@lutzroeder
Copy link
Contributor

lutzroeder commented Jan 12, 2021

@shrpne not my call to make. This is up to the maintainer. This is an open source project so the challenge isn't shipping workarounds. The question is more who would own getting to the bottom of this and drive the right fix.

@lutzroeder
Copy link
Contributor

lutzroeder commented Jan 12, 2021

@mmaietta the script looks like it got merged from different sources. Why is patch-package needed?

@mmaietta
Copy link
Collaborator

@lutzroeder patch-package allows changes to be persisted in the project repo as a .patch file to save your local changes.

@shrpne
Copy link

shrpne commented Jan 13, 2021

@mmaietta thank you for sharing this script, but it still looks pretty complicated, as I understand it is can't be used as a drop-in solution.

@lutzroeder honestly I don't understand, why opensource project can't accept temporary workaround, while waiting for real fix, which then will replace this workaround.
From my point of view, working opensource project with temporary workaround is better than temporary not working opensource project without workarounds.

@lutzroeder
Copy link
Contributor

lutzroeder commented Jan 13, 2021

@shrpne sure, not arguing that and it’s not my call to make for this repo. You have to ask the maintainer for a release. Why not come up with the real fix now. Are you signing up to get to the bottom of this later. What is going to change to make this easier when folks are hitting the issue less often or in more random circumstances due to the workaround masking the real issue. I’m more asking why the problem isn’t better understood and what can be done about that. You are asking for the cheapest way to make it not your problem.

@develar develar merged commit 53270cf into electron-userland:master Jan 15, 2021
@jzybert
Copy link

jzybert commented Mar 2, 2021

Which version of electron will this be included in?

@mmaietta
Copy link
Collaborator

mmaietta commented Mar 2, 2021

Please update to latest electron-builder@22.10.5

facebook-github-bot referenced this pull request in facebook/flipper Mar 23, 2021
Summary:
allow-large-files
Bumps [app-builder-lib](https://github.com/electron-userland/electron-builder) from 22.9.1 to 22.10.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/electron-userland/electron-builder/releases">app-builder-lib's releases</a>.</em></p>
<blockquote>
<h2>22.10.5</h2>
<p>We have a new maintainer — welcome Mike Maietta (<a href="https://github.com/mmaietta"><code>@​mmaietta</code></a>)!</p>
<p><strong>electron-updater</strong>  4.3.8 contains fix for <a href="https://github.com/electron-userland/electron-builder/issues/5595">#5595</a>. This version is a pre-release.</p>
<h3>Bug Fixes</h3>
<ul>
<li>Look for the Amazon cred header to remove auth header (<a href="https://github.com/electron-userland/electron-builder/issues/5594">#5594</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/46a8840bb4b3ed9b81ac65d3351debc4e34f30ce">46a8840</a>)</li>
<li><strong>mac:</strong> fix &quot;Contents/Info.plist&quot; don't have identical SHAs when creating a universal build (<a href="https://github.com/electron-userland/electron-builder/issues/5550">#5550</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0ba839b72b6a13178ad5bc4b03a47f9aca980650">0ba839b</a>)</li>
<li>updating nsis script to properly identify arm64 vs x64 vs ia32 package files within universal installers. (<a href="https://github.com/electron-userland/electron-builder/issues/5558">#5558</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/60f7fe367c54f7c1274e2628534f43cb9a93fcf6">60f7fe3</a>)</li>
<li><strong>mac:</strong> Allow arm64 macs to update to x64 version if no arm64 version available (<a href="https://github.com/electron-userland/electron-builder/issues/5524">#5524</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/dc5c2f8e772da4a9e6f1cf9578c70f60ddc36b37">dc5c2f8</a>)</li>
<li><strong>mac:</strong> Pass platformName and options in doPack (<a href="https://github.com/electron-userland/electron-builder/issues/5511">#5511</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/f78e3f48d7cde71fd52fe1024c114bbe23f83562">f78e3f4</a>)</li>
<li><strong>mac:</strong> Workaround for hdiutil randomly failing (<a href="https://github.com/electron-userland/electron-builder/issues/5431">#5431</a>) (<a href="https://github.com/electron-userland/electron-builder/issues/5464">#5464</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/53270cfe4eb2de1ac55e4b281c2c53483d4d1f2e">53270cf</a>)</li>
<li>binary detection signing (<a href="https://github.com/electron-userland/electron-builder/issues/5493">#5493</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/a6e86b593048b4eb3047b7c3a54d02d0521b02d2">a6e86b5</a>), closes <a href="https://github.com/electron-userland/electron-builder/issues/5465">#5465</a></li>
<li>ci-tests (<a href="https://github.com/electron-userland/electron-builder/issues/5523">#5523</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ced6e50b93c621de5de07838205d739010e2526b">ced6e50</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>electron-updater:</strong> follow <code>autoInstallOnAppQuit = false</code> on macOS (<a href="https://github.com/electron-userland/electron-builder/issues/5271">#5271</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/1643d569600a197858585e895e3176948d3eec85">1643d56</a>)</li>
<li>add support for executableName to non-Linux Platforms (<a href="https://github.com/electron-userland/electron-builder/issues/5409">#5409</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/106b68010f2daa0fb7d370c889b4a5494fa2887f">106b680</a>)</li>
<li>Custom electronDist callback (<a href="https://github.com/electron-userland/electron-builder/issues/5527">#5527</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/4f4e0187715a57a358ab8ccfefef3fd0f8186584">4f4e018</a>)</li>
<li>macOS default architecture (<a href="https://github.com/electron-userland/electron-builder/issues/5495">#5495</a>) (<a href="https://github.com/electron-userland/electron-builder/issues/5504">#5504</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/5203d7eb15726605e8987aeed7a5ccedc8152e04">5203d7e</a>)</li>
</ul>
<h2>22.10.4</h2>
<h3>Bug Fixes</h3>
<ul>
<li>CI unit tests (<a href="https://github.com/electron-userland/electron-builder/issues/5489">#5489</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/637334ddbadebf503a45f79adf0b481fcba98679">637334d</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Apple Silicon Universal Support (<a href="https://github.com/electron-userland/electron-builder/issues/5481">#5481</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ca20151c3416324d2413f451dea0c9e3853bab79">ca20151</a>)</li>
<li><strong>mas:</strong> Apple Silicon support (<a href="https://github.com/electron-userland/electron-builder/issues/5484">#5484</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/6b7d30555d8f88a3a908a25adb3e8836ccdf5bc8">6b7d305</a>)</li>
</ul>
<h3>Reverts</h3>
<ul>
<li>Revert &quot;fix: codesign all binary-like files (<a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a>)&quot; (<a href="https://github.com/electron-userland/electron-builder/issues/5488">#5488</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/026227888f8c537855abf6d6aa2141a692a6bc8e">0262278</a>), closes <a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a> <a href="https://github.com/electron-userland/electron-builder/issues/5488">#5488</a></li>
</ul>
<h2>22.10.3</h2>
<h3>Bug Fixes</h3>
<ul>
<li>signing of playwright (<a href="https://github.com/electron-userland/electron-builder/issues/5451">#5451</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/50750683b11d5670a182bd72f7cab14023e2b030">5075068</a>)</li>
<li><strong>dmg:</strong> new version of mac_alias (<a href="https://github.com/electron-userland/electron-builder/issues/5460">#5460</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/a8acb583bc3c6fb1ff0dca2f07d1eefa26b1780a">a8acb58</a>)</li>
<li>compiler error and test updates (<a href="https://github.com/electron-userland/electron-builder/issues/5449">#5449</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0dec1b8c198f1f9ca0124649883945ba561d11d3">0dec1b8</a>)</li>
<li><strong>AppImage:</strong> Add default argument --no-sandbox (<a href="https://github.com/electron-userland/electron-builder/issues/4496">#4496</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ede6d50ddb6c23fe6bbb056bd80509c8f2ea0116">ede6d50</a>)</li>
<li><strong>linux:</strong> Linux icon is not set if path is not explicitly defined in config (<a href="https://github.com/electron-userland/electron-builder/issues/5385">#5385</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/9fd950bc046ca1748950f63894993947da8185c5">9fd950b</a>)</li>
<li><strong>nsis:</strong> cs locale typos in messages (<a href="https://github.com/electron-userland/electron-builder/issues/5358">#5358</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0fb69b5d11e5c8aa707b7af709a0ab52f5019a9f">0fb69b5</a>)</li>
<li>codesign all binary-like files (<a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/27ea1b2b9ce47a234e82772e09adf0bc7931e0df">27ea1b2</a>)</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/electron-userland/electron-builder/commit/79940292bdd1a5de45b33453be492ea67529434b"><code>7994029</code></a> Cannot read property 'log' of undefined (<a href="https://github.com/electron-userland/electron-builder/issues/5622">#5622</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/1643d569600a197858585e895e3176948d3eec85"><code>1643d56</code></a> feat(electron-updater): follow <code>autoInstallOnAppQuit = false</code> on macOS (<a href="https://github.com/electron-userland/electron-builder/issues/5271">#5271</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/0360cd1705c7deab2e07f2a9abf8cdb652f945ff"><code>0360cd1</code></a> chore(build-utils): remove unreachable useless statement in createMessage (<a href="https://github.com/electron-userland/electron-builder/issues/5">https://github.com/facebook/flipper/issues/5</a>...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/c348e318ce6e9a1d67febe40003aeb6badedea8f"><code>c348e31</code></a> Add &quot;open&quot; guard for AsarUtil to fix concurrent builds (<a href="https://github.com/electron-userland/electron-builder/issues/5567">#5567</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/11aa06c701a2ff091139a8bf8277151f7172efbb"><code>11aa06c</code></a> Detect CI tag for Bitbucket pipelines</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/8decc1867428ef532e81466e239a8b3ad04e4d9c"><code>8decc18</code></a> (fix) master branch depCheck + tests (<a href="https://github.com/electron-userland/electron-builder/issues/5630">#5630</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/46a8840bb4b3ed9b81ac65d3351debc4e34f30ce"><code>46a8840</code></a> fix: Look for the Amazon cred header to remove auth header (<a href="https://github.com/electron-userland/electron-builder/issues/5594">#5594</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/0ba839b72b6a13178ad5bc4b03a47f9aca980650"><code>0ba839b</code></a> fix(mac): fix &quot;Contents/Info.plist&quot; don't have identical SHAs when creating a...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/60f7fe367c54f7c1274e2628534f43cb9a93fcf6"><code>60f7fe3</code></a> fix: updating nsis script to properly identify arm64 vs x64 vs ia32 package f...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/5de0db981d069584933e88781a41a411e87ff1cd"><code>5de0db9</code></a> chore: lint</li>
<li>Additional commits viewable in <a href="https://github.com/electron-userland/electron-builder/compare/v22.9.1...v22.10.5">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=app-builder-lib&package-manager=npm_and_yarn&previous-version=22.9.1&new-version=22.10.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Pull Request resolved: #2072

Reviewed By: passy

Differential Revision: D27230105

Pulled By: priteshrnandgaonkar

fbshipit-source-id: e53e942319a15d982797f7ce3af128a8b25b357f
facebook-github-bot referenced this pull request in facebook/flipper Mar 23, 2021
Summary:
Bumps [electron-builder](https://github.com/electron-userland/electron-builder) from 22.9.1 to 22.10.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/electron-userland/electron-builder/releases">electron-builder's releases</a>.</em></p>
<blockquote>
<h2>22.10.5</h2>
<p>We have a new maintainer — welcome Mike Maietta (<a href="https://github.com/mmaietta"><code>@​mmaietta</code></a>)!</p>
<p><strong>electron-updater</strong>  4.3.8 contains fix for <a href="https://github.com/electron-userland/electron-builder/issues/5595">#5595</a>. This version is a pre-release.</p>
<h3>Bug Fixes</h3>
<ul>
<li>Look for the Amazon cred header to remove auth header (<a href="https://github.com/electron-userland/electron-builder/issues/5594">#5594</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/46a8840bb4b3ed9b81ac65d3351debc4e34f30ce">46a8840</a>)</li>
<li><strong>mac:</strong> fix &quot;Contents/Info.plist&quot; don't have identical SHAs when creating a universal build (<a href="https://github.com/electron-userland/electron-builder/issues/5550">#5550</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0ba839b72b6a13178ad5bc4b03a47f9aca980650">0ba839b</a>)</li>
<li>updating nsis script to properly identify arm64 vs x64 vs ia32 package files within universal installers. (<a href="https://github.com/electron-userland/electron-builder/issues/5558">#5558</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/60f7fe367c54f7c1274e2628534f43cb9a93fcf6">60f7fe3</a>)</li>
<li><strong>mac:</strong> Allow arm64 macs to update to x64 version if no arm64 version available (<a href="https://github.com/electron-userland/electron-builder/issues/5524">#5524</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/dc5c2f8e772da4a9e6f1cf9578c70f60ddc36b37">dc5c2f8</a>)</li>
<li><strong>mac:</strong> Pass platformName and options in doPack (<a href="https://github.com/electron-userland/electron-builder/issues/5511">#5511</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/f78e3f48d7cde71fd52fe1024c114bbe23f83562">f78e3f4</a>)</li>
<li><strong>mac:</strong> Workaround for hdiutil randomly failing (<a href="https://github.com/electron-userland/electron-builder/issues/5431">#5431</a>) (<a href="https://github.com/electron-userland/electron-builder/issues/5464">#5464</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/53270cfe4eb2de1ac55e4b281c2c53483d4d1f2e">53270cf</a>)</li>
<li>binary detection signing (<a href="https://github.com/electron-userland/electron-builder/issues/5493">#5493</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/a6e86b593048b4eb3047b7c3a54d02d0521b02d2">a6e86b5</a>), closes <a href="https://github.com/electron-userland/electron-builder/issues/5465">#5465</a></li>
<li>ci-tests (<a href="https://github.com/electron-userland/electron-builder/issues/5523">#5523</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ced6e50b93c621de5de07838205d739010e2526b">ced6e50</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>electron-updater:</strong> follow <code>autoInstallOnAppQuit = false</code> on macOS (<a href="https://github.com/electron-userland/electron-builder/issues/5271">#5271</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/1643d569600a197858585e895e3176948d3eec85">1643d56</a>)</li>
<li>add support for executableName to non-Linux Platforms (<a href="https://github.com/electron-userland/electron-builder/issues/5409">#5409</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/106b68010f2daa0fb7d370c889b4a5494fa2887f">106b680</a>)</li>
<li>Custom electronDist callback (<a href="https://github.com/electron-userland/electron-builder/issues/5527">#5527</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/4f4e0187715a57a358ab8ccfefef3fd0f8186584">4f4e018</a>)</li>
<li>macOS default architecture (<a href="https://github.com/electron-userland/electron-builder/issues/5495">#5495</a>) (<a href="https://github.com/electron-userland/electron-builder/issues/5504">#5504</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/5203d7eb15726605e8987aeed7a5ccedc8152e04">5203d7e</a>)</li>
</ul>
<h2>22.10.4</h2>
<h3>Bug Fixes</h3>
<ul>
<li>CI unit tests (<a href="https://github.com/electron-userland/electron-builder/issues/5489">#5489</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/637334ddbadebf503a45f79adf0b481fcba98679">637334d</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Apple Silicon Universal Support (<a href="https://github.com/electron-userland/electron-builder/issues/5481">#5481</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ca20151c3416324d2413f451dea0c9e3853bab79">ca20151</a>)</li>
<li><strong>mas:</strong> Apple Silicon support (<a href="https://github.com/electron-userland/electron-builder/issues/5484">#5484</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/6b7d30555d8f88a3a908a25adb3e8836ccdf5bc8">6b7d305</a>)</li>
</ul>
<h3>Reverts</h3>
<ul>
<li>Revert &quot;fix: codesign all binary-like files (<a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a>)&quot; (<a href="https://github.com/electron-userland/electron-builder/issues/5488">#5488</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/026227888f8c537855abf6d6aa2141a692a6bc8e">0262278</a>), closes <a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a> <a href="https://github.com/electron-userland/electron-builder/issues/5488">#5488</a></li>
</ul>
<h2>22.10.3</h2>
<h3>Bug Fixes</h3>
<ul>
<li>signing of playwright (<a href="https://github.com/electron-userland/electron-builder/issues/5451">#5451</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/50750683b11d5670a182bd72f7cab14023e2b030">5075068</a>)</li>
<li><strong>dmg:</strong> new version of mac_alias (<a href="https://github.com/electron-userland/electron-builder/issues/5460">#5460</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/a8acb583bc3c6fb1ff0dca2f07d1eefa26b1780a">a8acb58</a>)</li>
<li>compiler error and test updates (<a href="https://github.com/electron-userland/electron-builder/issues/5449">#5449</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0dec1b8c198f1f9ca0124649883945ba561d11d3">0dec1b8</a>)</li>
<li><strong>AppImage:</strong> Add default argument --no-sandbox (<a href="https://github.com/electron-userland/electron-builder/issues/4496">#4496</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/ede6d50ddb6c23fe6bbb056bd80509c8f2ea0116">ede6d50</a>)</li>
<li><strong>linux:</strong> Linux icon is not set if path is not explicitly defined in config (<a href="https://github.com/electron-userland/electron-builder/issues/5385">#5385</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/9fd950bc046ca1748950f63894993947da8185c5">9fd950b</a>)</li>
<li><strong>nsis:</strong> cs locale typos in messages (<a href="https://github.com/electron-userland/electron-builder/issues/5358">#5358</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/0fb69b5d11e5c8aa707b7af709a0ab52f5019a9f">0fb69b5</a>)</li>
<li>codesign all binary-like files (<a href="https://github.com/electron-userland/electron-builder/issues/5322">#5322</a>) (<a href="https://github.com/electron-userland/electron-builder/commit/27ea1b2b9ce47a234e82772e09adf0bc7931e0df">27ea1b2</a>)</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/electron-userland/electron-builder/commit/79940292bdd1a5de45b33453be492ea67529434b"><code>7994029</code></a> Cannot read property 'log' of undefined (<a href="https://github.com/electron-userland/electron-builder/issues/5622">#5622</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/1643d569600a197858585e895e3176948d3eec85"><code>1643d56</code></a> feat(electron-updater): follow <code>autoInstallOnAppQuit = false</code> on macOS (<a href="https://github.com/electron-userland/electron-builder/issues/5271">#5271</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/0360cd1705c7deab2e07f2a9abf8cdb652f945ff"><code>0360cd1</code></a> chore(build-utils): remove unreachable useless statement in createMessage (<a href="https://github.com/electron-userland/electron-builder/issues/5">https://github.com/facebook/flipper/issues/5</a>...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/c348e318ce6e9a1d67febe40003aeb6badedea8f"><code>c348e31</code></a> Add &quot;open&quot; guard for AsarUtil to fix concurrent builds (<a href="https://github.com/electron-userland/electron-builder/issues/5567">#5567</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/11aa06c701a2ff091139a8bf8277151f7172efbb"><code>11aa06c</code></a> Detect CI tag for Bitbucket pipelines</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/8decc1867428ef532e81466e239a8b3ad04e4d9c"><code>8decc18</code></a> (fix) master branch depCheck + tests (<a href="https://github.com/electron-userland/electron-builder/issues/5630">#5630</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/46a8840bb4b3ed9b81ac65d3351debc4e34f30ce"><code>46a8840</code></a> fix: Look for the Amazon cred header to remove auth header (<a href="https://github.com/electron-userland/electron-builder/issues/5594">#5594</a>)</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/0ba839b72b6a13178ad5bc4b03a47f9aca980650"><code>0ba839b</code></a> fix(mac): fix &quot;Contents/Info.plist&quot; don't have identical SHAs when creating a...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/60f7fe367c54f7c1274e2628534f43cb9a93fcf6"><code>60f7fe3</code></a> fix: updating nsis script to properly identify arm64 vs x64 vs ia32 package f...</li>
<li><a href="https://github.com/electron-userland/electron-builder/commit/5de0db981d069584933e88781a41a411e87ff1cd"><code>5de0db9</code></a> chore: lint</li>
<li>Additional commits viewable in <a href="https://github.com/electron-userland/electron-builder/compare/v22.9.1...v22.10.5">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=electron-builder&package-manager=npm_and_yarn&previous-version=22.9.1&new-version=22.10.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Pull Request resolved: #2068

Reviewed By: passy

Differential Revision: D27230125

Pulled By: priteshrnandgaonkar

fbshipit-source-id: 775e8d532b0516bf485b95e7057544d1d5a91e59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants