Skip to content

packaging(arch): add openhuman-bin AUR recipe#2428

Open
aqilaziz wants to merge 1 commit into
tinyhumansai:mainfrom
aqilaziz:codex/1593-arch-aur-package
Open

packaging(arch): add openhuman-bin AUR recipe#2428
aqilaziz wants to merge 1 commit into
tinyhumansai:mainfrom
aqilaziz:codex/1593-arch-aur-package

Conversation

@aqilaziz
Copy link
Copy Markdown
Contributor

@aqilaziz aqilaziz commented May 21, 2026

Summary

  • Adds an Arch Linux openhuman-bin package recipe under packages/arch/openhuman-bin.
  • Uses the official v0.54.0 x86_64 AppImage as the binary source, extracts its bundled application tree during makepkg, and launches the inner shared/bin/OpenHuman binary with the bundled library path.
  • Installs a desktop entry, icon, /usr/bin/openhuman launcher, .SRCINFO, and release-bump notes.
  • Documents the AUR recipe in the README, platform availability page, and setup guide.

Submission Checklist

  • Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy - N/A: packaging/docs-only recipe.
  • Diff coverage >= 80% - N/A: no executable product code changed.
  • Coverage matrix updated - N/A: packaging/docs-only recipe.
  • All affected feature IDs from the matrix are listed in the PR description under ## Related - N/A.
  • No new external network dependencies introduced.
  • Manual smoke checklist updated if this touches release-cut surfaces - N/A: adds package recipe; release smoke remains unchanged.
  • Linked issue closed via Closes #NNN in the ## Related section - N/A: AUR publication is still a follow-up; this PR references the issue.

Validation

  • git diff --cached --check
  • Verified GitHub release asset digest for OpenHuman_0.54.0_amd64.AppImage.
  • Verified local openhuman, openhuman.desktop, and openhuman.svg SHA-256 checksums match PKGBUILD and .SRCINFO.
  • PowerShell sanity checks for required PKGBUILD and .SRCINFO fields.
  • PowerShell sanity checks for AppImage extraction recipe and launcher path.

Validation Blocked

  • makepkg --syncdeps --clean --cleanbuild --force - blocked: current host is Windows, not Arch Linux.
  • bash -n packages/arch/openhuman-bin/PKGBUILD - blocked: bash.exe resolves to WSL, and WSL2 is not enabled on this host (HCS_E_HYPERV_NOT_INSTALLED).

Related


AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: codex/1593-arch-aur-package
  • Commit SHA: 262288aa607b1599749984e8701e9fa999ec3267

Validation Run

  • Whitespace check passed.
  • Release digest check passed.
  • Local package-source checksum check passed.
  • PKGBUILD/SRCINFO field sanity checks passed.
  • AppImage extraction recipe sanity checks passed.

Behavior Changes

  • No runtime behavior change for existing installers. Adds Arch packaging recipe and install documentation.

Parity Contract

  • Existing installer scripts, AppImage, .deb, Homebrew, and Windows installer paths remain unchanged.
  • openhuman-bin packages the same official x86_64 AppImage release asset, but extracts it during package build so Arch-family users do not launch the AppImage runtime directly.

Duplicate / Superseded PR Handling

Summary by CodeRabbit

  • New Features

    • Added Arch Linux AUR package support with a packaged binary, system launcher, desktop integration, and a /usr/bin launcher for easy command-line access.
  • Documentation

    • Updated installation guide with Arch-specific install and local test instructions.
    • Updated platform support docs to list AppImage, .deb, and AUR recipe availability.

Review Change Stack

@aqilaziz aqilaziz requested a review from a team May 21, 2026 08:52
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

📝 Walkthrough

Walkthrough

Adds an Arch AUR recipe (packages/arch/openhuman-bin) that extracts the official x86_64 AppImage during build, installs the app tree under /opt/openhuman, provides a launcher at /usr/bin/openhuman, a freedesktop desktop file, and corresponding README/gitbook installation and platform-table updates.

Changes

Arch Linux AUR Distribution

Layer / File(s) Summary
PKGBUILD and .SRCINFO package recipe
packages/arch/openhuman-bin/PKGBUILD, packages/arch/openhuman-bin/.SRCINFO
PKGBUILD defines openhuman-bin (0.54.0) with metadata, optional deps, AppImage sources, prepare() to extract the AppImage and assert the extracted binary, and package() to install /opt/openhuman, the launcher, desktop entry, and icon. .SRCINFO lists version, sources, sha256sums, architecture, license, provides/conflicts, and options.
Launcher script and desktop entry
packages/arch/openhuman-bin/openhuman, packages/arch/openhuman-bin/openhuman.desktop
Adds a Bash launcher that prepends ${appdir}/shared/lib to LD_LIBRARY_PATH and execs the bundled shared/bin/OpenHuman, and a freedesktop .desktop file registering the app and x-scheme-handler/openhuman MIME type.
Arch package maintenance and user docs
packages/arch/openhuman-bin/README.md, README.md, gitbooks/developing/getting-set-up.md, gitbooks/features/platform.md
Adds AUR package README with local makepkg build/test and release-bump checklist; README adds Arch install note (yay -S openhuman-bin); gitbooks adds an "Arch Linux package recipe" subsection and updates the supported platforms table to list openhuman-bin alongside AppImage and .deb.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I dug a PKGBUILD hole today,
An AppImage tucked safe away.
A launcher hops to /usr/bin,
Desktop smiles and icons grin.
Arch bunnies cheer — install away!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'packaging(arch): add openhuman-bin AUR recipe' directly and accurately summarizes the main change: adding an Arch Linux AUR package recipe for OpenHuman.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 21, 2026
Copy link
Copy Markdown
Contributor

@graycyrus graycyrus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work — this is a well-structured AUR recipe that directly addresses #2417 (Interpreter not found!) and advances #1593. The AppImage extraction approach, SHARUN_LDNAME default, and bundled LD_LIBRARY_PATH are all solid choices for Arch-family distros.

A couple of minor suggestions below, nothing blocking.

package() {
install -d "${pkgdir}/opt/openhuman"
cp -a --no-preserve=ownership "${srcdir}/squashfs-root/." \
"${pkgdir}/opt/openhuman/"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor] cp -a copies the entire squashfs-root into /opt/openhuman/, including unused top-level files from the AppImage (AppRun, root .desktop, root icon, etc.). Only shared/ is actually referenced by the launcher.

Consider installing just the subtree the launcher needs:

cp -a --no-preserve=ownership "${srcdir}/squashfs-root/shared" \
  "${pkgdir}/opt/openhuman/shared"

This trims the install footprint and avoids shipping dead files.


package() {
install -d "${pkgdir}/opt/openhuman"
cp -a --no-preserve=ownership "${srcdir}/squashfs-root/." \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor] cp -a preserves the file modes from inside the AppImage (-a implies --preserve=mode). Some AppImages pack files with overly permissive modes (e.g. 0777). Worth normalizing after the copy:

chmod -R u=rwX,go=rX "${pkgdir}/opt/openhuman"

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.

2 participants