Both files changed after the sums were generated -- the wrapper learned to fall back to hermes when invoked under an unknown name, and the desktop entry dropped its second main category -- so makepkg rejected them.
74 lines
2.5 KiB
Bash
74 lines
2.5 KiB
Bash
# Maintainer: David Heinemeier Hansson <david@hey.com>
|
|
|
|
# Hermes pins every one of its ~120 dependencies with == and declares
|
|
# Requires-Python >=3.11,<3.14, so it can neither be built against Arch's
|
|
# Python nor share the python-* packages, and Arch's next Python bump would
|
|
# break any venv this package built. So the package ships a wrapper rather than
|
|
# the application: mise gives Hermes a private, supported environment on first
|
|
# run and keeps it current, the arrangement omarchy-mise-install already makes
|
|
# for the other coding agents. pkgver therefore tracks the wrapper, not Hermes.
|
|
|
|
pkgname=hermes-agent
|
|
pkgver=1.0.0
|
|
pkgrel=1
|
|
pkgdesc='The self-improving AI agent that grows with you'
|
|
arch=('any')
|
|
url='https://github.com/NousResearch/hermes-agent'
|
|
license=('MIT')
|
|
|
|
depends=(
|
|
'hicolor-icon-theme'
|
|
'mise'
|
|
'uv' # mise's pipx backend refuses to run without uv or pipx
|
|
'xdg-terminal-exec'
|
|
)
|
|
|
|
optdepends=(
|
|
'chromium: browser automation tools'
|
|
'ffmpeg: text-to-speech voice messages'
|
|
'git: version control integration'
|
|
'nodejs: browser-use CLI and MCP servers'
|
|
'ripgrep: faster file search'
|
|
)
|
|
|
|
makedepends=('imagemagick')
|
|
options=('!debug')
|
|
|
|
source=('hermes.sh'
|
|
'hermes.desktop'
|
|
'hermes.png')
|
|
sha256sums=('39a13f25b2a1616b55da19400045630e6b0900140444a4457d7e0ff58208badb'
|
|
'0fee8e42dce35e7eee0e6b0ee296cc90ddf192f0f9b8297b7e5ea66800d94159'
|
|
'd60d164e24fdcf6532133b8ea43c77a201e4b9e9dbc396187b58d51d8590ef52')
|
|
|
|
build() {
|
|
# Upstream ships one 1024x1024 master. Menus and the dock ask for the small
|
|
# sizes, and letting them downscale a 1024px portrait themselves is what
|
|
# makes it a smudge at 48px.
|
|
local size
|
|
for size in 512 256 128 64 48; do
|
|
magick "$srcdir/hermes.png" -resize "${size}x${size}" "$srcdir/hermes-${size}.png"
|
|
done
|
|
}
|
|
|
|
package() {
|
|
install -Dm755 "$srcdir/hermes.sh" "$pkgdir/usr/bin/hermes"
|
|
|
|
# Hermes' other two entry points. The wrapper dispatches on the name it was
|
|
# invoked under, so these are symlinks rather than copies.
|
|
ln -s hermes "$pkgdir/usr/bin/hermes-agent"
|
|
ln -s hermes "$pkgdir/usr/bin/hermes-acp"
|
|
|
|
install -Dm644 "$srcdir/hermes.desktop" \
|
|
"$pkgdir/usr/share/applications/hermes.desktop"
|
|
|
|
install -Dm644 "$srcdir/hermes.png" \
|
|
"$pkgdir/usr/share/icons/hicolor/1024x1024/apps/hermes.png"
|
|
|
|
local size
|
|
for size in 512 256 128 64 48; do
|
|
install -Dm644 "$srcdir/hermes-${size}.png" \
|
|
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/hermes.png"
|
|
done
|
|
}
|