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

fix(developer-rust): install a C compiler before the first cargo install#93
catinspace-au merged 1 commit into
mainfrom
fix/rust-build-deps-and-harness-become

Conversation

@catinspace-au

Copy link
Copy Markdown
Contributor

Two bugs the #91 verification ran into on the devex test VMs. Neither is governor code -- they are what stopped a clean VM converging at all.

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 the clean snapshot on Ubuntu 8101 (164 ok / 42 changed) and Fedora 8100 (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.

Separately filed while in there: #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
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