block / block/buzz

Pin linuxdeploy/AppRun/plugin downloads by digest (supply chain + reproducibility)

Open
#6,617 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

During `pnpm tauri build`, the bundler fetches at build time:
- `github.com/tauri-apps/binary-releases/releases/download/linuxdeploy/linuxdeploy-x86_64.AppImage`
- `.../apprun-old/AppRun-x86_64`
- `raw.githubusercontent.com/tauri-apps/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh`
- `raw.githubusercontent.com/tauri-apps/linuxdeploy-plugin-gstreamer/master/linuxdeploy-plugin-gstreamer.sh`
- `github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/…`

All of these are mutable references (`master`, `continuous`, re-uploadable release assets) resolved
at release-build time. Anyone who can move those upstream tags injects content into a Buzz release
build, and two builds of the same tag can legitimately differ. The workflow already digest-pins
appimagetool 1.9.1 and the type2 runtime — the same treatment (vendor or verify by sha256) should
cover these. (In my v0.5.18 rebuild they happened to still deliver compatible bytes — the final
artifacts weren't affected — but that's luck, not policy.)

Contributor guide

Open the contributing guide

Research direction

Start with the build workflow and the bundler path exercised by `pnpm tauri build`; trace where the listed linuxdeploy, AppRun, GTK, GStreamer, and appimage downloads are configured, alongside the existing appimagetool and type2 digest pins. Done means every listed download is vendored or sha256-verified so repeated builds cannot follow mutable upstream references.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, rust, tauri
Domain
build-system, release, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.