Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/release-appimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ jobs:
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7
with:
name: appimage-x86_64
path: dist/*.AppImage
path: |
dist/*.AppImage
dist/*.AppImage.zsync
if-no-files-found: error

# Fedora container because Arch has no official ARM64 image and Arch Linux ARM lacks
Expand Down Expand Up @@ -77,5 +79,7 @@ jobs:
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7
with:
name: appimage-aarch64
path: dist/*.AppImage
path: |
dist/*.AppImage
dist/*.AppImage.zsync
if-no-files-found: error
4 changes: 3 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,16 +173,18 @@ jobs:
for arch in x86_64 aarch64; do
test -s "dist/zaptide-${GITHUB_REF_NAME}-${arch}.flatpak"
test -s "dist/zaptide-${GITHUB_REF_NAME}-${arch}.AppImage"
test -s "dist/zaptide-${GITHUB_REF_NAME}-${arch}.AppImage.zsync"
test -s "dist/zaptide-${GITHUB_REF_NAME}-${arch}-linux-gnu.tar.gz"
done
- name: Checksums
working-directory: dist
run: sha256sum *.flatpak *.AppImage *.tar.gz > checksums.txt
run: sha256sum *.flatpak *.AppImage *.AppImage.zsync *.tar.gz > checksums.txt
- uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
with:
files: |
dist/*.flatpak
dist/*.AppImage
dist/*.AppImage.zsync
dist/*.tar.gz
dist/checksums.txt
fail_on_unmatched_files: true
Expand Down
10 changes: 10 additions & 0 deletions PACKAGING.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ and Arch Linux ARM ships libadwaita 1.9. `build.sh` picks the `dnf` path when
podman run --rm -v "$PWD":/src -w /src -e VERSION=dev registry.fedoraproject.org/fedora:45 ./packaging/appimage/build.sh
```

Each AppImage embeds the update information
`gh-releases-zsync|luminusOS|zaptide|latest|zaptide-*-<arch>.AppImage.zsync`, and
the build writes the matching `.zsync` file next to it. The release publishes both,
so [AppImageUpdate](https://github.com/AppImageCommunity/AppImageUpdate) and
`appimageupdatetool` download only the changed blocks:

```sh
appimageupdatetool zaptide.AppImage
```

## Build dependencies

| Dependency | Fedora | Notes |
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ chmod +x ./zaptide.AppImage
./zaptide.AppImage
```

Update an AppImage in place with
[AppImageUpdate](https://github.com/AppImageCommunity/AppImageUpdate); it
downloads only what changed.

On first launch, use WhatsApp's **Linked devices** menu to scan the QR code or
link with your phone number. Recent history may take a few minutes to arrive.

Expand Down
6 changes: 5 additions & 1 deletion packaging/appimage/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Builds the ZapTide AppImage with quick-sharun. Run it as root inside an Arch
# Linux container (Arch ships libadwaita 1.10 and has no 32-bit libs in /usr/lib):
# podman run --rm -v "$PWD":/src -w /src archlinux ./packaging/appimage/build.sh
# The result is dist/zaptide-$ARCH.AppImage.
# The result is dist/zaptide-$VERSION-$ARCH.AppImage and its .zsync file.
set -eux

ARCH="$(uname -m)"
Expand Down Expand Up @@ -42,6 +42,10 @@ export ICON=data/icons/zaptide.svg
export DESKTOP=data/dev.luminusos.ZapTide.desktop
export STARTUPWMCLASS=dev.luminusos.ZapTide
export GTK_CLASS_FIX=1
# Delta updates: AppImageUpdate reads this from the AppImage and fetches the
# .zsync published next to it in the latest GitHub release.
export UPINFO="gh-releases-zsync|luminusOS|zaptide|latest|zaptide-*-$ARCH.AppImage.zsync"

./quick-sharun /usr/bin/zaptide
./quick-sharun --make-appimage
test -s "$OUTPATH/$OUTNAME.zsync"