Track upstream herdr instead of the Omarchy fork

The fork carried three commits that replayed an agent's CLI options when Herdr resumed its session. Upstream declined that work twice — once from a contributor in #2036 and once from us in #2614, closed in favour of an agent resume manifest system that is meant to supersede it — so the fork was a permanent rebase treadmill for one feature, and it is dropped here.

Packaging the v0.8.0 release instead would have regressed more than the fork gained: configurable outer pane borders, direct pane resize keybindings, move tab keybind actions, centered tab labels and outer terminal window title sync all merged upstream after that tag, so the release predates five features Omarchy contributed. The package follows upstream master and takes the -git name that says so, replacing both herdr and omarchy-herdr.

Master's Cargo.toml reads 0.8.1, a release upstream cut and withdrew hours later, while the wire protocol is already 20 against the published release's 19. An unmarked build therefore self-reports a version that no release carries, which is how an official client came to insist on stopping an Omarchy host's server without saying why. HERDR_BUILD_CHANNEL and HERDR_BUILD_ID make it report 0.8.1-omarchy.<commit>. The channel is not "preview" because that gates is_preview(), which makes the stable updater treat every published release as installable and overwrite /usr/bin/herdr outside pacman.

pkgver() excludes the preview tags that sit on master between releases; describing without that returns a preview build id that pacman ranks below the version already shipped. It fails rather than falling back for the same reason: with no release tag reachable, every version it could invent sorts lower than what users already have.

Cross-architecture remote attach cannot bootstrap a helper for this build, because the stable manifest lists only published releases. That is true of any build from master, marked or not: an unmarked one asks the manifest for 0.8.1 and is told it does not exist.

🤖 Generated by Opus 5 in Claude Code. Reviewed by Codex XHigh.

Co-Authored-By: Codex XHigh <codex@openai.com>
This commit is contained in:
Omabot
2026-08-19 07:52:27 -07:00
co-authored by Codex XHigh
parent fb0ffaadc9
commit e2e916f3c9
3 changed files with 62 additions and 45 deletions
+62
View File
@@ -0,0 +1,62 @@
# Maintainer: David Heinemeier Hansson <david@hey.com>
_pkgname=herdr
pkgname="$_pkgname-git"
pkgver=0.8.0.r129.ga5c69be
pkgrel=1
pkgdesc="Herdr terminal workspace manager built from upstream master"
arch=('x86_64' 'aarch64')
url="https://github.com/herdrdev/herdr"
license=('Apache-2.0')
depends=('gcc-libs' 'glibc')
makedepends=('cargo' 'git')
provides=("$_pkgname")
conflicts=("$_pkgname" 'omarchy-herdr')
replaces=("$_pkgname" 'omarchy-herdr')
options=('!debug' '!lto')
_commit=a5c69beabfc82d9c3f9563eb821139b2e0f3e14f
_zigver=0.15.2
source=("$_pkgname"::"git+$url.git#commit=$_commit")
source_x86_64=("zig-x86_64-linux-$_zigver.tar.xz::https://ziglang.org/download/$_zigver/zig-x86_64-linux-$_zigver.tar.xz")
source_aarch64=("zig-aarch64-linux-$_zigver.tar.xz::https://ziglang.org/download/$_zigver/zig-aarch64-linux-$_zigver.tar.xz")
sha256sums=('SKIP')
sha256sums_x86_64=('02aa270f183da276e5b5920b1dac44a63f1a49e55050ebde3aecc9eb82f93239')
sha256sums_aarch64=('958ed7d1e00d0ea76590d27666efbf7a932281b3d7ba0c6b01b0ff26498f667f')
pkgver() {
cd "$_pkgname"
# Preview tags sit on master between releases, so an unexcluded describe bases the version on
# a build id. Failing beats any fallback: with no release tag every candidate sorts lower.
( set -o pipefail
git describe --long --tags --abbrev=7 --exclude='preview-*' \
| sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
)
}
prepare() {
cd "$_pkgname"
cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
}
build() {
cd "$_pkgname"
export CARGO_TARGET_DIR=target
export ZIG="$srcdir/zig-$CARCH-linux-$_zigver/zig"
export ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-cache"
# Master's Cargo.toml already carries the next version, so an unmarked build claims a
# release upstream has not published and speaks a protocol that release will not have.
export HERDR_BUILD_CHANNEL=omarchy
export HERDR_BUILD_ID="$(git rev-parse --short=7 HEAD)"
cargo build --frozen --release
}
package() {
cd "$_pkgname"
install -Dm755 target/release/herdr "$pkgdir/usr/bin/herdr"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-45
View File
@@ -1,45 +0,0 @@
# Maintainer: David Heinemeier Hansson <david@hey.com>
pkgname=herdr
pkgver=0.8.0.r13
pkgrel=1
pkgdesc="Herdr terminal workspace manager built from the Omarchy fork"
arch=('x86_64' 'aarch64')
url="https://github.com/omacom-io/herdr"
license=('Apache-2.0')
depends=('gcc-libs' 'glibc')
makedepends=('cargo')
replaces=('omarchy-herdr')
conflicts=('omarchy-herdr')
options=('!debug' '!lto')
_commit=0766aa57ee0ceb4410ae064e94c0f0557853eee7
_zigver=0.15.2
source=("herdr-$_commit.tar.gz::$url/archive/$_commit.tar.gz")
source_x86_64=("zig-x86_64-linux-$_zigver.tar.xz::https://ziglang.org/download/$_zigver/zig-x86_64-linux-$_zigver.tar.xz")
source_aarch64=("zig-aarch64-linux-$_zigver.tar.xz::https://ziglang.org/download/$_zigver/zig-aarch64-linux-$_zigver.tar.xz")
sha256sums=('61d33624fd3af77ccf695d20c3c31689a44f8c2dc3855edd405eec7bc1af0318')
sha256sums_x86_64=('02aa270f183da276e5b5920b1dac44a63f1a49e55050ebde3aecc9eb82f93239')
sha256sums_aarch64=('958ed7d1e00d0ea76590d27666efbf7a932281b3d7ba0c6b01b0ff26498f667f')
prepare() {
cd "herdr-$_commit"
cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
}
build() {
cd "herdr-$_commit"
export CARGO_TARGET_DIR=target
export ZIG="$srcdir/zig-$CARCH-linux-$_zigver/zig"
export ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-cache"
cargo build --frozen --release
}
package() {
cd "herdr-$_commit"
install -Dm755 target/release/herdr "$pkgdir/usr/bin/herdr"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}