Skip to content

Fix unic RustSec advisory via patched piet#1519

Open
jsturtevant wants to merge 3 commits into
mainfrom
jsturtevant/fix-rustsec-unic-ucd-version
Open

Fix unic RustSec advisory via patched piet#1519
jsturtevant wants to merge 3 commits into
mainfrom
jsturtevant/fix-rustsec-unic-ucd-version

Conversation

@jsturtevant

@jsturtevant jsturtevant commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

The unic-* crates pulled in through trace_dump -> piet-common -> piet are unmaintained and trigger a set of RustSec advisories. This points trace_dump's piet-common dependency at upstream linebender/piet commit 618083f8a6671c7ab8c198724487348d2ccf9a8f, which replaces unic-bidi with icu_properties. (linebender/piet#600)

The fixed upstream piet commit requires Rust 1.92, but only the non-published trace_dump tool consumes it. To avoid raising MSRV for the workspace crates, this keeps the workspace/toolchain/CI Rust version at 1.89 and sets trace_dump's package rust-version to 1.92.

Fixes: #1490
Fixes: #1491
Fixes: #1492
Fixes: #1493
Fixes: #1494
Fixes: #1495

Patch piet to the upstream commit that replaces the unmaintained unic-bidi dependency with icu_properties. Bump Rust toolchain references to 1.92 because the upstream piet fix requires it, and refresh Cargo.lock so the unic advisory crates are removed.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Copilot AI review requested due to automatic review settings June 9, 2026 00:27
@jsturtevant jsturtevant added the kind/dependencies For PRs that update dependencies or related components label Jun 9, 2026

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

This PR addresses RustSec advisories triggered by unmaintained unic-* crates pulled in via trace_dump -> piet-common -> piet, by pinning piet to an upstream git revision that replaces unic-bidi with icu_properties. It also updates the repository’s pinned Rust toolchain references accordingly.

Changes:

  • Pin piet via a [patch.crates-io] override to upstream commit 618083f…, removing unic-* crates from the lockfile dependency graph.
  • Bump Rust toolchain/MSRV references from 1.89 to 1.92 across rust-toolchain.toml, workspace rust-version, and CI workflows.
  • Refresh Cargo.lock to reflect the patched piet source and updated dependency set.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
rust-toolchain.toml Updates the pinned Rust toolchain channel to 1.92.
Cargo.toml Bumps workspace rust-version and adds a [patch.crates-io] override for piet to eliminate unic-* deps.
Cargo.lock Reflects the patched piet git source and removal of unic-*/matches packages.
.github/workflows/RustNightly.yml Updates CI setup to use Rust 1.92.
.github/workflows/PrimeCaches.yml Updates cache-priming workflow to use Rust 1.92.
.github/workflows/dep_update_guest_locks.yml Updates guest lock update workflow to use Rust 1.92.
.github/workflows/dep_run_examples.yml Updates examples workflow to use Rust 1.92.
.github/workflows/dep_fuzzing.yml Updates fuzzing workflow to use Rust 1.92.
.github/workflows/dep_code_checks.yml Updates code checks workflow to use Rust 1.92 (including MSRV verification step context).
.github/workflows/dep_build_test.yml Updates build/test workflow to use Rust 1.92.
.github/workflows/dep_build_guests.yml Updates guest build workflow to use Rust 1.92.
.github/workflows/dep_benchmarks.yml Updates benchmarks workflow to use Rust 1.92.
.github/workflows/CreateRelease.yml Updates release workflow to use Rust 1.92.
.github/workflows/CreateDevcontainerImage.yml Updates devcontainer image workflow default Rust toolchain to 1.92.
.github/workflows/Coverage.yml Updates coverage workflow to use Rust 1.92.
.github/workflows/copilot-setup-steps.yml Updates Copilot setup workflow to use Rust 1.92.
.github/workflows/CargoPublish.yml Updates publish workflow to use Rust 1.92.
.github/workflows/CargoAudit.yml Updates audit workflow toolchain to Rust 1.92.

Comment thread Cargo.toml Outdated
Restore the workspace and CI toolchains to Rust 1.89 while leaving the patched piet dependency scoped to trace_dump. Document trace_dump's Rust 1.92 requirement locally.

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@syntactically syntactically left a comment

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.

Even though piet is only used in the trace_dump crate, does having the patch in the workspace Cargo.toml prevent publishing to crates.io? Does it work to put the patch section in the src/trace_dump/Cargo.toml, since I don't think we were publishing the trace_dump crate to crates.io anyway?

Use the fixed upstream piet commit directly from trace_dump instead of a workspace-level crates.io patch. This keeps the dependency override next to the only package that needs it while preserving removal of the unic advisory crates.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
@jsturtevant

Copy link
Copy Markdown
Contributor Author

Even though piet is only used in the trace_dump crate, does having the patch in the workspace Cargo.toml prevent publishing to crates.io? Does it work to put the patch section in the src/trace_dump/Cargo.toml, since I don't think we were publishing the trace_dump crate to crates.io anyway?

Makes sense. updated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/dependencies For PRs that update dependencies or related components

Projects

None yet

3 participants