Skip to content

ci: install nasm in release-plz — the one workflow that links a binary was the one without it - #32

Merged
Ttimmahlax merged 1 commit into
masterfrom
fix-release-plz-nasm
Aug 28, 2026
Merged

ci: install nasm in release-plz — the one workflow that links a binary was the one without it#32
Ttimmahlax merged 1 commit into
masterfrom
fix-release-plz-nasm

Conversation

@Ttimmahlax

Copy link
Copy Markdown
Collaborator

Nine crates published and the release still exited non-zero. cargo package reached ffai-cli and the link failed:

rust-lld: error: undefined symbol: McHorVer22Width8VerLastAlign_sse2
  referenced by rusty_h264-accel-0.8.0/src/lib.rs:376
rust-lld: error: undefined symbol: PixelAvgWidthEq4_mmx

Why only ffai-cli

rusty_h264-accel's build.rs skips assembling OpenH264's x86 kernels when nasm is absent, emits a warning, and lets the crate compile as a library anyway. So every library in the release packaged and published cleanly — ffai-media, all four engines, ffai-argus-wasm.

ffai-cli is the only binary. A binary is the only thing that links, and that's where the missing symbols surfaced. ffai-mercury-wasm and ffai-wasm sort after it and never got their turn.

The asymmetry

workflow installs nasm links a binary
harden.yml ✅ (that's why Test/Clippy pass)
release.yml
release-plz.yml ✅ — and it's the one that publishes

harden.yml's copy of this step has carried a comment predicting this exact failure — "a missing BUILD TOOL, not broken code" — since before it happened here.

This adds the same step, with the same time-box and retries.

Do not merge Dependabot #11 expecting it to help

The open rusty_h264 0.8.0 → 0.10.0 bump does not fix this. The symbols are absent because nothing assembled them, not because of anything that changed between those versions. I checked build.rs rather than assuming.

After this merges

The release should complete: ffai-cli 0.6.7, ffai-wasm 0.1.2 and ffai-mercury-wasm 0.1.0 are the three still outstanding.

🤖 Generated with Claude Code

…y was the one without it

Nine crates published and the release still exited non-zero. `cargo package`
reached `ffai-cli` and the link failed:

  rust-lld: error: undefined symbol: McHorVer22Width8VerLastAlign_sse2
    referenced by rusty_h264-accel-0.8.0/src/lib.rs:376
  rust-lld: error: undefined symbol: PixelAvgWidthEq4_mmx

`rusty_h264-accel`'s build.rs skips assembling OpenH264's x86 kernels when
`nasm` is absent, warns, and lets the crate compile as a LIBRARY anyway — so
every library in the release packaged and published cleanly (ffai-media, the
four engines, ffai-argus-wasm). ffai-cli is the only BINARY, a binary is the
only thing that links, and that is where the missing symbols surfaced.
ffai-mercury-wasm and ffai-wasm sort after it and never got their turn.

`harden.yml` and `release.yml` both install nasm. `release-plz.yml` did not,
and it is the workflow that publishes. harden.yml's copy of this step has
carried a comment predicting this exact failure — "a missing BUILD TOOL, not
broken code" — since before it happened here.

Same step, same time-box and retries as the other two.

Dependabot's open bump of rusty_h264 0.8.0 -> 0.10.0 does NOT fix this and
should not be merged expecting it to: the symbols are absent because nothing
assembled them, not because of anything that changed between those versions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Ttimmahlax
Ttimmahlax merged commit 420ebab into master Aug 28, 2026
5 of 8 checks passed
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.

2 participants