Compare commits

...

8 Commits

Author SHA1 Message Date
Michael Telatynski
a8237537c0 Remove patch for dmg-builder perspective removal for now
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 22:48:06 +00:00
Michael Telatynski
ac894dad4b Install Quartz in GHA
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 21:58:40 +00:00
Michael Telatynski
df188fdd43 Tweak badge icon position & remove perspective transform
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 17:44:21 +00:00
Michael Telatynski
62d1dca2e7 Fix badge-icon patch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 17:44:08 +00:00
Michael Telatynski
6408d82483 Merge branch 'develop' into t3chguy/mac-dmg-badge 2026-01-20 15:37:03 +00:00
Michael Telatynski
80e4e34091 Remove dmg.icon override
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 15:35:33 +00:00
Michael Telatynski
6afeba0d39 Patch dmg-builder
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 15:35:22 +00:00
Michael Telatynski
781d29c51c Generate badge icon for macOS DMG
to differentiate mounted DMG from executable

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-01-20 15:16:44 +00:00
5 changed files with 86 additions and 50 deletions

View File

@@ -109,6 +109,10 @@ jobs:
with:
python-version: "3.13"
# Install Quartz for DMG badges
# https://github.com/electron-userland/electron-builder/issues/9511#issuecomment-3774092888
- run: sudo pip3 install pyobjc-framework-Quartz
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
node-version-file: .node-version

View File

