electron / electron/universal

Bug: mergeASARs is changing file permissions in macOS MAS

Open
#135 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
148
Forks
47
Avg merge
3h 57m
Merged PRs (30d)
5

Description

`@electron/universal` doesn't maintain all file permissions when merging `app-x64.asar.unpacked` and `app-arm64.asar.unpacked` to `app.asar.unpacked` (In my case used via `electron-builder`)

Related: https://github.com/electron-userland/electron-builder/issues/8943

Test case repo: https://github.com/ollm/electron-builder-permissions-bug

mergeASARs: **true**

``` bash
npm run build-mac-store
> electron-builder-permissions-bug@1.0.0 build-mac-store
> electron-builder --universal --mac mas && npm run postbuild
• electron-builder version=26.0.14 os=23.5.0
• loaded configuration file=package.json ("build" field)
• description is missed in the package.json appPackageFile=/Users/llopart/Documents/github/electron-builder-permissions-bug/package.json
• writing effective config file=dist/builder-effective-config.yaml
• executing @electron/rebuild electronVersion=36.1.0 arch=x64 buildFromSource=false appDir=./
• installing native dependencies arch=x64
• completed installing native dependencies
• packaging platform=mas arch=x64 electron=36.1.0 appOutDir=dist/mas-universal-x64-temp
• default Electron icon is used reason=application icon is not set
• executing @electron/rebuild electronVersion=36.1.0 arch=arm64 buildFromSource=false appDir=./
• installing native dependencies arch=arm64
• completed installing native dependencies
• packaging platform=mas arch=arm64 electron=36.1.0 appOutDir=dist/mas-universal-arm64-temp
• packaging platform=mas arch=universal electron=36.1.0 appOutDir=dist/mas-universal
• signing file=dist/mas-universal/electron-builder-permissions-bug.app platform=darwin type=distribution identityName=Developer ID Application: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
• skipped macOS notarization reason=`notarize` options were unable to be generated
• signing file=dist/mas-universal/electron-builder-permissions-bug.app platform=mas type=distribution identityName=Apple Distribution: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
> electron-builder-permissions-bug@1.0.0 postbuild
> node scripts/test-postbuild.js
Original x64 | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Original arm64 | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas x64 (app.asar.unpacked) | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas arm64 (app.asar.unpacked) | F:OK | R:OK | W:OK | X:-- | Exists:OK | -rw-r--r--
Darwin Mas x64 (app-x64.asar.unpacked) | F:-- | R:-- | W:-- | X:-- | Exists:-- |
Darwin Mas arm64 (app-arm64.asar.unpacked) | F:-- | R:-- | W:-- | X:-- | Exists:-- |
```

mergeASARs: **false**

``` bash
npm run build-mac-store
> electron-builder-permissions-bug@1.0.0 build-mac-store
> electron-builder --universal --mac mas && npm run postbuild
• electron-builder version=26.0.14 os=23.5.0
• loaded configuration file=package.json ("build" field)
• description is missed in the package.json appPackageFile=/Users/llopart/Documents/github/electron-builder-permissions-bug/package.json
• writing effective config file=dist/builder-effective-config.yaml
• executing @electron/rebuild electronVersion=36.1.0 arch=x64 buildFromSource=false appDir=./
• installing native dependencies arch=x64
• completed installing native dependencies
• packaging platform=mas arch=x64 electron=36.1.0 appOutDir=dist/mas-universal-x64-temp
• default Electron icon is used reason=application icon is not set
• executing @electron/rebuild electronVersion=36.1.0 arch=arm64 buildFromSource=false appDir=./
• installing native dependencies arch=arm64
• completed installing native dependencies
• packaging platform=mas arch=arm64 electron=36.1.0 appOutDir=dist/mas-universal-arm64-temp
• packaging platform=mas arch=universal electron=36.1.0 appOutDir=dist/mas-universal
• signing file=dist/mas-universal/electron-builder-permissions-bug.app platform=darwin type=distribution identityName=Developer ID Application: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
• skipped macOS notarization reason=`notarize` options were unable to be generated
• signing file=dist/mas-universal/electron-builder-permissions-bug.app platform=mas type=distribution identityName=Apple Distribution: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
> electron-builder-permissions-bug@1.0.0 postbuild
> node scripts/test-postbuild.js
Original x64 | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Original arm64 | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas x64 (app.asar.unpacked) | F:-- | R:-- | W:-- | X:-- | Exists:-- |
Darwin Mas arm64 (app.asar.unpacked) | F:-- | R:-- | W:-- | X:-- | Exists:-- |
Darwin Mas x64 (app-x64.asar.unpacked) | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas arm64 (app-arm64.asar.unpacked) | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.