From 3802f6c150edd6f74b81bbfa4c36b9e01fec5c07 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 24 Mar 2026 16:51:03 +0000 Subject: [PATCH] Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .github/workflows/build_desktop_linux.yaml | 3 +- .github/workflows/build_desktop_macos.yaml | 8 +- .github/workflows/build_desktop_test.yaml | 1 + .github/workflows/build_desktop_windows.yaml | 4 +- package.json | 3 +- patches/app-builder-lib.patch | 24 ++++++ pnpm-lock.yaml | 86 +++----------------- 7 files changed, 45 insertions(+), 84 deletions(-) create mode 100644 patches/app-builder-lib.patch diff --git a/.github/workflows/build_desktop_linux.yaml b/.github/workflows/build_desktop_linux.yaml index 5b95365961..66b0fcc90d 100644 --- a/.github/workflows/build_desktop_linux.yaml +++ b/.github/workflows/build_desktop_linux.yaml @@ -167,10 +167,9 @@ jobs: pnpm -C apps/desktop run build:native - name: Fix permissions - working-directory: apps/desktop run: | # For .hak - sudo chown -R $USER:$USER .hak + sudo chown -R $USER:$USER apps/desktop/.hak # For node_modules pnpm strict security sudo chmod +x node_modules/7zip-bin/linux/*/7za diff --git a/.github/workflows/build_desktop_macos.yaml b/.github/workflows/build_desktop_macos.yaml index e763a1018c..76c8e6ebfd 100644 --- a/.github/workflows/build_desktop_macos.yaml +++ b/.github/workflows/build_desktop_macos.yaml @@ -8,8 +8,6 @@ on: required: false APPLE_ID_PASSWORD: required: false - APPLE_TEAM_ID: - required: false APPLE_CSC_KEY_PASSWORD: required: false APPLE_CSC_LINK: @@ -26,7 +24,7 @@ on: sign: type: string required: false - description: "Whether to sign & notarise the build, requires 'packages.element.io' environment" + description: "Whether to sign & notarise the build, requires 'Desktop Apple' environment" base-url: type: string required: false @@ -73,7 +71,7 @@ jobs: build: name: Build macOS Universal runs-on: macos-15 # M1 - environment: ${{ inputs.sign && 'packages.element.io' || '' }} + environment: ${{ inputs.sign && 'Desktop Apple' || '' }} steps: - uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1 with: @@ -137,7 +135,7 @@ jobs: run: | pnpm run build:universal --publish never -m ${TARGETS} env: - APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + APPLE_TEAM_ID: ${{ vars.APPLE_TEAM_ID }} APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }} diff --git a/.github/workflows/build_desktop_test.yaml b/.github/workflows/build_desktop_test.yaml index 6bd1cbaab2..70edf863ed 100644 --- a/.github/workflows/build_desktop_test.yaml +++ b/.github/workflows/build_desktop_test.yaml @@ -77,6 +77,7 @@ jobs: # it to be enabled to test Electron apps, so turn it back on. - name: Set EnableNodeCliInspectArguments fuse enabled run: $RUN_AS npx @electron/fuses write --app "$EXECUTABLE" EnableNodeCliInspectArguments=on + working-directory: apps/desktop shell: bash env: # We need sudo on Linux as it is installed in /opt/ diff --git a/.github/workflows/build_desktop_windows.yaml b/.github/workflows/build_desktop_windows.yaml index 3c07ea4947..b2686ed2a9 100644 --- a/.github/workflows/build_desktop_windows.yaml +++ b/.github/workflows/build_desktop_windows.yaml @@ -33,7 +33,7 @@ on: sign: type: string required: false - description: "Whether to sign & notarise the build, requires 'packages.element.io' environment" + description: "Whether to sign & notarise the build, requires 'Desktop eSigner' environment" blob_report: type: boolean required: false @@ -81,7 +81,7 @@ jobs: build: name: Build Windows ${{ inputs.arch }} runs-on: windows-2025 - environment: ${{ inputs.sign && 'packages.element.io' || '' }} + environment: ${{ inputs.sign && 'Desktop eSigner' || '' }} env: SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x86/signtool.exe" steps: diff --git a/package.json b/package.json index 81e7cf5959..18d52005d9 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,8 @@ "jsdom": "patches/jsdom.patch", "rollup": "patches/rollup.patch", "knip": "patches/knip.patch", - "postcss-mixins": "patches/postcss-mixins.patch" + "postcss-mixins": "patches/postcss-mixins.patch", + "app-builder-lib": "patches/app-builder-lib.patch" }, "peerDependencyRules": { "allowedVersions": { diff --git a/patches/app-builder-lib.patch b/patches/app-builder-lib.patch new file mode 100644 index 0000000000..c698f4678d --- /dev/null +++ b/patches/app-builder-lib.patch @@ -0,0 +1,24 @@ +diff --git a/out/node-module-collector/moduleManager.js b/out/node-module-collector/moduleManager.js +index f483d9387a3270afc884b8478f19dd2825477a04..a6b2a28befda5881e45368a07ae793f64f4aed41 100644 +--- a/out/node-module-collector/moduleManager.js ++++ b/out/node-module-collector/moduleManager.js +@@ -115,8 +115,7 @@ class ModuleManager { + return { packageDir: path.dirname(direct), packageJson: json }; + } + } +- // 2) upward hoisted search, then 3) downward non-hoisted search +- return (await this.upwardSearch(parentDir, pkgName, requiredRange)) || (await this.downwardSearch(parentDir, pkgName, requiredRange)) || null; ++ return (await this.upwardSearch(parentDir, pkgName, requiredRange)) || null; + } + semverSatisfies(found, range) { + if ((0, builder_util_1.isEmptyOrSpaces)(range) || range === "*") { +@@ -157,6 +156,9 @@ class ModuleManager { + let current = path.resolve(parentDir); + const root = path.parse(current).root; + while (true) { ++ const pkg = await this.downwardSearch(current, pkgName, requiredRange); ++ if (pkg) return pkg; ++ + const candidate = path.join(current, "node_modules", pkgName, "package.json"); + if (await this.exists[candidate]) { + const json = await this.json[candidate]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d773ca8ee6..fcb55c2f44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,6 +73,9 @@ patchedDependencies: '@vector-im/matrix-wysiwyg': hash: 7bdf6150f2905bc2f055a6bcaa7b9d78fa7ffde82e800bcc454ac7b0096bd65e path: patches/@vector-im__matrix-wysiwyg.patch + app-builder-lib: + hash: 1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0 + path: patches/app-builder-lib.patch await-lock: hash: b767a571946a4f8710ac54b1a7bec8a7c1570f9b85d75922392fae20d0578964 path: patches/await-lock.patch @@ -219,7 +222,7 @@ importers: version: 8.56.1(eslint@8.57.1)(typescript@5.9.3) app-builder-lib: specifier: 26.8.2 - version: 26.8.2(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) + version: 26.8.2(patch_hash=1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0)(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) chokidar: specifier: ^5.0.0 version: 5.0.0 @@ -318,7 +321,7 @@ importers: version: 2.5.0(patch_hash=016146c9cc96e6363609d2b2ac0896ccef567882eb1d73b75a77b8a30929de96)(react@19.2.4) '@sentry/browser': specifier: ^10.0.0 - version: 10.40.0 + version: 10.42.0 '@types/png-chunks-extract': specifier: ^1.0.2 version: 1.0.2 @@ -3429,12 +3432,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/resources@2.5.0': - resolution: {integrity: sha512-F8W52ApePshpoSrfsSk1H2yJn9aKjCrbpQF1M9Qii0GHzbfVeFUB+rc3X4aggyZD8x9Gu3Slua+s6krmq6Dt8g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/resources@2.6.0': resolution: {integrity: sha512-D4y/+OGe3JSuYUCBxtH5T9DSAWNcvCb/nQWIga8HNtXTVPQn59j0nTBAgaAXxUVBDl40mG3Tc76b46wPlZaiJQ==} engines: {node: ^18.19.0 || >=20.6.0} @@ -4363,34 +4360,18 @@ packages: '@rushstack/ts-command-line@5.1.7': resolution: {integrity: sha512-Ugwl6flarZcL2nqH5IXFYk3UR3mBVDsVFlCQW/Oaqidvdb/5Ota6b/Z3JXWIdqV3rOR2/JrYoAHanWF5rgenXA==} - '@sentry-internal/browser-utils@10.40.0': - resolution: {integrity: sha512-3CDeVNBXYOIvBVdT0SOdMZx5LzYDLuhGK/z7A14sYZz4Cd2+f4mSeFDaEOoH/g2SaY2CKR5KGkAADy8IyjZ21w==} - engines: {node: '>=18'} - '@sentry-internal/browser-utils@10.42.0': resolution: {integrity: sha512-HCEICKvepxN4/6NYfnMMMlppcSwIEwtS66X6d1/mwaHdi2ivw0uGl52p7Nfhda/lIJArbrkWprxl0WcjZajhQA==} engines: {node: '>=18'} - '@sentry-internal/feedback@10.40.0': - resolution: {integrity: sha512-V/ixkcdCNMo04KgsCEeNEu966xUUTD6czKT2LOAO5siZACqFjT/Rp9VR1n7QQrVo3sL7P3QNiTHtX0jaeWbwzg==} - engines: {node: '>=18'} - '@sentry-internal/feedback@10.42.0': resolution: {integrity: sha512-lpPcHsog10MVYFTWE0Pf8vQRqQWwZHJpkVl2FEb9/HDdHFyTBUhCVoWo1KyKaG7GJl9AVKMAg7bp9SSNArhFNQ==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@10.40.0': - resolution: {integrity: sha512-wzQwilFHO2baeCt0dTMf0eW+rgK8O+mkisf9sQzPXzG3Krr/iVtFg1T5T1Th3YsCsEdn6yQ3hcBPLEXjMSvccg==} - engines: {node: '>=18'} - '@sentry-internal/replay-canvas@10.42.0': resolution: {integrity: sha512-am3m1Fj8ihoPfoYo41Qq4KeCAAICn4bySso8Oepu9dMNe9Lcnsf+reMRS2qxTPg3pZDc4JEMOcLyNCcgnAfrHw==} engines: {node: '>=18'} - '@sentry-internal/replay@10.40.0': - resolution: {integrity: sha512-vsH2Ut0KIIQIHNdS3zzEGLJ2C9btbpvJIWAVk7l7oft66JzlUNC89qNaQ5SAypjLQx4Ln2V/ZTqfEoNzXOAsoQ==} - engines: {node: '>=18'} - '@sentry-internal/replay@10.42.0': resolution: {integrity: sha512-Zh3EoaH39x2lqVY1YyVB2vJEyCIrT+YLUQxYl1yvP0MJgLxaR6akVjkgxbSUJahan4cX5DxpZiEHfzdlWnYPyQ==} engines: {node: '>=18'} @@ -4399,10 +4380,6 @@ packages: resolution: {integrity: sha512-x2wEpBHwsTyTF2rWsLKJlzrRF1TTIGOfX+ngdE+Yd5DBkoS58HwQv824QOviPGQRla4/ypISqAXzjdDPL/zalg==} engines: {node: '>= 18'} - '@sentry/browser@10.40.0': - resolution: {integrity: sha512-nCt3FKUMFad0C6xl5wCK0Jz+qT4Vev4fv6HJRn0YoNRRDQCfsUVxAz7pNyyiPNGM/WCDp9wJpGJsRvbBRd2anw==} - engines: {node: '>=18'} - '@sentry/browser@10.42.0': resolution: {integrity: sha512-iXxYjXNEBwY1MH4lDSDZZUNjzPJDK7/YLwVIJq/3iBYpIQVIhaJsoJnf3clx9+NfJ8QFKyKfcvgae61zm+hgTA==} engines: {node: '>=18'} @@ -4463,10 +4440,6 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@10.40.0': - resolution: {integrity: sha512-/wrcHPp9Avmgl6WBimPjS4gj810a1wU5oX9fF1bzJfeIIbF3jTsAbv0oMbgDp0cSDnkwv2+NvcPnn3+c5J6pBA==} - engines: {node: '>=18'} - '@sentry/core@10.42.0': resolution: {integrity: sha512-L4rMrXMqUKBanpjpMT+TuAVk6xAijz6AWM6RiEYpohAr7SGcCEc1/T0+Ep1eLV8+pwWacfU27OvELIyNeOnGzA==} engines: {node: '>=18'} @@ -15209,12 +15182,6 @@ snapshots: '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resources@2.6.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -16002,37 +15969,19 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@sentry-internal/browser-utils@10.40.0': - dependencies: - '@sentry/core': 10.40.0 - '@sentry-internal/browser-utils@10.42.0': dependencies: '@sentry/core': 10.42.0 - '@sentry-internal/feedback@10.40.0': - dependencies: - '@sentry/core': 10.40.0 - '@sentry-internal/feedback@10.42.0': dependencies: '@sentry/core': 10.42.0 - '@sentry-internal/replay-canvas@10.40.0': - dependencies: - '@sentry-internal/replay': 10.40.0 - '@sentry/core': 10.40.0 - '@sentry-internal/replay-canvas@10.42.0': dependencies: '@sentry-internal/replay': 10.42.0 '@sentry/core': 10.42.0 - '@sentry-internal/replay@10.40.0': - dependencies: - '@sentry-internal/browser-utils': 10.40.0 - '@sentry/core': 10.40.0 - '@sentry-internal/replay@10.42.0': dependencies: '@sentry-internal/browser-utils': 10.42.0 @@ -16040,14 +15989,6 @@ snapshots: '@sentry/babel-plugin-component-annotate@5.1.1': {} - '@sentry/browser@10.40.0': - dependencies: - '@sentry-internal/browser-utils': 10.40.0 - '@sentry-internal/feedback': 10.40.0 - '@sentry-internal/replay': 10.40.0 - '@sentry-internal/replay-canvas': 10.40.0 - '@sentry/core': 10.40.0 - '@sentry/browser@10.42.0': dependencies: '@sentry-internal/browser-utils': 10.42.0 @@ -16113,8 +16054,6 @@ snapshots: - encoding - supports-color - '@sentry/core@10.40.0': {} - '@sentry/core@10.42.0': {} '@sentry/electron@7.10.0': @@ -17525,7 +17464,7 @@ snapshots: app-builder-bin@5.0.0-alpha.12: {} - app-builder-lib@26.8.2(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2): + app-builder-lib@26.8.2(patch_hash=1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0)(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2): dependencies: '@develar/schema-utils': 2.6.5 '@electron/asar': 3.4.1 @@ -18532,7 +18471,7 @@ snapshots: except: 0.1.3 extend: 3.0.2 pluralizers: 0.1.7 - sprintf-js: 1.0.3 + sprintf-js: 1.1.3 cpu-features@0.0.10: dependencies: @@ -18900,7 +18839,7 @@ snapshots: dmg-builder@26.8.2(electron-builder-squirrel-windows@26.8.2): dependencies: - app-builder-lib: 26.8.2(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) + app-builder-lib: 26.8.2(patch_hash=1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0)(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) builder-util: 26.8.1 fs-extra: 10.1.0 iconv-lite: 0.6.3 @@ -19050,7 +18989,7 @@ snapshots: electron-builder-squirrel-windows@26.8.2(dmg-builder@26.8.2): dependencies: - app-builder-lib: 26.8.2(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) + app-builder-lib: 26.8.2(patch_hash=1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0)(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) builder-util: 26.8.1 electron-winstaller: 5.4.0 transitivePeerDependencies: @@ -19059,7 +18998,7 @@ snapshots: electron-builder@26.8.2(electron-builder-squirrel-windows@26.8.2): dependencies: - app-builder-lib: 26.8.2(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) + app-builder-lib: 26.8.2(patch_hash=1d15e15843e088318d05b3390c07e37d5d5fe66355da1783f5a86db93c82b9c0)(dmg-builder@26.8.2)(electron-builder-squirrel-windows@26.8.2) builder-util: 26.8.1 builder-util-runtime: 9.5.1 chalk: 4.1.2 @@ -23005,7 +22944,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.208.0 '@opentelemetry/exporter-logs-otlp-http': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) '@posthog/core': 1.23.4 '@posthog/types': 1.360.2 @@ -24034,8 +23973,7 @@ snapshots: sprintf-js@1.0.3: {} - sprintf-js@1.1.3: - optional: true + sprintf-js@1.1.3: {} ssh-remote-port-forward@1.0.4: dependencies: