authorgravatar for 150276837+Bombatomica64@users.noreply.github.comLorenzo <150276837+Bombatomica64@users.noreply.github.com> 2026-10-06 21:41:30+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-06 12:41:30-07:00
log9b2c03ee25321c16928eda74f4036f36f0b1afce
tree21faa7239c283ef710ab3c9aefdfae3c1bc25fdd
parent8c61e254fd07249b8c420c44d62e8ecd72a78a20
signature Signed by PGP key B5690EEEBB952194

fix(desktop): build AppImage with the static runtime toolset (fixes libfuse2 launch failure) (#7765)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

2 files changed, 7 insertions(+), 0 deletions(-)

scripts/build-desktop-artifact.test.ts+3
...@@ -684,6 +684,9 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => {...@@ -684,6 +684,9 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => {
684 assert.deepStrictEqual((linux.linux as Record<string, unknown>).protocols, [684 assert.deepStrictEqual((linux.linux as Record<string, unknown>).protocols, [
685 { name: "T3 Code", schemes: ["t3code", "t3code-dev"] },685 { name: "T3 Code", schemes: ["t3code", "t3code-dev"] },
686 ]);686 ]);
687 assert.deepStrictEqual(linux.toolsets, { appimage: "1.0.3" });
688 assert.notProperty(mac, "toolsets");
689 assert.notProperty(win, "toolsets");
687 assert.deepStrictEqual(mac.files, [...DESKTOP_FILE_EXCLUSIONS, ...MAC_FILE_EXCLUSIONS]);690 assert.deepStrictEqual(mac.files, [...DESKTOP_FILE_EXCLUSIONS, ...MAC_FILE_EXCLUSIONS]);
688 assert.deepStrictEqual(linux.files, [...DESKTOP_FILE_EXCLUSIONS, ...LINUX_FILE_EXCLUSIONS]);691 assert.deepStrictEqual(linux.files, [...DESKTOP_FILE_EXCLUSIONS, ...LINUX_FILE_EXCLUSIONS]);
689 assert.deepStrictEqual(win.files, DESKTOP_FILE_EXCLUSIONS);692 assert.deepStrictEqual(win.files, DESKTOP_FILE_EXCLUSIONS);
scripts/build-desktop-artifact.ts+4
...@@ -2762,6 +2762,10 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (...@@ -2762,6 +2762,10 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* (
2762 }2762 }
27632763
2764 if (platform === "linux") {2764 if (platform === "linux") {
2765 // electron-builder 26 defaults to its legacy AppImage runtime, which
2766 // dynamically loads the system libfuse2 library. Pin the static runtime so
2767 // the AppImage also launches on distributions that only provide FUSE 3.
2768 buildConfig.toolsets = { appimage: "1.0.3" };
2765 buildConfig.linux = {2769 buildConfig.linux = {
2766 // The .deb is built from the same unpacked app after the AppImage.2770 // The .deb is built from the same unpacked app after the AppImage.
2767 // electron-builder lists both in latest-linux.yml and writes2771 // electron-builder lists both in latest-linux.yml and writes