Skip to content

Fix build breakage from rand_core 0.10.0 - #167

Merged
mkrueger merged 1 commit into
mkrueger:masterfrom
mattackerman808:fix/rand-core-build-breakage
Mar 28, 2026
Merged

Fix build breakage from rand_core 0.10.0#167
mkrueger merged 1 commit into
mkrueger:masterfrom
mattackerman808:fix/rand-core-build-breakage

Conversation

@mattackerman808

Copy link
Copy Markdown
Contributor

Summary

  • rand_core 0.10.0 (released 2026-02-01) deprecated RngCore and moved its methods to a new TryRng/Rng trait hierarchy
  • Since Cargo.lock is gitignored, fresh builds resolve rand_core to 0.10.0, which breaks internal-russh-forked-ssh-key 0.6.16 (via russh 0.56.0icy_net)
  • Vendor internal-russh-forked-ssh-key with a patched RngAdapter that implements TryRng/TryCryptoRng instead of the removed RngCore methods

The upstream fix is merged (Eugeny/russh#628) but unreleased. A fix to the ssh-key crate itself is also proposed (Eugeny/RustCrypto-SSH#2). The vendor patch can be removed once either ships a new release.

Test plan

  • cargo build --release succeeds
  • All five binaries (icy_draw, icy_term, icy_view, icy_play, icy_mail) run

🤖 Generated with Claude Code

internal-russh-forked-ssh-key 0.6.16 (via russh 0.56.0) fails to
compile with rand_core 0.10.0 which deprecated RngCore and moved its
methods to TryRng/Rng. Since Cargo.lock is gitignored, fresh builds
resolve to the breaking release.

Vendor the crate with a patched RngAdapter that implements the new
TryRng/TryCryptoRng traits. This can be removed once russh ships a
new release (fix merged in Eugeny/russh#628).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mkrueger
mkrueger merged commit fc4cfb8 into mkrueger:master Mar 28, 2026
@mkrueger

Copy link
Copy Markdown
Owner

ty - just catching up. I'll update the project.

@tracker1

Copy link
Copy Markdown

Just my own $.02 on this... probably would have been better to reference the pending branch by name/githash in the cargo.toml over embedded the upstream repo... even forking and self-referencing over this vendoring solution. Just my own opinion, as now there's a massive external codebase embedded into this repository's history that really only needs to be temporary.

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