From 6028a41d65b7625b91fdeb04ca493f0db99da439 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Thu, 11 Jun 2026 10:40:01 -0400 Subject: [PATCH] Replace APPIMAGE_EXTRACT_AND_RUN with pre-extracted linuxdeploy wrapper Docker CI containers lack FUSE kernel module, and the env var approach was unreliable when Tauri spawns linuxdeploy as a subprocess. Instead: download linuxdeploy-x86_64.AppImage, extract its squashfs content using squashfs-tools (no FUSE needed), then place a shell wrapper at ~/.cache/tauri/linuxdeploy-x86_64.AppImage so Tauri uses the extracted binary directly without AppImage runtime. Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/release.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0f5409f..11adece 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -135,7 +135,7 @@ jobs: librsvg2-dev \ patchelf \ xdg-utils \ - libfuse2 + squashfs-tools - uses: dtolnay/rust-toolchain@stable @@ -152,18 +152,30 @@ jobs: - name: Install Tauri deps run: npm ci - - name: Stage AppRun for AppImage bundler + - name: Stage AppRun and linuxdeploy for AppImage bundler run: | mkdir -p ~/.cache/tauri cp tools/AppRun-x86_64 ~/.cache/tauri/AppRun-x86_64 chmod +x ~/.cache/tauri/AppRun-x86_64 + # Pre-extract linuxdeploy AppImage so it runs without FUSE in Docker + wget -q \ + "https://github.com/tauri-apps/binary-releases/releases/download/linuxdeploy/linuxdeploy-x86_64.AppImage" \ + -O /tmp/linuxdeploy.AppImage + OFFSET=$(python3 -c " +d=open('/tmp/linuxdeploy.AppImage','rb').read() +o=d.find(b'hsqs') +print(o if o!=-1 else d.find(b'sqsh')) +") + unsquashfs -d /tmp/linuxdeploy-root -offset "$OFFSET" /tmp/linuxdeploy.AppImage + printf '#!/bin/sh\nexec /tmp/linuxdeploy-root/AppRun "$@"\n' \ + > ~/.cache/tauri/linuxdeploy-x86_64.AppImage + chmod +x ~/.cache/tauri/linuxdeploy-x86_64.AppImage - name: Build env: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: '' NODE_OPTIONS: '--max_old_space_size=4096' - APPIMAGE_EXTRACT_AND_RUN: '1' run: npm run tauri -- build --bundles appimage,deb - name: Upload to release