install_base should install native build deps (libseccomp, cmake, pkg-config, etc.) #96
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills#96
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
install_basetoday installs tools useful at runtime (curl, fzf, zoxide, yazi, p7zip, screen, rsync, mc, mosh, sccache) but not the C/C++ native toolchain +-devpackages that several Hero services transitively need through their Rust dependencies.The symptom is always the same:
cargo build --releaseruns fine until it hits a crate with a C build-script, then fails mid-compile with either a missing compiler, a missingcmake, or a linker error likeunable to find library -lseccomp. Each failure blocksservice_install_alland forces astop → apt-get install → restartcycle that costs ~20 minutes per failure if cargo has to rewarm.Known failures (all hit in the last 24 hours on the Hetzner box)
service_voicecmakeusable path, C++ toolchain via cmakewhisper-rs-sys'sbuild.rsdrives CMake to buildwhisper.cpp/ggmlservice_codelibseccomp-dev,libcap-ng-devhero_code_server(formerlyhero_runner_server) link-stage — sandboxing primitives for script executionservice_foundryEach of those produced a different opaque cargo error and cost a round-trip to diagnose.
Proposed fix
Option A (recommended): extend
install_baseto include the native dev stack every Linux Hero deployment needs. One-line additions to the existingpkg_ensureblock:Total install time is negligible; these are all in apt's main repo, ~60 MB combined.
Option B: split out
install_dev_nativeas a dedicated installer function, called either:install_core(alongsideinstall_rust), or--with-devflag oninstall_base.A separate function is cleaner if the concern is that pure-runtime hosts (where nothing is ever built locally) shouldn't carry compiler deps — but every Hetzner box in this ecosystem builds services locally today, so that concern is mostly academic.
Recommended Option A rationale
If there's a reason to keep
install_baselean, Option B is a clean alternative.Bonus: preemptive native deps on macOS + Linux
A
install_native_depsfunction that's dispatched per-platform (apt on Debian/Ubuntu, dnf on Fedora, brew on macOS) would be the ideal long-term abstraction. Out of scope for this issue — just flagging.Pointer
The list I've been running manually after each failure:
If someone wants to PR Option A, that's the batch to add to
tools/modules/installers/installers.nuin theinstall_basefunction.