diff --git a/README.md b/README.md index 68501bfcad..6cca69b39c 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,9 @@ curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iex ``` +Arch Linux package maintainers can use the [`openhuman-bin` AUR recipe](./packages/arch/openhuman-bin/); +once published, Arch users can install it with `yay -S openhuman-bin`. + # What is OpenHuman? OpenHuman is an open-source agentic assistant designed to integrate with you in your daily life. Each bullet links to the deeper writeup in the [docs](https://tinyhumans.gitbook.io/openhuman/). diff --git a/gitbooks/developing/getting-set-up.md b/gitbooks/developing/getting-set-up.md index 198ed88476..57e44dfb58 100644 --- a/gitbooks/developing/getting-set-up.md +++ b/gitbooks/developing/getting-set-up.md @@ -98,6 +98,26 @@ Installer behavior: - macOS: installs `OpenHuman.app` into `~/Applications` - Linux x64: installs AppImage as `~/.local/bin/openhuman` and writes a desktop entry +### Arch Linux package recipe + +The repository includes an `openhuman-bin` AUR recipe at +[`packages/arch/openhuman-bin`](../../packages/arch/openhuman-bin/). It uses the +official x86_64 AppImage as the binary source, extracts the bundled application +tree during `makepkg`, installs a desktop entry, and exposes `/usr/bin/openhuman`. + +Until the package is published on AUR, build it locally on Arch: + +```bash +cd packages/arch/openhuman-bin +makepkg --syncdeps --install +``` + +After publication, Arch users can install it with: + +```bash +yay -S openhuman-bin +``` + Useful flags: ```bash diff --git a/gitbooks/features/platform.md b/gitbooks/features/platform.md index ffe0147062..2d3f2bde51 100644 --- a/gitbooks/features/platform.md +++ b/gitbooks/features/platform.md @@ -13,11 +13,11 @@ OpenHuman is a native desktop application, not a browser extension, not an Elect ## Supported platforms -| Platform | Architectures | Distribution | -| ----------- | -------------------- | -------------------------- | -| **macOS** | Intel, Apple Silicon | `.dmg` installer, Homebrew | -| **Windows** | x64, ARM64 | `.msi` installer | -| **Linux** | x64 | AppImage, `.deb` | +| Platform | Architectures | Distribution | +| ----------- | -------------------- | ---------------------------------------------- | +| **macOS** | Intel, Apple Silicon | `.dmg` installer, Homebrew | +| **Windows** | x64, ARM64 | `.msi` installer | +| **Linux** | x64 | AppImage, `.deb`, AUR recipe (`openhuman-bin`) | *** diff --git a/packages/arch/openhuman-bin/.SRCINFO b/packages/arch/openhuman-bin/.SRCINFO new file mode 100644 index 0000000000..2d08b2d6ae --- /dev/null +++ b/packages/arch/openhuman-bin/.SRCINFO @@ -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 diff --git a/packages/arch/openhuman-bin/PKGBUILD b/packages/arch/openhuman-bin/PKGBUILD new file mode 100644 index 0000000000..b2bed31895 --- /dev/null +++ b/packages/arch/openhuman-bin/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: OpenHuman + +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/" + 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" +} diff --git a/packages/arch/openhuman-bin/README.md b/packages/arch/openhuman-bin/README.md new file mode 100644 index 0000000000..b0ae3a93b2 --- /dev/null +++ b/packages/arch/openhuman-bin/README.md @@ -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`. diff --git a/packages/arch/openhuman-bin/openhuman b/packages/arch/openhuman-bin/openhuman new file mode 100644 index 0000000000..cd4ed2da2c --- /dev/null +++ b/packages/arch/openhuman-bin/openhuman @@ -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" "$@" diff --git a/packages/arch/openhuman-bin/openhuman.desktop b/packages/arch/openhuman-bin/openhuman.desktop new file mode 100644 index 0000000000..3bfa49e685 --- /dev/null +++ b/packages/arch/openhuman-bin/openhuman.desktop @@ -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; diff --git a/packages/arch/openhuman-bin/openhuman.svg b/packages/arch/openhuman-bin/openhuman.svg new file mode 100644 index 0000000000..50a1ea307d --- /dev/null +++ b/packages/arch/openhuman-bin/openhuman.svg @@ -0,0 +1,4 @@ + + + +