Skip to content

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

Draft
Autumn Nash (WithEnoughCoffee) wants to merge 1 commit into
4.0from
feat/rust-cmov
Draft

feat(rust-cmov): add rust-cmov component#18445
Autumn Nash (WithEnoughCoffee) wants to merge 1 commit into
4.0from
feat/rust-cmov

Conversation

@WithEnoughCoffee

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

Koji 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.

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.

@@ -0,0 +1,14 @@
[components.rust-cmov]
# New component: rust-cmov does not exist in AZL. It provides

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

issue(blocking): Across this file, these comments capture some context that won't be relevant once the PR is merged. We try to avoid leaving them in the code base. I'd actually say that most of it is relevant for the PR description but very little needs to stay here.

The main details that seem relevant to persist include: justification for leaving %check disabled, any (brief) justification for why this specific dist-git commit was selected.

@WithEnoughCoffee Autumn Nash (WithEnoughCoffee) Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Dropped the dependency-chain/cascade narrative; that context now lives in the PR description only.

@@ -0,0 +1,14 @@
[components.rust-cmov]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

question(non-blocking): Did you go through the process to get this added to the koji allow-list? Holler offline if you need pointers on that process.

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.

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