From bc3e1664c2a4dcf6d42af23206b2b9b0c26ccab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elberte=20Pl=C3=ADnio?= Date: Thu, 9 Jul 2026 00:56:10 -0300 Subject: [PATCH 1/2] ci: strip bundled libwayland from AppImage via pickforge-tauri-release --- .github/workflows/release.yml | 17 +++++++++++++++++ bun.lock | 4 ++-- docs/releases/UNRELEASED.md | 3 ++- package.json | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b9e510..5def021 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -63,6 +63,7 @@ jobs: libssl-dev \ libwebkit2gtk-4.1-dev \ patchelf \ + squashfs-tools \ wget - name: Install frontend dependencies @@ -80,6 +81,22 @@ jobs: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: bun run tauri build --bundles deb,appimage + - name: Strip bundled libwayland from AppImage + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + run: | + shopt -s nullglob + appimages=(src-tauri/target/release/bundle/appimage/*.AppImage) + if [[ "${#appimages[@]}" -ne 1 ]]; then + printf 'Expected exactly one AppImage, found %s:\n' "${#appimages[@]}" + if [[ "${#appimages[@]}" -gt 0 ]]; then + printf ' %s\n' "${appimages[@]}" + fi + exit 1 + fi + bun run pickforge-tauri-release fix-appimage --appimage "${appimages[0]}" + - name: Upload debug symbols to Sentry if: startsWith(github.ref, 'refs/tags/') env: diff --git a/bun.lock b/bun.lock index 30edd2c..4c92f4b 100644 --- a/bun.lock +++ b/bun.lock @@ -14,7 +14,7 @@ "phosphor-svelte": "^3.1.0", }, "devDependencies": { - "@pickforge/tauri-release": "0.1.1", + "@pickforge/tauri-release": "^0.3.0", "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tauri-apps/cli": "^2.9.3", "@vitest/coverage-v8": "4.1.9", @@ -105,7 +105,7 @@ "@pickforge/brand": ["@pickforge/brand@0.2.1", "", { "dependencies": { "@fontsource/geist-mono": "^5.2.8", "@fontsource/geist-sans": "^5.2.5" } }, "sha512-8VASbOUFJKUkb2zVvqto7aPynyICISCMzrh8jMRcvovtKNpzbLMrZ2xS7eeIPQyVs5NRbJ0457Vb0HQC+sIhQQ=="], - "@pickforge/tauri-release": ["@pickforge/tauri-release@0.1.1", "", { "bin": { "pickforge-tauri-release": "dist/cli.js" } }, "sha512-zfAExyDKX3inV+Po25jkyEEcd4ABqzd3MEajFVttgdjb+TuCu0lfRJUVLJD+D1oqUqqNXUd+pKhHDAgksVyOcg=="], + "@pickforge/tauri-release": ["@pickforge/tauri-release@0.3.0", "", { "bin": { "pickforge-tauri-release": "dist/cli.js" } }, "sha512-LTpsp6+zB9WU9eflvWH8tRFGNCJmiQW7ULYNnffQYCgfZ3fSqF33yDBKW38WdXdlyDBEcYpFnYjkw0+YnLob8Q=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.61.1", "", { "os": "android", "cpu": "arm" }, "sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA=="], diff --git a/docs/releases/UNRELEASED.md b/docs/releases/UNRELEASED.md index 511736f..fe00e79 100644 --- a/docs/releases/UNRELEASED.md +++ b/docs/releases/UNRELEASED.md @@ -10,7 +10,8 @@ then reset this file. ## Internal/release changes -- None yet. +- Release workflow now strips bundled `libwayland` libraries from AppImage + builds and re-signs the AppImage before collecting release assets. ## Validation diff --git a/package.json b/package.json index 5653589..e4f1f36 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "phosphor-svelte": "^3.1.0" }, "devDependencies": { - "@pickforge/tauri-release": "0.1.1", + "@pickforge/tauri-release": "^0.3.0", "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tauri-apps/cli": "^2.9.3", "@vitest/coverage-v8": "4.1.9", From acf0649a209d99b68f0efc30d9c588ef907aa3ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elberte=20Pl=C3=ADnio?= Date: Thu, 9 Jul 2026 01:09:15 -0300 Subject: [PATCH 2/2] ci: glob AppImage from workspace target dir --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5def021..23080b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,7 +87,7 @@ jobs: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: | shopt -s nullglob - appimages=(src-tauri/target/release/bundle/appimage/*.AppImage) + appimages=(target/release/bundle/appimage/*.AppImage) if [[ "${#appimages[@]}" -ne 1 ]]; then printf 'Expected exactly one AppImage, found %s:\n' "${#appimages[@]}" if [[ "${#appimages[@]}" -gt 0 ]]; then