Skip to content

Linux builds on Ubuntu 22.04; fix statistics never being sent - #7

Merged
Feargin merged 2 commits into
mainfrom
linux-jammy
Oct 14, 2026
Merged

Feargin merged 2 commits into
mainfrom
linux-jammy

Conversation

@Feargin

@Feargin Feargin commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

Why

  • The AppImage catalog bot opened Add Sketchover AppImage/appimage.github.io#10176 to add Sketchover, and its test failed: the 0.3.0 AppImage was built on Ubuntu 24.04 and needs glibc 2.39, so it does not start on Ubuntu 22.04 (the oldest supported LTS, which the catalog tests on).
  • While testing the fix, found that statistics in 0.3.0 are never sent: the stats thread panics with "no reactor running". The hub has 7 installs on 0.3.0 and no launch/heartbeat events.

What

  • stats.rs: the request runs as a task of Tauri's async runtime; the thread only waits for it.
  • Release and CI: Linux on ubuntu-22.04. The pipewire crate (via xcap) needs PipeWire 1.x headers, so they come from ppa:pipewire-debian/pipewire-upstream — for compiling only, the binary does not link or load libpipewire.
  • Smoke tests: Linux on both 22.04 and 24.04.
  • READMEs: Ubuntu 22.04+, Debian 12+, Fedora 36+. ROADMAP, CHANGELOG [0.3.1].

Checked

  • Ubuntu 22.04 container: stock PipeWire 0.3.48 fails to compile libspa; with the PPA (1.0.7) it builds.
  • The binary needs at most GLIBC_2.34 and has no libpipewire dependency.
  • The AppImage built on 22.04 runs on a clean 22.04 desktop container with no network and no PPA: alive after 25 s, settings created, no glibc errors. Offline, statistics log "error sending request" instead of panicking.
  • npm run check, npm test, cargo fmt --check, cargo clippy --all-targets -D warnings, cargo test — clean.

Note

Changing smoke.yml runs the smoke test on this PR against the latest published release (0.3.0). Smoke (Linux 22.04) is expected to fail here — 0.3.0 was built on 24.04, which is exactly what this PR fixes. It should pass for 0.3.1.

🤖 Generated with Claude Code

Feargin and others added 2 commits October 14, 2026 16:28
In 0.3.0 the stats thread called block_on on the reqwest future from a
plain thread; reqwest needs a Tokio reactor, so the thread panicked with
"no reactor running" and no launch or heartbeat ever reached the hub.
The request now runs as a task of Tauri's runtime and the thread only
waits for it. Verified in an Ubuntu 22.04 container: offline, the app
logs "error sending request" and keeps running.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A program needs a glibc no newer than the one it was built against; the
24.04 build required glibc 2.39 and failed the AppImage catalog test,
which runs on the oldest supported LTS. The pipewire crate (via xcap)
needs PipeWire 1.x headers, so they come from the pipewire-upstream PPA,
for compiling only: the binary does not load libpipewire. Checked in a
container: the 22.04 AppImage needs at most GLIBC_2.34 and starts on a
clean 22.04 without network. Smoke tests run on 22.04 and 24.04.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Feargin
Feargin merged commit 756ce2a into main Oct 14, 2026
11 of 12 checks passed
@Feargin
Feargin deleted the linux-jammy branch October 14, 2026 14:01
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.

1 participant