Skip to content

fix: repoint AppImage .DirIcon at a relative symlink - #3436

Open
1nderboi wants to merge 1 commit into
block:mainfrom
1nderboi:fix-appimage-diricon-3419
Open

fix: repoint AppImage .DirIcon at a relative symlink#3436
1nderboi wants to merge 1 commit into
block:mainfrom
1nderboi:fix-appimage-diricon-3419

Conversation

@1nderboi

Copy link
Copy Markdown

Summary

Fixes #3419. The AppImage's .DirIcon is a symlink tauri-bundler creates pointing at the build machine's absolute AppDir path (e.g. /__w/buzz/buzz/desktop/src-tauri/target/release/bundle/appimage/Buzz.AppDir/Buzz.png), unlike the other bundled icon symlinks (usr/share/icons/.../buzz-desktop.png, usr/share/applications/Buzz.desktop) which are correctly relative. That path never exists on a user's machine, so desktop integration tools that resolve .DirIcon to show/install the app icon fail with "Symlink target not found" — confirmed directly from the reporter's screenshots on the issue.

  • Root cause confirmed against the reporter's own screenshots (broken symlink target matches exactly, and their workaround — extract, re-link, rebuild — is consistent with this).
  • Fix lives in desktop/scripts/fix-appimage.sh, the existing post-build AppImage patch script that already handles other tauri-bundler/linuxdeploy quirks (Mesa/GLib/GStreamer conflicts) — same fail-loudly guard pattern as its existing checks, so a future bundler layout change surfaces here instead of shipping silently broken.
  • No change needed to tauri.conf.json — its icon list is already relative; this is purely a bundler-generated artifact.

Test plan

  • bash -n desktop/scripts/fix-appimage.sh — syntax-checks clean
  • Verified the symlink-rewrite logic in isolation against a mock AppDir (absolute .DirIcon symlink → relative symlink that correctly resolves)
  • Full AppImage build + repack via CI (linux-canary.yml / release.yml) to confirm end-to-end, since building isn't practical in this dev environment

🤖 Generated with Claude Code

tauri-bundler creates .DirIcon at the AppDir root as a symlink to the
build machine's absolute AppDir path (e.g.
/__w/buzz/buzz/desktop/src-tauri/target/release/bundle/appimage/Buzz.AppDir/Buzz.png),
unlike the other bundled icon symlinks which are correctly relative.
That path never exists on an end user's machine, so desktop
integration tools that resolve .DirIcon to show or install the app
icon fail with "Symlink target not found" (block#3419).

Fix .DirIcon in fix-appimage.sh, the existing post-build AppImage
patch script, by repointing it at its target's basename as a relative
symlink within the AppDir.

Signed-off-by: 1nderboi <201919958+1nderboi@users.noreply.github.com>
@1nderboi
1nderboi requested a review from a team as a code owner July 28, 2026 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AppImage is linked to the wrong absolute path

1 participant