Skip to content

feat(rust-cmov): add rust-cmov component - #18445

Merged
reuben olinsky (reubeno) merged 1 commit into
4.0from
feat/rust-cmov
Aug 17, 2026
Merged

feat(rust-cmov): add rust-cmov component#18445
reuben olinsky (reubeno) merged 1 commit into
4.0from
feat/rust-cmov

Conversation

@WithEnoughCoffee

@WithEnoughCoffee Autumn Nash (WithEnoughCoffee) commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds rust-cmov, a new leaf crate not previously packaged in AZL. It provides
architecture-specific constant-time predication intrinsics and is a hard
(non-dev) BuildRequires of rust-ctutils (crate(cmov/default) >= 0.5.3, < 0.6.0),
needed transitively by rust-digest's "mac" feature -> rust-hmac 0.13.0 as
part of the uv crate-alignment cascade in #18405 (zip transitive prereqs).

Why split this out

scratch builds are never tagged/imported into the target repo's build
tag, so rust-ctutils's scratch build can never resolve a same-PR sibling's
scratch-built cmov output, regardless of build order or retries (same
architectural issue previously solved for rust-cpubits ahead of rust-aes).
This package needs to land as a real (non-scratch, tagged) build in
azl4-build before rust-ctutils (and the rest of the #18405 dependency
chain) can pass its scratch-build gate.

%check is disabled for this package: proptest is a %check-only
(dev-)dependency (crate(proptest/default) >= 1.11.0, < 2.0.0), and
production azl4-build only has proptest 1.9.0 today (the 1.11.0 bump
lands separately in #18405). The library itself does not need proptest to
build.

Filing a ticket to follow up with the protest %check

Testing

  • azldev component update -a --check-only -q passes.
  • azldev component render -p rust-cmov is clean/up to date.

Copilot AI balanced review requested due to automatic review settings August 14, 2026 20:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds rust-cmov as a packaged dependency for the RustCrypto/uv dependency chain.

Changes:

  • Pins and configures Fedora’s rust-cmov 0.5.4 package.
  • Disables %check pending proptest 1.11.
  • Adds lock data and rendered packaging files.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
base/comps/rust-cmov/rust-cmov.comp.toml Defines the component and build configuration.
locks/rust-cmov.lock Pins the upstream commit and inputs.
specs/r/rust-cmov/rust-cmov.spec Provides the rendered RPM specification.
specs/r/rust-cmov/rust-cmov.azl.macros Disables package checks.
specs/r/rust-cmov/sources Records the crate checksum.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread base/comps/rust-cmov/rust-cmov.comp.toml
Comment thread base/comps/rust-cmov/rust-cmov.comp.toml
Comment thread specs/r/rust-cmov/rust-cmov.spec
Comment thread specs/r/rust-cmov/rust-cmov.spec Outdated
Autumn Nash (WithEnoughCoffee) added a commit that referenced this pull request Aug 14, 2026
…a2/streebog + compat packages, proptest

Bumps shared Rust crypto crates as part of the uv crate-alignment
cascade, adding version-pinned compat packages for old consumers.

Also adds rust-ctutils (needed transitively via rust-digest's new
"mac" feature -> rust-hmac 0.13.0). rust-ctutils disables %check
(proptest >=1.11 is a %check-only dep not yet in production) and
depends on rust-cmov, which is split into #18445 to land as a real
tagged build first -- Koji scratch builds are never tagged, so
same-PR sibling packages can't resolve against each other.

Reverted the rust-proptest-macro/rust-convert_case bump: it was an
optional fix for a theoretical future consumer, and convert_case is
itself new/scratch-only, creating the same unresolvable chicken-and-egg
dependency.
Copilot AI review requested due to automatic review settings August 14, 2026 20:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.

@WithEnoughCoffee

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

Comment thread base/comps/rust-cmov/rust-cmov.comp.toml Outdated
Comment thread base/comps/rust-cmov/rust-cmov.comp.toml
Copilot AI review requested due to automatic review settings August 14, 2026 21:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.

Adds rust-cmov, a new leaf crate not previously packaged in AZL. It
provides architecture-specific constant-time predication intrinsics and
is a hard (non-dev) BuildRequires of rust-ctutils
(crate(cmov/default) >= 0.5.3, < 0.6.0), needed transitively by
rust-digest's "mac" feature -> rust-hmac 0.13.0 as part of the uv
crate-alignment cascade (#18405, zip transitive prereqs).

Split out into its own PR, mirroring the rust-cpubits precedent:
Koji scratch builds are never tagged/imported into the target repo,
so rust-ctutils's scratch build can never resolve a same-PR sibling's
scratch-built cmov output, regardless of build order or retries. This
package must land as a real (non-scratch, tagged) build in azl4-build
before rust-ctutils (and the rest of the #18405 dependency chain) can
pass its scratch-build gate.

%check is disabled: proptest is a %check-only (dev-)dependency
(crate(proptest/default) >= 1.11.0, < 2.0.0), and production azl4-build
only has proptest 1.9.0 today (the 1.11.0 bump lands separately in
#18405). The library itself does not need proptest to build.
@WithEnoughCoffee

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

@reubeno

Copy link
Copy Markdown
Member

Autumn Nash (@WithEnoughCoffee) Are you ready to take this out of draft?

@WithEnoughCoffee

Copy link
Copy Markdown
Contributor Author

Autumn Nash (Autumn Nash (@WithEnoughCoffee)) Are you ready to take this out of draft?

Almost working on a few thing.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (1)

base/comps/rust-cmov/rust-cmov.comp.toml:4

  • The follow-up validates the build and dependency list, but rpm -qRp does not inspect the payload or install the new RPMs. A new component still requires the repository's mock-chroot inspection and smoke test: run rpm -qlp for both generated RPMs inside mock, install them there, and verify the cmov-0.5.4 Cargo registry content/capability. Document those results (or why installation cannot be tested) before merge.
spec = { type = "upstream", upstream-distro = { name = "fedora", version = "43" }, upstream-commit = "bc3168902de75d99f5e549f37012cffc50fb7711" }

@WithEnoughCoffee

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

@reubeno
reuben olinsky (reubeno) merged commit 8de080a into 4.0 Aug 17, 2026
12 checks passed
@reubeno
reuben olinsky (reubeno) deleted the feat/rust-cmov branch August 17, 2026 22:59
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.

3 participants