From 9f1b9650999d5d2ac1e74d0e2edd1fe6feae070f Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 1 Feb 2025 15:41:39 -0500 Subject: [PATCH 01/12] 6.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 414e536a5..da9631add 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gitify", - "version": "5.18.0", + "version": "6.0.0", "description": "GitHub notifications on your menu bar.", "main": "build/main.js", "scripts": { From b66d459f5ecf7d077d486fb9c91b6ada32590dbd Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 1 Feb 2025 15:46:59 -0500 Subject: [PATCH 02/12] fix build Signed-off-by: Adam Setch --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e220f4c63..1f70af23c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,7 @@ jobs: name: Tests uses: ./.github/workflows/test.yml needs: lint + secrets: inherit publish: name: Publish From a01d2bd6c35ebf67e8e9317af55e7c1f13ad53bf Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 07:27:11 -0500 Subject: [PATCH 03/12] fix: attempt to fix windows sso login. increase logging Signed-off-by: Adam Setch --- src/main/main.ts | 38 ++++++++++++++++++++++++++++++-- src/renderer/utils/auth/utils.ts | 6 ++++- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/main/main.ts b/src/main/main.ts index 2c7a15a67..67ddc93b6 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -4,7 +4,8 @@ import { menubar } from 'menubar'; import { APPLICATION } from '../shared/constants'; import { namespacedEvent } from '../shared/events'; -import { isMacOS, isWindows } from '../shared/platform'; +import { logInfo, logWarn } from '../shared/logger'; +import { isLinux, isMacOS, isWindows } from '../shared/platform'; import { onFirstRunMaybe } from './first-run'; import { TrayIcons } from './icons'; import MenuBuilder from './menu'; @@ -90,6 +91,31 @@ app.whenReady().then(async () => { }); }); + /** Prevent second instances */ + if (isWindows() || isLinux()) { + const gotTheLock = app.requestSingleInstanceLock(); + + if (!gotTheLock) { + logWarn('main:gotTheLock', 'Second instance detected, quitting'); + app.quit(); // Quit the second instance + return; + } + + app.on('second-instance', (_event, commandLine, _workingDirectory) => { + logInfo( + 'main:second-instance', + 'Second instance was launched. extracting command to forward', + ); + + // Get the URL from the command line arguments + const url = commandLine.find((arg) => arg.startsWith(`${protocol}://`)); + + if (url) { + handleURL(url); + } + }); + } + /** * Gitify custom IPC events */ @@ -183,5 +209,13 @@ ipc.handle(namespacedEvent('safe-storage-decrypt'), (_, settings) => { // Handle gitify:// custom protocol URL events for OAuth 2.0 callback app.on('open-url', (event, url) => { event.preventDefault(); - mb.window.webContents.send(namespacedEvent('auth-callback'), url); + logInfo('main:open-url', `URL received ${url}`); + handleURL(url); }); + +const handleURL = (url: string) => { + if (url.startsWith(`${protocol}://`)) { + logInfo('main:handleUrl', `forwarding URL ${url} to renderer process`); + mb.window.webContents.send(namespacedEvent('auth-callback'), url); + } +}; diff --git a/src/renderer/utils/auth/utils.ts b/src/renderer/utils/auth/utils.ts index 8a7651d8c..d75d6c2ad 100644 --- a/src/renderer/utils/auth/utils.ts +++ b/src/renderer/utils/auth/utils.ts @@ -4,7 +4,7 @@ import semver from 'semver'; import { ipcRenderer } from 'electron'; import { APPLICATION } from '../../../shared/constants'; import { namespacedEvent } from '../../../shared/events'; -import { logError, logWarn } from '../../../shared/logger'; +import { logError, logInfo, logWarn } from '../../../shared/logger'; import type { Account, AuthCode, @@ -62,6 +62,10 @@ export function authGitHub( ipcRenderer.on( namespacedEvent('auth-callback'), (_, callbackUrl: string) => { + logInfo( + 'renderer:auth-callback', + `received authentication callback URL ${callbackUrl}`, + ); handleCallback(callbackUrl); }, ); From fff8697eb5345f9bd4f8c2b6b0746746474ccfa2 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 11:05:30 -0500 Subject: [PATCH 04/12] fix margin multi accounts Signed-off-by: Adam Setch --- src/renderer/routes/Accounts.tsx | 2 +- .../__snapshots__/Accounts.test.tsx.snap | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/renderer/routes/Accounts.tsx b/src/renderer/routes/Accounts.tsx index 125f362d1..b8caa70b0 100644 --- a/src/renderer/routes/Accounts.tsx +++ b/src/renderer/routes/Accounts.tsx @@ -121,7 +121,7 @@ export const AccountsRoute: FC = () => { return ( diff --git a/src/renderer/routes/__snapshots__/Accounts.test.tsx.snap b/src/renderer/routes/__snapshots__/Accounts.test.tsx.snap index d5694394c..927322e10 100644 --- a/src/renderer/routes/__snapshots__/Accounts.test.tsx.snap +++ b/src/renderer/routes/__snapshots__/Accounts.test.tsx.snap @@ -89,7 +89,7 @@ exports[`renderer/routes/Accounts.tsx Account interactions should render with PA class="Box-sc-g0xbh4-0 grow overflow-x-auto px-8 pb-2 mb-12 " >
Date: Sun, 2 Feb 2025 11:14:46 -0500 Subject: [PATCH 05/12] fix linux permissions Signed-off-by: Adam Setch --- .github/workflows/build.yml | 1 + .github/workflows/publish.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fb07ec83..c5e233747 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,6 +64,7 @@ jobs: with: node-version-file: '.nvmrc' cache: 'pnpm' + - run: sudo sysctl kernel.unprivileged_userns_clone=1 # See https://github.com/electron/electron/issues/17972#issuecomment-486927073 - run: pnpm install - run: pnpm build - run: pnpm prepare:remove-source-maps diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 05888b273..b36e46934 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -77,6 +77,7 @@ jobs: with: node-version-file: '.nvmrc' cache: 'pnpm' + - run: sudo sysctl kernel.unprivileged_userns_clone=1 # See https://github.com/electron/electron/issues/17972#issuecomment-486927073 - run: pnpm install - run: pnpm build env: From 0d1f405a339d91e3e4273f30e14f989221fcdc11 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 11:42:03 -0500 Subject: [PATCH 06/12] fix linux permissions Signed-off-by: Adam Setch --- .github/workflows/build.yml | 1 - .github/workflows/publish.yml | 1 - package.json | 2 +- ...remove-unused-locales.js => after-pack.js} | 34 ++++++++++++++++--- 4 files changed, 31 insertions(+), 7 deletions(-) rename scripts/{remove-unused-locales.js => after-pack.js} (52%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c5e233747..9fb07ec83 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,6 @@ jobs: with: node-version-file: '.nvmrc' cache: 'pnpm' - - run: sudo sysctl kernel.unprivileged_userns_clone=1 # See https://github.com/electron/electron/issues/17972#issuecomment-486927073 - run: pnpm install - run: pnpm build - run: pnpm prepare:remove-source-maps diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b36e46934..05888b273 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -77,7 +77,6 @@ jobs: with: node-version-file: '.nvmrc' cache: 'pnpm' - - run: sudo sysctl kernel.unprivileged_userns_clone=1 # See https://github.com/electron/electron/issues/17972#issuecomment-486927073 - run: pnpm install - run: pnpm build env: diff --git a/package.json b/package.json index da9631add..3d3432ed0 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "repo": "gitify" }, "afterSign": "scripts/notarize.js", - "afterPack": "scripts/remove-unused-locales.js" + "afterPack": "scripts/after-pack.js" }, "dependencies": { "@electron/remote": "2.1.2", diff --git a/scripts/remove-unused-locales.js b/scripts/after-pack.js similarity index 52% rename from scripts/remove-unused-locales.js rename to scripts/after-pack.js index fadaa9bbc..e62d01510 100644 --- a/scripts/remove-unused-locales.js +++ b/scripts/after-pack.js @@ -8,15 +8,24 @@ const electronLanguages = packageJson.build.electronLanguages; /** * @param {AfterPackContext} context */ -const removeLocales = async (context) => { +const afterPack = async (context) => { const appName = context.packager.appInfo.productFilename; const appOutDir = context.appOutDir; const platform = context.electronPlatformName; - if (platform !== 'darwin') { - return; + if (platform === 'darwin') { + removeUnusedLocales(appOutDir, appName); + } else if (platform === 'linux') { + fixChromeSandboxPermissions(appOutDir); } +}; +/** + * Removes unused locales for macOS builds. + * @param {string} appOutDir + * @param {string} appName + */ +const removeUnusedLocales = (appOutDir, appName) => { const resourcesPath = path.join( appOutDir, `${appName}.app`, @@ -44,4 +53,21 @@ const removeLocales = async (context) => { } }; -exports.default = removeLocales; +/** + * Fixes `chrome-sandbox` permissions for Linux builds. + * @param {string} appOutDir + */ +const fixChromeSandboxPermissions = (appOutDir) => { + const chromeSandboxPath = path.join(appOutDir, 'chrome-sandbox'); + + try { + chownSync(chromeSandboxPath, 0, 0); // Set root ownership + chmodSync(chromeSandboxPath, 0o4755); // Set SUID bit + // biome-ignore lint/suspicious/noConsoleLog: + console.log('Fixed chrome-sandbox permissions'); + } catch (err) { + console.error('Failed to set chrome-sandbox permissions:', err); + } +}; + +exports.default = afterPack; From cd4a12edb0fe7d8673b099258e3c481109f9c7d8 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 11:59:03 -0500 Subject: [PATCH 07/12] change pack scripts Signed-off-by: Adam Setch --- .github/workflows/build.yml | 3 --- .github/workflows/publish.yml | 3 --- package.json | 2 +- scripts/{after-pack.js => afterPack.js} | 22 ++++++++++++++++--- scripts/beforeBuild.js | 29 +++++++++++++++++++++++++ scripts/delete-source-maps.ts | 14 ------------ 6 files changed, 49 insertions(+), 24 deletions(-) rename scripts/{after-pack.js => afterPack.js} (71%) create mode 100644 scripts/beforeBuild.js delete mode 100644 scripts/delete-source-maps.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fb07ec83..66722a6f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,6 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build - - run: pnpm prepare:remove-source-maps - run: pnpm package:macos --publish=never -c.mac.identity=null env: CSC_LINK: ${{ secrets.mac_certs }} @@ -43,7 +42,6 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build - - run: pnpm prepare:remove-source-maps - run: pnpm package:win --publish=never - name: Clean up builds run: Remove-Item dist/win-unpacked -Recurse @@ -66,7 +64,6 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build - - run: pnpm prepare:remove-source-maps - run: pnpm package:linux --publish=never - name: Clean up builds run: rm -rfv dist/linux-unpacked diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 05888b273..9cdef2c60 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,7 +24,6 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} - - run: pnpm prepare:remove-source-maps - run: pnpm package:macos --publish onTagOrDraft env: APPLEID_USERNAME: ${{ secrets.appleid_username }} @@ -56,7 +55,6 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} - - run: pnpm prepare:remove-source-maps - run: pnpm package:win --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} @@ -82,7 +80,6 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} - - run: pnpm prepare:remove-source-maps - run: pnpm package:linux --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} diff --git a/package.json b/package.json index 3d3432ed0..e5d1503d3 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "watch": "concurrently --names \"main,renderer\" --prefix-colors \"blue,green\" \"pnpm watch:main\" \"pnpm watch:renderer\"", "watch:main": "webpack --watch --config ./config/webpack.config.main.base.ts", "watch:renderer": "webpack --watch --config ./config/webpack.config.renderer.base.ts", - "prepare:remove-source-maps": "ts-node ./scripts/delete-source-maps.ts", "package:linux": "electron-builder --linux", "package:macos": "electron-builder --mac", "package:win": "electron-builder --win", @@ -129,6 +128,7 @@ "repo": "gitify" }, "afterSign": "scripts/notarize.js", + "beforeBuild": "scripts/beforeBuild.js", "afterPack": "scripts/after-pack.js" }, "dependencies": { diff --git a/scripts/after-pack.js b/scripts/afterPack.js similarity index 71% rename from scripts/after-pack.js rename to scripts/afterPack.js index e62d01510..aa45d34bf 100644 --- a/scripts/after-pack.js +++ b/scripts/afterPack.js @@ -1,5 +1,6 @@ const path = require('node:path'); const fs = require('node:fs'); +const { chmodSync, chownSync } = require('node:fs'); const { AfterPackContext } = require('electron-builder'); const packageJson = require('../package.json'); @@ -9,6 +10,9 @@ const electronLanguages = packageJson.build.electronLanguages; * @param {AfterPackContext} context */ const afterPack = async (context) => { + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[afterPack]: Starting...'); + const appName = context.packager.appInfo.productFilename; const appOutDir = context.appOutDir; const platform = context.electronPlatformName; @@ -18,6 +22,9 @@ const afterPack = async (context) => { } else if (platform === 'linux') { fixChromeSandboxPermissions(appOutDir); } + + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[afterPack]: Completed'); }; /** @@ -26,6 +33,9 @@ const afterPack = async (context) => { * @param {string} appName */ const removeUnusedLocales = (appOutDir, appName) => { + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[afterPack]: removing unused locales'); + const resourcesPath = path.join( appOutDir, `${appName}.app`, @@ -58,15 +68,21 @@ const removeUnusedLocales = (appOutDir, appName) => { * @param {string} appOutDir */ const fixChromeSandboxPermissions = (appOutDir) => { + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[afterPack]: fix chrome sandbox permissions'); + const chromeSandboxPath = path.join(appOutDir, 'chrome-sandbox'); try { chownSync(chromeSandboxPath, 0, 0); // Set root ownership chmodSync(chromeSandboxPath, 0o4755); // Set SUID bit - // biome-ignore lint/suspicious/noConsoleLog: - console.log('Fixed chrome-sandbox permissions'); + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[afterPack]: Fixed chrome-sandbox permissions'); } catch (err) { - console.error('Failed to set chrome-sandbox permissions:', err); + console.error( + '[afterPack]: Failed to set chrome-sandbox permissions:', + err, + ); } }; diff --git a/scripts/beforeBuild.js b/scripts/beforeBuild.js new file mode 100644 index 000000000..026c12629 --- /dev/null +++ b/scripts/beforeBuild.js @@ -0,0 +1,29 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { rimrafSync } from 'rimraf'; +const { BeforeBuildContext } = require('electron-builder'); + +import webpackPaths from '../config/webpack.paths'; + +/** + * @param {BeforeBuildContext} context + */ +export default async function beforeBuild(_context) { + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[beforeBuild]: Starting...'); + + deleteSourceMaps(); + + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[beforeBuild]: Completed'); +} + +function deleteSourceMaps() { + if (fs.existsSync(webpackPaths.buildPath)) { + rimrafSync(path.join(webpackPaths.buildPath, '*.map'), { + glob: true, + }); + // biome-ignore lint/suspicious/noConsoleLog: disabled + console.log('[beforeBuild]: Deleted source maps'); + } +} diff --git a/scripts/delete-source-maps.ts b/scripts/delete-source-maps.ts deleted file mode 100644 index 9c200b221..000000000 --- a/scripts/delete-source-maps.ts +++ /dev/null @@ -1,14 +0,0 @@ -import fs from 'node:fs'; -import path from 'node:path'; -import { rimrafSync } from 'rimraf'; -import webpackPaths from '../config/webpack.paths'; - -function deleteSourceMaps() { - if (fs.existsSync(webpackPaths.buildPath)) { - rimrafSync(path.join(webpackPaths.buildPath, '*.map'), { - glob: true, - }); - } -} - -deleteSourceMaps(); From 6b468290ad3cd86ea06bfd2a11bf7b0e38ae1eea Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 12:08:03 -0500 Subject: [PATCH 08/12] change pack scripts Signed-off-by: Adam Setch --- .github/workflows/build.yml | 3 +++ .github/workflows/publish.yml | 3 +++ package.json | 4 ++-- scripts/beforeBuild.js | 29 ----------------------------- scripts/delete-source-maps.ts | 14 ++++++++++++++ 5 files changed, 22 insertions(+), 31 deletions(-) delete mode 100644 scripts/beforeBuild.js create mode 100644 scripts/delete-source-maps.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 66722a6f3..9fb07ec83 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,6 +17,7 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build + - run: pnpm prepare:remove-source-maps - run: pnpm package:macos --publish=never -c.mac.identity=null env: CSC_LINK: ${{ secrets.mac_certs }} @@ -42,6 +43,7 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build + - run: pnpm prepare:remove-source-maps - run: pnpm package:win --publish=never - name: Clean up builds run: Remove-Item dist/win-unpacked -Recurse @@ -64,6 +66,7 @@ jobs: cache: 'pnpm' - run: pnpm install - run: pnpm build + - run: pnpm prepare:remove-source-maps - run: pnpm package:linux --publish=never - name: Clean up builds run: rm -rfv dist/linux-unpacked diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9cdef2c60..05888b273 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,6 +24,7 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} + - run: pnpm prepare:remove-source-maps - run: pnpm package:macos --publish onTagOrDraft env: APPLEID_USERNAME: ${{ secrets.appleid_username }} @@ -55,6 +56,7 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} + - run: pnpm prepare:remove-source-maps - run: pnpm package:win --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} @@ -80,6 +82,7 @@ jobs: env: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} + - run: pnpm prepare:remove-source-maps - run: pnpm package:linux --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} diff --git a/package.json b/package.json index e5d1503d3..82488b9cc 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "watch": "concurrently --names \"main,renderer\" --prefix-colors \"blue,green\" \"pnpm watch:main\" \"pnpm watch:renderer\"", "watch:main": "webpack --watch --config ./config/webpack.config.main.base.ts", "watch:renderer": "webpack --watch --config ./config/webpack.config.renderer.base.ts", + "prepare:remove-source-maps": "ts-node ./scripts/delete-source-maps.ts", "package:linux": "electron-builder --linux", "package:macos": "electron-builder --mac", "package:win": "electron-builder --win", @@ -128,8 +129,7 @@ "repo": "gitify" }, "afterSign": "scripts/notarize.js", - "beforeBuild": "scripts/beforeBuild.js", - "afterPack": "scripts/after-pack.js" + "afterPack": "scripts/afterPack.js" }, "dependencies": { "@electron/remote": "2.1.2", diff --git a/scripts/beforeBuild.js b/scripts/beforeBuild.js deleted file mode 100644 index 026c12629..000000000 --- a/scripts/beforeBuild.js +++ /dev/null @@ -1,29 +0,0 @@ -import fs from 'node:fs'; -import path from 'node:path'; -import { rimrafSync } from 'rimraf'; -const { BeforeBuildContext } = require('electron-builder'); - -import webpackPaths from '../config/webpack.paths'; - -/** - * @param {BeforeBuildContext} context - */ -export default async function beforeBuild(_context) { - // biome-ignore lint/suspicious/noConsoleLog: disabled - console.log('[beforeBuild]: Starting...'); - - deleteSourceMaps(); - - // biome-ignore lint/suspicious/noConsoleLog: disabled - console.log('[beforeBuild]: Completed'); -} - -function deleteSourceMaps() { - if (fs.existsSync(webpackPaths.buildPath)) { - rimrafSync(path.join(webpackPaths.buildPath, '*.map'), { - glob: true, - }); - // biome-ignore lint/suspicious/noConsoleLog: disabled - console.log('[beforeBuild]: Deleted source maps'); - } -} diff --git a/scripts/delete-source-maps.ts b/scripts/delete-source-maps.ts new file mode 100644 index 000000000..9c200b221 --- /dev/null +++ b/scripts/delete-source-maps.ts @@ -0,0 +1,14 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { rimrafSync } from 'rimraf'; +import webpackPaths from '../config/webpack.paths'; + +function deleteSourceMaps() { + if (fs.existsSync(webpackPaths.buildPath)) { + rimrafSync(path.join(webpackPaths.buildPath, '*.map'), { + glob: true, + }); + } +} + +deleteSourceMaps(); From d08d967a5cdcc15a312c407d8b442e433d09c193 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 12:17:55 -0500 Subject: [PATCH 09/12] change pack scripts Signed-off-by: Adam Setch --- scripts/afterPack.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/afterPack.js b/scripts/afterPack.js index aa45d34bf..ae2ccce53 100644 --- a/scripts/afterPack.js +++ b/scripts/afterPack.js @@ -1,6 +1,6 @@ const path = require('node:path'); const fs = require('node:fs'); -const { chmodSync, chownSync } = require('node:fs'); +const { chmodSync } = require('node:fs'); const { AfterPackContext } = require('electron-builder'); const packageJson = require('../package.json'); @@ -74,7 +74,6 @@ const fixChromeSandboxPermissions = (appOutDir) => { const chromeSandboxPath = path.join(appOutDir, 'chrome-sandbox'); try { - chownSync(chromeSandboxPath, 0, 0); // Set root ownership chmodSync(chromeSandboxPath, 0o4755); // Set SUID bit // biome-ignore lint/suspicious/noConsoleLog: disabled console.log('[afterPack]: Fixed chrome-sandbox permissions'); From bbe2bef744af51264daaab06c5ffc631a9400321 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 12:34:58 -0500 Subject: [PATCH 10/12] change pack scripts Signed-off-by: Adam Setch --- .github/workflows/build.yml | 4 ++++ .github/workflows/publish.yml | 4 ++++ scripts/afterPack.js | 25 ------------------------- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fb07ec83..2c464644b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,6 +67,10 @@ jobs: - run: pnpm install - run: pnpm build - run: pnpm prepare:remove-source-maps + - name: Fix chrome-sandbox permissions + run: | + sudo chown root dist/linux-arm640-unpacked/chrome-sandbox + sudo chmod 4755 dist/linux-arm640-unpacked/chrome-sandbox - run: pnpm package:linux --publish=never - name: Clean up builds run: rm -rfv dist/linux-unpacked diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 05888b273..304a3b1fe 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -83,6 +83,10 @@ jobs: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} - run: pnpm prepare:remove-source-maps + - name: Fix chrome-sandbox permissions + run: | + sudo chown root dist/linux-arm640-unpacked/chrome-sandbox + sudo chmod 4755 dist/linux-arm640-unpacked/chrome-sandbox - run: pnpm package:linux --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} diff --git a/scripts/afterPack.js b/scripts/afterPack.js index ae2ccce53..20b77d826 100644 --- a/scripts/afterPack.js +++ b/scripts/afterPack.js @@ -1,6 +1,5 @@ const path = require('node:path'); const fs = require('node:fs'); -const { chmodSync } = require('node:fs'); const { AfterPackContext } = require('electron-builder'); const packageJson = require('../package.json'); @@ -19,8 +18,6 @@ const afterPack = async (context) => { if (platform === 'darwin') { removeUnusedLocales(appOutDir, appName); - } else if (platform === 'linux') { - fixChromeSandboxPermissions(appOutDir); } // biome-ignore lint/suspicious/noConsoleLog: disabled @@ -63,26 +60,4 @@ const removeUnusedLocales = (appOutDir, appName) => { } }; -/** - * Fixes `chrome-sandbox` permissions for Linux builds. - * @param {string} appOutDir - */ -const fixChromeSandboxPermissions = (appOutDir) => { - // biome-ignore lint/suspicious/noConsoleLog: disabled - console.log('[afterPack]: fix chrome sandbox permissions'); - - const chromeSandboxPath = path.join(appOutDir, 'chrome-sandbox'); - - try { - chmodSync(chromeSandboxPath, 0o4755); // Set SUID bit - // biome-ignore lint/suspicious/noConsoleLog: disabled - console.log('[afterPack]: Fixed chrome-sandbox permissions'); - } catch (err) { - console.error( - '[afterPack]: Failed to set chrome-sandbox permissions:', - err, - ); - } -}; - exports.default = afterPack; From 384a8973f0554e34b56b14cde028ed3daa9d9ab8 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 12:41:22 -0500 Subject: [PATCH 11/12] change pack scripts Signed-off-by: Adam Setch --- .github/workflows/build.yml | 4 ++-- .github/workflows/publish.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c464644b..e31aa866b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -69,8 +69,8 @@ jobs: - run: pnpm prepare:remove-source-maps - name: Fix chrome-sandbox permissions run: | - sudo chown root dist/linux-arm640-unpacked/chrome-sandbox - sudo chmod 4755 dist/linux-arm640-unpacked/chrome-sandbox + sudo chown root dist/linux-arm64-unpacked/chrome-sandbox + sudo chmod 4755 dist/linux-arm64-unpacked/chrome-sandbox - run: pnpm package:linux --publish=never - name: Clean up builds run: rm -rfv dist/linux-unpacked diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 304a3b1fe..25bc9e260 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -85,8 +85,8 @@ jobs: - run: pnpm prepare:remove-source-maps - name: Fix chrome-sandbox permissions run: | - sudo chown root dist/linux-arm640-unpacked/chrome-sandbox - sudo chmod 4755 dist/linux-arm640-unpacked/chrome-sandbox + sudo chown root dist/linux-arm64-unpacked/chrome-sandbox + sudo chmod 4755 dist/linux-arm64-unpacked/chrome-sandbox - run: pnpm package:linux --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }} From fe5689453fff3dafce2b961cc805b21c30062ebb Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sun, 2 Feb 2025 12:48:48 -0500 Subject: [PATCH 12/12] change pack scripts Signed-off-by: Adam Setch --- .github/workflows/build.yml | 4 ---- .github/workflows/publish.yml | 4 ---- 2 files changed, 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e31aa866b..9fb07ec83 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,10 +67,6 @@ jobs: - run: pnpm install - run: pnpm build - run: pnpm prepare:remove-source-maps - - name: Fix chrome-sandbox permissions - run: | - sudo chown root dist/linux-arm64-unpacked/chrome-sandbox - sudo chmod 4755 dist/linux-arm64-unpacked/chrome-sandbox - run: pnpm package:linux --publish=never - name: Clean up builds run: rm -rfv dist/linux-unpacked diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 25bc9e260..05888b273 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -83,10 +83,6 @@ jobs: OAUTH_CLIENT_ID: ${{ secrets.oauth_client_id }} OAUTH_CLIENT_SECRET: ${{ secrets.oauth_client_secret }} - run: pnpm prepare:remove-source-maps - - name: Fix chrome-sandbox permissions - run: | - sudo chown root dist/linux-arm64-unpacked/chrome-sandbox - sudo chmod 4755 dist/linux-arm64-unpacked/chrome-sandbox - run: pnpm package:linux --publish onTagOrDraft env: GH_TOKEN: ${{ secrets.github_token }}