Skip to content

fix(developer-rust): install a C compiler before the first cargo install - #93

Merged
catinspace-au merged 1 commit into
mainfrom
fix/rust-build-deps-and-harness-become
Sep 7, 2026
Merged

catinspace-au merged 1 commit into
mainfrom
fix/rust-build-deps-and-harness-become

Conversation

@catinspace-au

@catinspace-au catinspace-au commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

Two bugs that stopped a clean VM converging the developer-rust role at all. Neither is governor code.

A clean Fedora has no C compiler. The first thing the role compiles is cargo-binstall, and it died at linker cc not found. The build-deps task was bringing openssl-devel and pkg-config and no compiler, which works on any box that has been used for something else first and never on a fresh cloud image. gcc for Fedora, build-essential for Ubuntu (a no-op where it is already there).

The proxmox harness wrote its own files as root. ansible.cfg sets become = True for every play, and the local plays never opted out, so reset.yml generated inventory_proxmox.yml owned by root at 0600. The next converge could not read it, matched no hosts, and exited 0 -- a green run that did nothing, which is the worst shape a test harness can fail in. become: false on the three local plays.

With both in, --tags developer-rust converges clean from a clean snapshot on Ubuntu (164 ok / 42 changed) and Fedora (157 ok / 32 changed), and the governor verifies identically on each: CPUWeight 30, memory percentages resolved against the VM, a governed command at nice 19 inside user@UID.service/rustbuild.slice, bypass at nice 0 in the session scope.

Related: #92, the role converging twice under its own tag.

Proving the governor on a clean Fedora VM, the first cargo install --
cargo-binstall -- died at `linker cc not found`. The build-deps task brought
openssl-devel and pkg-config and no compiler, which a cloud image does not
ship. Ubuntu gets build-essential for the same reason, a no-op where it is
already present.

The proxmox harness plays wrote their local files as root, because
ansible.cfg turns become on for every play: reset.yml's generated
inventory_proxmox.yml came out root-owned 0600, and the converge that reads
it matched no hosts and reported success. The local plays now set
become: false.
@catinspace-au
catinspace-au merged commit a30ae70 into main Sep 7, 2026
16 checks passed
@catinspace-au
catinspace-au deleted the fix/rust-build-deps-and-harness-become branch September 7, 2026 23:21
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant