Skip to content

enhance: embed AppImage update information and publish zsync files - #2762

Merged
love-linger merged 1 commit into
sourcegit-scm:developfrom
gengurke:appimage-update-info
Oct 8, 2026
Merged

love-linger merged 1 commit into
sourcegit-scm:developfrom
gengurke:appimage-update-info

Conversation

@gengurke

@gengurke gengurke commented Oct 6, 2026

Copy link
Copy Markdown
Contributor
  • Embed gh-releases-zsync update information into the AppImage via appimagetool -u (per AppImageSpec)
  • Upload the generated .AppImage.zsync files alongside the AppImages so AppImageUpdate, AppImageLauncher, Gear Lever, AppManager, AM etc. can detect updates and do delta downloads

Fixes #2644

@gengurke

gengurke commented Oct 6, 2026

Copy link
Copy Markdown
Contributor Author

This PR's workflows are waiting for approval, so I ran the same CI workflow on my fork with this commit. All jobs passed in gengurke/sourcegit run 37514357034.

The Linux package artifacts now include the .zsync files:

Artifact AppImage zsync
package.linux-x64 sourcegit-2026.21.linux.amd64.AppImage sourcegit-2026.21.linux.amd64.AppImage.zsync
package.linux-arm64 sourcegit-2026.21.linux.arm64.AppImage sourcegit-2026.21.linux.arm64.AppImage.zsync

I downloaded both artifacts and checked them:

  • readelf --string-dump=.upd_info shows gh-releases-zsync|sourcegit-scm|sourcegit|latest|sourcegit-*.linux.<arch>.AppImage.zsync, and each file has its own arch in the pattern.
  • In each .zsync header, URL is the AppImage file name, and Length and SHA-1 match the AppImage.

I also tested the update flow end to end. I published two temporary pre-releases on my fork, with the update string pointing at the fork. appimageupdatetool found the update and did a zsync delta update, and the result had the same SHA-1 as the new AppImage. Gear Lever's update code (4.6.2) also found the update and downloaded the matching asset.

@love-linger love-linger self-assigned this Oct 8, 2026
@love-linger love-linger added os-linux This issue only exists on Linux tools Non-main project code, such as inspection, packaging, CI and other peripheral tools labels Oct 8, 2026
@love-linger
love-linger merged commit b256212 into sourcegit-scm:develop Oct 8, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

os-linux This issue only exists on Linux tools Non-main project code, such as inspection, packaging, CI and other peripheral tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants