summaryrefslogtreecommitdiff
path: root/net-misc/airouter/airouter-0.1.2-r6.ebuild
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-09-22 23:02:10 -0500
committerCrucible <crucible@localhost>2026-09-22 23:02:10 -0500
commit10ec280f9159121fe2f85760e68d3ad7bcf2e37b (patch)
tree71e29b41d977c762d420003ea685db6b9b574955 /net-misc/airouter/airouter-0.1.2-r6.ebuild
parent979af70cb83395cab2f32ea1124be68ebaced6b6 (diff)
downloadbaldeagleos-repo-develop.tar.gz
baldeagleos-repo-develop.tar.xz
baldeagleos-repo-develop.zip
Publish baldeagleos-repo candidate 0000000342-20260922-225608HEADdevelop
Diffstat (limited to 'net-misc/airouter/airouter-0.1.2-r6.ebuild')
-rw-r--r--net-misc/airouter/airouter-0.1.2-r6.ebuild119
1 files changed, 119 insertions, 0 deletions
diff --git a/net-misc/airouter/airouter-0.1.2-r6.ebuild b/net-misc/airouter/airouter-0.1.2-r6.ebuild
new file mode 100644
index 000000000000..53d129f7e66c
--- /dev/null
+++ b/net-misc/airouter/airouter-0.1.2-r6.ebuild
@@ -0,0 +1,119 @@
+EAPI=8
+
+RUST_MIN_VER="1.88.0"
+inherit cargo
+
+DESCRIPTION="Metadata-only routing plane for owned and frontier AI compute"
+HOMEPAGE="https://trunkmasters.com/airouter"
+SRC_URI="https://distfiles.baldeagleos.com/airouter-0.1.2-r6.tar.zst https://distfiles.baldeagleos.com/llmbridge-0.1.2-20260919.tar.zst"
+S="${WORKDIR}/airouter"
+
+# The archive contains AIRouter, its pinned LLMBridge path dependency, and a
+# complete Cargo vendor tree. The package must build without /srv/airouter or
+# network access.
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+
+RDEPEND="
+ acct-group/airouter
+ acct-group/airouter-admin
+ acct-group/airouter-framework
+ acct-user/airouter
+ acct-user/airouter-agent
+ dev-db/postgresql
+ sys-auth/citadel
+ >=dev-lang/python-3.10
+ sys-apps/acl
+ sys-apps/bubblewrap
+ sys-apps/util-linux
+"
+BDEPEND="
+ net-misc/rsync
+ >=dev-lang/rust-1.88.0
+"
+
+src_unpack() {
+ # Portage on the target profile does not unpack .tar.zst through the
+ # generic helper; extract both immutable source inputs explicitly.
+ tar --zstd -xf "${DISTDIR}/airouter-0.1.2-r6.tar.zst" -C "${WORKDIR}" || die
+ tar --zstd -xf "${DISTDIR}/llmbridge-0.1.2-20260919.tar.zst" -C "${WORKDIR}" || die
+ mv "${WORKDIR}/llmbridge-0.1.2-20260919" "${WORKDIR}/llmbridge" || die
+}
+
+src_compile() {
+ cargo build --offline --release --workspace --locked \
+ --features "airouter-catalog/skills-tools,airouter-catalog/workspace-tools,\
+airouter-catalog/development-tools,airouter-catalog/release-tools,\
+airouter-catalog/learning-tools,airouter-catalog/host-tools,\
+airouter-catalog/control-tools" || die
+}
+
+src_install() {
+ dosbin target/release/airouterd
+ dosbin target/release/airouter-agentd
+ dosbin target/release/airouterctl
+ dosbin target/release/airouter-catalog
+ dosbin target/release/airouter-host
+ dosbin target/release/airouter-release
+ dosbin target/release/airouter-verify
+ dosbin target/release/airouter-permissions
+ dosbin target/release/airouter-toolsd
+ dobin target/release/airouter-smoke
+ dobin target/release/airouter-tool
+ exeinto /usr/libexec/airouter
+ doexe target/release/enroll-node
+ doexe packaging/scripts/airouter-renew-node-server
+ doexe packaging/scripts/airouter-capability-refresh
+ doexe packaging/scripts/airouter-framework-backup
+ doexe packaging/scripts/airouter-tools-launch
+ doexe target/release/airouter-desktop-worker
+ # The Workbench selector invokes this stable top-level helper directly.
+ # Keep it beside the AIRouter executables; catalog helpers belong below
+ # /usr/libexec/airouter/catalog.
+ exeinto /usr/libexec/airouter
+ newexe scripts/airouter-route.py airouter-route
+ exeinto /usr/libexec/airouter/catalog
+ doexe target/release/airouter-skills-catalog
+ doexe target/release/airouter-workspace-catalog
+ doexe target/release/airouter-development-catalog
+ doexe target/release/airouter-release-catalog
+ doexe target/release/airouter-learning-catalog
+ doexe target/release/airouter-host-catalog
+ doexe target/release/airouter-control-catalog
+ exeinto /usr/libexec/airouter/qualification
+ doexe scripts/qualify-citadel-session.py
+ insinto /etc/cron.d
+ doins packaging/cron/airouter-server-cert-renew
+ doins packaging/cron/airouter-capability-refresh
+ doins packaging/cron/airouter-framework-backup
+ insinto /etc/airouter
+ doins config/airouter.toml
+ newins config/framework.example.toml framework.toml
+ doins config/tools.example.toml config/tools-client.example.toml
+ newins config/routing.example.json routing.json
+ insinto /etc/airouter-capabilities
+ newins packaging/capabilities.sources.example.json sources.json
+ insinto /etc/airouter/qualification
+ doins packaging/qualification/native-codex-workbench.json
+ diropts -o airouter -g airouter -m 0700
+ keepdir /etc/airouter/secrets
+ newinitd packaging/openrc/airouterd airouterd
+ newinitd packaging/openrc/airouter-frameworkd airouter-frameworkd
+ newinitd packaging/openrc/airouter-catalog-refresh airouter-catalog-refresh
+ newinitd packaging/openrc/airouter-qualification airouter-qualification
+ newinitd packaging/openrc/airouter-toolsd airouter-toolsd
+ docinto tools
+ dodoc config/tools.example.toml config/tools-client.example.toml crates/airouter-tools/README.md crates/airouter-tools/DESKTOPS.md
+ docinto /
+ dodoc README.md schema/README.md
+ diropts -o airouter -g airouter -m 0750
+ keepdir /var/lib/airouter
+ keepdir /var/backups/airouter-framework
+}
+
+pkg_postinst() {
+ elog "Create the signing key with: airouterctl generate-signing-key"
+ elog "Apply migrations with the restricted airouter_migrate role before starting airouterd."
+}