@@ -162,6 +162,9 @@ const config: Omit<Writable<Configuration>, "electronFuses"> & {
mergeASARs: true,
x64ArchFiles: "**/matrix-seshat/*.node", // hak already runs lipo
},
dmg: {
badgeIcon: "build/icon.icon",
},
win: {
target: ["squirrel", "msi"],
signtoolOptions: {

View File

@@ -85,12 +85,12 @@
"@types/pacote": "^11.1.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"app-builder-lib": "26.4.0",
"app-builder-lib": "26.5.0",
"chokidar": "^5.0.0",
"detect-libc": "^2.0.0",
"electron": "40.0.0",
"electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.4.0",
"electron-builder": "26.5.0",
"electron-builder-squirrel-windows": "26.5.0",
"electron-devtools-installer": "^4.0.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",

View File

@@ -0,0 +1,29 @@
diff --git a/node_modules/dmg-builder/out/dmgUtil.js b/node_modules/dmg-builder/out/dmgUtil.js
index acf576a..c306492 100644
--- a/node_modules/dmg-builder/out/dmgUtil.js
+++ b/node_modules/dmg-builder/out/dmgUtil.js
@@ -99,7 +99,6 @@ async function customizeDmg({ appPath, artifactPath, volumeName, specification,
const settings = {
title: path.basename(volumePath),
icon: await packager.getResource(specification.icon),
- "badge-icon": await packager.getResource(specification.badgeIcon),
"icon-size": specification.iconSize,
"text-size": iconTextSize,
"compression-level": Number(process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || "9"),
@@ -114,6 +113,16 @@ async function customizeDmg({ appPath, artifactPath, volumeName, specification,
// hide_extension: c.hideExtension,
}))) || [],
};
+
+ if (specification.badgeIcon) {
+ let badgeIcon = await packager.getResource(specification.badgeIcon);
+ if (badgeIcon.toLowerCase().endsWith(".icon")) {
+ badgeIcon = await packager.generateIcnsFromIcon(badgeIcon)
+ }
+ settings["badge-icon"] = badgeIcon;
+ delete settings["icon"];
+ }
+
if (specification.backgroundColor != null || specification.background == null) {
settings["background-color"] = specification.backgroundColor || "#ffffff";
const window = specification.window;

View File

@@ -2429,10 +2429,10 @@ app-builder-bin@5.0.0-alpha.12:
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz#2daf82f8badc698e0adcc95ba36af4ff0650dc80"
integrity sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==
app-builder-lib@26.4.0:
version "26.4.0"
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.4.0.tgz#649b4a98b51a90141b73e4f12a74ac5bc0f2eff4"
integrity sha512-Uas6hNe99KzP3xPWxh5LGlH8kWIVjZixzmMJHNB9+6hPyDpjc7NQMkVgi16rQDdpCFy22ZU5sp8ow7tvjeMgYQ==
app-builder-lib@26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-26.5.0.tgz#a247414e8017f5b0785eba53f6d3b4f14fc0c496"
integrity sha512-iRRiJhM0uFMauDeIuv8ESHZSn+LESbdDEuHi7rKdeETjrvBObecXnWJx1f3vs3KtoGcd3hCk1zURKypyvZOtFQ==
dependencies:
"@develar/schema-utils" "~2.6.5"
"@electron/asar" "3.4.1"
@@ -2444,7 +2444,7 @@ app-builder-lib@26.4.0:
"@malept/flatpak-bundler" "^0.4.0"
"@types/fs-extra" "9.0.13"
async-exit-hook "^2.0.1"
builder-util "26.3.4"
builder-util "26.4.1"
builder-util-runtime "9.5.1"
chromium-pickle-js "^0.2.0"
ci-info "4.3.1"
@@ -2452,7 +2452,7 @@ app-builder-lib@26.4.0:
dotenv "^16.4.5"
dotenv-expand "^11.0.6"
ejs "^3.1.8"
electron-publish "26.3.4"
electron-publish "26.4.1"
fs-extra "^10.1.0"
hosted-git-info "^4.1.0"
isbinaryfile "^5.0.0"
@@ -2464,7 +2464,7 @@ app-builder-lib@26.4.0:
plist "3.1.0"
resedit "^1.7.0"
semver "~7.7.3"
tar "^6.1.12"
tar "7.5.3"
temp-file "^3.4.0"
tiny-async-pool "1.3.0"
which "^5.0.0"
@@ -2736,10 +2736,10 @@ builder-util-runtime@9.5.1:
debug "^4.3.4"
sax "^1.2.4"
builder-util@26.3.4:
version "26.3.4"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.3.4.tgz#eb20e2e2895fe360360eddded5d8cf12ad2aad60"
integrity sha512-aRn88mYMktHxzdqDMF6Ayj0rKoX+ZogJ75Ck7RrIqbY/ad0HBvnS2xA4uHfzrGr5D2aLL3vU6OBEH4p0KMV2XQ==
builder-util@26.4.1:
version "26.4.1"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-26.4.1.tgz#22a311fa68c976aa00f39686872799370f688225"
integrity sha512-FlgH43XZ50w3UtS1RVGDWOz8v9qMXPC7upMtKMtBEnYdt1OVoS61NYhKm/4x+cIaWqJTXua0+VVPI+fSPGXNIw==
dependencies:
"7zip-bin" "~5.2.0"
"@types/debug" "^4.1.6"
@@ -3238,13 +3238,13 @@ dir-compare@^4.2.0:
minimatch "^3.0.5"
p-limit "^3.1.0 "
dmg-builder@26.4.0:
version "26.4.0"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.4.0.tgz#dc7edec167b06b1542804e6e4220d1bcaf952b71"
integrity sha512-ce4Ogns4VMeisIuCSK0C62umG0lFy012jd8LMZ6w/veHUeX4fqfDrGe+HTWALAEwK6JwKP+dhPvizhArSOsFbg==
dmg-builder@26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-26.5.0.tgz#e8c287f59f26c99a7760a29959f6fd1e4ce9d5de"
integrity sha512-AyOCzpS1TCxDkSWxAzpfw5l7jBX4C8jKCucmT/6y6/24H5VKSHpjcVJD0W8o5BrFi+skC7Z7+F4aNyHmvn4AAw==
dependencies:
app-builder-lib "26.4.0"
builder-util "26.3.4"
app-builder-lib "26.5.0"
builder-util "26.4.1"
fs-extra "^10.1.0"
iconv-lite "^0.6.2"
js-yaml "^4.1.0"
@@ -3319,26 +3319,26 @@ ejs@^3.1.8:
dependencies:
jake "^10.8.5"
electron-builder-squirrel-windows@26.4.0:
version "26.4.0"
resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.4.0.tgz#4327a349b0c0bdc0eaf4c7ca3a4b0cc40dbdddcb"
integrity sha512-7dvalY38xBzWNaoOJ4sqy2aGIEpl2S1gLPkkB0MHu1Hu5xKQ82il1mKSFlXs6fLpXUso/NmyjdHGlSHDRoG8/w==
electron-builder-squirrel-windows@26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.5.0.tgz#64b631c70342b4fec1498ed86623de9eae09a32c"
integrity sha512-pMXUzwHFIz3S6/jtzg4tB6LBqOM4buEChYCz73JGuV/cWoWhB4xTVVfFuXwrsu0uqhZw8zyhbpyWIEPTE76Dcg==
dependencies:
app-builder-lib "26.4.0"
builder-util "26.3.4"
app-builder-lib "26.5.0"
builder-util "26.4.1"
electron-winstaller "5.4.0"
electron-builder@26.4.0:
version "26.4.0"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.4.0.tgz#f9a8598f045ded4cbaf41efb7bb18a89619c5dd2"
integrity sha512-FCUqvdq2AULL+Db2SUGgjOYTbrgkPxZtCjqIZGnjH9p29pTWyesQqBIfvQBKa6ewqde87aWl49n/WyI/NyUBog==
electron-builder@26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.5.0.tgz#9f9ec6954fd80f0d9897ca2f67044ffd4c8dbd96"
integrity sha512-DHvMBUmDscyvI/JvcJ1ZjrPqikzANbnX83MxUX5Daaeu2I8c2SxFM8LyKEepEZr1uomV1sw7yrLtKhKAT82OdA==
dependencies:
app-builder-lib "26.4.0"
builder-util "26.3.4"
app-builder-lib "26.5.0"
builder-util "26.4.1"
builder-util-runtime "9.5.1"
chalk "^4.1.2"
ci-info "^4.2.0"
dmg-builder "26.4.0"
dmg-builder "26.5.0"
fs-extra "^10.1.0"
lazy-val "^1.0.5"
simple-update-notifier "2.0.0"
@@ -3351,13 +3351,13 @@ electron-devtools-installer@^4.0.0:
dependencies:
unzip-crx-3 "^0.2.0"
electron-publish@26.3.4:
version "26.3.4"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.3.4.tgz#ed05f1ccbb7ee1e53b4140d92735e26fa4bfefd7"
integrity sha512-5/ouDPb73SkKuay2EXisPG60LTFTMNHWo2WLrK5GDphnWK9UC+yzYrzVeydj078Yk4WUXi0+TaaZsNd6Zt5k/A==
electron-publish@26.4.1:
version "26.4.1"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-26.4.1.tgz#2a88b9321e8e93a5efe91433a4d08de8c76f749f"
integrity sha512-nByal9K5Ar3BNJUfCSglXltpKUhJqpwivNpKVHnkwxTET9LKl+NxoojpGF1dSXVFcoBKVm+OhsVa28ZsoshEPA==
dependencies:
"@types/fs-extra" "^9.0.11"
builder-util "26.3.4"
builder-util "26.4.1"
builder-util-runtime "9.5.1"
chalk "^4.1.2"
form-data "^4.0.0"
@@ -6823,7 +6823,18 @@ tapable@^2.2.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6"
integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==
tar@^6.0.5, tar@^6.1.12:
tar@7.5.3, tar@^7.0.0, tar@^7.4.3, tar@^7.5.2:
version "7.5.3"
resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.3.tgz#e1a41236e32446f75e63b720222112c4ffe5b3a1"
integrity sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==
dependencies:
"@isaacs/fs-minipass" "^4.0.0"
chownr "^3.0.0"
minipass "^7.1.2"
minizlib "^3.1.0"
yallist "^5.0.0"
tar@^6.0.5:
version "6.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
@@ -6835,17 +6846,6 @@ tar@^6.0.5, tar@^6.1.12:
mkdirp "^1.0.3"
yallist "^4.0.0"
tar@^7.0.0, tar@^7.4.3, tar@^7.5.2:
version "7.5.3"
resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.3.tgz#e1a41236e32446f75e63b720222112c4ffe5b3a1"
integrity sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==
dependencies:
"@isaacs/fs-minipass" "^4.0.0"
chownr "^3.0.0"
minipass "^7.1.2"
minizlib "^3.1.0"
yallist "^5.0.0"
temp-file@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7"