fix(appimage): reject bundles missing the CEF runtime#4805
Conversation
📝 WalkthroughWalkthroughSharun-based AppImage validation now requires both ChangesAppImage runtime guards
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
scripts/release/test-strip-appimage-rpaths.sh (1)
139-152: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueTest cases correctly cover the expanded guard.
Test 2b properly verifies that
libxdoalone is insufficient (libcef missing → fail), and 2c verifies the happy path with both libraries present. The subshell( ... )correctly contains theexit 1from the function, and2>/dev/nullsuppresses expected error output during negative tests.One note: test 2c implicitly depends on
libxdo.so.3created in 2b. If 2b is ever removed or reordered, 2c would fail with a confusing message. Consider creating both files explicitly in 2c for self-containment.♻️ Optional: make test 2c self-contained
# 2c — both required runtime libraries present → must pass. mkdir -p "$GUARD_DIR/usr/lib" +: > "$GUARD_DIR/shared/lib/libxdo.so.3" : > "$GUARD_DIR/usr/lib/libcef.so" if ! ( validate_appimage_required_libs "$GUARD_DIR" ) 2>/dev/null; then🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/release/test-strip-appimage-rpaths.sh` around lines 139 - 152, Make test case 2c self-contained by explicitly creating both libxdo.so.3 and libcef.so before calling validate_appimage_required_libs, rather than relying on the fixture created in test 2b. Keep the existing success assertion and failure message unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/release/strip-appimage-graphics-libs.sh`:
- Line 519: Update strip_one_appimage to install an EXIT cleanup trap
immediately after creating workdir, ensuring validate_appimage_required_libs
failures and all other exits remove the temporary directory. Preserve the
existing success and failure behavior while avoiding duplicate cleanup or unsafe
removal when workdir is unset.
---
Nitpick comments:
In `@scripts/release/test-strip-appimage-rpaths.sh`:
- Around line 139-152: Make test case 2c self-contained by explicitly creating
both libxdo.so.3 and libcef.so before calling validate_appimage_required_libs,
rather than relying on the fixture created in test 2b. Keep the existing success
assertion and failure message unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 4bf85d57-7f1a-4d80-bde0-8932f4e8ffd6
📒 Files selected for processing (2)
scripts/release/strip-appimage-graphics-libs.shscripts/release/test-strip-appimage-rpaths.sh
Summary
libxdo.so*andlibcef.so*.Problem
libxdo.so*only. A current Fedora report shows the same release artifact missinglibcef.so, while the earlier CEF prewarm/staging steps do not prove that the final AppDir still contains it.Solution
shared/lib,usr/lib, andlibroots after packaging.Submission Checklist
> If a section does not apply to this change, mark the item as
N/Awith a one-line reason. Do not delete items.## Related— N/A: no coverage-matrix feature ID applies.docs/RELEASE-MANUAL-SMOKE.md) — N/A: this automates a pre-release artifact invariant and adds no new manual flow.Closes #NNNin the## RelatedsectionImpact
Related
AI Authored PR Metadata (required for Codex/Linear PRs)
> Keep this section for AI-authored PRs. For human-only PRs, mark each field
N/A.Linear Issue
Commit & Branch
fix/appimage-runtime-librariesc6a2d418fbe5c5b5ed29be5f9be64c1550ead186Validation Run
pnpm --filter openhuman-app format:check— Prettier passed; the chained Rust format check is blocked by missingcargoand documented below.pnpm typecheck— N/A: shell-only release validation change.wsl.exe -d Ubuntu-24.04 -- bash -lc "bash scripts/release/test-strip-appimage-rpaths.sh"bash -n,shellcheck --severity=warning, andgit diff --check.Validation Blocked
command:pnpm --filter openhuman-app format:check(also invoked by the pre-push hook)error:Prettier reported all matched files clean, then the chained Rust formatting step failed becausecargois not installed on the Windows host.impact:Rust formatting and the remaining full pre-push checks could not run locally. No Rust/TypeScript/app files changed; the Linux shell regression, syntax check, ShellCheck, and whitespace check pass.Behavior Changes
Parity Contract
Duplicate / Superseded PR Handling
libcef,AppImage runtime, or error while loading shared libraries: libxdo.so.3 on AppImage #4020.Summary by CodeRabbit
Bug Fixes
Tests
Summary by CodeRabbit
Bug Fixes
libxdo.so.*) and the CEF runtime (libcef.so*).Tests
libxdo.so.*is present, and success when bothlibxdo.so.*andlibcef.so*are included.