-
Notifications
You must be signed in to change notification settings - Fork 2.6k
packaging(arch): add openhuman-bin AUR recipe #2428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| pkgbase = openhuman-bin | ||
| pkgdesc = Personal AI desktop assistant for communities | ||
| pkgver = 0.54.0 | ||
| pkgrel = 1 | ||
| url = https://github.com/tinyhumansai/openhuman | ||
| arch = x86_64 | ||
| license = GPL-3.0-only | ||
| optdepends = xdg-utils: open browser, file, and URL handlers from the desktop app | ||
| optdepends = libsecret: Secret Service credential storage on some Linux desktops | ||
| optdepends = fuse2: run the downloaded AppImage directly outside this package | ||
| provides = openhuman | ||
| conflicts = openhuman | ||
| options = !strip | ||
| source = OpenHuman_0.54.0_amd64.AppImage::https://github.com/tinyhumansai/openhuman/releases/download/v0.54.0/OpenHuman_0.54.0_amd64.AppImage | ||
| source = openhuman | ||
| source = openhuman.desktop | ||
| source = openhuman.svg | ||
| sha256sums = 2f76bc5b6f3a0e6cf2765f414a82b26903337720d190b4f9b26a5d7e2508abab | ||
| sha256sums = dbd46b85be9d551363b44ec19613a5fb5df4a08f5b618cb38ffe8891a0f31eeb | ||
| sha256sums = e357a666334449273047c02740a3e3fa34c58ff00304af8b3ec1a080a9574e99 | ||
| sha256sums = 7892979a084a5e2bbc73c32fe0f447918aa9b458c50bf0bb856469c837e6401c | ||
|
|
||
| pkgname = openhuman-bin |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # Maintainer: OpenHuman <hello@tinyhumans.ai> | ||
|
|
||
| pkgname=openhuman-bin | ||
| pkgver=0.54.0 | ||
| pkgrel=1 | ||
| pkgdesc='Personal AI desktop assistant for communities' | ||
| arch=('x86_64') | ||
| url='https://github.com/tinyhumansai/openhuman' | ||
| license=('GPL-3.0-only') | ||
| optdepends=( | ||
| 'xdg-utils: open browser, file, and URL handlers from the desktop app' | ||
| 'libsecret: Secret Service credential storage on some Linux desktops' | ||
| 'fuse2: run the downloaded AppImage directly outside this package' | ||
| ) | ||
| provides=('openhuman') | ||
| conflicts=('openhuman') | ||
| options=('!strip') | ||
| source=( | ||
| "OpenHuman_${pkgver}_amd64.AppImage::https://github.com/tinyhumansai/openhuman/releases/download/v${pkgver}/OpenHuman_${pkgver}_amd64.AppImage" | ||
| 'openhuman' | ||
| 'openhuman.desktop' | ||
| 'openhuman.svg' | ||
| ) | ||
| sha256sums=( | ||
| '2f76bc5b6f3a0e6cf2765f414a82b26903337720d190b4f9b26a5d7e2508abab' | ||
| 'dbd46b85be9d551363b44ec19613a5fb5df4a08f5b618cb38ffe8891a0f31eeb' | ||
| 'e357a666334449273047c02740a3e3fa34c58ff00304af8b3ec1a080a9574e99' | ||
| '7892979a084a5e2bbc73c32fe0f447918aa9b458c50bf0bb856469c837e6401c' | ||
| ) | ||
|
|
||
| prepare() { | ||
| cd "${srcdir}" | ||
| rm -rf squashfs-root | ||
| chmod +x "OpenHuman_${pkgver}_amd64.AppImage" | ||
| "./OpenHuman_${pkgver}_amd64.AppImage" --appimage-extract >/dev/null | ||
| test -x squashfs-root/shared/bin/OpenHuman | ||
| } | ||
|
|
||
| package() { | ||
| install -d "${pkgdir}/opt/openhuman" | ||
| cp -a --no-preserve=ownership "${srcdir}/squashfs-root/." \ | ||
| "${pkgdir}/opt/openhuman/" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [minor] 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. |
||
| install -Dm755 "${srcdir}/openhuman" \ | ||
| "${pkgdir}/usr/bin/openhuman" | ||
| install -Dm644 "${srcdir}/openhuman.desktop" \ | ||
| "${pkgdir}/usr/share/applications/openhuman.desktop" | ||
| install -Dm644 "${srcdir}/openhuman.svg" \ | ||
| "${pkgdir}/usr/share/icons/hicolor/scalable/apps/openhuman.svg" | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| # openhuman-bin AUR package | ||
|
|
||
| This directory contains the Arch Linux `openhuman-bin` package recipe. It uses | ||
| the official x86_64 AppImage from GitHub Releases as the binary source, extracts | ||
| its bundled application tree during `makepkg`, installs a desktop entry, and | ||
| adds `/usr/bin/openhuman` as a launcher. | ||
|
|
||
| The package does not launch the AppImage runtime directly. Arch-family distros | ||
| have reported `Interpreter not found!` from the bundled AppImage runtime on | ||
| v0.54.0, so the launcher executes the extracted `shared/bin/OpenHuman` binary | ||
| with the bundled library path instead. | ||
|
|
||
| ## Local package test | ||
|
|
||
| From this directory on an Arch Linux host: | ||
|
|
||
| ```bash | ||
| makepkg --syncdeps --clean --cleanbuild --force | ||
| pacman -Qip openhuman-bin-*.pkg.tar.zst | ||
| ``` | ||
|
|
||
| ## Release bump | ||
|
|
||
| 1. Set `pkgver` to the new stable release version without the leading `v`. | ||
| 2. Update the AppImage SHA-256 checksum from the GitHub release asset. | ||
| 3. Update the launcher checksum if `openhuman` changes. | ||
| 4. Regenerate `.SRCINFO` before publishing to AUR: | ||
|
|
||
| ```bash | ||
| updpkgsums | ||
| makepkg --printsrcinfo > .SRCINFO | ||
| ``` | ||
|
|
||
| The AUR repository should contain `PKGBUILD`, `.SRCINFO`, `openhuman`, | ||
| `openhuman.desktop`, and `openhuman.svg`. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| #!/usr/bin/env bash | ||
| set -euo pipefail | ||
|
|
||
| appdir=/opt/openhuman | ||
| export SHARUN_LDNAME="${SHARUN_LDNAME:-ld-linux-x86-64.so.2}" | ||
| export LD_LIBRARY_PATH="${appdir}/shared/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" | ||
|
|
||
| exec "${appdir}/shared/bin/OpenHuman" "$@" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| [Desktop Entry] | ||
| Name=OpenHuman | ||
| Comment=Personal AI desktop assistant | ||
| Exec=/usr/bin/openhuman %U | ||
| Terminal=false | ||
| Type=Application | ||
| Icon=openhuman | ||
| Categories=Utility;Office;Network; | ||
| StartupNotify=true | ||
| StartupWMClass=OpenHuman | ||
| MimeType=x-scheme-handler/openhuman; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[minor]
cp -apreserves the file modes from inside the AppImage (-aimplies--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"