From 427fa858a93e9c244fe576c3e759bc55e859fade Mon Sep 17 00:00:00 2001 From: Eddy Date: Mon, 20 Apr 2026 00:11:38 +0200 Subject: [PATCH] [appimage] AppRun korrekt: linuxdeploy-Hook + AppRun.wrapped statt eigene ENVs Mein Custom-AppRun ueberschrieb das gesamte linuxdeploy-Setup. Resultat: WebKitNetworkProcess wurde nicht gefunden weil WEBKIT_EXEC_PATH und das korrekte LD_LIBRARY_PATH/Symlinks fehlten. Fix: NixOS-Detection + WEBKIT-Defaults VOR den Original-Hook setzen, dann linuxdeploy-Hook + AppRun.wrapped wie im Original aufrufen. --- .forgejo/workflows/build-appimage.yml | 29 +++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.forgejo/workflows/build-appimage.yml b/.forgejo/workflows/build-appimage.yml index 5919186..9476de5 100644 --- a/.forgejo/workflows/build-appimage.yml +++ b/.forgejo/workflows/build-appimage.yml @@ -47,36 +47,35 @@ jobs: echo "AppDir: $APPDIR" echo "Original AppImage: $OLD_NAME" - # Original AppRun sichern (falls Tauri spaeter mehr reinpackt) + # Original AppRun sichern + ueberhaupt: das linuxdeploy-Original + # ist sehr klein, laedt einen Hook (linuxdeploy-plugin-gtk.sh) der + # ALLE ENV-Vars korrekt setzt (LD_LIBRARY_PATH, WEBKIT_EXEC_PATH, + # GDK_PIXBUF etc.), dann ruft es AppRun.wrapped auf. + # Wir ergaenzen davor nur unsere NixOS+WebKit-Workarounds. cp "$APPDIR/AppRun" "$APPDIR/AppRun.original" - # Custom AppRun: NixOS-Detection + WebKit-Workarounds cat > "$APPDIR/AppRun" << 'APPRUN_EOF' #!/bin/bash - HERE="$(dirname "$(readlink -f "${0}")")" + HERE="$(readlink -f "$(dirname "$0")")" - # NixOS: Host-Mesa unter /run/opengl-driver bevorzugen, + # --- NixOS-Detection --- + # Host-Mesa unter /run/opengl-driver bevorzugen, # weil bundled Mesa gegen NixOS-Treiber kollidiert if [ -d /run/opengl-driver/lib ]; then export LD_LIBRARY_PATH="/run/opengl-driver/lib:${LD_LIBRARY_PATH}" fi - # WebKit-Workarounds fuer problematische GPU/Compositor-Stacks. + # --- WebKit-Workarounds --- + # fuer problematische GPU/Compositor-Stacks (Wayland-Bugs, NVIDIA, etc.) # Nur setzen wenn User nichts vorgegeben hat (override moeglich). : "${WEBKIT_DISABLE_DMABUF_RENDERER:=1}" : "${WEBKIT_DISABLE_COMPOSITING_MODE:=1}" export WEBKIT_DISABLE_DMABUF_RENDERER WEBKIT_DISABLE_COMPOSITING_MODE - # Standard-AppImage-Runtime (analog zu linuxdeploy-Default) - export PATH="${HERE}/usr/bin:${PATH}" - export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}" - export XDG_DATA_DIRS="${HERE}/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" - export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas:${GSETTINGS_SCHEMA_DIR}" - export GDK_PIXBUF_MODULE_FILE="${HERE}/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" - - # Tauri-Binary aufrufen — Name aus Cargo.toml [package.name] - # (find ... | head -1 zog faelschlich xdg-open statt unsere App) - exec "${HERE}/usr/bin/claude-desktop" "$@" + # --- Original linuxdeploy-Logik (1:1 wie AppRun.original) --- + set -e + source "$HERE"/apprun-hooks/linuxdeploy-plugin-gtk.sh + exec "$HERE"/AppRun.wrapped "$@" APPRUN_EOF chmod +x "$APPDIR/AppRun"