[appimage] AppRun korrekt: linuxdeploy-Hook + AppRun.wrapped statt eigene ENVs
All checks were successful
Build AppImage / build (push) Successful in 5m38s

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.
This commit is contained in:
Eddy 2026-04-20 00:11:38 +02:00
parent 01ddc7c938
commit 427fa858a9

View file

@ -47,36 +47,35 @@ jobs:
echo "AppDir: $APPDIR" echo "AppDir: $APPDIR"
echo "Original AppImage: $OLD_NAME" 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" cp "$APPDIR/AppRun" "$APPDIR/AppRun.original"
# Custom AppRun: NixOS-Detection + WebKit-Workarounds
cat > "$APPDIR/AppRun" << 'APPRUN_EOF' cat > "$APPDIR/AppRun" << 'APPRUN_EOF'
#!/bin/bash #!/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 # weil bundled Mesa gegen NixOS-Treiber kollidiert
if [ -d /run/opengl-driver/lib ]; then if [ -d /run/opengl-driver/lib ]; then
export LD_LIBRARY_PATH="/run/opengl-driver/lib:${LD_LIBRARY_PATH}" export LD_LIBRARY_PATH="/run/opengl-driver/lib:${LD_LIBRARY_PATH}"
fi 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). # Nur setzen wenn User nichts vorgegeben hat (override moeglich).
: "${WEBKIT_DISABLE_DMABUF_RENDERER:=1}" : "${WEBKIT_DISABLE_DMABUF_RENDERER:=1}"
: "${WEBKIT_DISABLE_COMPOSITING_MODE:=1}" : "${WEBKIT_DISABLE_COMPOSITING_MODE:=1}"
export WEBKIT_DISABLE_DMABUF_RENDERER WEBKIT_DISABLE_COMPOSITING_MODE export WEBKIT_DISABLE_DMABUF_RENDERER WEBKIT_DISABLE_COMPOSITING_MODE
# Standard-AppImage-Runtime (analog zu linuxdeploy-Default) # --- Original linuxdeploy-Logik (1:1 wie AppRun.original) ---
export PATH="${HERE}/usr/bin:${PATH}" set -e
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}" source "$HERE"/apprun-hooks/linuxdeploy-plugin-gtk.sh
export XDG_DATA_DIRS="${HERE}/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" exec "$HERE"/AppRun.wrapped "$@"
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" "$@"
APPRUN_EOF APPRUN_EOF
chmod +x "$APPDIR/AppRun" chmod +x "$APPDIR/AppRun"