diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index 4667a937113..3b0302c22e3 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -220,13 +220,6 @@ jobs: path: apps/desktop/dist/bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap if-no-files-found: error - - name: Upload .AppImage artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage - path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage - if-no-files-found: error - - name: Upload auto-update artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: diff --git a/.github/workflows/release-desktop-beta.yml b/.github/workflows/release-desktop-beta.yml index c1646997201..d5bb5fe8139 100644 --- a/.github/workflows/release-desktop-beta.yml +++ b/.github/workflows/release-desktop-beta.yml @@ -185,13 +185,6 @@ jobs: path: apps/desktop/dist/bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap if-no-files-found: error - - name: Upload .AppImage artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage - path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage - if-no-files-found: error - - name: Upload auto-update artifact uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index d9394347f60..db18f1f58d1 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -106,7 +106,6 @@ jobs: apps/desktop/artifacts/Bitwarden-${{ env.PKG_VERSION }}-x86_64.rpm, apps/desktop/artifacts/Bitwarden-${{ env.PKG_VERSION }}-x64.freebsd, apps/desktop/artifacts/bitwarden_${{ env.PKG_VERSION }}_amd64.snap, - apps/desktop/artifacts/Bitwarden-${{ env.PKG_VERSION }}-x86_64.AppImage, apps/desktop/artifacts/Bitwarden-Portable-${{ env.PKG_VERSION }}.exe, apps/desktop/artifacts/Bitwarden-Installer-${{ env.PKG_VERSION }}.exe, apps/desktop/artifacts/Bitwarden-${{ env.PKG_VERSION }}-ia32-store.appx, diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index 21f09453189..070c0c9fa7e 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -113,7 +113,7 @@ "to": "desktop_proxy" } ], - "target": ["deb", "freebsd", "rpm", "AppImage", "snap"], + "target": ["deb", "freebsd", "rpm", "snap"], "desktop": { "Name": "Bitwarden", "Type": "Application", @@ -238,9 +238,6 @@ "artifactName": "${productName}-${version}-${arch}.${ext}", "depends": ["libnotify4", "libxtst6", "libnss3", "libsecret-1-0", "libxss1"] }, - "appImage": { - "artifactName": "${productName}-${version}-${arch}.${ext}" - }, "rpm": { "artifactName": "${productName}-${version}-${arch}.${ext}" }, diff --git a/apps/desktop/src/auth/login/desktop-login-component.service.spec.ts b/apps/desktop/src/auth/login/desktop-login-component.service.spec.ts index 6edde35733f..f1ef64cc4ab 100644 --- a/apps/desktop/src/auth/login/desktop-login-component.service.spec.ts +++ b/apps/desktop/src/auth/login/desktop-login-component.service.spec.ts @@ -21,7 +21,6 @@ import { DesktopLoginComponentService } from "./desktop-login-component.service" const defaultIpc = { platform: { - isAppImage: false, isSnapStore: false, isDev: false, localhostCallbackService: { @@ -107,21 +106,16 @@ describe("DesktopLoginComponentService", () => { }); describe("launchSsoBrowserWindow", () => { - // Array of all permutations of isAppImage, isSnapStore, and isDev + // Array of all permutations of isSnapStore, and isDev const permutations = [ - [true, false, false], // Case 1: isAppImage true - [false, true, false], // Case 2: isSnapStore true - [false, false, true], // Case 3: isDev true - [true, true, false], // Case 4: isAppImage and isSnapStore true - [true, false, true], // Case 5: isAppImage and isDev true - [false, true, true], // Case 6: isSnapStore and isDev true - [true, true, true], // Case 7: all true - [false, false, false], // Case 8: all false + [false, false], // Case 1: both false + [true, false], // Case 2: isSnapStore true + [false, true], // Case 3: isDev true + [true, true], // Case 4: both true ]; - permutations.forEach(([isAppImage, isSnapStore, isDev]) => { - it(`executes correct logic for isAppImage=${isAppImage}, isSnapStore=${isSnapStore}, isDev=${isDev}`, async () => { - (global as any).ipc.platform.isAppImage = isAppImage; + permutations.forEach(([isSnapStore, isDev]) => { + it(`executes correct logic for isSnapStore=${isSnapStore}, isDev=${isDev}`, async () => { (global as any).ipc.platform.isSnapStore = isSnapStore; (global as any).ipc.platform.isDev = isDev; @@ -139,7 +133,7 @@ describe("DesktopLoginComponentService", () => { await service.launchSsoBrowserWindow(email, clientId); - if (isAppImage || isSnapStore || isDev) { + if (isSnapStore || isDev) { expect(superLaunchSsoBrowserWindowSpy).not.toHaveBeenCalled(); // Assert that the standard logic is executed diff --git a/apps/desktop/src/auth/login/desktop-login-component.service.ts b/apps/desktop/src/auth/login/desktop-login-component.service.ts index c9b01c5624f..eb78877ffa7 100644 --- a/apps/desktop/src/auth/login/desktop-login-component.service.ts +++ b/apps/desktop/src/auth/login/desktop-login-component.service.ts @@ -35,7 +35,7 @@ export class DesktopLoginComponentService } override async launchSsoBrowserWindow(email: string, clientId: "desktop"): Promise { - if (!ipc.platform.isAppImage && !ipc.platform.isSnapStore && !ipc.platform.isDev) { + if (!ipc.platform.isSnapStore && !ipc.platform.isDev) { return super.launchSsoBrowserWindow(email, clientId); } diff --git a/apps/desktop/src/auth/login/login-v1.component.ts b/apps/desktop/src/auth/login/login-v1.component.ts index 6eb069d9bcb..0ef8d901ea4 100644 --- a/apps/desktop/src/auth/login/login-v1.component.ts +++ b/apps/desktop/src/auth/login/login-v1.component.ts @@ -193,7 +193,7 @@ export class LoginComponentV1 extends BaseLoginComponent implements OnInit, OnDe } async launchSsoBrowser(clientId: string, ssoRedirectUri: string) { - if (!ipc.platform.isAppImage && !ipc.platform.isSnapStore && !ipc.platform.isDev) { + if (!ipc.platform.isSnapStore && !ipc.platform.isDev) { return super.launchSsoBrowser(clientId, ssoRedirectUri); } diff --git a/apps/desktop/src/main/updater.main.ts b/apps/desktop/src/main/updater.main.ts index 0e2efa66f91..d0f16b618b1 100644 --- a/apps/desktop/src/main/updater.main.ts +++ b/apps/desktop/src/main/updater.main.ts @@ -4,7 +4,7 @@ import { autoUpdater } from "electron-updater"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { isAppImage, isDev, isMacAppStore, isWindowsPortable, isWindowsStore } from "../utils"; +import { isDev, isMacAppStore, isWindowsPortable, isWindowsStore } from "../utils"; import { WindowMain } from "./window.main"; @@ -22,12 +22,10 @@ export class UpdaterMain { ) { autoUpdater.logger = log; - const linuxCanUpdate = process.platform === "linux" && isAppImage(); const windowsCanUpdate = process.platform === "win32" && !isWindowsStore() && !isWindowsPortable(); const macCanUpdate = process.platform === "darwin" && !isMacAppStore(); - this.canUpdate = - !this.userDisabledUpdates() && (linuxCanUpdate || windowsCanUpdate || macCanUpdate); + this.canUpdate = !this.userDisabledUpdates() && (windowsCanUpdate || macCanUpdate); } async init() { diff --git a/apps/desktop/src/platform/preload.ts b/apps/desktop/src/platform/preload.ts index bf02ca697f0..4b17ca7333f 100644 --- a/apps/desktop/src/platform/preload.ts +++ b/apps/desktop/src/platform/preload.ts @@ -10,7 +10,7 @@ import { Message, UnencryptedMessageResponse, } from "../models/native-messaging"; -import { isAppImage, isDev, isFlatpak, isMacAppStore, isSnapStore, isWindowsStore } from "../utils"; +import { isDev, isFlatpak, isMacAppStore, isSnapStore, isWindowsStore } from "../utils"; import { ClipboardWriteMessage } from "./types/clipboard"; @@ -104,7 +104,6 @@ export default { isWindowsStore: isWindowsStore(), isFlatpak: isFlatpak(), isSnapStore: isSnapStore(), - isAppImage: isAppImage(), reloadProcess: () => ipcRenderer.send("reload-process"), log: (level: LogLevelType, message?: any, ...optionalParams: any[]) => ipcRenderer.invoke("ipc.log", { level, message, optionalParams }), diff --git a/apps/desktop/src/platform/services/sso-localhost-callback.service.ts b/apps/desktop/src/platform/services/sso-localhost-callback.service.ts index cd4c7df66ec..da486160e60 100644 --- a/apps/desktop/src/platform/services/sso-localhost-callback.service.ts +++ b/apps/desktop/src/platform/services/sso-localhost-callback.service.ts @@ -8,7 +8,7 @@ import { MessageSender } from "@bitwarden/common/platform/messaging"; /** * The SSO Localhost login service uses a local host listener as fallback in case scheme handling deeplinks does not work. - * This way it is possible to log in with SSO on appimage, snap, and electron dev using the same methods that the cli uses. + * This way it is possible to log in with SSO on snap, and electron dev using the same methods that the cli uses. */ export class SSOLocalhostCallbackService { private ssoRedirectUri = ""; diff --git a/apps/desktop/src/utils.ts b/apps/desktop/src/utils.ts index 98bdebb0cc3..8185ced743e 100644 --- a/apps/desktop/src/utils.ts +++ b/apps/desktop/src/utils.ts @@ -29,10 +29,6 @@ export function isLinux() { return process.platform === "linux"; } -export function isAppImage() { - return isLinux() && "APPIMAGE" in process.env; -} - export function isSnapStore() { return isLinux() && process.env.SNAP_USER_DATA != null; }