You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(ci): add independent manylinux_2_28 Qt build target
Adds a new `build-qt-manylinux-2-28` CI job that builds ActivityWatch
inside `quay.io/pypa/manylinux_2_28_x86_64`, producing Linux binaries
compatible with glibc 2.28 (RHEL/CentOS/AlmaLinux/Rocky 8 and older).
The change is purely additive: the existing `build-qt` and `build-tauri`
platform matrices are untouched.
Key decisions:
- `git config safe.directory` is set immediately after checkout, before the
first version probe, so the version string is correct throughout the build.
- Artifacts are renamed with a `-manylinux_2_28` suffix to avoid any name
collision with the standard Ubuntu build.
- An offline ABI gate (`scripts/package/abi-gate.sh`) scans every ELF in
both the ZIP and AppImage payload and fails if any symbol requires a GLIBC
version above 2.28.
- The release job's `needs` list now includes `build-qt-manylinux-2-28` so
the manylinux artifacts are included in every tagged release.
Closes#1390
* fix(package): use cp -a to handle hidden files when flattening aw-qt dir
The glob 'mv aw-qt-tmp/*' skips dotfiles, leaving aw-qt-tmp non-empty
and causing 'rmdir: failed to remove aw-qt-tmp: Directory not empty'
in the manylinux_2_28 container. Switch to cp -a dir/. which copies
all files (including hidden) then rm -rf the source directory.
* fix(ci): add server version guard and harden AppImage ABI gate
Two P1 issues from Greptile review:
1. Manylinux job lacked the aw-server-rust version guard that build-qt and
build-qt-tauri already have. Without it a tagged release could ship a
manylinux bundle containing an aw-server binary from a mismatched release
line. The new step is identical to the guard in those jobs.
2. abi-gate.sh failed open when AppImage extraction failed — it warned and
exited 0, so a release could publish an unscanned AppImage containing
GLIBC refs above 2.28. Extraction failure now exits 2 (script error).
* fix(package): rename aw-qt dir before cp -a to avoid name conflict
cp -a dist/activitywatch/aw-qt/. dist/activitywatch/ fails because
the aw-qt binary inside the dir has the same name as the source
directory — cp can't overwrite the directory with the non-directory.
Move to a temp name first, then copy contents, then remove.
0 commit comments