All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1
@ 2026-07-31 11:32 Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 01/35] cargo-c: update 0.10.19 -> 0.10.20 Scott Murray
                   ` (34 more replies)
  0 siblings, 35 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

This patch series for the scarthgap/rust mixin layer backports the
recent Rust toolchain changes in oe-core master branch to pull in
the 1.92.0 -> 1.96.1 updates and other fixes.  Note that due to
scarthgap not having the later clang integration some changes
related to an issue with sstate reuse across hosts with different
toolchains ([YOCTO #16058]) are not really viable to backport with
this mixin.  I have not confirmed whether the issue exists with the
rust-llvm toolchain used to build Rust in scarthgap, if you do
encounter a similar issue while using the mixin, please let me know.

I intend to merge this series to scarthgap/rust by end of day Tuesday
(August 4, EST) unless a serious showstopper is pointed out.

Scott


Changes:

Alex Kiernan (1):
  rust-target-config: armv8a AArch32 Thumb build fixes

Alexander Kanavin (1):
  librsvg: upgrade: 2.62.2 -> 2.62.3

Changqing Li (1):
  librsvg: move symlink file for ptest in package librsvg-ptest

Deepesh Varatharajan (9):
  cargo-c: update 0.10.19 -> 0.10.20
  rust: Upgrade 1.93.0 -> 1.94.0
  cargo-c: Move recipe out of rust directory
  rust: Drop revert-link-std-statically-in-rustc_driver-feature.patch
  rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
  rust: Fix flaky assertions in oneshot tests
  rust: Upgrade 1.94.0 -> 1.94.1
  rust: Upgrade 1.94.1 -> 1.95.0
  rust: Upgrade 1.95.0 -> 1.96.0

George Refseth (1):
  cargo_common.bbclass: add subdir argument to git dependency to let
    cargo find crate

Harish Sadineni (1):
  rust: install Rust library sources for 'make rustavailable' support

Hemanth Kumar M D (1):
  rust: Upgrade 1.92.0 -> 1.93.0

Jesse Van Gavere (1):
  rust: export CARGO_BUILD_TARGET

Khem Raj (2):
  rust: Fix build with llvm-22
  rust: Fix loongarch unit test with llvm-22

Martin Schwan (2):
  cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock
  cargo-update-recipe-crates: Properly close target file after writing

Peter Marko (2):
  cargo: set status of CVE-2023-40030
  cargo: set CVE_PRODUCT

Peter Tatrai (2):
  rust: fix codegen test failure on big-endian targets
  rust: backport explicit-tail-calls test skips for unsupported LLVM
    targets

Ross Burton (9):
  librsvg: remove obsolete .la deletion
  librsvg: consolidate DEPENDS
  librsvg: consolidate PACKAGECONFIG
  librsvg: rewrite cross gdk-pixbuf-query-loaders handling
  librsvg: remove dependency on liberation-fonts
  librsvg: add PACKAGECONFIGs for avif and gdkpixbuf
  librsvg: upgrade 2.61.3 -> 2.62.2
  classes/cargo: fix indentation
  classes/cargo: remove BUILD_MODE, replace with CARGO_PROFILE

Sundeep KOKKONDA (1):
  rust: Upgrade 1.96.0 -> 1.96.1

Taruntej Kanakamalla (1):
  cargo_c.bbclass: pass --libdir to cargo cinstall

 .../cargo-update-recipe-crates.bbclass        |  19 +-
 classes-recipe/cargo.bbclass                  |  22 +-
 classes-recipe/cargo_c.bbclass                |   1 +
 classes-recipe/cargo_common.bbclass           |   3 +
 classes-recipe/rust-target-config.bbclass     |  34 +-
 conf/layer.conf                               |   2 +-
 lib/oeqa/selftest/cases/rust_mixin.py         |   3 +-
 .../{rust => cargo-c}/cargo-c-crates.inc      | 434 +++++++--------
 ...Use-libc-SYS_futex_time64-on-riscv32.patch |   0
 .../cargo-c_0.10.20+cargo-0.94.0.bb}          |   2 +-
 .../rust/{cargo_1.92.0.bb => cargo_1.96.1.bb} |   4 +
 ...teps-tool.rs-switch-off-lto-for-rust.patch |   4 +-
 ...-build-failure-with-unstable-options.patch |  63 +++
 ...xplicit-tail-calls-disable-two-tests.patch |  39 ++
 ...lls-ignore-tests-on-unsupported-llvm.patch |  96 ++++
 ...crease-timeout-in-process-sigpipe-ru.patch |  31 --
 ...d-statically-in-rustc_driver-feature.patch | 229 --------
 .../rust/files/rust-oe-selftest.patch         | 115 ++--
 ...ibstd-rs_1.92.0.bb => libstd-rs_1.96.1.bb} |   0
 recipes-devtools/rust/rust-cross-canadian.inc |   1 +
 ....92.0.bb => rust-cross-canadian_1.96.1.bb} |   0
 ...-llvm-allow-env-override-of-exe-path.patch |   8 +-
 ...ust-llvm_1.92.0.bb => rust-llvm_1.96.1.bb} |   0
 recipes-devtools/rust/rust-snapshot.inc       | 102 ++--
 recipes-devtools/rust/rust-source.inc         |   7 +-
 .../rust/{rust_1.92.0.bb => rust_1.96.1.bb}   |  19 +-
 recipes-gnome/librsvg/librsvg-crates.inc      | 498 +++++++++---------
 ...ld-do-not-force-disable-gdk-pixbuf-l.patch |  49 --
 ...append-RUSTFLAGS-to-rustc-executable.patch |   2 +-
 ...e-care-of-deprecated-assert_cmd-Comm.patch |  10 +-
 .../{librsvg_2.61.3.bb => librsvg_2.62.3.bb}  |  30 +-
 31 files changed, 912 insertions(+), 915 deletions(-)
 rename recipes-devtools/{rust => cargo-c}/cargo-c-crates.inc (72%)
 rename recipes-devtools/{rust => cargo-c}/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch (100%)
 rename recipes-devtools/{rust/cargo-c_0.10.19+cargo-0.93.0.bb => cargo-c/cargo-c_0.10.20+cargo-0.94.0.bb} (87%)
 rename recipes-devtools/rust/{cargo_1.92.0.bb => cargo_1.96.1.bb} (97%)
 create mode 100644 recipes-devtools/rust/files/0002-Fix-rust-build-failure-with-unstable-options.patch
 create mode 100644 recipes-devtools/rust/files/0003-explicit-tail-calls-disable-two-tests.patch
 create mode 100644 recipes-devtools/rust/files/0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch
 delete mode 100644 recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
 delete mode 100644 recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
 rename recipes-devtools/rust/{libstd-rs_1.92.0.bb => libstd-rs_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.92.0.bb => rust-cross-canadian_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.92.0.bb => rust-llvm_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust_1.92.0.bb => rust_1.96.1.bb} (95%)
 delete mode 100644 recipes-gnome/librsvg/librsvg/0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch
 rename recipes-gnome/librsvg/{librsvg_2.61.3.bb => librsvg_2.62.3.bb} (79%)

-- 
2.55.0



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 01/35] cargo-c: update 0.10.19 -> 0.10.20
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 02/35] cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock Scott Murray
                   ` (33 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Changes are here:
https://github.com/lu-zero/cargo-c/compare/v0.10.19..v0.10.20

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 5116d9822a101590895efbe1d6da03b904a76ca5)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/rust/cargo-c-crates.inc      | 434 +++++++++---------
 ...3.0.bb => cargo-c_0.10.20+cargo-0.94.0.bb} |   2 +-
 2 files changed, 219 insertions(+), 217 deletions(-)
 rename recipes-devtools/rust/{cargo-c_0.10.19+cargo-0.93.0.bb => cargo-c_0.10.20+cargo-0.94.0.bb} (87%)

diff --git a/recipes-devtools/rust/cargo-c-crates.inc b/recipes-devtools/rust/cargo-c-crates.inc
index 9155299..e438d0e 100644
--- a/recipes-devtools/rust/cargo-c-crates.inc
+++ b/recipes-devtools/rust/cargo-c-crates.inc
@@ -13,49 +13,50 @@ SRC_URI += " \
     crate://crates.io/anstyle-query/1.1.5 \
     crate://crates.io/anstyle-wincon/3.0.11 \
     crate://crates.io/anyhow/1.0.100 \
-    crate://crates.io/arc-swap/1.7.1 \
+    crate://crates.io/arc-swap/1.8.0 \
     crate://crates.io/arrayref/0.3.9 \
     crate://crates.io/arrayvec/0.7.6 \
     crate://crates.io/autocfg/1.5.0 \
     crate://crates.io/base16ct/0.2.0 \
     crate://crates.io/base64/0.22.1 \
-    crate://crates.io/base64ct/1.8.1 \
+    crate://crates.io/base64ct/1.8.3 \
     crate://crates.io/bitflags/2.10.0 \
     crate://crates.io/bitmaps/2.1.0 \
-    crate://crates.io/blake3/1.8.2 \
+    crate://crates.io/blake3/1.8.3 \
     crate://crates.io/block-buffer/0.10.4 \
     crate://crates.io/block2/0.6.2 \
     crate://crates.io/bstr/1.12.1 \
-    crate://crates.io/bumpalo/3.19.0 \
+    crate://crates.io/bumpalo/3.19.1 \
     crate://crates.io/byteorder/1.5.0 \
     crate://crates.io/bytes/1.11.0 \
-    crate://crates.io/cargo/0.93.0 \
+    crate://crates.io/camino/1.2.2 \
+    crate://crates.io/cargo/0.94.0 \
     crate://crates.io/cargo-credential/0.4.9 \
-    crate://crates.io/cargo-credential-libsecret/0.5.3 \
-    crate://crates.io/cargo-credential-macos-keychain/0.4.18 \
-    crate://crates.io/cargo-credential-wincred/0.4.18 \
+    crate://crates.io/cargo-credential-libsecret/0.5.4 \
+    crate://crates.io/cargo-credential-macos-keychain/0.4.19 \
+    crate://crates.io/cargo-credential-wincred/0.4.19 \
     crate://crates.io/cargo-platform/0.3.2 \
-    crate://crates.io/cargo-util/0.2.25 \
-    crate://crates.io/cargo-util-schemas/0.10.2 \
+    crate://crates.io/cargo-util/0.2.26 \
+    crate://crates.io/cargo-util-schemas/0.11.0 \
     crate://crates.io/cbindgen/0.29.2 \
-    crate://crates.io/cc/1.2.49 \
+    crate://crates.io/cc/1.2.54 \
     crate://crates.io/cfg-if/1.0.4 \
     crate://crates.io/cfg_aliases/0.2.1 \
-    crate://crates.io/clap/4.5.53 \
-    crate://crates.io/clap_builder/4.5.53 \
-    crate://crates.io/clap_complete/4.5.61 \
+    crate://crates.io/clap/4.5.54 \
+    crate://crates.io/clap_builder/4.5.54 \
+    crate://crates.io/clap_complete/4.5.65 \
     crate://crates.io/clap_derive/4.5.49 \
-    crate://crates.io/clap_lex/0.7.6 \
+    crate://crates.io/clap_lex/0.7.7 \
     crate://crates.io/clru/0.6.2 \
     crate://crates.io/color-print/0.3.7 \
     crate://crates.io/color-print-proc-macro/0.3.7 \
     crate://crates.io/colorchoice/1.0.4 \
     crate://crates.io/const-oid/0.9.6 \
-    crate://crates.io/constant_time_eq/0.3.1 \
+    crate://crates.io/constant_time_eq/0.4.2 \
     crate://crates.io/core-foundation/0.10.1 \
     crate://crates.io/core-foundation-sys/0.8.7 \
     crate://crates.io/cpufeatures/0.2.17 \
-    crate://crates.io/crates-io/0.40.15 \
+    crate://crates.io/crates-io/0.40.16 \
     crate://crates.io/crc32fast/1.5.0 \
     crate://crates.io/crossbeam-channel/0.5.15 \
     crate://crates.io/crossbeam-deque/0.8.6 \
@@ -65,7 +66,7 @@ SRC_URI += " \
     crate://crates.io/crypto-common/0.1.6 \
     crate://crates.io/ct-codecs/1.1.6 \
     crate://crates.io/curl/0.4.49 \
-    crate://crates.io/curl-sys/0.4.84+curl-8.17.0 \
+    crate://crates.io/curl-sys/0.4.85+curl-8.18.0 \
     crate://crates.io/dashmap/6.1.0 \
     crate://crates.io/der/0.7.10 \
     crate://crates.io/deranged/0.5.5 \
@@ -87,69 +88,70 @@ SRC_URI += " \
     crate://crates.io/fastrand/2.3.0 \
     crate://crates.io/ff/0.13.1 \
     crate://crates.io/fiat-crypto/0.3.0 \
-    crate://crates.io/filetime/0.2.26 \
-    crate://crates.io/find-msvc-tools/0.1.5 \
-    crate://crates.io/flate2/1.1.5 \
+    crate://crates.io/filetime/0.2.27 \
+    crate://crates.io/find-msvc-tools/0.1.8 \
+    crate://crates.io/flate2/1.1.8 \
     crate://crates.io/fnv/1.0.7 \
     crate://crates.io/foldhash/0.1.5 \
+    crate://crates.io/foldhash/0.2.0 \
     crate://crates.io/foreign-types/0.3.2 \
     crate://crates.io/foreign-types-shared/0.1.1 \
     crate://crates.io/form_urlencoded/1.2.2 \
     crate://crates.io/generic-array/0.14.9 \
-    crate://crates.io/getrandom/0.2.16 \
+    crate://crates.io/getrandom/0.2.17 \
     crate://crates.io/getrandom/0.3.4 \
     crate://crates.io/git2/0.20.3 \
     crate://crates.io/git2-curl/0.21.0 \
-    crate://crates.io/gix/0.73.0 \
+    crate://crates.io/gix/0.74.1 \
     crate://crates.io/gix-actor/0.35.6 \
-    crate://crates.io/gix-attributes/0.27.0 \
+    crate://crates.io/gix-attributes/0.28.1 \
     crate://crates.io/gix-bitmap/0.2.15 \
     crate://crates.io/gix-chunk/0.4.12 \
-    crate://crates.io/gix-command/0.6.3 \
-    crate://crates.io/gix-commitgraph/0.29.0 \
-    crate://crates.io/gix-config/0.46.0 \
+    crate://crates.io/gix-command/0.6.5 \
+    crate://crates.io/gix-commitgraph/0.30.1 \
+    crate://crates.io/gix-config/0.47.1 \
     crate://crates.io/gix-config-value/0.15.3 \
-    crate://crates.io/gix-credentials/0.30.0 \
+    crate://crates.io/gix-credentials/0.31.1 \
     crate://crates.io/gix-date/0.10.7 \
-    crate://crates.io/gix-diff/0.53.0 \
-    crate://crates.io/gix-dir/0.15.0 \
-    crate://crates.io/gix-discover/0.41.0 \
-    crate://crates.io/gix-features/0.43.1 \
-    crate://crates.io/gix-filter/0.20.0 \
-    crate://crates.io/gix-fs/0.16.1 \
-    crate://crates.io/gix-glob/0.21.0 \
-    crate://crates.io/gix-hash/0.19.0 \
-    crate://crates.io/gix-hashtable/0.9.0 \
-    crate://crates.io/gix-ignore/0.16.0 \
-    crate://crates.io/gix-index/0.41.0 \
-    crate://crates.io/gix-lock/18.0.0 \
-    crate://crates.io/gix-negotiate/0.21.0 \
-    crate://crates.io/gix-object/0.50.2 \
-    crate://crates.io/gix-odb/0.70.0 \
-    crate://crates.io/gix-pack/0.60.0 \
+    crate://crates.io/gix-diff/0.54.1 \
+    crate://crates.io/gix-dir/0.16.0 \
+    crate://crates.io/gix-discover/0.42.0 \
+    crate://crates.io/gix-features/0.44.1 \
+    crate://crates.io/gix-filter/0.21.0 \
+    crate://crates.io/gix-fs/0.17.0 \
+    crate://crates.io/gix-glob/0.22.1 \
+    crate://crates.io/gix-hash/0.20.1 \
+    crate://crates.io/gix-hashtable/0.10.0 \
+    crate://crates.io/gix-ignore/0.17.1 \
+    crate://crates.io/gix-index/0.42.1 \
+    crate://crates.io/gix-lock/19.0.0 \
+    crate://crates.io/gix-negotiate/0.22.0 \
+    crate://crates.io/gix-object/0.51.1 \
+    crate://crates.io/gix-odb/0.71.1 \
+    crate://crates.io/gix-pack/0.61.1 \
     crate://crates.io/gix-packetline/0.19.3 \
     crate://crates.io/gix-packetline-blocking/0.19.3 \
     crate://crates.io/gix-path/0.10.22 \
-    crate://crates.io/gix-pathspec/0.12.0 \
+    crate://crates.io/gix-pathspec/0.13.0 \
     crate://crates.io/gix-prompt/0.11.2 \
-    crate://crates.io/gix-protocol/0.51.0 \
+    crate://crates.io/gix-protocol/0.52.1 \
     crate://crates.io/gix-quote/0.6.1 \
-    crate://crates.io/gix-ref/0.53.1 \
-    crate://crates.io/gix-refspec/0.31.0 \
-    crate://crates.io/gix-revision/0.35.0 \
-    crate://crates.io/gix-revwalk/0.21.0 \
+    crate://crates.io/gix-ref/0.54.1 \
+    crate://crates.io/gix-refspec/0.32.0 \
+    crate://crates.io/gix-revision/0.36.1 \
+    crate://crates.io/gix-revwalk/0.22.0 \
     crate://crates.io/gix-sec/0.12.2 \
-    crate://crates.io/gix-shallow/0.5.0 \
-    crate://crates.io/gix-status/0.20.0 \
-    crate://crates.io/gix-submodule/0.20.0 \
-    crate://crates.io/gix-tempfile/18.0.0 \
-    crate://crates.io/gix-trace/0.1.15 \
-    crate://crates.io/gix-transport/0.48.0 \
-    crate://crates.io/gix-traverse/0.47.0 \
-    crate://crates.io/gix-url/0.32.0 \
+    crate://crates.io/gix-shallow/0.6.0 \
+    crate://crates.io/gix-status/0.21.1 \
+    crate://crates.io/gix-submodule/0.21.0 \
+    crate://crates.io/gix-tempfile/19.0.1 \
+    crate://crates.io/gix-trace/0.1.17 \
+    crate://crates.io/gix-transport/0.49.1 \
+    crate://crates.io/gix-traverse/0.48.0 \
+    crate://crates.io/gix-url/0.33.2 \
     crate://crates.io/gix-utils/0.3.1 \
     crate://crates.io/gix-validate/0.10.1 \
-    crate://crates.io/gix-worktree/0.42.0 \
+    crate://crates.io/gix-worktree/0.43.1 \
     crate://crates.io/glob/0.3.3 \
     crate://crates.io/globset/0.4.18 \
     crate://crates.io/group/0.13.0 \
@@ -178,28 +180,27 @@ SRC_URI += " \
     crate://crates.io/im-rc/15.1.0 \
     crate://crates.io/imara-diff/0.1.8 \
     crate://crates.io/implib/0.4.0 \
-    crate://crates.io/indexmap/2.12.1 \
+    crate://crates.io/indexmap/2.13.0 \
     crate://crates.io/is_executable/1.0.5 \
     crate://crates.io/is_terminal_polyfill/1.70.2 \
     crate://crates.io/itertools/0.14.0 \
-    crate://crates.io/itoa/1.0.15 \
-    crate://crates.io/jiff/0.2.16 \
-    crate://crates.io/jiff-static/0.2.16 \
+    crate://crates.io/itoa/1.0.17 \
+    crate://crates.io/jiff/0.2.18 \
+    crate://crates.io/jiff-static/0.2.18 \
     crate://crates.io/jiff-tzdb/0.1.5 \
     crate://crates.io/jiff-tzdb-platform/0.1.3 \
     crate://crates.io/jobserver/0.1.34 \
-    crate://crates.io/js-sys/0.3.83 \
+    crate://crates.io/js-sys/0.3.85 \
     crate://crates.io/kstring/2.0.2 \
     crate://crates.io/lazy_static/1.5.0 \
-    crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.178 \
+    crate://crates.io/libc/0.2.180 \
     crate://crates.io/libgit2-sys/0.18.3+1.9.2 \
     crate://crates.io/libloading/0.8.9 \
     crate://crates.io/libnghttp2-sys/0.1.11+1.64.0 \
-    crate://crates.io/libredox/0.1.10 \
+    crate://crates.io/libredox/0.1.12 \
     crate://crates.io/libsqlite3-sys/0.35.0 \
     crate://crates.io/libssh2-sys/0.3.1 \
-    crate://crates.io/libz-rs-sys/0.5.4 \
+    crate://crates.io/libz-rs-sys/0.5.5 \
     crate://crates.io/libz-sys/1.1.23 \
     crate://crates.io/linux-raw-sys/0.11.0 \
     crate://crates.io/litemap/0.8.1 \
@@ -217,7 +218,7 @@ SRC_URI += " \
     crate://crates.io/nom/7.1.3 \
     crate://crates.io/normpath/1.5.0 \
     crate://crates.io/nu-ansi-term/0.50.3 \
-    crate://crates.io/num-conv/0.1.0 \
+    crate://crates.io/num-conv/0.2.0 \
     crate://crates.io/num-traits/0.2.19 \
     crate://crates.io/objc2/0.6.3 \
     crate://crates.io/objc2-cloud-kit/0.3.2 \
@@ -234,7 +235,7 @@ SRC_URI += " \
     crate://crates.io/objc2-ui-kit/0.3.2 \
     crate://crates.io/objc2-user-notifications/0.3.2 \
     crate://crates.io/object/0.37.3 \
-    crate://crates.io/object/0.38.0 \
+    crate://crates.io/object/0.38.1 \
     crate://crates.io/once_cell/1.21.3 \
     crate://crates.io/once_cell_polyfill/1.70.2 \
     crate://crates.io/opener/0.8.3 \
@@ -244,8 +245,8 @@ SRC_URI += " \
     crate://crates.io/openssl-src/300.5.4+3.5.4 \
     crate://crates.io/openssl-sys/0.9.111 \
     crate://crates.io/ordered-float/2.10.1 \
-    crate://crates.io/orion/0.17.11 \
-    crate://crates.io/os_info/3.13.0 \
+    crate://crates.io/orion/0.17.12 \
+    crate://crates.io/os_info/3.14.0 \
     crate://crates.io/p384/0.13.1 \
     crate://crates.io/parking_lot/0.12.5 \
     crate://crates.io/parking_lot_core/0.9.12 \
@@ -256,22 +257,23 @@ SRC_URI += " \
     crate://crates.io/pin-project-lite/0.2.16 \
     crate://crates.io/pkcs8/0.10.2 \
     crate://crates.io/pkg-config/0.3.32 \
-    crate://crates.io/portable-atomic/1.11.1 \
+    crate://crates.io/portable-atomic/1.13.0 \
     crate://crates.io/portable-atomic-util/0.2.4 \
     crate://crates.io/potential_utf/0.1.4 \
     crate://crates.io/powerfmt/0.2.0 \
     crate://crates.io/ppv-lite86/0.2.21 \
     crate://crates.io/primeorder/0.13.6 \
-    crate://crates.io/proc-macro2/1.0.103 \
+    crate://crates.io/proc-macro2/1.0.106 \
     crate://crates.io/prodash/30.0.1 \
-    crate://crates.io/quote/1.0.42 \
+    crate://crates.io/quote/1.0.44 \
     crate://crates.io/r-efi/5.3.0 \
     crate://crates.io/rand/0.9.2 \
     crate://crates.io/rand_chacha/0.9.0 \
     crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/rand_core/0.9.3 \
+    crate://crates.io/rand_core/0.9.5 \
     crate://crates.io/rand_xoshiro/0.6.0 \
     crate://crates.io/redox_syscall/0.5.18 \
+    crate://crates.io/redox_syscall/0.7.0 \
     crate://crates.io/regex/1.12.2 \
     crate://crates.io/regex-automata/0.4.13 \
     crate://crates.io/regex-syntax/0.8.8 \
@@ -280,9 +282,8 @@ SRC_URI += " \
     crate://crates.io/rustc-hash/2.1.1 \
     crate://crates.io/rustc-stable-hash/0.1.2 \
     crate://crates.io/rustfix/0.9.4 \
-    crate://crates.io/rustix/1.1.2 \
+    crate://crates.io/rustix/1.1.3 \
     crate://crates.io/rustversion/1.0.22 \
-    crate://crates.io/ryu/1.0.20 \
     crate://crates.io/same-file/1.0.6 \
     crate://crates.io/schannel/0.1.28 \
     crate://crates.io/scopeguard/1.2.0 \
@@ -296,8 +297,8 @@ SRC_URI += " \
     crate://crates.io/serde_core/1.0.228 \
     crate://crates.io/serde_derive/1.0.228 \
     crate://crates.io/serde_ignored/0.1.14 \
-    crate://crates.io/serde_json/1.0.145 \
-    crate://crates.io/serde_spanned/1.0.3 \
+    crate://crates.io/serde_json/1.0.149 \
+    crate://crates.io/serde_spanned/1.0.4 \
     crate://crates.io/sha1/0.10.6 \
     crate://crates.io/sha1-checked/0.10.0 \
     crate://crates.io/sha2/0.10.9 \
@@ -309,48 +310,47 @@ SRC_URI += " \
     crate://crates.io/simd-adler32/0.3.8 \
     crate://crates.io/sized-chunks/0.6.5 \
     crate://crates.io/smallvec/1.15.1 \
-    crate://crates.io/socket2/0.6.1 \
+    crate://crates.io/socket2/0.6.2 \
     crate://crates.io/spki/0.7.3 \
     crate://crates.io/stable_deref_trait/1.2.1 \
     crate://crates.io/static_assertions/1.1.0 \
     crate://crates.io/strsim/0.11.1 \
     crate://crates.io/subtle/2.6.1 \
-    crate://crates.io/supports-hyperlinks/3.1.0 \
+    crate://crates.io/supports-hyperlinks/3.2.0 \
     crate://crates.io/supports-unicode/3.0.0 \
-    crate://crates.io/syn/2.0.111 \
+    crate://crates.io/syn/2.0.114 \
     crate://crates.io/synstructure/0.13.2 \
     crate://crates.io/tar/0.4.44 \
-    crate://crates.io/tempfile/3.23.0 \
+    crate://crates.io/tempfile/3.24.0 \
     crate://crates.io/terminal_size/0.4.3 \
-    crate://crates.io/thiserror/2.0.17 \
-    crate://crates.io/thiserror-impl/2.0.17 \
+    crate://crates.io/thiserror/2.0.18 \
+    crate://crates.io/thiserror-impl/2.0.18 \
     crate://crates.io/thread_local/1.1.9 \
-    crate://crates.io/time/0.3.44 \
-    crate://crates.io/time-core/0.1.6 \
-    crate://crates.io/time-macros/0.2.24 \
+    crate://crates.io/time/0.3.46 \
+    crate://crates.io/time-core/0.1.8 \
+    crate://crates.io/time-macros/0.2.26 \
     crate://crates.io/tinystr/0.8.2 \
     crate://crates.io/tinyvec/1.10.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/toml/0.9.8 \
-    crate://crates.io/toml_datetime/0.7.3 \
-    crate://crates.io/toml_edit/0.23.9 \
-    crate://crates.io/toml_parser/1.0.4 \
-    crate://crates.io/toml_writer/1.0.4 \
-    crate://crates.io/tracing/0.1.43 \
+    crate://crates.io/toml/0.9.11+spec-1.1.0 \
+    crate://crates.io/toml_datetime/0.7.5+spec-1.1.0 \
+    crate://crates.io/toml_edit/0.23.10+spec-1.0.0 \
+    crate://crates.io/toml_parser/1.0.6+spec-1.1.0 \
+    crate://crates.io/toml_writer/1.0.6+spec-1.1.0 \
+    crate://crates.io/tracing/0.1.44 \
     crate://crates.io/tracing-attributes/0.1.31 \
     crate://crates.io/tracing-chrome/0.7.2 \
-    crate://crates.io/tracing-core/0.1.35 \
+    crate://crates.io/tracing-core/0.1.36 \
     crate://crates.io/tracing-log/0.2.0 \
     crate://crates.io/tracing-subscriber/0.3.22 \
     crate://crates.io/typeid/1.0.3 \
     crate://crates.io/typenum/1.19.0 \
-    crate://crates.io/unicase/2.8.1 \
+    crate://crates.io/unicase/2.9.0 \
     crate://crates.io/unicode-bom/2.0.3 \
     crate://crates.io/unicode-ident/1.0.22 \
     crate://crates.io/unicode-normalization/0.1.25 \
     crate://crates.io/unicode-width/0.2.2 \
-    crate://crates.io/unicode-xid/0.2.6 \
-    crate://crates.io/url/2.5.7 \
+    crate://crates.io/url/2.5.8 \
     crate://crates.io/utf8_iter/1.0.4 \
     crate://crates.io/utf8parse/0.2.2 \
     crate://crates.io/valuable/0.1.1 \
@@ -358,11 +358,11 @@ SRC_URI += " \
     crate://crates.io/version_check/0.9.5 \
     crate://crates.io/walkdir/2.5.0 \
     crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \
-    crate://crates.io/wasip2/1.0.1+wasi-0.2.4 \
-    crate://crates.io/wasm-bindgen/0.2.106 \
-    crate://crates.io/wasm-bindgen-macro/0.2.106 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.106 \
-    crate://crates.io/wasm-bindgen-shared/0.2.106 \
+    crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \
+    crate://crates.io/wasm-bindgen/0.2.108 \
+    crate://crates.io/wasm-bindgen-macro/0.2.108 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.108 \
+    crate://crates.io/wasm-bindgen-shared/0.2.108 \
     crate://crates.io/winapi-util/0.1.11 \
     crate://crates.io/windows-link/0.2.1 \
     crate://crates.io/windows-sys/0.59.0 \
@@ -387,19 +387,20 @@ SRC_URI += " \
     crate://crates.io/windows_x86_64_msvc/0.52.6 \
     crate://crates.io/windows_x86_64_msvc/0.53.1 \
     crate://crates.io/winnow/0.7.14 \
-    crate://crates.io/wit-bindgen/0.46.0 \
+    crate://crates.io/wit-bindgen/0.51.0 \
     crate://crates.io/writeable/0.6.2 \
     crate://crates.io/yoke/0.8.1 \
     crate://crates.io/yoke-derive/0.8.1 \
-    crate://crates.io/zerocopy/0.8.31 \
-    crate://crates.io/zerocopy-derive/0.8.31 \
+    crate://crates.io/zerocopy/0.8.33 \
+    crate://crates.io/zerocopy-derive/0.8.33 \
     crate://crates.io/zerofrom/0.1.6 \
     crate://crates.io/zerofrom-derive/0.1.6 \
     crate://crates.io/zeroize/1.8.2 \
     crate://crates.io/zerotrie/0.2.3 \
     crate://crates.io/zerovec/0.11.5 \
     crate://crates.io/zerovec-derive/0.11.2 \
-    crate://crates.io/zlib-rs/0.5.4 \
+    crate://crates.io/zlib-rs/0.5.5 \
+    crate://crates.io/zmij/1.0.16 \
 "
 
 SRC_URI[adler2-2.0.1.sha256sum] = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
@@ -413,49 +414,50 @@ SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6
 SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
 SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
 SRC_URI[anyhow-1.0.100.sha256sum] = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
-SRC_URI[arc-swap-1.7.1.sha256sum] = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
+SRC_URI[arc-swap-1.8.0.sha256sum] = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e"
 SRC_URI[arrayref-0.3.9.sha256sum] = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
 SRC_URI[arrayvec-0.7.6.sha256sum] = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
 SRC_URI[autocfg-1.5.0.sha256sum] = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
 SRC_URI[base16ct-0.2.0.sha256sum] = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
 SRC_URI[base64-0.22.1.sha256sum] = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
-SRC_URI[base64ct-1.8.1.sha256sum] = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a"
+SRC_URI[base64ct-1.8.3.sha256sum] = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
 SRC_URI[bitflags-2.10.0.sha256sum] = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
 SRC_URI[bitmaps-2.1.0.sha256sum] = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
-SRC_URI[blake3-1.8.2.sha256sum] = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
+SRC_URI[blake3-1.8.3.sha256sum] = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d"
 SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 SRC_URI[block2-0.6.2.sha256sum] = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
 SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
-SRC_URI[bumpalo-3.19.0.sha256sum] = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
 SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 SRC_URI[bytes-1.11.0.sha256sum] = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
-SRC_URI[cargo-0.93.0.sha256sum] = "2a9eb357bdc58680a9d65ec020f0ec258d89a70c96d491b39606fb86a42c0dd5"
+SRC_URI[camino-1.2.2.sha256sum] = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
+SRC_URI[cargo-0.94.0.sha256sum] = "d279f29211012cf2ecaf6c5f6845389b361ce050cc2b4bcbfcbf8c191a43fb36"
 SRC_URI[cargo-credential-0.4.9.sha256sum] = "e36f089041deadf16226478a7737a833864fbda09408c7af237b9d615eeb6d69"
-SRC_URI[cargo-credential-libsecret-0.5.3.sha256sum] = "67e287f3cc9732b9a7eb5140e9501ec6557bdcdc83366a424993e4d4db228c4a"
-SRC_URI[cargo-credential-macos-keychain-0.4.18.sha256sum] = "806cb58d7644f7c4f8c8e47af5f7f2dc4e10f0ce205f0416e8fdc6d58c7efaf2"
-SRC_URI[cargo-credential-wincred-0.4.18.sha256sum] = "a12eac22936a44d4be4765ffb9a29cbd69faab267a637c578feef62f8cc96c39"
+SRC_URI[cargo-credential-libsecret-0.5.4.sha256sum] = "d2f79375b18d08df983ce4d7c50b84e41f081588077038ff75e1ad13a6eee44d"
+SRC_URI[cargo-credential-macos-keychain-0.4.19.sha256sum] = "c173c41f718723681b45ebfdf6b027dd8a33a19e03500d45c74ffea7fc4a04d2"
+SRC_URI[cargo-credential-wincred-0.4.19.sha256sum] = "84eb64cf8c19bacc536b06a4452cac120a51703b742b0721de69e4b6553fb70c"
 SRC_URI[cargo-platform-0.3.2.sha256sum] = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082"
-SRC_URI[cargo-util-0.2.25.sha256sum] = "03ae3fc62640c9e0235c95b07e68a59a31919d7331bd95961cc811bc0607c87b"
-SRC_URI[cargo-util-schemas-0.10.2.sha256sum] = "f714efe9b56ea4bed06b499396e77b68db663a55b16dc3f144d5a5a0dc19788c"
+SRC_URI[cargo-util-0.2.26.sha256sum] = "f70b0c7772872ac3234e46a6591091d4da57f0c3aa24c381776ed1550624a14b"
+SRC_URI[cargo-util-schemas-0.11.0.sha256sum] = "ddf185f0e9ea7f8a670e847decce09c41b536019a0deb7741d001c5836209e0e"
 SRC_URI[cbindgen-0.29.2.sha256sum] = "befbfd072a8e81c02f8c507aefce431fe5e7d051f83d48a23ffc9b9fe5a11799"
-SRC_URI[cc-1.2.49.sha256sum] = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
+SRC_URI[cc-1.2.54.sha256sum] = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
 SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
 SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
-SRC_URI[clap-4.5.53.sha256sum] = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8"
-SRC_URI[clap_builder-4.5.53.sha256sum] = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00"
-SRC_URI[clap_complete-4.5.61.sha256sum] = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992"
+SRC_URI[clap-4.5.54.sha256sum] = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394"
+SRC_URI[clap_builder-4.5.54.sha256sum] = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00"
+SRC_URI[clap_complete-4.5.65.sha256sum] = "430b4dc2b5e3861848de79627b2bedc9f3342c7da5173a14eaa5d0f8dc18ae5d"
 SRC_URI[clap_derive-4.5.49.sha256sum] = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
-SRC_URI[clap_lex-0.7.6.sha256sum] = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
+SRC_URI[clap_lex-0.7.7.sha256sum] = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
 SRC_URI[clru-0.6.2.sha256sum] = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59"
 SRC_URI[color-print-0.3.7.sha256sum] = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4"
 SRC_URI[color-print-proc-macro-0.3.7.sha256sum] = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22"
 SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
 SRC_URI[const-oid-0.9.6.sha256sum] = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
-SRC_URI[constant_time_eq-0.3.1.sha256sum] = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
+SRC_URI[constant_time_eq-0.4.2.sha256sum] = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
 SRC_URI[core-foundation-0.10.1.sha256sum] = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
 SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
-SRC_URI[crates-io-0.40.15.sha256sum] = "62451b814867f57f25e941eeb22b55ada9d93308cb65578ec57e35e414091019"
+SRC_URI[crates-io-0.40.16.sha256sum] = "0f7f333ded3737da5d7ba014b465470cec2c77572f5a4bc56e1a6432cf0a9207"
 SRC_URI[crc32fast-1.5.0.sha256sum] = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
 SRC_URI[crossbeam-channel-0.5.15.sha256sum] = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
 SRC_URI[crossbeam-deque-0.8.6.sha256sum] = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
@@ -465,7 +467,7 @@ SRC_URI[crypto-bigint-0.5.5.sha256sum] = "0dc92fb57ca44df6db8059111ab3af99a63d5d
 SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 SRC_URI[ct-codecs-1.1.6.sha256sum] = "9b10589d1a5e400d61f9f38f12f884cfd080ff345de8f17efda36fe0e4a02aa8"
 SRC_URI[curl-0.4.49.sha256sum] = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc"
-SRC_URI[curl-sys-0.4.84+curl-8.17.0.sha256sum] = "abc4294dc41b882eaff37973c2ec3ae203d0091341ee68fbadd1d06e0c18a73b"
+SRC_URI[curl-sys-0.4.85+curl-8.18.0.sha256sum] = "c0efa6142b5ecc05f6d3eaa39e6af4888b9d3939273fb592c92b7088a8cf3fdb"
 SRC_URI[dashmap-6.1.0.sha256sum] = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
 SRC_URI[der-0.7.10.sha256sum] = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
 SRC_URI[deranged-0.5.5.sha256sum] = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
@@ -487,69 +489,70 @@ SRC_URI[faster-hex-0.10.0.sha256sum] = "7223ae2d2f179b803433d9c830478527e92b8117
 SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
 SRC_URI[ff-0.13.1.sha256sum] = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
 SRC_URI[fiat-crypto-0.3.0.sha256sum] = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24"
-SRC_URI[filetime-0.2.26.sha256sum] = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed"
-SRC_URI[find-msvc-tools-0.1.5.sha256sum] = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
-SRC_URI[flate2-1.1.5.sha256sum] = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
+SRC_URI[filetime-0.2.27.sha256sum] = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
+SRC_URI[find-msvc-tools-0.1.8.sha256sum] = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
+SRC_URI[flate2-1.1.8.sha256sum] = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
 SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 SRC_URI[foldhash-0.1.5.sha256sum] = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+SRC_URI[foldhash-0.2.0.sha256sum] = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
 SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 SRC_URI[form_urlencoded-1.2.2.sha256sum] = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
 SRC_URI[generic-array-0.14.9.sha256sum] = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
-SRC_URI[getrandom-0.2.16.sha256sum] = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
+SRC_URI[getrandom-0.2.17.sha256sum] = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
 SRC_URI[getrandom-0.3.4.sha256sum] = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
 SRC_URI[git2-0.20.3.sha256sum] = "3e2b37e2f62729cdada11f0e6b3b6fe383c69c29fc619e391223e12856af308c"
 SRC_URI[git2-curl-0.21.0.sha256sum] = "be8dcabbc09ece4d30a9aa983d5804203b7e2f8054a171f792deff59b56d31fa"
-SRC_URI[gix-0.73.0.sha256sum] = "514c29cc879bdc0286b0cbc205585a49b252809eb86c69df4ce4f855ee75f635"
+SRC_URI[gix-0.74.1.sha256sum] = "5fd3a6fea165debe0e80648495f894aa2371a771e3ceb7a7dcc304f1c4344c43"
 SRC_URI[gix-actor-0.35.6.sha256sum] = "987a51a7e66db6ef4dc030418eb2a42af6b913a79edd8670766122d8af3ba59e"
-SRC_URI[gix-attributes-0.27.0.sha256sum] = "45442188216d08a5959af195f659cb1f244a50d7d2d0c3873633b1cd7135f638"
+SRC_URI[gix-attributes-0.28.1.sha256sum] = "cc6591add69314fc43db078076a8da6f07957c65abb0b21c3e1b6a3cf50aa18d"
 SRC_URI[gix-bitmap-0.2.15.sha256sum] = "5e150161b8a75b5860521cb876b506879a3376d3adc857ec7a9d35e7c6a5e531"
 SRC_URI[gix-chunk-0.4.12.sha256sum] = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb"
-SRC_URI[gix-command-0.6.3.sha256sum] = "095c8367c9dc4872a7706fbc39c7f34271b88b541120a4365ff0e36366f66e62"
-SRC_URI[gix-commitgraph-0.29.0.sha256sum] = "6bb23121e952f43a5b07e3e80890336cb847297467a410475036242732980d06"
-SRC_URI[gix-config-0.46.0.sha256sum] = "5dfb898c5b695fd4acfc3c0ab638525a65545d47706064dcf7b5ead6cdb136c0"
+SRC_URI[gix-command-0.6.5.sha256sum] = "46f9c425730a654835351e6da8c3c69ba1804f8b8d4e96d027254151138d5c64"
+SRC_URI[gix-commitgraph-0.30.1.sha256sum] = "826994ff6c01f1ff00d6a1844d7506717810a91ffed143da71e3bf39369751ef"
+SRC_URI[gix-config-0.47.1.sha256sum] = "1e74f57ea99025de9207db53488be4d59cf2000f617964c1b550880524fefbc3"
 SRC_URI[gix-config-value-0.15.3.sha256sum] = "2c489abb061c74b0c3ad790e24a606ef968cebab48ec673d6a891ece7d5aef64"
-SRC_URI[gix-credentials-0.30.0.sha256sum] = "0039dd3ac606dd80b16353a41b61fc237ca5cb8b612f67a9f880adfad4be4e05"
+SRC_URI[gix-credentials-0.31.1.sha256sum] = "20c2f7e9cda17bd982cfd4f7b7a2486239bb5be3e0893cf4b0178b8814ea3742"
 SRC_URI[gix-date-0.10.7.sha256sum] = "661245d045aa7c16ba4244daaabd823c562c3e45f1f25b816be2c57ee09f2171"
-SRC_URI[gix-diff-0.53.0.sha256sum] = "de854852010d44a317f30c92d67a983e691c9478c8a3fb4117c1f48626bcdea8"
-SRC_URI[gix-dir-0.15.0.sha256sum] = "dad34e4f373f94902df1ba1d2a1df3a1b29eacd15e316ac5972d842e31422dd7"
-SRC_URI[gix-discover-0.41.0.sha256sum] = "ffb180c91ca1a2cf53e828bb63d8d8f8fa7526f49b83b33d7f46cbeb5d79d30a"
-SRC_URI[gix-features-0.43.1.sha256sum] = "cd1543cd9b8abcbcebaa1a666a5c168ee2cda4dea50d3961ee0e6d1c42f81e5b"
-SRC_URI[gix-filter-0.20.0.sha256sum] = "aa6571a3927e7ab10f64279a088e0dae08e8da05547771796d7389bbe28ad9ff"
-SRC_URI[gix-fs-0.16.1.sha256sum] = "9a4d90307d064fa7230e0f87b03231be28f8ba63b913fc15346f489519d0c304"
-SRC_URI[gix-glob-0.21.0.sha256sum] = "b947db8366823e7a750c254f6bb29e27e17f27e457bf336ba79b32423db62cd5"
-SRC_URI[gix-hash-0.19.0.sha256sum] = "251fad79796a731a2a7664d9ea95ee29a9e99474de2769e152238d4fdb69d50e"
-SRC_URI[gix-hashtable-0.9.0.sha256sum] = "c35300b54896153e55d53f4180460931ccd69b7e8d2f6b9d6401122cdedc4f07"
-SRC_URI[gix-ignore-0.16.0.sha256sum] = "564d6fddf46e2c981f571b23d6ad40cb08bddcaf6fc7458b1d49727ad23c2870"
-SRC_URI[gix-index-0.41.0.sha256sum] = "2af39fde3ce4ce11371d9ce826f2936ec347318f2d1972fe98c2e7134e267e25"
-SRC_URI[gix-lock-18.0.0.sha256sum] = "b9fa71da90365668a621e184eb5b979904471af1b3b09b943a84bc50e8ad42ed"
-SRC_URI[gix-negotiate-0.21.0.sha256sum] = "1d58d4c9118885233be971e0d7a589f5cfb1a8bd6cb6e2ecfb0fc6b1b293c83b"
-SRC_URI[gix-object-0.50.2.sha256sum] = "d69ce108ab67b65fbd4fb7e1331502429d78baeb2eee10008bdef55765397c07"
-SRC_URI[gix-odb-0.70.0.sha256sum] = "9c9d7af10fda9df0bb4f7f9bd507963560b3c66cb15a5b825caf752e0eb109ac"
-SRC_URI[gix-pack-0.60.0.sha256sum] = "d8571df89bfca5abb49c3e3372393f7af7e6f8b8dbe2b96303593cef5b263019"
+SRC_URI[gix-diff-0.54.1.sha256sum] = "cd78d9da421baca219a650d71c797706117095635d7963f21bb6fdf2410abe04"
+SRC_URI[gix-dir-0.16.0.sha256sum] = "f99fb4dcba076453d791949bf3af977c5678a1cbd76740ec2cfe37e29431daf3"
+SRC_URI[gix-discover-0.42.0.sha256sum] = "9d24547153810634636471af88338240e6ab0831308cd41eb6ebfffea77811c6"
+SRC_URI[gix-features-0.44.1.sha256sum] = "dfa64593d1586135102307fb57fb3a9d3868b6b1f45a4da1352cce5070f8916a"
+SRC_URI[gix-filter-0.21.0.sha256sum] = "1d1253452c9808da01eaaf9b1c4929b9982efec29ef0a668b3326b8046d9b8fb"
+SRC_URI[gix-fs-0.17.0.sha256sum] = "3f1ecd896258cdc5ccd94d18386d17906b8de265ad2ecf68e3bea6b007f6a28f"
+SRC_URI[gix-glob-0.22.1.sha256sum] = "74254992150b0a88fdb3ad47635ab649512dff2cbbefca7916bb459894fc9d56"
+SRC_URI[gix-hash-0.20.1.sha256sum] = "826036a9bee95945b0be1e2394c64cd4289916c34a639818f8fd5153906985c1"
+SRC_URI[gix-hashtable-0.10.0.sha256sum] = "a27d4a3ea9640da504a2657fef3419c517fd71f1767ad8935298bcc805edd195"
+SRC_URI[gix-ignore-0.17.1.sha256sum] = "93b6a9679a1488123b7f2929684bacfd9cd2a24f286b52203b8752cbb8d7fc49"
+SRC_URI[gix-index-0.42.1.sha256sum] = "31244542fb98ea4f3e964a4f8deafc2f4c77ad42bed58a1e8424bca1965fae99"
+SRC_URI[gix-lock-19.0.0.sha256sum] = "729d7857429a66023bc0c29d60fa21d0d6ae8862f33c1937ba89e0f74dd5c67f"
+SRC_URI[gix-negotiate-0.22.0.sha256sum] = "89e16c96e052467d64c8f75a703b78976b33b034b9ff1f1d0c056c584319b0b8"
+SRC_URI[gix-object-0.51.1.sha256sum] = "87ba1815638759c80d2318c8e98296fb396f577c2e588a3d9c13f9a5d5184051"
+SRC_URI[gix-odb-0.71.1.sha256sum] = "6efc6736d3ea62640efe8c1be695fb0760af63614a7356d2091208a841f1a634"
+SRC_URI[gix-pack-0.61.1.sha256sum] = "719c60524be76874f4769da20d525ad2c00a0e7059943cc4f31fcb65cfb6b260"
 SRC_URI[gix-packetline-0.19.3.sha256sum] = "64286a8b5148e76ab80932e72762dd27ccf6169dd7a134b027c8a262a8262fcf"
 SRC_URI[gix-packetline-blocking-0.19.3.sha256sum] = "89c59c3ad41e68cb38547d849e9ef5ccfc0d00f282244ba1441ae856be54d001"
 SRC_URI[gix-path-0.10.22.sha256sum] = "7cb06c3e4f8eed6e24fd915fa93145e28a511f4ea0e768bae16673e05ed3f366"
-SRC_URI[gix-pathspec-0.12.0.sha256sum] = "daedead611c9bd1f3640dc90a9012b45f790201788af4d659f28d94071da7fba"
+SRC_URI[gix-pathspec-0.13.0.sha256sum] = "d05e28457dca7c65a2dbe118869aab922a5bd382b7bb10cff5354f366845c128"
 SRC_URI[gix-prompt-0.11.2.sha256sum] = "868e6516dfa16fdcbc5f8c935167d085f2ae65ccd4c9476a4319579d12a69d8d"
-SRC_URI[gix-protocol-0.51.0.sha256sum] = "12b4b807c47ffcf7c1e5b8119585368a56449f3493da93b931e1d4239364e922"
+SRC_URI[gix-protocol-0.52.1.sha256sum] = "64f19873bbf924fd077580d4ccaaaeddb67c3b3c09a8ffb61e6b4cb67e3c9302"
 SRC_URI[gix-quote-0.6.1.sha256sum] = "e912ec04b7b1566a85ad486db0cab6b9955e3e32bcd3c3a734542ab3af084c5b"
-SRC_URI[gix-ref-0.53.1.sha256sum] = "b966f578079a42f4a51413b17bce476544cca1cf605753466669082f94721758"
-SRC_URI[gix-refspec-0.31.0.sha256sum] = "7d29cae1ae31108826e7156a5e60bffacab405f4413f5bc0375e19772cce0055"
-SRC_URI[gix-revision-0.35.0.sha256sum] = "f651f2b1742f760bb8161d6743229206e962b73d9c33c41f4e4aefa6586cbd3d"
-SRC_URI[gix-revwalk-0.21.0.sha256sum] = "06e74f91709729e099af6721bd0fa7d62f243f2005085152301ca5cdd86ec02c"
+SRC_URI[gix-ref-0.54.1.sha256sum] = "8881d262f28eda39c244e60ae968f4f6e56c747f65addd6f4100b25f75ed8b88"
+SRC_URI[gix-refspec-0.32.0.sha256sum] = "93147960f77695ba89b72019b789679278dd4dad6a0f9a4a5bf2fd07aba56912"
+SRC_URI[gix-revision-0.36.1.sha256sum] = "13c5267e530d8762842be7d51b48d2b134c9dec5b650ca607f735a56a4b12413"
+SRC_URI[gix-revwalk-0.22.0.sha256sum] = "02e2de4f91d712b1f6873477f769225fe430ffce2af8c7c85721c3ff955783b3"
 SRC_URI[gix-sec-0.12.2.sha256sum] = "ea9962ed6d9114f7f100efe038752f41283c225bb507a2888903ac593dffa6be"
-SRC_URI[gix-shallow-0.5.0.sha256sum] = "d936745103243ae4c510f19e0760ce73fb0f08096588fdbe0f0d7fb7ce8944b7"
-SRC_URI[gix-status-0.20.0.sha256sum] = "2a4afff9b34eeececa8bdc32b42fb318434b6b1391d9f8d45fe455af08dc2d35"
-SRC_URI[gix-submodule-0.20.0.sha256sum] = "657cc5dd43cbc7a14d9c5aaf02cfbe9c2a15d077cded3f304adb30ef78852d3e"
-SRC_URI[gix-tempfile-18.0.0.sha256sum] = "666c0041bcdedf5fa05e9bef663c897debab24b7dc1741605742412d1d47da57"
-SRC_URI[gix-trace-0.1.15.sha256sum] = "1d3f59a8de2934f6391b6b3a1a7654eae18961fcb9f9c843533fed34ad0f3457"
-SRC_URI[gix-transport-0.48.0.sha256sum] = "12f7cc0179fc89d53c54e1f9ce51229494864ab4bf136132d69db1b011741ca3"
-SRC_URI[gix-traverse-0.47.0.sha256sum] = "c7cdc82509d792ba0ad815f86f6b469c7afe10f94362e96c4494525a6601bdd5"
-SRC_URI[gix-url-0.32.0.sha256sum] = "1b76a9d266254ad287ffd44467cd88e7868799b08f4d52e02d942b93e514d16f"
+SRC_URI[gix-shallow-0.6.0.sha256sum] = "e2374692db1ee1ffa0eddcb9e86ec218f7c4cdceda800ebc5a9fdf73a8c08223"
+SRC_URI[gix-status-0.21.1.sha256sum] = "3c64039358f66c955a471432aef0ea1eeebc7afe0e0a4be7b6b737cc19925e3b"
+SRC_URI[gix-submodule-0.21.0.sha256sum] = "9bacc06333b50abc4fc06204622c2dd92850de2066bb5d421ac776d2bef7ae55"
+SRC_URI[gix-tempfile-19.0.1.sha256sum] = "e265fc6b54e57693232a79d84038381ebfda7b1a3b1b8a9320d4d5fe6e820086"
+SRC_URI[gix-trace-0.1.17.sha256sum] = "6e42a4c2583357721ba2d887916e78df504980f22f1182df06997ce197b89504"
+SRC_URI[gix-transport-0.49.1.sha256sum] = "c8da4a77922accb1e26e610c7a84ef7e6b34fd07112e6a84afd68d7f3e795957"
+SRC_URI[gix-traverse-0.48.0.sha256sum] = "412126bade03a34f5d4125fd64878852718575b3b360eaae3b29970cb555e2a2"
+SRC_URI[gix-url-0.33.2.sha256sum] = "d995249a1cf1ad79ba10af6499d4bf37cb78035c0983eaa09ec5910da694957c"
 SRC_URI[gix-utils-0.3.1.sha256sum] = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5"
 SRC_URI[gix-validate-0.10.1.sha256sum] = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4"
-SRC_URI[gix-worktree-0.42.0.sha256sum] = "55f625ac9126c19bef06dbc6d2703cdd7987e21e35b497bb265ac37d383877b1"
+SRC_URI[gix-worktree-0.43.1.sha256sum] = "8df3dfc8b62b0eccc923c757b40f488abc357c85c03d798622edfc3eb5137e04"
 SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
 SRC_URI[globset-0.4.18.sha256sum] = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3"
 SRC_URI[group-0.13.0.sha256sum] = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
@@ -578,28 +581,27 @@ SRC_URI[ignore-0.4.25.sha256sum] = "d3d782a365a015e0f5c04902246139249abf76912500
 SRC_URI[im-rc-15.1.0.sha256sum] = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
 SRC_URI[imara-diff-0.1.8.sha256sum] = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2"
 SRC_URI[implib-0.4.0.sha256sum] = "7923c255262a0e44362e221f8b74b931fe21484b83f27386aa45f021a379caf6"
-SRC_URI[indexmap-2.12.1.sha256sum] = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
+SRC_URI[indexmap-2.13.0.sha256sum] = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
 SRC_URI[is_executable-1.0.5.sha256sum] = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4"
 SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
 SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
-SRC_URI[itoa-1.0.15.sha256sum] = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
-SRC_URI[jiff-0.2.16.sha256sum] = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35"
-SRC_URI[jiff-static-0.2.16.sha256sum] = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69"
+SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
+SRC_URI[jiff-0.2.18.sha256sum] = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50"
+SRC_URI[jiff-static-0.2.18.sha256sum] = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78"
 SRC_URI[jiff-tzdb-0.1.5.sha256sum] = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2"
 SRC_URI[jiff-tzdb-platform-0.1.3.sha256sum] = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
 SRC_URI[jobserver-0.1.34.sha256sum] = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
-SRC_URI[js-sys-0.3.83.sha256sum] = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
+SRC_URI[js-sys-0.3.85.sha256sum] = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
 SRC_URI[kstring-2.0.2.sha256sum] = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1"
 SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-SRC_URI[libc-0.2.178.sha256sum] = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
+SRC_URI[libc-0.2.180.sha256sum] = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
 SRC_URI[libgit2-sys-0.18.3+1.9.2.sha256sum] = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487"
 SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
 SRC_URI[libnghttp2-sys-0.1.11+1.64.0.sha256sum] = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4"
-SRC_URI[libredox-0.1.10.sha256sum] = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
+SRC_URI[libredox-0.1.12.sha256sum] = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
 SRC_URI[libsqlite3-sys-0.35.0.sha256sum] = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f"
 SRC_URI[libssh2-sys-0.3.1.sha256sum] = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
-SRC_URI[libz-rs-sys-0.5.4.sha256sum] = "15413ef615ad868d4d65dce091cb233b229419c7c0c4bcaa746c0901c49ff39c"
+SRC_URI[libz-rs-sys-0.5.5.sha256sum] = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415"
 SRC_URI[libz-sys-1.1.23.sha256sum] = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7"
 SRC_URI[linux-raw-sys-0.11.0.sha256sum] = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
 SRC_URI[litemap-0.8.1.sha256sum] = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
@@ -617,7 +619,7 @@ SRC_URI[nix-0.30.1.sha256sum] = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c
 SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 SRC_URI[normpath-1.5.0.sha256sum] = "bf23ab2b905654b4cb177e30b629937b3868311d4e1cba859f899c041046e69b"
 SRC_URI[nu-ansi-term-0.50.3.sha256sum] = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
-SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+SRC_URI[num-conv-0.2.0.sha256sum] = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
 SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 SRC_URI[objc2-0.6.3.sha256sum] = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
 SRC_URI[objc2-cloud-kit-0.3.2.sha256sum] = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
@@ -634,7 +636,7 @@ SRC_URI[objc2-quartz-core-0.3.2.sha256sum] = "96c1358452b371bf9f104e21ec536d37a6
 SRC_URI[objc2-ui-kit-0.3.2.sha256sum] = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
 SRC_URI[objc2-user-notifications-0.3.2.sha256sum] = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e"
 SRC_URI[object-0.37.3.sha256sum] = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
-SRC_URI[object-0.38.0.sha256sum] = "b8b28f24bd43920cd8e0bc4f9c6553e8b93221c512cb9a1014987fc89d36f830"
+SRC_URI[object-0.38.1.sha256sum] = "271638cd5fa9cca89c4c304675ca658efc4e64a66c716b7cfe1afb4b9611dbbc"
 SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
 SRC_URI[once_cell_polyfill-1.70.2.sha256sum] = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
 SRC_URI[opener-0.8.3.sha256sum] = "cb9024962ab91e00c89d2a14352a8d0fc1a64346bf96f1839b45c09149564e47"
@@ -644,8 +646,8 @@ SRC_URI[openssl-probe-0.1.6.sha256sum] = "d05e27ee213611ffe7d6348b942e8f942b3711
 SRC_URI[openssl-src-300.5.4+3.5.4.sha256sum] = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72"
 SRC_URI[openssl-sys-0.9.111.sha256sum] = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321"
 SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
-SRC_URI[orion-0.17.11.sha256sum] = "21b3da83b2b4cdc74ab6a556b2e7b473da046d5aa4008c0a7a3ae96b1b4aabb4"
-SRC_URI[os_info-3.13.0.sha256sum] = "7c39b5918402d564846d5aba164c09a66cc88d232179dfd3e3c619a25a268392"
+SRC_URI[orion-0.17.12.sha256sum] = "eb3278caf2be3bafa358c50c76170a4f3bb5f4f39e671909fb64ee558cde117e"
+SRC_URI[os_info-3.14.0.sha256sum] = "e4022a17595a00d6a369236fdae483f0de7f0a339960a53118b818238e132224"
 SRC_URI[p384-0.13.1.sha256sum] = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6"
 SRC_URI[parking_lot-0.12.5.sha256sum] = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
 SRC_URI[parking_lot_core-0.9.12.sha256sum] = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
@@ -656,22 +658,23 @@ SRC_URI[percent-encoding-2.3.2.sha256sum] = "9b4f627cb1b25917193a259e49bdad08f67
 SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
 SRC_URI[pkcs8-0.10.2.sha256sum] = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
-SRC_URI[portable-atomic-1.11.1.sha256sum] = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+SRC_URI[portable-atomic-1.13.0.sha256sum] = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
 SRC_URI[portable-atomic-util-0.2.4.sha256sum] = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
 SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
 SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 SRC_URI[ppv-lite86-0.2.21.sha256sum] = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
 SRC_URI[primeorder-0.13.6.sha256sum] = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
-SRC_URI[proc-macro2-1.0.103.sha256sum] = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
+SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
 SRC_URI[prodash-30.0.1.sha256sum] = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139"
-SRC_URI[quote-1.0.42.sha256sum] = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
+SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
 SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
 SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
 SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[rand_core-0.9.3.sha256sum] = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
+SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
 SRC_URI[rand_xoshiro-0.6.0.sha256sum] = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
 SRC_URI[redox_syscall-0.5.18.sha256sum] = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+SRC_URI[redox_syscall-0.7.0.sha256sum] = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
 SRC_URI[regex-1.12.2.sha256sum] = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
 SRC_URI[regex-automata-0.4.13.sha256sum] = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
 SRC_URI[regex-syntax-0.8.8.sha256sum] = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
@@ -680,9 +683,8 @@ SRC_URI[rusqlite-0.37.0.sha256sum] = "165ca6e57b20e1351573e3729b958bc62f0e480253
 SRC_URI[rustc-hash-2.1.1.sha256sum] = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
 SRC_URI[rustc-stable-hash-0.1.2.sha256sum] = "781442f29170c5c93b7185ad559492601acdc71d5bb0706f5868094f45cfcd08"
 SRC_URI[rustfix-0.9.4.sha256sum] = "864792a841a1d785ba91b8d2a75e1936b40bc517020c3c2958ac403b92e4f00a"
-SRC_URI[rustix-1.1.2.sha256sum] = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+SRC_URI[rustix-1.1.3.sha256sum] = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
 SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
-SRC_URI[ryu-1.0.20.sha256sum] = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 SRC_URI[schannel-0.1.28.sha256sum] = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
 SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
@@ -696,8 +698,8 @@ SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e
 SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
 SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
 SRC_URI[serde_ignored-0.1.14.sha256sum] = "115dffd5f3853e06e746965a20dcbae6ee747ae30b543d91b0e089668bb07798"
-SRC_URI[serde_json-1.0.145.sha256sum] = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
-SRC_URI[serde_spanned-1.0.3.sha256sum] = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
+SRC_URI[serde_json-1.0.149.sha256sum] = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+SRC_URI[serde_spanned-1.0.4.sha256sum] = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
 SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 SRC_URI[sha1-checked-0.10.0.sha256sum] = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423"
 SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
@@ -709,48 +711,47 @@ SRC_URI[signature-2.2.0.sha256sum] = "77549399552de45a898a580c1b41d445bf730df867
 SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
 SRC_URI[sized-chunks-0.6.5.sha256sum] = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
 SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
-SRC_URI[socket2-0.6.1.sha256sum] = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
+SRC_URI[socket2-0.6.2.sha256sum] = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0"
 SRC_URI[spki-0.7.3.sha256sum] = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 SRC_URI[stable_deref_trait-1.2.1.sha256sum] = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
 SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 SRC_URI[subtle-2.6.1.sha256sum] = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
-SRC_URI[supports-hyperlinks-3.1.0.sha256sum] = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b"
+SRC_URI[supports-hyperlinks-3.2.0.sha256sum] = "e396b6523b11ccb83120b115a0b7366de372751aa6edf19844dfb13a6af97e91"
 SRC_URI[supports-unicode-3.0.0.sha256sum] = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
-SRC_URI[syn-2.0.111.sha256sum] = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
+SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
 SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
 SRC_URI[tar-0.4.44.sha256sum] = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
-SRC_URI[tempfile-3.23.0.sha256sum] = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
+SRC_URI[tempfile-3.24.0.sha256sum] = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
 SRC_URI[terminal_size-0.4.3.sha256sum] = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
-SRC_URI[thiserror-2.0.17.sha256sum] = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
-SRC_URI[thiserror-impl-2.0.17.sha256sum] = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
+SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
+SRC_URI[thiserror-impl-2.0.18.sha256sum] = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
 SRC_URI[thread_local-1.1.9.sha256sum] = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
-SRC_URI[time-0.3.44.sha256sum] = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
-SRC_URI[time-core-0.1.6.sha256sum] = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
-SRC_URI[time-macros-0.2.24.sha256sum] = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
+SRC_URI[time-0.3.46.sha256sum] = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5"
+SRC_URI[time-core-0.1.8.sha256sum] = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
+SRC_URI[time-macros-0.2.26.sha256sum] = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4"
 SRC_URI[tinystr-0.8.2.sha256sum] = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
 SRC_URI[tinyvec-1.10.0.sha256sum] = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[toml-0.9.8.sha256sum] = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
-SRC_URI[toml_datetime-0.7.3.sha256sum] = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
-SRC_URI[toml_edit-0.23.9.sha256sum] = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832"
-SRC_URI[toml_parser-1.0.4.sha256sum] = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
-SRC_URI[toml_writer-1.0.4.sha256sum] = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
-SRC_URI[tracing-0.1.43.sha256sum] = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647"
+SRC_URI[toml-0.9.11+spec-1.1.0.sha256sum] = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46"
+SRC_URI[toml_datetime-0.7.5+spec-1.1.0.sha256sum] = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
+SRC_URI[toml_edit-0.23.10+spec-1.0.0.sha256sum] = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
+SRC_URI[toml_parser-1.0.6+spec-1.1.0.sha256sum] = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
+SRC_URI[toml_writer-1.0.6+spec-1.1.0.sha256sum] = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
+SRC_URI[tracing-0.1.44.sha256sum] = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
 SRC_URI[tracing-attributes-0.1.31.sha256sum] = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
 SRC_URI[tracing-chrome-0.7.2.sha256sum] = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724"
-SRC_URI[tracing-core-0.1.35.sha256sum] = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c"
+SRC_URI[tracing-core-0.1.36.sha256sum] = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
 SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 SRC_URI[tracing-subscriber-0.3.22.sha256sum] = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
 SRC_URI[typeid-1.0.3.sha256sum] = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
 SRC_URI[typenum-1.19.0.sha256sum] = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
-SRC_URI[unicase-2.8.1.sha256sum] = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
+SRC_URI[unicase-2.9.0.sha256sum] = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
 SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
 SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
 SRC_URI[unicode-normalization-0.1.25.sha256sum] = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
 SRC_URI[unicode-width-0.2.2.sha256sum] = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
-SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
-SRC_URI[url-2.5.7.sha256sum] = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+SRC_URI[url-2.5.8.sha256sum] = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
 SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
 SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
 SRC_URI[valuable-0.1.1.sha256sum] = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
@@ -758,11 +759,11 @@ SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb82
 SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
 SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
-SRC_URI[wasip2-1.0.1+wasi-0.2.4.sha256sum] = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
-SRC_URI[wasm-bindgen-0.2.106.sha256sum] = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
-SRC_URI[wasm-bindgen-macro-0.2.106.sha256sum] = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
-SRC_URI[wasm-bindgen-macro-support-0.2.106.sha256sum] = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
-SRC_URI[wasm-bindgen-shared-0.2.106.sha256sum] = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
+SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
+SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
+SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
+SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
+SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
 SRC_URI[winapi-util-0.1.11.sha256sum] = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
 SRC_URI[windows-link-0.2.1.sha256sum] = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
 SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
@@ -787,16 +788,17 @@ SRC_URI[windows_x86_64_gnullvm-0.53.1.sha256sum] = "0ffa179e2d07eee8ad8f57493436
 SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
 SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
-SRC_URI[wit-bindgen-0.46.0.sha256sum] = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
+SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
 SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
 SRC_URI[yoke-0.8.1.sha256sum] = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
 SRC_URI[yoke-derive-0.8.1.sha256sum] = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
-SRC_URI[zerocopy-0.8.31.sha256sum] = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
-SRC_URI[zerocopy-derive-0.8.31.sha256sum] = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
+SRC_URI[zerocopy-0.8.33.sha256sum] = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
+SRC_URI[zerocopy-derive-0.8.33.sha256sum] = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
 SRC_URI[zerofrom-0.1.6.sha256sum] = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
 SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
 SRC_URI[zeroize-1.8.2.sha256sum] = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
 SRC_URI[zerotrie-0.2.3.sha256sum] = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
 SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
 SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
-SRC_URI[zlib-rs-0.5.4.sha256sum] = "51f936044d677be1a1168fae1d03b583a285a5dd9d8cbf7b24c23aa1fc775235"
+SRC_URI[zlib-rs-0.5.5.sha256sum] = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
+SRC_URI[zmij-1.0.16.sha256sum] = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65"
diff --git a/recipes-devtools/rust/cargo-c_0.10.19+cargo-0.93.0.bb b/recipes-devtools/rust/cargo-c_0.10.20+cargo-0.94.0.bb
similarity index 87%
rename from recipes-devtools/rust/cargo-c_0.10.19+cargo-0.93.0.bb
rename to recipes-devtools/rust/cargo-c_0.10.20+cargo-0.94.0.bb
index f3923c7..3f93778 100644
--- a/recipes-devtools/rust/cargo-c_0.10.19+cargo-0.93.0.bb
+++ b/recipes-devtools/rust/cargo-c_0.10.20+cargo-0.94.0.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = " \
 SRC_URI = "crate://crates.io/cargo-c/${PV};name=cargo-c \
            file://0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch;patchdir=../parking_lot_core-0.9.12/ \
 "
-SRC_URI[cargo-c.sha256sum] = "d42aa5310f659a1c3c0dea92f6dd5ba0d4e0d8d5c221ecc341ba36846ab5f7da"
+SRC_URI[cargo-c.sha256sum] = "5e953a7ea21435da3a584c61fcb7650a9a7a290a5a88d3bb05a5b1493b4a2160"
 S = "${CARGO_VENDORING_DIRECTORY}/cargo-c-${PV}"
 
 DEBUG_PREFIX_MAP += "-ffile-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 02/35]  cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 01/35] cargo-c: update 0.10.19 -> 0.10.20 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 03/35] cargo-update-recipe-crates: Properly close target file after writing Scott Murray
                   ` (32 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Martin Schwan <m.schwan@phytec.de>

Do not fail if only some Cargo.lock files are empty. Only fail, if there
are absolutely no dependencies found in any Cargo.lock.

This fixes the following error message, which would occur with "bitbake
-c update_crates python3-orjson":

    ERROR: python3-orjson-3.10.17-r0 do_update_crates: Execution of '.../python3-orjson/3.10.17/temp/run.do_update_crates.70693' failed with exit code 1
    ERROR: Logfile of failure stored in: .../python3-orjson/3.10.17/temp/log.do_update_crates.70693
    Log data follows:
    | DEBUG: Executing python function extend_recipe_sysroot
    | NOTE: Direct dependencies are ['.../sources/oe-core/../oe-core/recipes-devtools/quilt/quilt-native_0.69.bb:do_populate_sysroot', 'virtual:native:.../sources/oe-core/../oe-core/recipes-devtools/patch/patch_2.8.bb:do_populate_sysroot', 'virtual:native:.../sources/oe-core/../oe-core/recipes-devtools/python/python3_3.13.9.bb:do_populate_sysroot']
    | NOTE: Installed into sysroot: []
    | NOTE: Skipping as already exists in sysroot: ['gettext-minimal-native', 'cmake-native', 'libtool-native', 'quilt-native', 'texinfo-dummy-native', 'openssl-native', 'expat-native', 'ncurses-native', 'util-linux-libuuid-native', 'zlib-native', 'libedit-native', 'make-native', 'patch-native', 'perl-native', 'python3-native', 'bzip2-native', 'xz-native', 'zstd-native', 'attr-native', 'gdbm-native', 'libffi-native', 'sqlite3-native']
    | DEBUG: Python function extend_recipe_sysroot finished
    | DEBUG: Executing shell function do_update_crates
    | Traceback (most recent call last):
    |   File "<stdin>", line 41, in <module>
    |   File "<stdin>", line 12, in get_crates
    | ValueError: Unable to find any candidate crates that use crates.io
    |
    | The above exception was the direct cause of the following exception:
    |
    | Traceback (most recent call last):
    |   File "<stdin>", line 43, in <module>
    | ValueError: Cannot parse '.../python3-orjson/3.10.17/sources/orjson-3.10.17/include/cargo/simdutf8-0.1.5/Cargo.lock'
    | WARNING: exit code 1 from a shell command.
    ERROR: Task (.../sources/oe-core/../meta-openembedded/meta-python/recipes-devtools/python/python3-orjson_3.10.17.bb:do_update_crates) failed with exit code '1'

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 1ef39b3fa731fb121d338aea2b1ac004620063e0)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 .../cargo-update-recipe-crates.bbclass           | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/classes-recipe/cargo-update-recipe-crates.bbclass b/classes-recipe/cargo-update-recipe-crates.bbclass
index 3251d5e..ffc658f 100644
--- a/classes-recipe/cargo-update-recipe-crates.bbclass
+++ b/classes-recipe/cargo-update-recipe-crates.bbclass
@@ -38,7 +38,8 @@ def get_crates(f):
     crates_candidates = list(filter(lambda c: 'crates.io' in c.get('source', ''), crates['package']))
 
     if not crates_candidates:
-        raise ValueError("Unable to find any candidate crates that use crates.io")
+        print("WARNING: Unable to find any candidate crates that use crates.io")
+        return None
 
     # Update crates uri and their checksum, to avoid name clashing on the checksum
     # we need to rename crates with name and version to have a unique key
@@ -65,14 +66,11 @@ for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'):
         continue
     for file in files:
         if file == 'Cargo.lock':
-            try:
-                cargo_lock_path = os.path.join(root, file)
-                crates += get_crates(os.path.join(root, file))
-            except Exception as e:
-                raise ValueError("Cannot parse '%s'" % cargo_lock_path) from e
-            else:
-                found = True
-if not found:
+            cargo_lock_path = os.path.join(root, file)
+            c = get_crates(cargo_lock_path)
+            if c is not None:
+                crates += c
+if crates is None:
     raise ValueError("Unable to find any Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
 open("${TARGET_FILE}", 'w').write(crates)
 EOF
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 03/35]  cargo-update-recipe-crates: Properly close target file after writing
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 01/35] cargo-c: update 0.10.19 -> 0.10.20 Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 02/35] cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 04/35] rust: Upgrade 1.92.0 -> 1.93.0 Scott Murray
                   ` (31 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Martin Schwan <m.schwan@phytec.de>

In do_update_crates(), properly close the target_file after writing to
it using the "with" statement.

Signed-off-by: Martin Schwan <m.schwan@phytec.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit c48e7308c19a7f804c2383b68e5afcd1517a7162)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/cargo-update-recipe-crates.bbclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/classes-recipe/cargo-update-recipe-crates.bbclass b/classes-recipe/cargo-update-recipe-crates.bbclass
index ffc658f..47e845c 100644
--- a/classes-recipe/cargo-update-recipe-crates.bbclass
+++ b/classes-recipe/cargo-update-recipe-crates.bbclass
@@ -72,7 +72,8 @@ for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'):
                 crates += c
 if crates is None:
     raise ValueError("Unable to find any Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
-open("${TARGET_FILE}", 'w').write(crates)
+with open("${TARGET_FILE}", 'w') as f:
+    f.write(crates)
 EOF
 
     bbnote "Successfully update crates inside '${TARGET_FILE}'"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 04/35] rust: Upgrade 1.92.0 -> 1.93.0
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (2 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 03/35] cargo-update-recipe-crates: Properly close target file after writing Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 05/35] rust: Upgrade 1.93.0 -> 1.94.0 Scott Murray
                   ` (30 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>

https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/
Rust changes: https://github.com/rust-lang/rust/releases/tag/1.93.0
Cargo changes: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-193-2026-01-22

* rust-oe-selftest.patch updated for 1.93:
  Renamed UI test directive from add-core-stubs to add-minicore as in
  https://github.com/rust-lang/rust/commit/3796f7de57f5d4cf4325d1f13aeb07fdaa57983b

* OE-selftests:
  - Exclude src/tools/remote-test-client from test suite.
    This unit test modifies the TEST_DEVICE_ADDR environment variable,
    which breaks the OE test harness that uses the same variable for
    QEMU remote testing. Filed a bug with upstream:
    https://github.com/rust-lang/rust/issues/151823

  - Enable +v8a feature for cortexa57.
    Rust 1.93.0 added a regression test (PR #149549) to verify that the
    ARMv8-A system register ttbr0_el2 is recognized in inline assembly.
    This addresses issue #97724 where LLVM wasn't recognizing ttbr0_el2
    as a valid register. Upstream Rust enables +v8a by default for all
    AArch64 targets (PR #105026), but Yocto's custom target specification
    doesn't inherit this. Adding +v8a ensures LLVM recognizes ARMv8-A
    system registers, fixing the test failure.

    Related upstream links:
    - PR #149549: https://github.com/rust-lang/rust/pull/149549
    - Issue #97724: https://github.com/rust-lang/rust/issues/97724
    - PR #105026: https://github.com/rust-lang/rust/pull/105026

Test results:

rust v1.93.0
+-------------+--------+---------+
| Machine     | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64  | 21,689 |   646   |
| qemux86     | 21,439 |   896   |
| qemuarm64   | 21,495 |   840   |
| qemuarm     | 21,421 |   914   |
| qemuriscv64 | 21,466 |   869   |
+-------------+--------+---------+

Test results difference (1.93.0 - 1.92.0):

+-------------+--------+---------+
| Machine     | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64  |  +205  |   +33   |
| qemux86     |  +205  |   +33   |
| qemuarm64   |  +206  |   +32   |
| qemuarm     |  +205  |   +33   |
| qemuriscv64 |  +205  |   +33   |
+-------------+--------+---------+

Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit ee1a997f0fa7a7bc42d3d38f994e3701295095fc)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/rust-target-config.bbclass     |  2 +
 conf/layer.conf                               |  2 +-
 lib/oeqa/selftest/cases/rust_mixin.py         |  1 +
 .../rust/{cargo_1.92.0.bb => cargo_1.93.0.bb} |  0
 .../rust/files/rust-oe-selftest.patch         |  2 +-
 ...ibstd-rs_1.92.0.bb => libstd-rs_1.93.0.bb} |  0
 ....92.0.bb => rust-cross-canadian_1.93.0.bb} |  0
 ...ust-llvm_1.92.0.bb => rust-llvm_1.93.0.bb} |  0
 recipes-devtools/rust/rust-snapshot.inc       | 78 +++++++++----------
 recipes-devtools/rust/rust-source.inc         |  2 +-
 recipes-devtools/rust/rust-source.inc.orig    | 17 ++++
 .../rust/{rust_1.92.0.bb => rust_1.93.0.bb}   |  0
 12 files changed, 62 insertions(+), 42 deletions(-)
 rename recipes-devtools/rust/{cargo_1.92.0.bb => cargo_1.93.0.bb} (100%)
 rename recipes-devtools/rust/{libstd-rs_1.92.0.bb => libstd-rs_1.93.0.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.92.0.bb => rust-cross-canadian_1.93.0.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.92.0.bb => rust-llvm_1.93.0.bb} (100%)
 create mode 100644 recipes-devtools/rust/rust-source.inc.orig
 rename recipes-devtools/rust/{rust_1.92.0.bb => rust_1.93.0.bb} (100%)

diff --git a/classes-recipe/rust-target-config.bbclass b/classes-recipe/rust-target-config.bbclass
index 0f1e2e1..8fda878 100644
--- a/classes-recipe/rust-target-config.bbclass
+++ b/classes-recipe/rust-target-config.bbclass
@@ -77,6 +77,8 @@ def llvm_features_from_tune(d):
         f.append("+a15")
     if 'cortexa17' in feat:
         f.append("+a17")
+    if 'cortexa57' in feat:
+        f.append("+v8a")
     if ('riscv64' in feat) or ('riscv32' in feat):
         f.append("+a,+c,+d,+f,+m")
     return f
diff --git a/conf/layer.conf b/conf/layer.conf
index 32a3729..6c01a40 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.92.0%"
+RUSTVERSION ?= "1.93.0%"
diff --git a/lib/oeqa/selftest/cases/rust_mixin.py b/lib/oeqa/selftest/cases/rust_mixin.py
index 79e0dae..afe5b37 100644
--- a/lib/oeqa/selftest/cases/rust_mixin.py
+++ b/lib/oeqa/selftest/cases/rust_mixin.py
@@ -70,6 +70,7 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
                             'src/tools/coverage-dump',
                             'src/tools/jsondoclint',
                             'src/tools/lint-docs',
+                            'src/tools/remote-test-client',
                             'src/tools/replace-version-placeholder',
                             'src/tools/rust-analyzer',
                             'src/tools/rustdoc-themes',
diff --git a/recipes-devtools/rust/cargo_1.92.0.bb b/recipes-devtools/rust/cargo_1.93.0.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.92.0.bb
rename to recipes-devtools/rust/cargo_1.93.0.bb
diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch
index d1fba81..dc4ed9d 100644
--- a/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -207,7 +207,7 @@ index 551485469d3..575db924968 100644
 --- a/tests/ui/abi/rust-cold-works-with-rustic-args.rs
 +++ b/tests/ui/abi/rust-cold-works-with-rustic-args.rs
 @@ -1,6 +1,7 @@
- //@ add-core-stubs
+ //@ add-minicore
  //@ build-pass
  //@ compile-flags: -Clink-dead-code=true
 +//@ ignore-riscv64
diff --git a/recipes-devtools/rust/libstd-rs_1.92.0.bb b/recipes-devtools/rust/libstd-rs_1.93.0.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.92.0.bb
rename to recipes-devtools/rust/libstd-rs_1.93.0.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.92.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.93.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.92.0.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.93.0.bb
diff --git a/recipes-devtools/rust/rust-llvm_1.92.0.bb b/recipes-devtools/rust/rust-llvm_1.93.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.92.0.bb
rename to recipes-devtools/rust/rust-llvm_1.93.0.bb
diff --git a/recipes-devtools/rust/rust-snapshot.inc b/recipes-devtools/rust/rust-snapshot.inc
index 4314734..7a0049c 100644
--- a/recipes-devtools/rust/rust-snapshot.inc
+++ b/recipes-devtools/rust/rust-snapshot.inc
@@ -4,56 +4,56 @@
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.91.0"
+SNAPSHOT_VERSION = "1.92.0"
 
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "f3ea3c964b7f3b884337f2d411764032bbd1722d7f55592a547cbb29afd87c03"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "ff23dc81f796d64e34e866a44fd0bcae726e34014835369b8f9393a544167eca"
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "003d7008219ca0d225ad1dfa301f7c079b123499430ee0780c85782e0878eeff"
-SRC_URI[clippy-snapshot-aarch64.sha256sum] = "a5f8bd961fb30962144d2f68be0bdd1014cf07110323087b0d6a68251a7a4eca"
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "7c8706fad4c038b5eacab0092e15db54d2b365d5f3323ca046fe987f814e7826"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "ce2ab42c09d633b0a8b4b65a297c700ae0fad47aae890f75894782f95be7e36d"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "cb2ce6be6411b986e25c71ad8a813f9dfbe3461738136fd684e3644f8dd75df4"
+SRC_URI[clippy-snapshot-aarch64.sha256sum] = "333ab38c673b589468b8293b525e5704fb52515d9d516ee28d3d34dd5a63d3c3"
 
-SRC_URI[rustc-snapshot-i686.sha256sum] = "bf718b184d6ace8fab0012835d129130a6dd6a8d78f4f742ae9308a86b96dfc5"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "059fe4b9802c3cb64b539cc501ff5e64f8d750573009c3004fd0b583b3f50d39"
-SRC_URI[cargo-snapshot-i686.sha256sum] = "92486e31c070667681328ad57dd3bd4ca1e3d37958540d622b2afda9b67fbe3d"
-SRC_URI[clippy-snapshot-i686.sha256sum] = "14cae2980accb8536ae700bb7ec6a3b540a06d84e7a4c71db1c7f05a17b1edbd"
+SRC_URI[rustc-snapshot-i686.sha256sum] = "c1c920cd59e255e5dcf844af22b80483fe4b04ff04f143be6da69314bd6733f8"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "abc840631a4462a4c8ec61341110ff653ab2ef86ef3b10f84489d00cc8a9310d"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "63001bbde1c036fae9ad624807bfb18117c7e7cb4a04de81adc4acc7e8580c07"
+SRC_URI[clippy-snapshot-i686.sha256sum] = "f21090ddb01503ab7e326ff8b1ab44121611121e83572aa2dba2c5ceffe12d22"
 
-SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "04bdbb954f48fcd0b125fbddbf3e59841ec81c58ff858471f7977c8343d9a73c"
-SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "cb0c3c2704add4d1271713ff87e1b7a8a4f756b4dc9f580b62953532efd0f7b9"
-SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "9437727091d30d73a987e2c56463a2de4f01fb69cfd229617e2f8a7d8de5c05a"
-SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "060a0eb3ee236e8a3bfb2cad9495165d755ea60d32e62ce85f12ad17c26afedf"
+SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "6207ea209b332c01437fe742c2ef2bc914c88b6d4f9a23a43bc01ad924f6e4a8"
+SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "62e2568ebf6f1addc750a8c32dd1fa4fef8d27679cbac33b837afeb54f204819"
+SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "32f4b393f1471d7d50c9a50512f02116187b3ea6a885c26ff2d74f87fa72baa8"
+SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "70783e0b31682938db53b78f87c948acfe589e3ece5dee6ae6aa5b667a384f3c"
 
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "c625de10cbfd21031f71fa6fdd50ccaffd449744614ef1f57ee3cefe80c57792"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "d5ecd84b78eefaf30fb65ec169af1806bd06d0b5bbe166bf010b058c9c59d27f"
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "1f8f0ac1b05acb7cc50592ca39ec78e374093a0701405e8ea1894bb64a7422cd"
-SRC_URI[clippy-snapshot-powerpc.sha256sum] = "425e5a1a72cc20c476416682cb5df4222c0b9c28fbb9818d4d8f505ccea578e3"
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "961cb6b8c2b5e969ad8eb0256fee43b88608b27310d946a7df3c9e9577139cae"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "c3e809a324b00eb53096c58df38645bb496c6560de334dfe04ed0b77c0605aaa"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "1249c64f95d8187b3a89cf8429329bdbc98f53a9fc538e898c95c487e3234d90"
+SRC_URI[clippy-snapshot-powerpc.sha256sum] = "93ed9fdd6fc2655c7789ed096d57a47178532b6bda1ec4480adca7920563e934"
 
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "139a077f72197ce73031dae7cd2156fb6718b09fe9a3f4008266d34fb8d09ae6"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "ac046a72a957bf9fd1213e95d46d7ca431a6704f63e99c759ccdd9ae7c07f7d9"
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "abc14cced999e0d5f0ec75f10af33998dcaef39fab27b8e2c63b93ca0b79f2ab"
-SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "b8129667c5b30963698466b7edeef4c5a1c869e78b5f9218fcf1426defa5cea9"
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "357dd4745f978080d35dbb6192ecfea331abbb93d88be7d70407856b30722a40"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "2ce706afa4a46b6773340854de877fc63618a40e351298a4e3da8eb482619863"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "e94a8f97c3143158e285b4f8ade1fae844961caca30c0eeed44f6c14da484f05"
+SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "7912584254f455b90ed6ce6089c4efded33bb753d1bf948286ef2f4f782d2f30"
 
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "c526302dcf4f1627525b0eef3ef4181bea801f119c4a0963c3675b390cba164f"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "c79c071fd14ef094c1a2e750f19795e7e162f4237bf92299885c0d56fa6017fe"
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "704bfa80ffeeafacb8f13043873e20e1b9c4a5e785ee6c5e7d0e5828fc1f0c8b"
-SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "1571b18b39f97d808b9f10ed2697b9d87bc3959abf858bfcd3baf9eaf8d5d548"
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "f48a214ff6fa36a77de8a0a2ee009be8aa48ba1533792450aca5edac29497606"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "eba59766c2d9805c0a1fc82fd723acbb36569e1bec1088c037bba84d965f70ba"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "49dd01f5d10e3f368181223db0fbf7dc191161f7d80a295de4909bf87e53da58"
+SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "873047278043e6506f5c98b8f633a9b96dc49ff83869a86a151fe5b1b9455044"
 
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "7c3d4ceaa630ddb45bcd538c687637a349b2c3e18634a2b944178a7b4b42a4cc"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "7486237c83844d48ac96b67241ef0c1f4f702ceb74c44721f6f8660c3068dede"
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "8946ea952e5a516e8bb6fd859d9798902877e01bd4508b717f8b9fd915019ad5"
-SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "97feb6d6b2158b410a83c40d7eeba1e97220e505eae6666aa09d112665cc8dc1"
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "729f4c074ccda30bff493fa94f255bcfcec1be594fecd8a4d0f57da845121c64"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "8ee20dcf3b1063fa6069b3ce85e1fcf42794dfa783263314865cb53fff42d9e4"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "e8708d0a929ad15941ecde368e8a156911927a805b492afafc737124b6aa55d4"
+SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "bdedabeedd48080e6ef70376c52338fbb45ff80d1fbb12a81aa2d8cabbb706c8"
 
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "073c3817f91ff425ffa141a6db215d54b50db5a8abe08fed593b7597687bdf94"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "454ecc9a53dda63762f3d1d92b7e4f4459c58c89d39a4178cce1fd9fd0ce09b5"
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "3af10597a739402d6ecb3db85abaf62e12f7b298d2df6377c3c80e09a54f91b6"
-SRC_URI[clippy-snapshot-s390x.sha256sum] = "8d3bb8aa79abcfe5c24a37651d09dd356f994663699e65e7dd9978514a5ebf31"
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "6a8cf614a74f7469c70d32b378f0163633e6bbe19624b248b758501c5bcdfe84"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "ebf944dc95015498d322504a54e4f9cdb28590f7790aa3a9eb86d6cf4b6c93ff"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "a290edf359a5632dfda3b2325a309d9edeb58c97de97e3cc67274335b58adf05"
+SRC_URI[clippy-snapshot-s390x.sha256sum] = "41aa44f1cf37cac87b83e450eb19148c539ff266bb40dc146207ad5b9e1e1acc"
 
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "a7169e8cb6174af2f45717703370363d8de82ce55f6ccba185893045b9370874"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "89e6520b16c12b43526440298d2da0dcb70747c5cc2d0b8e47d39b5da9aeef49"
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "7103c03fb8abe85b23307005a9dfe4f01c826a89945d84b96fa2d03fd4d2d138"
-SRC_URI[clippy-snapshot-x86_64.sha256sum] = "0087c3d58d2fdeafa89830c299b1026c9f981b49835db89c922b3c6a299b3225"
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "78b2dd9c6b1fcd2621fa81c611cf5e2d6950690775038b585c64f364422886e0"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "5f106805ed86ebf8df287039e53a45cf974391ef4d088c2760776b05b8e48b5d"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "e5e12be2c7126a7036c8adf573078a28b92611f5767cc9bd0a6f7c83081df103"
+SRC_URI[clippy-snapshot-x86_64.sha256sum] = "2c1bf6e7da8ec50feba03fe188fc9a744ba59e2c6ece7970c13e201d08defa9a"
 
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "47e91cba208b1f87348e7b6a49274ebb4364651a4191fa67e6850e7813e26ad5"
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "8b984b31ffca1f27d32ee77ec2cc4c2ab59e72beab67bfce13bbd926dbea8715"
 
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "4f7bffb09cf5a0c25dda9b51811c60996eb1ae06a277c1e836980c21b3a44766"
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "d85afb14120c3c7367338a565a920db653dccd4bc5062398791d7b62b89fd1fd"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 6a9b922..c5e5f6e 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -9,7 +9,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307"
+SRC_URI[rust.sha256sum] = "e30d898272c587a22f77679f03c5e8192b5645c7c9ccc3407ad1106761507cea"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust-source.inc.orig b/recipes-devtools/rust/rust-source.inc.orig
new file mode 100644
index 0000000..6a9b922
--- /dev/null
+++ b/recipes-devtools/rust/rust-source.inc.orig
@@ -0,0 +1,17 @@
+RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
+
+SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust \
+            file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${RUSTSRC} \
+            file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
+            file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
+            file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
+            file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
+            file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
+            file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
+"
+SRC_URI[rust.sha256sum] = "ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307"
+
+RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
+
+UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
+UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
diff --git a/recipes-devtools/rust/rust_1.92.0.bb b/recipes-devtools/rust/rust_1.93.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.92.0.bb
rename to recipes-devtools/rust/rust_1.93.0.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 05/35] rust: Upgrade 1.93.0 -> 1.94.0
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (3 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 04/35] rust: Upgrade 1.92.0 -> 1.93.0 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 06/35] cargo-c: Move recipe out of rust directory Scott Murray
                   ` (29 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

https://blog.rust-lang.org/2026/03/05/Rust-1.94.0/

Rust Changes:
https://github.com/rust-lang/rust/releases/tag/1.94.0

Cargo Changes:
https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-194-2026-03-05

Rebased patch:
rust-oe-selftest.patch

Backported patch:
0001-Update-call-llvm-intrinsics-test.patch
To fix riscv64 oe-selftest failure with 1.94.0

Test results:

rust v1.94.0
+-------------+---------+---------+
| Machine     | Passed  | Skipped |
+-------------+---------+---------+
| qemux86-64  |  21910  |   659   |
| qemux86     |  21657  |   912   |
| qemuarm64   |  21722  |   847   |
| qemuarm     |  21638  |   931   |
| qemuriscv64 |  21684  |   885   |
+-------------+---------+---------+

Test results difference (1.94.0 - 1.93.0):

+-------------+--------+---------+
| Machine     | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64  |  +221  |   +13   |
| qemux86     |  +218  |   +16   |
| qemuarm64   |  +227  |   +7    |
| qemuarm     |  +217  |   +17   |
| qemuriscv64 |  +218  |   +16   |
+-------------+--------+---------+

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 766657738a1463c0a6b632bd82b6d8fcb300062d)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 conf/layer.conf                               |   2 +-
 .../rust/{cargo_1.93.0.bb => cargo_1.94.0.bb} |   0
 ...001-Update-call-llvm-intrinsics-test.patch |  86 +++++++++++++++
 .../rust/files/rust-oe-selftest.patch         |  54 +++++-----
 ...ibstd-rs_1.93.0.bb => libstd-rs_1.94.0.bb} |   0
 ....93.0.bb => rust-cross-canadian_1.94.0.bb} |   0
 ...ust-llvm_1.93.0.bb => rust-llvm_1.94.0.bb} |   0
 recipes-devtools/rust/rust-snapshot.inc       | 102 +++++++++---------
 recipes-devtools/rust/rust-source.inc         |   3 +-
 recipes-devtools/rust/rust-source.inc.orig    |  17 ---
 .../rust/{rust_1.93.0.bb => rust_1.94.0.bb}   |   0
 11 files changed, 168 insertions(+), 96 deletions(-)
 rename recipes-devtools/rust/{cargo_1.93.0.bb => cargo_1.94.0.bb} (100%)
 create mode 100644 recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
 rename recipes-devtools/rust/{libstd-rs_1.93.0.bb => libstd-rs_1.94.0.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.93.0.bb => rust-cross-canadian_1.94.0.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.93.0.bb => rust-llvm_1.94.0.bb} (100%)
 delete mode 100644 recipes-devtools/rust/rust-source.inc.orig
 rename recipes-devtools/rust/{rust_1.93.0.bb => rust_1.94.0.bb} (100%)

diff --git a/conf/layer.conf b/conf/layer.conf
index 6c01a40..2e59aff 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.93.0%"
+RUSTVERSION ?= "1.94.0%"
diff --git a/recipes-devtools/rust/cargo_1.93.0.bb b/recipes-devtools/rust/cargo_1.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.93.0.bb
rename to recipes-devtools/rust/cargo_1.94.0.bb
diff --git a/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch b/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
new file mode 100644
index 0000000..9fa91c0
--- /dev/null
+++ b/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
@@ -0,0 +1,86 @@
+From 1d678f6b0859ea25c2abc22eb4104a025a5737e4 Mon Sep 17 00:00:00 2001
+From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+Date: Mon, 2 Mar 2026 04:22:23 -0800
+Subject: [PATCH] Update call-llvm-intrinsics test for Rust 1.94.0 IR and
+ multi-target CI
+
+Rust 1.94 now passes constants directly to llvm.sqrt.f32 instead of
+storing/loading via the stack.
+
+- Updated the FileCheck pattern to match the new IR:
+    // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
+  The test intent is unchanged: it still ensures the intrinsic is
+  emitted as a 'call' (not 'invoke').
+
+- Removed unnecessary local variables and Drop usage to work in
+  `#![no_core]` mode with minicore.
+
+- Added required crate attributes:
+    #![feature(no_core, lang_items)]
+    #![no_std]
+    #![no_core]
+
+- Replaced `//@ only-riscv64` (host-based execution) with explicit
+  revisions for:
+      riscv32gc-unknown-linux-gnu
+      riscv64gc-unknown-linux-gnu
+  This ensures deterministic multi-target coverage in CI without
+  relying on the host architecture.
+
+- Added `//@ needs-llvm-components: riscv` and
+  `//@ min-llvm-version: 21` for CI compatibility.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/153285]
+Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+---
+ .../riscv-abi/call-llvm-intrinsics.rs         | 26 +++++++++----------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs b/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
+index e72a649a530..fb520d38df3 100644
+--- a/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
++++ b/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
+@@ -1,17 +1,20 @@
++//@ add-minicore
+ //@ compile-flags: -C no-prepopulate-passes
+-
+-//@ only-riscv64
++//@ revisions: riscv32gc riscv64gc
++//@ [riscv32gc] compile-flags: --target riscv32gc-unknown-linux-gnu
++//@ [riscv32gc] needs-llvm-components: riscv
++//@ [riscv64gc] compile-flags: --target riscv64gc-unknown-linux-gnu
++//@ [riscv64gc] needs-llvm-components: riscv
++//@ min-llvm-version: 21
+
+ #![feature(link_llvm_intrinsics)]
++#![feature(no_core, lang_items)]
++#![no_std]
++#![no_core]
+ #![crate_type = "lib"]
+
+-struct A;
+-
+-impl Drop for A {
+-    fn drop(&mut self) {
+-        println!("A");
+-    }
+-}
++extern crate minicore;
++use minicore::*;
+
+ extern "C" {
+     #[link_name = "llvm.sqrt.f32"]
+@@ -19,12 +22,9 @@ fn drop(&mut self) {
+ }
+
+ pub fn do_call() {
+-    let _a = A;
+-
+     unsafe {
+         // Ensure that we `call` LLVM intrinsics instead of trying to `invoke` them
+-        // CHECK: store float 4.000000e+00, ptr %{{.}}, align 4
+-        // CHECK: call float @llvm.sqrt.f32(float %{{.}}
++        // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
+         sqrt(4.0);
+     }
+ }
diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch
index dc4ed9d..e96598f 100644
--- a/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -10,7 +10,7 @@ Signed-off-by: Peter Tatrai <Peter.Tatrai@siemens.com>
 diff --git a/compiler/rustc_errors/src/markdown/tests/term.rs b/compiler/rustc_errors/src/markdown/tests/term.rs
 --- a/compiler/rustc_errors/src/markdown/tests/term.rs
 +++ b/compiler/rustc_errors/src/markdown/tests/term.rs
-@@ -62,6 +62,7 @@ fn test_wrapping_write() {
+@@ -60,6 +60,7 @@ fn test_wrapping_write() {
  }
 
  #[test]
@@ -119,7 +119,7 @@ diff --git a/library/test/src/tests.rs b/library/test/src/tests.rs
 diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs
 --- a/library/std/tests/sync/mutex.rs
 +++ b/library/std/tests/sync/mutex.rs
-@@ -472,6 +472,7 @@
+@@ -440,6 +440,7 @@
  
  #[test]
  #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
@@ -127,7 +127,7 @@ diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs
  fn test_mutex_arc_poison_mapped() {
      let arc = Arc::new(Mutex::new(1));
      assert!(!arc.is_poisoned());
-@@ -388,6 +389,7 @@
+@@ -457,6 +458,7 @@
  
  #[test]
  #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
@@ -230,30 +230,30 @@ diff --git a/library/std_detect/src/detect/os/linux/aarch64/tests.rs b/library/s
 index a3562f2fd93..d4e52ed91be 100644
 --- a/library/std_detect/src/detect/os/linux/aarch64/tests.rs
 +++ b/library/std_detect/src/detect/os/linux/aarch64/tests.rs
-@@ -27,6 +27,7 @@ fn baseline_hwcaps() -> AtHwcap {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn linux_empty_hwcap2_aarch64() {
-         let file = concat!(
-             env!("CARGO_MANIFEST_DIR"),
-@@ -39,6 +40,7 @@ fn linux_empty_hwcap2_aarch64() {
-         assert_eq!(AtHwcap::from(v), baseline_hwcaps());
-     }
-     #[test]
-+    #[ignore]
-     fn linux_no_hwcap2_aarch64() {
-         let file = concat!(
-             env!("CARGO_MANIFEST_DIR"),
-@@ -51,6 +53,7 @@ fn linux_no_hwcap2_aarch64() {
-         assert_eq!(AtHwcap::from(v), baseline_hwcaps());
-     }
-     #[test]
-+    #[ignore]
-     fn linux_hwcap2_aarch64() {
-         let file =
-             concat!(env!("CARGO_MANIFEST_DIR"), "/src/detect/test_data/linux-hwcap2-aarch64.auxv");
+@@ -23,6 +23,7 @@ fn baseline_hwcaps() -> AtHwcap {
+ }
+
+ #[test]
++#[ignore]
+ fn linux_empty_hwcap2_aarch64() {
+     let file = concat!(
+         env!("CARGO_MANIFEST_DIR"),
+@@ -35,6 +36,7 @@ fn linux_empty_hwcap2_aarch64() {
+     assert_eq!(AtHwcap::from(v), baseline_hwcaps());
+ }
+ #[test]
++#[ignore]
+ fn linux_no_hwcap2_aarch64() {
+     let file =
+         concat!(env!("CARGO_MANIFEST_DIR"), "/src/detect/test_data/linux-no-hwcap2-aarch64.auxv");
+@@ -45,6 +47,7 @@ fn linux_no_hwcap2_aarch64() {
+     assert_eq!(AtHwcap::from(v), baseline_hwcaps());
+ }
+ #[test]
++#[ignore]
+ fn linux_hwcap2_aarch64() {
+     let file =
+         concat!(env!("CARGO_MANIFEST_DIR"), "/src/detect/test_data/linux-hwcap2-aarch64.auxv");
 diff --git a/tests/ui/no_std/simple-runs.rs b/tests/ui/no_std/simple-runs.rs
 index af44dfe..e6674e5 100644
 --- a/tests/ui/no_std/simple-runs.rs
diff --git a/recipes-devtools/rust/libstd-rs_1.93.0.bb b/recipes-devtools/rust/libstd-rs_1.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.93.0.bb
rename to recipes-devtools/rust/libstd-rs_1.94.0.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.93.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.93.0.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.94.0.bb
diff --git a/recipes-devtools/rust/rust-llvm_1.93.0.bb b/recipes-devtools/rust/rust-llvm_1.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.93.0.bb
rename to recipes-devtools/rust/rust-llvm_1.94.0.bb
diff --git a/recipes-devtools/rust/rust-snapshot.inc b/recipes-devtools/rust/rust-snapshot.inc
index 7a0049c..cd4cce3 100644
--- a/recipes-devtools/rust/rust-snapshot.inc
+++ b/recipes-devtools/rust/rust-snapshot.inc
@@ -4,56 +4,58 @@
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.92.0"
-
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "7c8706fad4c038b5eacab0092e15db54d2b365d5f3323ca046fe987f814e7826"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "ce2ab42c09d633b0a8b4b65a297c700ae0fad47aae890f75894782f95be7e36d"
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "cb2ce6be6411b986e25c71ad8a813f9dfbe3461738136fd684e3644f8dd75df4"
-SRC_URI[clippy-snapshot-aarch64.sha256sum] = "333ab38c673b589468b8293b525e5704fb52515d9d516ee28d3d34dd5a63d3c3"
-
-SRC_URI[rustc-snapshot-i686.sha256sum] = "c1c920cd59e255e5dcf844af22b80483fe4b04ff04f143be6da69314bd6733f8"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "abc840631a4462a4c8ec61341110ff653ab2ef86ef3b10f84489d00cc8a9310d"
-SRC_URI[cargo-snapshot-i686.sha256sum] = "63001bbde1c036fae9ad624807bfb18117c7e7cb4a04de81adc4acc7e8580c07"
-SRC_URI[clippy-snapshot-i686.sha256sum] = "f21090ddb01503ab7e326ff8b1ab44121611121e83572aa2dba2c5ceffe12d22"
-
-SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "6207ea209b332c01437fe742c2ef2bc914c88b6d4f9a23a43bc01ad924f6e4a8"
-SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "62e2568ebf6f1addc750a8c32dd1fa4fef8d27679cbac33b837afeb54f204819"
-SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "32f4b393f1471d7d50c9a50512f02116187b3ea6a885c26ff2d74f87fa72baa8"
-SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "70783e0b31682938db53b78f87c948acfe589e3ece5dee6ae6aa5b667a384f3c"
-
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "961cb6b8c2b5e969ad8eb0256fee43b88608b27310d946a7df3c9e9577139cae"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "c3e809a324b00eb53096c58df38645bb496c6560de334dfe04ed0b77c0605aaa"
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "1249c64f95d8187b3a89cf8429329bdbc98f53a9fc538e898c95c487e3234d90"
-SRC_URI[clippy-snapshot-powerpc.sha256sum] = "93ed9fdd6fc2655c7789ed096d57a47178532b6bda1ec4480adca7920563e934"
-
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "357dd4745f978080d35dbb6192ecfea331abbb93d88be7d70407856b30722a40"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "2ce706afa4a46b6773340854de877fc63618a40e351298a4e3da8eb482619863"
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "e94a8f97c3143158e285b4f8ade1fae844961caca30c0eeed44f6c14da484f05"
-SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "7912584254f455b90ed6ce6089c4efded33bb753d1bf948286ef2f4f782d2f30"
-
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "f48a214ff6fa36a77de8a0a2ee009be8aa48ba1533792450aca5edac29497606"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "eba59766c2d9805c0a1fc82fd723acbb36569e1bec1088c037bba84d965f70ba"
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "49dd01f5d10e3f368181223db0fbf7dc191161f7d80a295de4909bf87e53da58"
-SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "873047278043e6506f5c98b8f633a9b96dc49ff83869a86a151fe5b1b9455044"
-
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "729f4c074ccda30bff493fa94f255bcfcec1be594fecd8a4d0f57da845121c64"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "8ee20dcf3b1063fa6069b3ce85e1fcf42794dfa783263314865cb53fff42d9e4"
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "e8708d0a929ad15941ecde368e8a156911927a805b492afafc737124b6aa55d4"
-SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "bdedabeedd48080e6ef70376c52338fbb45ff80d1fbb12a81aa2d8cabbb706c8"
-
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "6a8cf614a74f7469c70d32b378f0163633e6bbe19624b248b758501c5bcdfe84"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "ebf944dc95015498d322504a54e4f9cdb28590f7790aa3a9eb86d6cf4b6c93ff"
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "a290edf359a5632dfda3b2325a309d9edeb58c97de97e3cc67274335b58adf05"
-SRC_URI[clippy-snapshot-s390x.sha256sum] = "41aa44f1cf37cac87b83e450eb19148c539ff266bb40dc146207ad5b9e1e1acc"
-
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "78b2dd9c6b1fcd2621fa81c611cf5e2d6950690775038b585c64f364422886e0"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "5f106805ed86ebf8df287039e53a45cf974391ef4d088c2760776b05b8e48b5d"
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "e5e12be2c7126a7036c8adf573078a28b92611f5767cc9bd0a6f7c83081df103"
-SRC_URI[clippy-snapshot-x86_64.sha256sum] = "2c1bf6e7da8ec50feba03fe188fc9a744ba59e2c6ece7970c13e201d08defa9a"
-
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "8b984b31ffca1f27d32ee77ec2cc4c2ab59e72beab67bfce13bbd926dbea8715"
-
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "d85afb14120c3c7367338a565a920db653dccd4bc5062398791d7b62b89fd1fd"
+SNAPSHOT_VERSION = "1.93.0"
+
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "1a9045695892ec08d8e9751bf7cf7db71fe27a6202dd12ce13aca48d0602dbde"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "84e82ff52c39c64dfd0e1c2d58fd3d5309d1d2502378131544c0d486b44af20a"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "5998940b8b97286bb67facb1a85535eeb3d4d7a61e36a85e386e5c0c5cfe5266"
+SRC_URI[clippy-snapshot-aarch64.sha256sum] = "872ae6d68d625946d281b91d928332e6b74f6ab269b6af842338df4338805a60"
+
+SRC_URI[rustc-snapshot-i686.sha256sum] = "72038681a14fe632e2b550392b83dadf40325c472dabecfff40a9efdc2d8e201"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "b8b7020a61418b95c1ea26badaf8db6979778e28dbadddc81fb5010fe27c935b"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "2c6fb5893b4abcdf6af9dc3c4f60abc072318b0cb13f2bd969585910b7ba048b"
+SRC_URI[clippy-snapshot-i686.sha256sum] = "e8f6b16356548e2dbad3d380c07cd7b3654b49c513a15a2ceb9d17a49ac0aa04"
+
+SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "d5762adb6e1dec7e6af4a7347cde45c12fec3f0ceba8a05aff6ef00390105739"
+SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "4c5e2e8fcc43aced123283e3c8c99771c99750b5c7ecdf95a45258f5e26618b2"
+SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "cf1af58dad1098c1f56d3df11f884b8d87b0db30ef038d1527872b7cdd7c9785"
+SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "41f588aefa9e8bcdb4969afc14d18b19b4bd524defc026aca8c0275c19d183ac"
+
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "b31f5408c198756b57f0491961cf6dc84bfd96ff1c73627798015f27ecea6ef5"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "e851c0fa3e726ce3f7139c5803198a1aa9723594394734ac9e373c93d92e5ea3"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "f8472c773385820a9c8fe375f766b6918bb659eb2d517db72eff86a44c59546d"
+SRC_URI[clippy-snapshot-powerpc.sha256sum] = "9f48807b761998db304ade11573742f52dcd61bf62f3e339eb9975ec33feab65"
+
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "b483c5324966b7138fb3f6180f7e4a2e9a5162179a83e58bb52d1ee5036009ee"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "f729bb7d95705e12a92eb072e494b93d8822ca40aa4802ca780b0cf33b56d401"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "662a9d454073c178c052bbb001f7440ded82134185c7c656ba8fc37468799383"
+SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "2242d23c8472b4d7efe6e2e538157f0b25d9ac99f6362b2cd534ba5030b2a71f"
+
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "fa0705079ee9eeaeee2e4f12a3ffb35ccc3d4334cccd3eb3106a3f59b96e88aa"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "d209ac698a69ca9b9035adb97a0ed8e60a08db52960198c3e03b9ee714c1a46b"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "a587e9dab9385ea0651dd45a6cb6101d6028ccf578a3e1140ce083fe9419921a"
+SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "283b76a665927a7737dbf422d3a3459eb85e873a49f6a2de8cc0ab5a5c3a8350"
+
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "804b19ccf61e8aec4c0c6d3f115961982b155d96925eb34b651aa7f6493a2e8b"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "b769fb6c9f3e0419a6bd0b7b79f9191bbd7a48a9f243b23eb7d135711aa6de1b"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "1f0fc840db26c426b26ce8a943b887756e9552974a39248ad0166960fa169f62"
+SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "1c8bbbd36200f525949a2a3b1446ddc863b99bdc2552b818919fd64cc27b64d2"
+
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "756c25d32d6539a7485a278216f3058c1571fd503c638e1179b74a68611dd1a4"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "41a65db45a288eb3eedb187b366f132d5b3615767de7ce994b123b342ac7a848"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "7d0281d26142bf124c0393a99e73b7b8ae6cb579cb7ebe50f696da6922d2129a"
+SRC_URI[clippy-snapshot-s390x.sha256sum] = "1cf85452916d4f5696d93e45849a99aba23884a3bd3d886d0179a1b2cf7d2858"
+
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "00c6e6740ea6a795e33568cd7514855d58408a1180cd820284a7bbf7c46af715"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "a849a418d0f27e69573e41763c395e924a0b98c16fcdc55599c1c79c27c1c777"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "c23de3ae709ff33eed5e4ae59d1f9bcd75fa4dbaa9fb92f7b06bfb534b8db880"
+SRC_URI[clippy-snapshot-x86_64.sha256sum] = "793108977514b15c0f45ade28ae35c58b05370cb0f22e89bd98fdfa61eabf55d"
+
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "03534ebbd698f7580cfb08798a7451e86bd9ec46327f4b41ccf2c2f8f1998438"
+
+SRC_URI[rust-std-snapshot-riscv64a23.sha256sum] = "2a625e37c5b943c6c63dad7f52187572d1a65854e3950a8fa26e593f8231d711"
+
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "360f0a4eb41c3cd3792dbe756c0c5b5a36a5b41e3771b8a12d5bbc97bf51fdd3"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index c5e5f6e..e0a6190 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -8,8 +8,9 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
             file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
+            file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "e30d898272c587a22f77679f03c5e8192b5645c7c9ccc3407ad1106761507cea"
+SRC_URI[rust.sha256sum] = "0b53ae34f5c0c3612cfe1de139f9167a018cd5737bc2205664fd69ba9b25f600"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust-source.inc.orig b/recipes-devtools/rust/rust-source.inc.orig
deleted file mode 100644
index 6a9b922..0000000
--- a/recipes-devtools/rust/rust-source.inc.orig
+++ /dev/null
@@ -1,17 +0,0 @@
-RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
-
-SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust \
-            file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${RUSTSRC} \
-            file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
-            file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
-            file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
-            file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
-            file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
-            file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
-"
-SRC_URI[rust.sha256sum] = "ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307"
-
-RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
-
-UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
-UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
diff --git a/recipes-devtools/rust/rust_1.93.0.bb b/recipes-devtools/rust/rust_1.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.93.0.bb
rename to recipes-devtools/rust/rust_1.94.0.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 06/35] cargo-c: Move recipe out of rust directory
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (4 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 05/35] rust: Upgrade 1.93.0 -> 1.94.0 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 07/35] rust: Drop revert-link-std-statically-in-rustc_driver-feature.patch Scott Murray
                   ` (28 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

cargo-c is an external Cargo extension used to build Rust libraries
with a C-compatible ABI and generate C headers and pkg-config files.
Since it is not part of the standard Rust toolchain, move it from the
rust directory to cargo-c under recipes-devtools for better organization
and maintainability.

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit a91d977917fba29f0c994d896dfec898e1b46d77)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/{rust => cargo-c}/cargo-c-crates.inc             | 0
 .../0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch   | 0
 .../{rust => cargo-c}/cargo-c_0.10.20+cargo-0.94.0.bb             | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
 rename recipes-devtools/{rust => cargo-c}/cargo-c-crates.inc (100%)
 rename recipes-devtools/{rust => cargo-c}/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch (100%)
 rename recipes-devtools/{rust => cargo-c}/cargo-c_0.10.20+cargo-0.94.0.bb (100%)

diff --git a/recipes-devtools/rust/cargo-c-crates.inc b/recipes-devtools/cargo-c/cargo-c-crates.inc
similarity index 100%
rename from recipes-devtools/rust/cargo-c-crates.inc
rename to recipes-devtools/cargo-c/cargo-c-crates.inc
diff --git a/recipes-devtools/rust/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch b/recipes-devtools/cargo-c/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch
similarity index 100%
rename from recipes-devtools/rust/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch
rename to recipes-devtools/cargo-c/cargo-c/0001-parking-lot-Use-libc-SYS_futex_time64-on-riscv32.patch
diff --git a/recipes-devtools/rust/cargo-c_0.10.20+cargo-0.94.0.bb b/recipes-devtools/cargo-c/cargo-c_0.10.20+cargo-0.94.0.bb
similarity index 100%
rename from recipes-devtools/rust/cargo-c_0.10.20+cargo-0.94.0.bb
rename to recipes-devtools/cargo-c/cargo-c_0.10.20+cargo-0.94.0.bb
-- 
2.55.0



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 07/35] rust: Drop revert-link-std-statically-in-rustc_driver-feature.patch
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (5 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 06/35] cargo-c: Move recipe out of rust directory Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 08/35] rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch Scott Murray
                   ` (27 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Starting from Rust 1.82, std is statically linked with rustc_driver.so.
This change affected the runtime dependencies of the rustc_main test
binary, causing tests to fail in QEMU because librustc_driver*.so is
not shipped and cannot be found.

After discussing with upstream, the patch is removed, and the test is
skipped using #[cfg(not(test))]. The rustc_main function does not include
any test code,so this safely restores the feature without impacting tests.

Upstream Discussion:
https://github.com/rust-lang/rust/pull/153409

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit b0ea86d95b921ef2c585faf97b1a0cc14c7f1489)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...d-statically-in-rustc_driver-feature.patch | 229 ------------------
 .../rust/files/rust-oe-selftest.patch         |  13 +
 recipes-devtools/rust/rust-source.inc         |   1 -
 3 files changed, 13 insertions(+), 230 deletions(-)
 delete mode 100644 recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch

diff --git a/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch b/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
deleted file mode 100644
index 9d345bc..0000000
--- a/recipes-devtools/rust/files/revert-link-std-statically-in-rustc_driver-feature.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-rust: oe-selftest issue fix with v1.82
-
-A new feature "Link std statically in rustc_driver" was introduced 
-in rust_1.82 [https://github.com/rust-lang/rust/pull/122362],and 
-which is causing the below failure in oe-selftest.
-
-Running unittests src/main.rs (build/x86_64-unknown-linux-gnu/stage1-rustc/
-x86_64-poky-linux-gnu/release/deps/rustc_main-92223b15c9f2d827)
-uploaded ".../build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-poky-linux-gnu/
-release/deps/rustc_main-92223b15c9f2d827", waiting for result
-/tmp/work/test4056/rustc_main-92223b15c9f2d827: error while loading shared 
-libraries: librustc_driver-fb0866b1cd913c20.so: cannot open shared object file: No 
-such file or directory
-
-The rustc_main binary depends on the librustc_driver-*.so file. However, 
-this file has not been copied to QEMU. If we manually copy the file into 
-QEMU and export the LD_LIBRARY_PATH, the issue does not occur. Issue 
-reprorted to upstream and reverted the buggy code as a workaround.
-
-Upstream-Status: Inappropriate [reported at https://github.com/rust-lang/rust/issues/136237]
-
-Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
-diff --git a/compiler/rustc/src/main.rs b/compiler/rustc/src/main.rs
-index e9a7397557..29766fc9d8 100644
---- a/compiler/rustc/src/main.rs
-+++ b/compiler/rustc/src/main.rs
-@@ -1,5 +1,3 @@
--// We need this feature as it changes `dylib` linking behavior and allows us to link to `rustc_driver`.
--#![feature(rustc_private)]
- // Several crates are depended upon but unused so that they are present in the sysroot
- #![expect(unused_crate_dependencies)]
-
-diff --git a/compiler/rustc_metadata/src/dependency_format.rs b/compiler/rustc_metadata/src/dependency_format.rs
-index 39fa23766b..51d86b4009 100644
---- a/compiler/rustc_metadata/src/dependency_format.rs
-+++ b/compiler/rustc_metadata/src/dependency_format.rs
-@@ -51,7 +51,7 @@
- //! Additionally, the algorithm is geared towards finding *any* solution rather
- //! than finding a number of solutions (there are normally quite a few).
-
--use rustc_data_structures::fx::{FxHashMap, FxHashSet};
-+use rustc_data_structures::fx::FxHashMap;
- use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};
- use rustc_index::IndexVec;
- use rustc_middle::bug;
-@@ -159,46 +159,19 @@ fn calculate_type(tcx: TyCtxt<'_>, ty: CrateType) -> DependencyList {
-         }
-         Linkage::Dynamic | Linkage::IncludedFromDylib => {}
-     }
--
--    let all_dylibs = || {
--        tcx.crates(()).iter().filter(|&&cnum| {
--            !tcx.dep_kind(cnum).macros_only()
--                && (tcx.used_crate_source(cnum).dylib.is_some()
--                    || tcx.used_crate_source(cnum).sdylib_interface.is_some())
--        })
--    };
--
--    let mut upstream_in_dylibs = FxHashSet::default();
--
--    if tcx.features().rustc_private() {
--        // We need this to prevent users of `rustc_driver` from linking dynamically to `std`
--        // which does not work as `std` is also statically linked into `rustc_driver`.
--
--        // Find all libraries statically linked to upstream dylibs.
--        for &cnum in all_dylibs() {
--            let deps = tcx.dylib_dependency_formats(cnum);
--            for &(depnum, style) in deps.iter() {
--                if let RequireStatic = style {
--                    upstream_in_dylibs.insert(depnum);
--                }
--            }
--        }
--    }
--
-     let mut formats = FxHashMap::default();
-
-     // Sweep all crates for found dylibs. Add all dylibs, as well as their
-     // dependencies, ensuring there are no conflicts. The only valid case for a
-     // dependency to be relied upon twice is for both cases to rely on a dylib.
--    for &cnum in all_dylibs() {
--        if upstream_in_dylibs.contains(&cnum) {
--            info!("skipping dylib: {}", tcx.crate_name(cnum));
--            // If this dylib is also available statically linked to another dylib
--            // we try to use that instead.
-+    for &cnum in tcx.crates(()).iter() {
-+        if tcx.dep_kind(cnum).macros_only() {
-             continue;
-         }
-
-         let name = tcx.crate_name(cnum);
-+        let src = tcx.used_crate_source(cnum);
-+        if src.dylib.is_some() {
-         info!("adding dylib: {}", name);
-         add_library(tcx, cnum, RequireDynamic, &mut formats, &mut unavailable_as_static);
-         let deps = tcx.dylib_dependency_formats(cnum);
-@@ -207,6 +182,7 @@ fn calculate_type(tcx: TyCtxt<'_>, ty: CrateType) -> DependencyList {
-             add_library(tcx, depnum, style, &mut formats, &mut unavailable_as_static);
-         }
-     }
-+    }
-
-     // Collect what we've got so far in the return vector.
-     let last_crate = tcx.crates(()).len();
-diff --git a/src/bootstrap/src/bin/rustc.rs b/src/bootstrap/src/bin/rustc.rs
-index d04e2fbeb7..011c289d93 100644
---- a/src/bootstrap/src/bin/rustc.rs
-+++ b/src/bootstrap/src/bin/rustc.rs
-@@ -92,24 +92,6 @@ fn main() {
-         rustc_real
-     };
-
--    // Get the name of the crate we're compiling, if any.
--    let crate_name = parse_value_from_args(&orig_args, "--crate-name");
--
--    // When statically linking `std` into `rustc_driver`, remove `-C prefer-dynamic`
--    if env::var("RUSTC_LINK_STD_INTO_RUSTC_DRIVER").unwrap() == "1"
--        && crate_name == Some("rustc_driver")
--    {
--        if let Some(pos) = args.iter().enumerate().position(|(i, a)| {
--            a == "-C" && args.get(i + 1).map(|a| a == "prefer-dynamic").unwrap_or(false)
--        }) {
--            args.remove(pos);
--            args.remove(pos);
--        }
--        if let Some(pos) = args.iter().position(|a| a == "-Cprefer-dynamic") {
--            args.remove(pos);
--        }
--    }
--
-     let mut cmd = match env::var_os("RUSTC_WRAPPER_REAL") {
-         Some(wrapper) if !wrapper.is_empty() => {
-             let mut cmd = Command::new(wrapper);
-@@ -120,6 +102,9 @@ fn main() {
-     };
-     cmd.args(&args).env(dylib_path_var(), env::join_paths(&dylib_path).unwrap());
-
-+    // Get the name of the crate we're compiling, if any.
-+    let crate_name = parse_value_from_args(&orig_args, "--crate-name");
-+
-     if let Some(crate_name) = crate_name
-         && let Some(target) = env::var_os("RUSTC_TIME")
-         && (target == "all"
-diff --git a/src/bootstrap/src/core/builder/cargo.rs b/src/bootstrap/src/core/builder/cargo.rs
-index 0688a1d689..066e6bf53f 100644
---- a/src/bootstrap/src/core/builder/cargo.rs
-+++ b/src/bootstrap/src/core/builder/cargo.rs
-@@ -1146,7 +1146,7 @@ impl Builder<'_> {
-         // When we build Rust dylibs they're all intended for intermediate
-         // usage, so make sure we pass the -Cprefer-dynamic flag instead of
-         // linking all deps statically into the dylib.
--        if matches!(mode, Mode::Std) {
-+        if matches!(mode, Mode::Std | Mode::Rustc) {
-             rustflags.arg("-Cprefer-dynamic");
-         }
-         if matches!(mode, Mode::Rustc) && !self.link_std_into_rustc_driver(target) {
-diff --git a/src/tools/clippy/src/main.rs b/src/tools/clippy/src/main.rs
-index c9853e53f3..c9af2138a7 100644
---- a/src/tools/clippy/src/main.rs
-+++ b/src/tools/clippy/src/main.rs
-@@ -1,6 +1,3 @@
--// We need this feature as it changes `dylib` linking behavior and allows us to link to
--// `rustc_driver`.
--#![feature(rustc_private)]
- // warn on lints, that are included in `rust-lang/rust`s bootstrap
- #![warn(rust_2018_idioms, unused_lifetimes)]
-
-diff --git a/src/tools/clippy/tests/compile-test.rs b/src/tools/clippy/tests/compile-test.rs
-index 9754254cdd..dd95cc71cd 100644
---- a/src/tools/clippy/tests/compile-test.rs
-+++ b/src/tools/clippy/tests/compile-test.rs
-@@ -1,4 +1,4 @@
--#![feature(rustc_private)]
-+// warn on lints, that are included in `rust-lang/rust`s bootstrap
- #![warn(rust_2018_idioms, unused_lifetimes)]
- #![allow(unused_extern_crates)]
-
-diff --git a/src/tools/rustdoc/main.rs b/src/tools/rustdoc/main.rs
-index d4099cafe5..5b499a1fa1 100644
---- a/src/tools/rustdoc/main.rs
-+++ b/src/tools/rustdoc/main.rs
-@@ -1,6 +1,3 @@
--// We need this feature as it changes `dylib` linking behavior and allows us to link to `rustc_driver`.
--#![feature(rustc_private)]
--
- fn main() {
-     rustdoc::main()
- }
-diff --git a/src/tools/rustfmt/src/git-rustfmt/main.rs b/src/tools/rustfmt/src/git-rustfmt/main.rs
-index b8b0432aa9..b5bd71e015 100644
---- a/src/tools/rustfmt/src/git-rustfmt/main.rs
-+++ b/src/tools/rustfmt/src/git-rustfmt/main.rs
-@@ -1,7 +1,3 @@
--// We need this feature as it changes `dylib` linking behavior and allows us to link to
--// `rustc_driver`.
--#![feature(rustc_private)]
--
- use std::env;
- use std::io::stdout;
- use std::path::{Path, PathBuf};
-diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
-index 27bbc8bd8f..a6fc4df2eb 100644
---- a/src/bootstrap/src/core/build_steps/compile.rs
-+++ b/src/bootstrap/src/core/build_steps/compile.rs
-@@ -2158,23 +2158,7 @@
-         for f in builder.read_dir(&src_libdir) {
-             let filename = f.file_name().into_string().unwrap();
- 
--            let is_proc_macro = proc_macros.contains(&filename);
--            let is_dylib_or_debug = is_dylib(&f.path()) || is_debug_info(&filename);
--
--            // If we link statically to stdlib, do not copy the libstd dynamic library file
--            // FIXME: Also do this for Windows once incremental post-optimization stage0 tests
--            // work without std.dll (see https://github.com/rust-lang/rust/pull/131188).
--            let can_be_rustc_dynamic_dep = if builder
--                .link_std_into_rustc_driver(target_compiler.host)
--                && !target_compiler.host.is_windows()
--            {
--                let is_std = filename.starts_with("std-") || filename.starts_with("libstd-");
--                !is_std
--            } else {
--                true
--            };
--
--            if is_dylib_or_debug && can_be_rustc_dynamic_dep && !is_proc_macro {
-+            if (is_dylib(Path::new(&filename)) || is_debug_info(&filename)) && !proc_macros.contains(&filename) {
-                 builder.copy_link(&f.path(), &rustc_libdir.join(&filename), FileType::Regular);
-             }
-         }
diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch
index e96598f..9cbfc62 100644
--- a/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -6,6 +6,7 @@ Upstream-Status: Inappropriate [OE testing specific]
 Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
 # added executable-no-mangle-strip.rs ignore
 Signed-off-by: Peter Tatrai <Peter.Tatrai@siemens.com>
+Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
 ---
 diff --git a/compiler/rustc_errors/src/markdown/tests/term.rs b/compiler/rustc_errors/src/markdown/tests/term.rs
 --- a/compiler/rustc_errors/src/markdown/tests/term.rs
@@ -266,3 +267,15 @@ index af44dfe..e6674e5 100644
  //@ ignore-wasm different `main` convention
  
  #![feature(lang_items)]
+diff --git a/compiler/rustc/src/main.rs b/compiler/rustc/src/main.rs
+index 89c61cd..144ea0e 100644
+--- a/compiler/rustc/src/main.rs
++++ b/compiler/rustc/src/main.rs
+@@ -38,6 +38,7 @@
+ #[cfg(feature = "jemalloc")]
+ use tikv_jemalloc_sys as _;
+
++#[cfg(not(test))]
+ fn main() {
+     rustc_driver::main()
+ }
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index e0a6190..a5423d0 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -6,7 +6,6 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
             file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
-            file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
 "
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 08/35] rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (6 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 07/35] rust: Drop revert-link-std-statically-in-rustc_driver-feature.patch Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 09/35] rust: install Rust library sources for 'make rustavailable' support Scott Murray
                   ` (26 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

This patch was originally introduced to address a rare failure on the PPC
target and with the latest version of rustc this issue no longer occurs.
So, this patch can be removed.

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 3b5c2d8bdbcaa6f01af43bb04fe93790b04100a2)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...crease-timeout-in-process-sigpipe-ru.patch | 31 -------------------
 recipes-devtools/rust/rust-source.inc         |  1 -
 2 files changed, 32 deletions(-)
 delete mode 100644 recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch

diff --git a/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch b/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
deleted file mode 100644
index 5bd1abf..0000000
--- a/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b4524278985f517b0785b6f64a21380dcf1ff096 Mon Sep 17 00:00:00 2001
-From: Peter Tatrai <peter.tatrai.ext@siemens.com>
-Date: Mon, 4 Nov 2024 13:58:16 +0100
-Subject: [PATCH] oeqa/selftest: Increase timeout in process-sigpipe rust test
-
-This patch increases the timeout for the process-sigpipe rust test, which
-occasionally fails when the server is under heavy load. Increasing the timeout
-reduces the likelihood of false negatives under load.
-
-Fixes [YOCTO #15625]
-
-Upstream-Status: Inappropriate [OE testing specific]
-
-Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
----
- tests/ui/process/process-sigpipe.rs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs
-index 11f363d62..c12d66016 100644
---- a/tests/ui/process/process-sigpipe.rs
-+++ b/tests/ui/process/process-sigpipe.rs
-@@ -23,7 +23,7 @@ use std::thread;
- fn main() {
-     // Just in case `yes` or `while-echo` doesn't check for EPIPE...
-     thread::spawn(|| {
--        thread::sleep_ms(5000);
-+        thread::sleep_ms(50000);
-         process::exit(1);
-     });
-     // QNX Neutrino does not have `yes`. Therefore, use `while-echo` for `nto`
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index a5423d0..8887824 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -4,7 +4,6 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch;patchdir=${RUSTSRC} \
             file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
             file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
-            file://oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch;patchdir=${RUSTSRC} \
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 09/35] rust: install Rust library sources for 'make rustavailable' support
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (7 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 08/35] rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 10/35] librsvg: move symlink file for ptest in package librsvg-ptest Scott Murray
                   ` (25 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Harish Sadineni <Harish.Sadineni@windriver.com>

The `make rustavailable` process (1) expects the Rust standard library source files (e.g., `lib.rs`)
to be present in the `library/` directory under `rustlib/src/rust/`.

This patch ensures the required sources are available by:
- Installing the `library/` directory (of size ~50MB) into `${D}${libdir}/rustlib/src/rust` for
  making them available during `make rustavailable` for native, target & sdk.
- packaging `${libdir}/rustlib/src/rust` sepearately with `${PN}-src-lib`.

1) See the kernel tree for Documentation/rust/quick-start.rst in the section: Requirements: Building

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/rust/quick-start.rst#n145

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 2912ca3b341a5c5f6a658cde332ccd87368bd39d)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/rust/rust_1.94.0.bb | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/recipes-devtools/rust/rust_1.94.0.bb b/recipes-devtools/rust/rust_1.94.0.bb
index 8cfc2bd..2b907c7 100644
--- a/recipes-devtools/rust/rust_1.94.0.bb
+++ b/recipes-devtools/rust/rust_1.94.0.bb
@@ -237,10 +237,11 @@ do_test_compile () {
 
 ALLOW_EMPTY:${PN} = "1"
 
-PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt"
+PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt ${PN}-src-lib"
 FILES:${PN}-rustdoc = "${bindir}/rustdoc"
 FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
 FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
+FILES:${PN}-src-lib = "${libdir}/rustlib/src/rust"
 
 RDEPENDS:${PN}-rustdoc = "${PN}"
 RDEPENDS:${PN}-tools-clippy = "${PN}"
@@ -257,6 +258,12 @@ rust_do_install() {
     rust_runx install
 }
 
+rust_do_install:append:class-native() {
+    install -d ${D}${libdir}/rustlib/src/rust
+    cp -r ${S}/library ${D}${libdir}/rustlib/src/rust
+    find ${D}${libdir}/rustlib/src/rust/ -name "*.sh" -type f -delete
+}
+
 rust_do_install:class-nativesdk() {
     export PSEUDO_UNLOAD=1
     rust_runx install
@@ -287,6 +294,11 @@ rust_do_install:class-nativesdk() {
 	export CARGO_TARGET_${RUST_HOST_TRIPLE}_RUNNER="\$OECORE_NATIVE_SYSROOT/lib/${SDKLOADER}"
 	export CC_$RUST_HOST_CC="${CCACHE}${HOST_PREFIX}gcc"
 	EOF
+
+    install -d ${D}${libdir}/rustlib/src/rust
+    cp -r ${S}/library ${D}${libdir}/rustlib/src/rust
+    find ${D}${libdir}/rustlib/src/rust/ -name "*.sh" -type f -delete
+
 }
 
 FILES:${PN} += "${base_prefix}/environment-setup.d"
@@ -307,6 +319,11 @@ rust_do_install:class-target() {
 
     install -d ${D}${libdir}/rustlib/${RUST_HOST_SYS}
     install -m 0644 ${WORKDIR}/rust-targets/${RUST_HOST_SYS}.json ${D}${libdir}/rustlib/${RUST_HOST_SYS}/target.json
+    install -d ${D}${libdir}/rustlib/src/rust
+    cp -r ${S}/library ${D}${libdir}/rustlib/src/rust
+    find ${D}${libdir}/rustlib/src/rust -name "*.sh" -type f -delete
+    install -m 0644 ${WORKDIR}/rust-targets/${RUST_HOST_SYS}.json ${D}${libdir}/rustlib/${RUST_HOST_SYS}/${RUST_HOST_SYS}.json
+
 
     chown root:root ${D}/ -R
     rm ${D}${libdir}/rustlib/uninstall.sh
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 10/35] librsvg: move symlink file for ptest in package librsvg-ptest
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (8 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 09/35] rust: install Rust library sources for 'make rustavailable' support Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 11/35] rust: Fix flaky assertions in oneshot tests Scott Murray
                   ` (24 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Changqing Li <changqing.li@windriver.com>

In order to make ptest can find needed data, a symlink is created:
/usr/lib64/librsvg/rsvg -> ptest

package this symlink file in package librsvd-ptest, this can avoid
there is a dead link when ptest-pkgs is not installed.

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 512a71ea5d41bdca5cbf78fd65f5dcd218076b27)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index a12ffc3..419d5cc 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -103,6 +103,7 @@ FILES:rsvg = "${bindir}/rsvg* \
 	      ${datadir}/themes"
 FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
                      ${datadir}/thumbnailers/librsvg.thumbnailer"
+FILES:${PN}-ptest += "${libdir}/${BPN}/rsvg"
 RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin"
 
 PIXBUF_PACKAGES = "librsvg-gtk"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 11/35] rust: Fix flaky assertions in oneshot tests
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (9 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 10/35] librsvg: move symlink file for ptest in package librsvg-ptest Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 12/35] rust: Fix build with llvm-22 Scott Murray
                   ` (23 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Fixes [YOCTO #16199]

Backport three commits from upstream to fix flaky assertions in oneshot tests

https://github.com/rust-lang/rust/commit/6970849fee93900b6eb28a64cf957157a9fb51b3
https://github.com/rust-lang/rust/commit/dab350a3ed7691201f6752c4375e8e6ab40b58b9
https://github.com/rust-lang/rust/commit/d02743e2fd7433ba2320fc85421a8a5927235b65

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 636ea9269c1d7ebabefb3bed01fd30583758cc8c)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...ix-flaky-assertions-in-oneshot-tests.patch | 72 +++++++++++++++++++
 recipes-devtools/rust/rust-source.inc         |  1 +
 2 files changed, 73 insertions(+)
 create mode 100644 recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch

diff --git a/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch b/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch
new file mode 100644
index 0000000..be0e85d
--- /dev/null
+++ b/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch
@@ -0,0 +1,72 @@
+Backport three commits from upstream to fix flaky assertions in oneshot tests
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/6970849fee93900b6eb28a64cf957157a9fb51b3]
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/dab350a3ed7691201f6752c4375e8e6ab40b58b9]
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/d02743e2fd7433ba2320fc85421a8a5927235b65]
+
+Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+
+diff --git a/library/std/tests/sync/oneshot.rs b/library/std/tests/sync/oneshot.rs
+index 6a87c72..d8f3cd7 100644
+--- a/library/std/tests/sync/oneshot.rs
++++ b/library/std/tests/sync/oneshot.rs
+@@ -89,15 +89,15 @@ fn send_before_recv_timeout() {
+ 
+     assert!(sender.send(22i128).is_ok());
+ 
+-    let start = Instant::now();
+-
+     let timeout = Duration::from_secs(1);
+     match receiver.recv_timeout(timeout) {
+         Ok(22) => {}
+         _ => panic!("expected Ok(22)"),
+     }
+ 
+-    assert!(start.elapsed() < timeout);
++    // FIXME(#152648): There previously was a timing assertion here.
++    // This was removed, because under load there's no guarantee that the main thread is
++    // scheduled and run before `timeout` expires
+ }
+ 
+ #[test]
+@@ -127,6 +127,7 @@ fn recv_before_send() {
+ }
+ 
+ #[test]
++#[ignore = "Inherently flaky and has caused several CI failures"]
+ fn recv_timeout_before_send() {
+     let (sender, receiver) = oneshot::channel();
+ 
+@@ -135,6 +136,8 @@ fn recv_timeout_before_send() {
+         sender.send(99u128).unwrap();
+     });
+ 
++    // FIXME(#152145): Under load, there's no guarantee that thread `t` has
++    // ever been scheduled and run before this timeout expires.
+     match receiver.recv_timeout(Duration::from_secs(1)) {
+         Ok(99) => {}
+         _ => panic!("expected Ok(99)"),
+@@ -240,7 +243,9 @@ fn recv_deadline_passed() {
+     }
+ 
+     assert!(start.elapsed() >= timeout);
+-    assert!(start.elapsed() < timeout * 3);
++    // FIXME(#152878): An upper-bound assertion on the elapsed time was removed,
++    // because CI runners can starve individual threads for a surprisingly long
++    // time, leading to flaky failures.
+ }
+ 
+ #[test]
+@@ -253,8 +258,11 @@ fn recv_time_passed() {
+         Err(RecvTimeoutError::Timeout(_)) => {}
+         _ => panic!("expected timeout error"),
+     }
++
+     assert!(start.elapsed() >= timeout);
+-    assert!(start.elapsed() < timeout * 3);
++    // FIXME(#152878): An upper-bound assertion on the elapsed time was removed,
++    // because CI runners can starve individual threads for a surprisingly long
++    // time, leading to flaky failures.
+ }
+ 
+ #[test]
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 8887824..b9077c3 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -7,6 +7,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
+            file://0001-Fix-flaky-assertions-in-oneshot-tests.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "0b53ae34f5c0c3612cfe1de139f9167a018cd5737bc2205664fd69ba9b25f600"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 12/35] rust: Fix build with llvm-22
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (10 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 11/35] rust: Fix flaky assertions in oneshot tests Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 13/35] rust: Fix loongarch unit test " Scott Murray
                   ` (22 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Khem Raj <khem.raj@oss.qualcomm.com>

Backport patch to update data layout for amdgpu

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
(adapted from oe-core commit 2f92d8c9d7cb23d990e0fc286451600823cf21b4)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 .../0001-Update-amdgpu-data-layout.patch      | 44 +++++++++++++++++++
 recipes-devtools/rust/rust-source.inc         |  1 +
 2 files changed, 45 insertions(+)
 create mode 100644 recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch

diff --git a/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch b/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch
new file mode 100644
index 0000000..1c09cd8
--- /dev/null
+++ b/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch
@@ -0,0 +1,44 @@
+From bf3ac98d6930ba4e258cf33240c2fe7c99d19eae Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npopov@redhat.com>
+Date: Tue, 6 Jan 2026 11:51:33 +0100
+Subject: [PATCH] Update amdgpu data layout
+
+This changed in:
+https://github.com/llvm/llvm-project/commit/853760bca6aa7a960b154cef8c61f87271870b8a
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/bf3ac98d6930ba4e258cf33240c2fe7c99d19eae]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ compiler/rustc_codegen_llvm/src/context.rs                  | 5 +++++
+ compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
+index 4b2544b7efd..4328b15c73f 100644
+--- a/compiler/rustc_codegen_llvm/src/context.rs
++++ b/compiler/rustc_codegen_llvm/src/context.rs
+@@ -215,6 +215,11 @@ pub(crate) unsafe fn create_module<'ll>(
+             // LLVM 22 updated the ABI alignment for double on AIX: https://github.com/llvm/llvm-project/pull/144673
+             target_data_layout = target_data_layout.replace("-f64:32:64", "");
+         }
++        if sess.target.arch == Arch::AmdGpu {
++            // LLVM 22 specified ELF mangling in the amdgpu data layout:
++            // https://github.com/llvm/llvm-project/pull/163011
++            target_data_layout = target_data_layout.replace("-m:e", "");
++        }
+     }
+
+     // Ensure the data-layout values hardcoded remain the defaults.
+diff --git a/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs b/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
+index 828d853ac65..d6a2cfc2aab 100644
+--- a/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
++++ b/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
+@@ -5,7 +5,7 @@
+ pub(crate) fn target() -> Target {
+     Target {
+         arch: Arch::AmdGpu,
+-        data_layout: "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9".into(),
++        data_layout: "e-m:e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9".into(),
+         llvm_target: "amdgcn-amd-amdhsa".into(),
+         metadata: TargetMetadata {
+             description: Some("AMD GPU".into()),
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index b9077c3..c3e2ca7 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -8,6 +8,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
             file://0001-Fix-flaky-assertions-in-oneshot-tests.patch;patchdir=${RUSTSRC} \
+            file://0001-Update-amdgpu-data-layout.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "0b53ae34f5c0c3612cfe1de139f9167a018cd5737bc2205664fd69ba9b25f600"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 13/35] rust: Fix loongarch unit test with llvm-22
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (11 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 12/35] rust: Fix build with llvm-22 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 14/35] rust: Upgrade 1.94.0 -> 1.94.1 Scott Murray
                   ` (21 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Khem Raj <khem.raj@oss.qualcomm.com>

Adjust loongarch assembly test
This generates different code on loongarch32r now.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
(adapted from oe-core commit ae70829cd01e48e50a88ef1857039c3dd162933e)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 .../0001-Adjust-loongarch-assembly-test.patch | 66 +++++++++++++++++++
 recipes-devtools/rust/rust-source.inc         |  1 +
 2 files changed, 67 insertions(+)
 create mode 100644 recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch

diff --git a/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch b/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch
new file mode 100644
index 0000000..67c649e
--- /dev/null
+++ b/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch
@@ -0,0 +1,66 @@
+From e015fc820db5d7fe2495c09b1fdd5e2092ed3cd1 Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npopov@redhat.com>
+Date: Tue, 27 Jan 2026 12:03:48 +0100
+Subject: [PATCH] Adjust loongarch assembly test
+
+This generates different code on loongarch32r now.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/e015fc820db5d7fe2495c09b1fdd5e2092ed3cd1]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/assembly-llvm/asm/loongarch-type.rs | 27 +++++++++++++++++------
+ 1 file changed, 20 insertions(+), 7 deletions(-)
+
+diff --git a/tests/assembly-llvm/asm/loongarch-type.rs b/tests/assembly-llvm/asm/loongarch-type.rs
+index e0a7940f89a..5efad583a39 100644
+--- a/tests/assembly-llvm/asm/loongarch-type.rs
++++ b/tests/assembly-llvm/asm/loongarch-type.rs
+@@ -1,10 +1,14 @@
+ //@ add-minicore
+-//@ revisions: loongarch32 loongarch64
++//@ revisions: loongarch32s loongarch32r loongarch64
+
+ //@ assembly-output: emit-asm
+
+-//@[loongarch32] compile-flags: --target loongarch32-unknown-none
+-//@[loongarch32] needs-llvm-components: loongarch
++//@[loongarch32s] compile-flags: --target loongarch32-unknown-none -Ctarget-feature=+32s
++//@[loongarch32s] needs-llvm-components: loongarch
++
++//@[loongarch32r] compile-flags: --target loongarch32-unknown-none
++//@[loongarch32r] needs-llvm-components: loongarch
++//@[loongarch32r] min-llvm-version: 22
+
+ //@[loongarch64] compile-flags: --target loongarch64-unknown-none
+ //@[loongarch64] needs-llvm-components: loongarch
+@@ -28,8 +32,12 @@
+
+ // CHECK-LABEL: sym_fn:
+ // CHECK: #APP
+-// CHECK: pcalau12i $t0, %got_pc_hi20(extern_func)
+-// CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_func)
++// loongarch64: pcalau12i $t0, %got_pc_hi20(extern_func)
++// loongarch64: ld.d $t0, $t0, %got_pc_lo12(extern_func)
++// loongarch32s: pcalau12i $t0, %got_pc_hi20(extern_func)
++// loongarch32s: ld.w $t0, $t0, %got_pc_lo12(extern_func)
++// loongarch32r: pcaddu12i $t0, %got_pcadd_hi20(extern_func)
++// loongarch32r: ld.w $t0, $t0, %got_pcadd_lo12(.Lpcadd_hi0)
+ // CHECK: #NO_APP
+ #[no_mangle]
+ pub unsafe fn sym_fn() {
+@@ -38,8 +46,13 @@ pub unsafe fn sym_fn() {
+
+ // CHECK-LABEL: sym_static:
+ // CHECK: #APP
+-// CHECK: pcalau12i $t0, %got_pc_hi20(extern_static)
+-// CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_static)
++// loongarch64: pcalau12i $t0, %got_pc_hi20(extern_static)
++// loongarch64: ld.d $t0, $t0, %got_pc_lo12(extern_static)
++// loongarch32s: pcalau12i $t0, %got_pc_hi20(extern_static)
++// loongarch32s: ld.w $t0, $t0, %got_pc_lo12(extern_static)
++// loongarch32r: pcaddu12i $t0, %got_pcadd_hi20(extern_static)
++// loongarch32r: ld.w $t0, $t0, %got_pcadd_lo12(.Lpcadd_hi1)
++
+ // CHECK: #NO_APP
+ #[no_mangle]
+ pub unsafe fn sym_static() {
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index c3e2ca7..843f837 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -9,6 +9,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
             file://0001-Fix-flaky-assertions-in-oneshot-tests.patch;patchdir=${RUSTSRC} \
             file://0001-Update-amdgpu-data-layout.patch;patchdir=${RUSTSRC} \
+            file://0001-Adjust-loongarch-assembly-test.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "0b53ae34f5c0c3612cfe1de139f9167a018cd5737bc2205664fd69ba9b25f600"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 14/35] rust: Upgrade 1.94.0 -> 1.94.1
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (12 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 13/35] rust: Fix loongarch unit test " Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 15/35] cargo: set status of CVE-2023-40030 Scott Murray
                   ` (20 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

https://blog.rust-lang.org/2026/03/26/1.94.1-release/

Rust Changes:
https://github.com/rust-lang/rust/releases/tag/1.94.1

Cargo Changes:
https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-1941-2026-03-26
Fixes: CVE-2026-33055 and CVE-2026-33056

Test results:
No changes

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 3a1cf16b6ff85ee814a7241cd87bba5c4b9ab5b3)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 conf/layer.conf                                                 | 2 +-
 recipes-devtools/rust/{cargo_1.94.0.bb => cargo_1.94.1.bb}      | 0
 .../rust/{libstd-rs_1.94.0.bb => libstd-rs_1.94.1.bb}           | 0
 ...t-cross-canadian_1.94.0.bb => rust-cross-canadian_1.94.1.bb} | 0
 .../rust/{rust-llvm_1.94.0.bb => rust-llvm_1.94.1.bb}           | 0
 recipes-devtools/rust/rust-source.inc                           | 2 +-
 recipes-devtools/rust/{rust_1.94.0.bb => rust_1.94.1.bb}        | 0
 7 files changed, 2 insertions(+), 2 deletions(-)
 rename recipes-devtools/rust/{cargo_1.94.0.bb => cargo_1.94.1.bb} (100%)
 rename recipes-devtools/rust/{libstd-rs_1.94.0.bb => libstd-rs_1.94.1.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.94.0.bb => rust-cross-canadian_1.94.1.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.94.0.bb => rust-llvm_1.94.1.bb} (100%)
 rename recipes-devtools/rust/{rust_1.94.0.bb => rust_1.94.1.bb} (100%)

diff --git a/conf/layer.conf b/conf/layer.conf
index 2e59aff..b084f3a 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.94.0%"
+RUSTVERSION ?= "1.94.1%"
diff --git a/recipes-devtools/rust/cargo_1.94.0.bb b/recipes-devtools/rust/cargo_1.94.1.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.94.0.bb
rename to recipes-devtools/rust/cargo_1.94.1.bb
diff --git a/recipes-devtools/rust/libstd-rs_1.94.0.bb b/recipes-devtools/rust/libstd-rs_1.94.1.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.94.0.bb
rename to recipes-devtools/rust/libstd-rs_1.94.1.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.94.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.94.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.94.0.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.94.1.bb
diff --git a/recipes-devtools/rust/rust-llvm_1.94.0.bb b/recipes-devtools/rust/rust-llvm_1.94.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.94.0.bb
rename to recipes-devtools/rust/rust-llvm_1.94.1.bb
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 843f837..19acf5f 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -11,7 +11,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-Update-amdgpu-data-layout.patch;patchdir=${RUSTSRC} \
             file://0001-Adjust-loongarch-assembly-test.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "0b53ae34f5c0c3612cfe1de139f9167a018cd5737bc2205664fd69ba9b25f600"
+SRC_URI[rust.sha256sum] = "174fce10ce012317ca995810296d8af199318838180b03d68a853e0f02d4b571"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust_1.94.0.bb b/recipes-devtools/rust/rust_1.94.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.94.0.bb
rename to recipes-devtools/rust/rust_1.94.1.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 15/35] cargo: set status of CVE-2023-40030
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (13 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 14/35] rust: Upgrade 1.94.0 -> 1.94.1 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 16/35] cargo: set CVE_PRODUCT Scott Murray
                   ` (19 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Peter Marko <peter.marko@siemens.com>

sbom-cve-check has problem matching version 1.72.
It works only if cvelistV5 is modified to indicate 1.72.0.

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit ac18fd10e777b4ef688b7075c47c616e9405d752)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/rust/cargo_1.94.1.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/recipes-devtools/rust/cargo_1.94.1.bb b/recipes-devtools/rust/cargo_1.94.1.bb
index a6d3f17..1c60700 100644
--- a/recipes-devtools/rust/cargo_1.94.1.bb
+++ b/recipes-devtools/rust/cargo_1.94.1.bb
@@ -84,3 +84,5 @@ RUSTLIB:append:class-nativesdk = " -L ${STAGING_DIR_HOST}/${SDKPATHNATIVE}/usr/l
 RUSTLIB_DEP:class-nativesdk = ""
 
 BBCLASSEXTEND = "native nativesdk"
+
+CVE_STATUS[CVE-2023-40030] = "fixed-version: fixed since 1.72"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 16/35] cargo: set CVE_PRODUCT
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (14 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 15/35] cargo: set status of CVE-2023-40030 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 17/35] rust: fix codegen test failure on big-endian targets Scott Murray
                   ` (18 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Peter Marko <peter.marko@siemens.com>

This removes mediawiki:cargo CVEs from CVE metrics.
* CVE-2026-39837, CVE-2026-39839, CVE-2026-39840, CVE-2026-39841

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit a5cb71e7df95925a5c342c341e699e244b1b84f6)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/rust/cargo_1.94.1.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/recipes-devtools/rust/cargo_1.94.1.bb b/recipes-devtools/rust/cargo_1.94.1.bb
index 1c60700..64944ff 100644
--- a/recipes-devtools/rust/cargo_1.94.1.bb
+++ b/recipes-devtools/rust/cargo_1.94.1.bb
@@ -17,6 +17,8 @@ require rust-snapshot.inc
 S = "${RUSTSRC}/src/tools/cargo"
 CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
 
+CVE_PRODUCT = "rust-lang:cargo"
+
 inherit cargo pkgconfig
 
 DEBUG_PREFIX_MAP += "-fdebug-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 17/35] rust: fix codegen test failure on big-endian targets
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (15 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 16/35] cargo: set CVE_PRODUCT Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 18/35] librsvg: remove obsolete .la deletion Scott Murray
                   ` (17 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Peter Tatrai <peter.tatrai.ext@siemens.com>

The test tests/codegen-llvm/issues/multiple-option-or-permutations.rs
uses FileCheck to verify LLVM IR for Option::or operations on slices.
The CHECK-NEXT directives assumed a little-endian memory layout where
the Option discriminant is the low byte, emitting a simple:

  trunc i16 %0 to i1

On big-endian targets (e.g. powerpc), the discriminant resides in the
high byte, so LLVM first emits an lshr before the trunc, causing the
test to fail.

Backport upstream fix from rust-lang/rust#151780 which introduces
BIG/LITTLE revisions with the only-endian-big / ignore-endian-big
directives (also backported via directive_names.rs change) to handle
both layouts correctly.

Fixes: rust-lang/rust#151718
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/151780]

Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
(adapted from oe-core commit 1efb76b9698d025e9d8b3de2039e6a422b5f4bee)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...ion-or-permutations-test-for-big-end.patch | 121 ++++++++++++++++++
 recipes-devtools/rust/rust-source.inc         |   1 +
 2 files changed, 122 insertions(+)
 create mode 100644 recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch

diff --git a/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch b/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch
new file mode 100644
index 0000000..a36089c
--- /dev/null
+++ b/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch
@@ -0,0 +1,121 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ryan Ward <rwardd@users.noreply.github.com>
+Date: Tue, 28 Jan 2026 12:21:35 +0000
+Subject: [PATCH] Fix multiple-option-or-permutations test for big-endian
+ targets
+
+The FileCheck tests for Option::or on slices assumed little-endian
+layout. On big-endian targets (e.g. powerpc), the Option discriminant
+resides in the high byte, so LLVM emits an lshr before the trunc.
+
+Add only-endian-big directive support and use BIG/LITTLE revisions to
+cover both cases.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/151780]
+Signed-off-by: Ryan Ward <rwardd@users.noreply.github.com>
+Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
+---
+ .../compiletest/src/directives/directive_names.rs     |  1 +
+ .../issues/multiple-option-or-permutations.rs         | 47 ++++++++++++++++--
+ 2 files changed, 44 insertions(+), 4 deletions(-)
+
+diff --git a/src/tools/compiletest/src/directives/directive_names.rs b/src/tools/compiletest/src/directives/directive_names.rs
+index 9813ac7ff500d..334b2dda343a5 100644
+--- a/src/tools/compiletest/src/directives/directive_names.rs
++++ b/src/tools/compiletest/src/directives/directive_names.rs
+@@ -218,6 +218,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
+     "only-eabihf",
+     "only-elf",
+     "only-emscripten",
++    "only-endian-big",
+     "only-gnu",
+     "only-i686-pc-windows-gnu",
+     "only-i686-pc-windows-msvc",
+diff --git a/tests/codegen-llvm/issues/multiple-option-or-permutations.rs b/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
+index 9ec4ec8eeb159..8756d45eaa03e 100644
+--- a/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
++++ b/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
+@@ -1,4 +1,7 @@
+ // Tests output of multiple permutations of `Option::or`
++//@ revisions: LITTLE BIG
++//@ [BIG] only-endian-big
++//@ [LITTLE] ignore-endian-big
+ //@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
+ 
+ #![crate_type = "lib"]
+@@ -70,8 +73,16 @@ pub fn if_some_u8(opta: Option<u8>, optb: Option<u8>) -> Option<u8> {
+ #[no_mangle]
+ pub fn or_match_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+     // CHECK: start:
+-    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
+-    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
++    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
++    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
++    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
++    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
++    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
++    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
++    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
+     // CHECK: ret i16 [[R]]
+     match opta {
+         Some(x) => Some(x),
+@@ -84,8 +95,16 @@ pub fn or_match_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+ #[no_mangle]
+ pub fn or_match_slice_alt_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+     // CHECK: start:
+-    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
+-    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
++    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
++    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
++    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
++    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
++    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
++    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
++    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
+     // CHECK: ret i16 [[R]]
+     match opta {
+         Some(_) => opta,
+@@ -98,8 +117,16 @@ pub fn or_match_slice_alt_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+ #[no_mangle]
+ pub fn option_or_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+     // CHECK: start:
+-    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
+-    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
++    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
++    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
++    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
++    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
++    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
++    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
++    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
+     // CHECK: ret i16 [[R]]
+     opta.or(optb)
+ }
+@@ -109,8 +136,16 @@ pub fn option_or_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+ #[no_mangle]
+ pub fn if_some_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
+     // CHECK: start:
+-    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
+-    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
++    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
++    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
++    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
++    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
++    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
++    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
++    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
++    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
+     // CHECK: ret i16 [[R]]
+     if opta.is_some() { opta } else { optb }
+ }
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 19acf5f..49dd20a 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -10,6 +10,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-Fix-flaky-assertions-in-oneshot-tests.patch;patchdir=${RUSTSRC} \
             file://0001-Update-amdgpu-data-layout.patch;patchdir=${RUSTSRC} \
             file://0001-Adjust-loongarch-assembly-test.patch;patchdir=${RUSTSRC} \
+            file://0001-Fix-multiple-option-or-permutations-test-for-big-end.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "174fce10ce012317ca995810296d8af199318838180b03d68a853e0f02d4b571"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 18/35] librsvg: remove obsolete .la deletion
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (16 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 17/35] rust: fix codegen test failure on big-endian targets Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 19/35] librsvg: consolidate DEPENDS Scott Murray
                   ` (16 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

librsvg is built with Meson now, so there's no need to delete .a or .la
files that don't exist.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 25b1f198ea69c7f1c08cd0638f322edf4121c199)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index 419d5cc..06f08ba 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -68,11 +68,6 @@ PACKAGECONFIG[gdkpixbuf] = "-Dpixbuf-loader=enabled,-Dpixbuf-loader=disabled,gdk
 PACKAGECONFIG[vala] = "-Dvala=enabled,-Dvala=disabled"
 PACKAGECONFIG[apitest] = "-Dtests=true,-Dtests=false"
 
-do_install:append() {
-	# Loadable modules don't need .a or .la on Linux
-	rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
-}
-
 do_compile_ptest_cargo:prepend() {
     # The packageconfig is for meson, but the rust tests are compiled directly with cargo,
     # so these arguments don't apply. Note that this is Python, the intendation is intentional.
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 19/35] librsvg: consolidate DEPENDS
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (17 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 18/35] librsvg: remove obsolete .la deletion Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 20/35] librsvg: consolidate PACKAGECONFIG Scott Murray
                   ` (15 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

There's no reason to append cargo-native to BASEDEPENDS when it can just
be added to DEPENDS.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 2038ae72a902539d88bd9f1e013cd201da2c3c78)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index 06f08ba..1dbfab3 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
 
 SECTION = "x11/utils"
-DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native cargo-c-native"
+DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native cargo-native cargo-c-native"
 RDEPENDS:${PN}-ptest += "rsvg liberation-fonts"
 BBCLASSEXTEND = "native nativesdk"
 
@@ -31,11 +31,6 @@ SRC_URI[archive.sha256sum] = "a56d2c80d744ad2f2718f85df466fe71d24ff1f9bc3e5ef588
 
 UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
-# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
-# so we cannot use cargo class directly, but still need bits and pieces from it 
-# for cargo to be happy
-BASEDEPENDS:append = " cargo-native"
-
 export EXTRA_NATIVE_PKGCONFIG_PATH = "${B}/meson-uninstalled:"
 export RUST_BACKTRACE = "full"
 export RUSTFLAGS
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 20/35] librsvg: consolidate PACKAGECONFIG
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (18 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 19/35] librsvg: consolidate DEPENDS Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 21/35] librsvg: rewrite cross gdk-pixbuf-query-loaders handling Scott Murray
                   ` (14 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

Explictly appending PACKAGECONFIG makes it harder to directly control
PACKAGECONFIG, merge the assignments to keep it simple.

This does not change the behaviour of native builds as G-I is disabled
in native.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 8c240544896f32bf55499cfcd2e4471c505ed669)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index 1dbfab3..e9a14c6 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -56,8 +56,9 @@ LDFLAGS += " -L${B}/rsvg"
 # needed on ubuntu 20.04/debian 11 to avoid 'undefined reference to `dlsym'' errors
 BUILD_LDFLAGS += " -ldl"
 
-PACKAGECONFIG ??= "gdkpixbuf ${@bb.utils.contains('PTEST_ENABLED', '1', 'apitest', '', d)}"
-PACKAGECONFIG:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}"
+PACKAGECONFIG ??= "gdkpixbuf \
+                   ${@bb.utils.contains('PTEST_ENABLED', '1', 'apitest', '', d)} \
+                   ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}"
 # The gdk-pixbuf loader
 PACKAGECONFIG[gdkpixbuf] = "-Dpixbuf-loader=enabled,-Dpixbuf-loader=disabled,gdk-pixbuf-native"
 PACKAGECONFIG[vala] = "-Dvala=enabled,-Dvala=disabled"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 21/35] librsvg: rewrite cross gdk-pixbuf-query-loaders handling
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (19 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 20/35] librsvg: consolidate PACKAGECONFIG Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 22/35] rust: Upgrade 1.94.1 -> 1.95.0 Scott Murray
                   ` (13 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

There's been a number of attempts at fixing the logic as to when to run
gdk-pixbuf-query-loaders in cross builds. Originally the build failed in
cross so we worked around that, then upstream changed it so that if exe
wrappers are enabled it will run those but our target sysroot doesn't
have binaries so that also fails.

This rework should be upstreamable once it's been shaken out in OE for a
while, and improves the logic so that in cross builds the existance of
gdk-pixbuf-query-loaders is an optional dependency, which is ideal for
our needs as we won't be running it at install-time anyway.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit dbbeae4fc55605d90c8ae9530fe818c124c18908)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...ld-do-not-force-disable-gdk-pixbuf-l.patch |  49 -------
 .../librsvg/librsvg/cross-query-loaders.patch | 128 ++++++++++++++++++
 recipes-gnome/librsvg/librsvg_2.61.3.bb       |   2 +-
 3 files changed, 129 insertions(+), 50 deletions(-)
 delete mode 100644 recipes-gnome/librsvg/librsvg/0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch
 create mode 100644 recipes-gnome/librsvg/librsvg/cross-query-loaders.patch

diff --git a/recipes-gnome/librsvg/librsvg/0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch b/recipes-gnome/librsvg/librsvg/0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch
deleted file mode 100644
index b62f641..0000000
--- a/recipes-gnome/librsvg/librsvg/0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 33ece256bf7c156a34ab1ee3709718e38829cc9e Mon Sep 17 00:00:00 2001
-From: Gyorgy Sarvari <skandigraun@gmail.com>
-Date: Wed, 6 Aug 2025 13:50:21 +0200
-Subject: [PATCH] Revert "meson.build: do not force-disable gdk-pixbuf-loader
- in cross builds"
-
-This reverts commit 994582cfa995d00f9472dc22f8237b6571b4c510.
-
-The commit that enabled gdk-pixbuf-loader for non-cross builds, references
-a commit that enabled other binaries, claiming that they can be executed with
-a qemu wrapper.
-
-There is one difference - the projects that were enabled by that commit support such
-wrappers officially (see `gi_cross_binary_wrapper` and related build options for g-i).
-However such support is missing from gdk-pixbuf-loader unfortunately, which can cause
-build failures when cross compiling.
-
-To avoid this, revert back to disable gdk-pixbuf-loader for cross-builds
-(until it gains a similar feature).
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/1123]
-
-Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
----
- gdk-pixbuf-loader/meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build
-index 6fa10a6..c51d803 100644
---- a/gdk-pixbuf-loader/meson.build
-+++ b/gdk-pixbuf-loader/meson.build
-@@ -36,7 +36,7 @@ pixbuf_thumbnailer = configure_file(
-   install_dir: get_option('datadir') / 'thumbnailers'
- )
- 
--if meson.can_run_host_binaries()
-+if not meson.is_cross_build()
-   gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'))
- endif
- 
-@@ -48,7 +48,7 @@ pixbufloader_svg_install_args = [
- ]
- 
- # Tell people to run gdk-pixbuf-query-loaders manually for cross builds
--if not meson.can_run_host_binaries()
-+if meson.is_cross_build()
-   pixbufloader_svg_install_args += '--show-cross-message'
- endif
- 
diff --git a/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch b/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
new file mode 100644
index 0000000..ab0ca2b
--- /dev/null
+++ b/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
@@ -0,0 +1,128 @@
+gdk-pixbuf-loader/meson_install: improve argument parsing and logic
+
+Make the arguments more explicit by changing the path arguments to be
+specified with options, such as --queryloaders <path>. Previously one of
+the paths had an option, but the others were order-based.
+
+Check that either all of the paths have been set or --show-cross-message
+has been passed. If this is not the case, print the usage and exit.
+
+Clean up Path usage, as the options are using pathlib.Path types in the
+parser another Path instance does not need to be created.
+
+None of this changes the underlying logic, just makes it more consistent
+and explicit.
+
+
+gdk-pixbuf-loader: fix install logic in cross builds
+
+The logic in this install rule was getting complicated, but it should be
+quite simple really:
+
+- In native builds we can run host binaries.  Look for the
+  gdk-pixbuf-query-loaders tool and run it when installing.
+- In cross builds we might be able to run host binaries, if an executable
+  wrapper has been set _and_ if the target sysroot contains executables.
+
+The presence of target executables isn't a given, as some systems (such
+as OpenEmbedded) strip the target sysroot down to headers are libraries.
+
+So the logic should be:
+
+- In native builds, look for query-loaders and fail if not found.
+- In cross builds where you can run host binaries, look for query-loaders
+  but allow it to be missing.
+- In cross builds where you cannot run host binaries, there's no use in
+  looking for query-loaders.
+
+Then either pass the paths or --show-cross-message to meson_install.py,
+depending on whether query-loaders was found or not.
+
+This fixes the case where Meson can run host executables, but the target
+sysroot does not actually contain gdk-pixbuf-query-loaders.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git i/gdk-pixbuf-loader/meson.build w/gdk-pixbuf-loader/meson.build
+index 6fa10a68b..4f88ba037 100644
+--- i/gdk-pixbuf-loader/meson.build
++++ w/gdk-pixbuf-loader/meson.build
+@@ -37,19 +37,21 @@ pixbuf_thumbnailer = configure_file(
+ )
+ 
+ if meson.can_run_host_binaries()
+-  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'))
++  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'), required: not meson.is_cross_build())
+ endif
+ 
+-pixbufloader_svg_install_args = [
+-  '--gdk-pixbuf-moduledir',
+-  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
+-  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', pkgconfig_define: ['prefix', prefix]),
+-  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
+-]
+-
+-# Tell people to run gdk-pixbuf-query-loaders manually for cross builds
+-if not meson.can_run_host_binaries()
+-  pixbufloader_svg_install_args += '--show-cross-message'
++if meson.can_run_host_binaries() and gdk_pixbuf_query_loaders.found()
++  pixbufloader_svg_install_args = [
++    '--moduledir',
++    pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
++    '--queryloaders',
++    gdk_pixbuf_query_loaders.full_path(),
++    '--cache-file',
++    pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
++  ]
++else
++  # Tell people to run gdk-pixbuf-query-loaders manually for cross builds
++  pixbufloader_svg_install_args = ['--show-cross-message']
+ endif
+ 
+ meson.add_install_script(
+diff --git i/gdk-pixbuf-loader/meson_install.py w/gdk-pixbuf-loader/meson_install.py
+index ff003350f..d9bbbe433 100644
+--- i/gdk-pixbuf-loader/meson_install.py
++++ w/gdk-pixbuf-loader/meson_install.py
+@@ -6,29 +6,28 @@ import os
+ import subprocess
+ import sys
+ 
+-argparse = ArgumentParser('Deploy loaders.cache')
+-
+-argparse.add_argument('--gdk-pixbuf-moduledir', type=Path)
+-argparse.add_argument('gdk_pixbuf_queryloaders', type=Path)
+-argparse.add_argument('gdk_pixbuf_cache_file', type=Path)
+-argparse.add_argument('--show-cross-message', action='store_true')
+-
+ if __name__ == '__main__':
++    argparse = ArgumentParser(description='Deploy loaders.cache. Pass required paths, or --show-cross-message.')
++    argparse.add_argument('--queryloaders', type=Path, metavar="PATH", help="gdk-pixbuf-queryloaders to run")
++    argparse.add_argument('--moduledir', type=Path, metavar="PATH", help="installed gdk-pixbuf module directory")
++    argparse.add_argument('--cache-file', type=Path, metavar="PATH", help="module cache file to write")
++    argparse.add_argument('--show-cross-message', action='store_true', help="tell the user to run query-loaders manually")
+     args = argparse.parse_args()
+ 
+-    cache_file: Path = args.gdk_pixbuf_cache_file
++    if not(args.show_cross_message or (args.queryloaders and args.moduledir and args.cache_file)):
++        argparse.print_help()
++        sys.exit(1)
+ 
+     if args.show_cross_message or os.environ.get("DESTDIR"):
+         print('*** Note: Please run gdk-pixbuf-queryloaders manually ' +
+               'against the newly-built gdkpixbuf-svg loader', file=sys.stderr)
+     else:
+         env = os.environ.copy()
+-        env['GDK_PIXBUF_MODULEDIR'] = Path(args.gdk_pixbuf_moduledir).as_posix()
+-        with cache_file.open('w', encoding='utf-8') as f:
++        env['GDK_PIXBUF_MODULEDIR'] = args.moduledir.as_posix()
++        with args.cache_file.open('w', encoding='utf-8') as f:
+             subprocess.run(
+-                [Path(args.gdk_pixbuf_queryloaders).as_posix()],
++                [args.queryloaders.as_posix()],
+                 env=env,
+                 stdout=f,
+                 check=True
+             )
+-
diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index e9a14c6..a7494ac 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -24,8 +24,8 @@ GIDOCGEN_MESON_DISABLE_FLAG = 'disabled'
 require ${BPN}-crates.inc
 
 SRC_URI += "file://0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch \
-            file://0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch \
             file://0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch \
+            file://cross-query-loaders.patch \
             file://run-ptest"
 SRC_URI[archive.sha256sum] = "a56d2c80d744ad2f2718f85df466fe71d24ff1f9bc3e5ef588bde4d7e87815f2"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 22/35] rust: Upgrade 1.94.1 -> 1.95.0
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (20 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 21/35] librsvg: rewrite cross gdk-pixbuf-query-loaders handling Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 23/35] librsvg: remove dependency on liberation-fonts Scott Murray
                   ` (12 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Rust Changes:
https://github.com/rust-lang/rust/releases/tag/1.95.0

Cargo Changes:
https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-195-2026-04-16

Drop merged patches:
0001-Adjust-loongarch-assembly-test.patch
0001-Fix-flaky-assertions-in-oneshot-tests.patch
0001-Update-amdgpu-data-layout.patch

Updated patches:
0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
rust-oe-selftest.patch

New patch:
0002-Fix-rust-build-failure-with-unstable-options.patch

Fix rust build failure with unstable options.
Remove the check that errors out when -Zunstable-options is not provided
for custom targets.The original upstream change (and its follow-up) mainly
ensured GitHub workflows and tests work correctly by explicitly passing
"-Zunstable-options", along with related testcase updates. Reverting the
entire commit would also undo those unrelated workflow and test adjustments,
so this patch only targets the specific enforcement logic without affecting
the rest of the changes.
https://github.com/rust-lang/rust/issues/155963

Selftest Changes:
Skip two failing tests
src/librustdoc
src/tools/rustdoc
https://github.com/rust-lang/rust/pull/153409

Excluded tests:
+--------+----------+---------+
| Before  |  After  | Skipped |
+---------+---------+---------+
|   37    |   39    |   +2    |
+--------+----------+---------+

Test results:

rust v1.95.0
+-------------+---------+---------+
| Machine     | Passed  | Skipped |
+-------------+---------+---------+
| qemux86-64  |  22187  |   689   |
| qemux86     |  21929  |   947   |
| qemuarm64   |  21994  |   882   |
| qemuarm     |  21910  |   966   |
| qemuriscv64 |  21955  |   921   |
+-------------+---------+---------+

Test results difference (1.95.0 - 1.94.1):

+-------------+--------+---------+
| Machine     | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64  |  +276  |   +29   |
| qemux86     |  +271  |   +34   |
| qemuarm64   |  +271  |   +34   |
| qemuarm     |  +271  |   +34   |
| qemuriscv64 |  +270  |   +35   |
+-------------+--------+---------+

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit cab39a407e1de6f4e5024cef1ac7733c3780e40d)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 conf/layer.conf                               |   2 +-
 lib/oeqa/selftest/cases/rust_mixin.py         |   2 +-
 .../rust/{cargo_1.94.1.bb => cargo_1.95.0.bb} |   0
 .../0001-Adjust-loongarch-assembly-test.patch |  66 -----------
 ...ix-flaky-assertions-in-oneshot-tests.patch |  72 ------------
 .../0001-Update-amdgpu-data-layout.patch      |  44 --------
 ...teps-tool.rs-switch-off-lto-for-rust.patch |   4 +-
 ...-build-failure-with-unstable-options.patch |  63 +++++++++++
 .../rust/files/rust-oe-selftest.patch         |  20 +++-
 ...ibstd-rs_1.94.1.bb => libstd-rs_1.95.0.bb} |   0
 ....94.1.bb => rust-cross-canadian_1.95.0.bb} |   0
 ...-llvm-allow-env-override-of-exe-path.patch |   8 +-
 ...ust-llvm_1.94.1.bb => rust-llvm_1.95.0.bb} |   0
 recipes-devtools/rust/rust-snapshot.inc       | 104 +++++++++---------
 recipes-devtools/rust/rust-source.inc         |   6 +-
 .../rust/{rust_1.94.1.bb => rust_1.95.0.bb}   |   0
 16 files changed, 140 insertions(+), 251 deletions(-)
 rename recipes-devtools/rust/{cargo_1.94.1.bb => cargo_1.95.0.bb} (100%)
 delete mode 100644 recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch
 delete mode 100644 recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch
 delete mode 100644 recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch
 create mode 100644 recipes-devtools/rust/files/0002-Fix-rust-build-failure-with-unstable-options.patch
 rename recipes-devtools/rust/{libstd-rs_1.94.1.bb => libstd-rs_1.95.0.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.94.1.bb => rust-cross-canadian_1.95.0.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.94.1.bb => rust-llvm_1.95.0.bb} (100%)
 rename recipes-devtools/rust/{rust_1.94.1.bb => rust_1.95.0.bb} (100%)

diff --git a/conf/layer.conf b/conf/layer.conf
index b084f3a..c3688f5 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.94.1%"
+RUSTVERSION ?= "1.95.0%"
diff --git a/lib/oeqa/selftest/cases/rust_mixin.py b/lib/oeqa/selftest/cases/rust_mixin.py
index afe5b37..f09abbd 100644
--- a/lib/oeqa/selftest/cases/rust_mixin.py
+++ b/lib/oeqa/selftest/cases/rust_mixin.py
@@ -101,7 +101,7 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
 
         exclude_fail_tests = " ".join([" --exclude " + item for item in exclude_list])
         # Add exclude_fail_tests with other test arguments
-        testargs =  exclude_fail_tests + " --no-doc --no-fail-fast --bless"
+        testargs =  exclude_fail_tests + " --no-doc --no-fail-fast --bless --skip src/librustdoc --skip src/tools/rustdoc"
 
         # wrap the execution with a qemu instance.
         # Tests are run with 512 tasks in parallel to execute all tests very quickly
diff --git a/recipes-devtools/rust/cargo_1.94.1.bb b/recipes-devtools/rust/cargo_1.95.0.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.94.1.bb
rename to recipes-devtools/rust/cargo_1.95.0.bb
diff --git a/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch b/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch
deleted file mode 100644
index 67c649e..0000000
--- a/recipes-devtools/rust/files/0001-Adjust-loongarch-assembly-test.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From e015fc820db5d7fe2495c09b1fdd5e2092ed3cd1 Mon Sep 17 00:00:00 2001
-From: Nikita Popov <npopov@redhat.com>
-Date: Tue, 27 Jan 2026 12:03:48 +0100
-Subject: [PATCH] Adjust loongarch assembly test
-
-This generates different code on loongarch32r now.
-
-Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/e015fc820db5d7fe2495c09b1fdd5e2092ed3cd1]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/assembly-llvm/asm/loongarch-type.rs | 27 +++++++++++++++++------
- 1 file changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/tests/assembly-llvm/asm/loongarch-type.rs b/tests/assembly-llvm/asm/loongarch-type.rs
-index e0a7940f89a..5efad583a39 100644
---- a/tests/assembly-llvm/asm/loongarch-type.rs
-+++ b/tests/assembly-llvm/asm/loongarch-type.rs
-@@ -1,10 +1,14 @@
- //@ add-minicore
--//@ revisions: loongarch32 loongarch64
-+//@ revisions: loongarch32s loongarch32r loongarch64
-
- //@ assembly-output: emit-asm
-
--//@[loongarch32] compile-flags: --target loongarch32-unknown-none
--//@[loongarch32] needs-llvm-components: loongarch
-+//@[loongarch32s] compile-flags: --target loongarch32-unknown-none -Ctarget-feature=+32s
-+//@[loongarch32s] needs-llvm-components: loongarch
-+
-+//@[loongarch32r] compile-flags: --target loongarch32-unknown-none
-+//@[loongarch32r] needs-llvm-components: loongarch
-+//@[loongarch32r] min-llvm-version: 22
-
- //@[loongarch64] compile-flags: --target loongarch64-unknown-none
- //@[loongarch64] needs-llvm-components: loongarch
-@@ -28,8 +32,12 @@
-
- // CHECK-LABEL: sym_fn:
- // CHECK: #APP
--// CHECK: pcalau12i $t0, %got_pc_hi20(extern_func)
--// CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_func)
-+// loongarch64: pcalau12i $t0, %got_pc_hi20(extern_func)
-+// loongarch64: ld.d $t0, $t0, %got_pc_lo12(extern_func)
-+// loongarch32s: pcalau12i $t0, %got_pc_hi20(extern_func)
-+// loongarch32s: ld.w $t0, $t0, %got_pc_lo12(extern_func)
-+// loongarch32r: pcaddu12i $t0, %got_pcadd_hi20(extern_func)
-+// loongarch32r: ld.w $t0, $t0, %got_pcadd_lo12(.Lpcadd_hi0)
- // CHECK: #NO_APP
- #[no_mangle]
- pub unsafe fn sym_fn() {
-@@ -38,8 +46,13 @@ pub unsafe fn sym_fn() {
-
- // CHECK-LABEL: sym_static:
- // CHECK: #APP
--// CHECK: pcalau12i $t0, %got_pc_hi20(extern_static)
--// CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_static)
-+// loongarch64: pcalau12i $t0, %got_pc_hi20(extern_static)
-+// loongarch64: ld.d $t0, $t0, %got_pc_lo12(extern_static)
-+// loongarch32s: pcalau12i $t0, %got_pc_hi20(extern_static)
-+// loongarch32s: ld.w $t0, $t0, %got_pc_lo12(extern_static)
-+// loongarch32r: pcaddu12i $t0, %got_pcadd_hi20(extern_static)
-+// loongarch32r: ld.w $t0, $t0, %got_pcadd_lo12(.Lpcadd_hi1)
-+
- // CHECK: #NO_APP
- #[no_mangle]
- pub unsafe fn sym_static() {
diff --git a/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch b/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch
deleted file mode 100644
index be0e85d..0000000
--- a/recipes-devtools/rust/files/0001-Fix-flaky-assertions-in-oneshot-tests.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Backport three commits from upstream to fix flaky assertions in oneshot tests
-
-Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/6970849fee93900b6eb28a64cf957157a9fb51b3]
-Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/dab350a3ed7691201f6752c4375e8e6ab40b58b9]
-Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/d02743e2fd7433ba2320fc85421a8a5927235b65]
-
-Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
-
-diff --git a/library/std/tests/sync/oneshot.rs b/library/std/tests/sync/oneshot.rs
-index 6a87c72..d8f3cd7 100644
---- a/library/std/tests/sync/oneshot.rs
-+++ b/library/std/tests/sync/oneshot.rs
-@@ -89,15 +89,15 @@ fn send_before_recv_timeout() {
- 
-     assert!(sender.send(22i128).is_ok());
- 
--    let start = Instant::now();
--
-     let timeout = Duration::from_secs(1);
-     match receiver.recv_timeout(timeout) {
-         Ok(22) => {}
-         _ => panic!("expected Ok(22)"),
-     }
- 
--    assert!(start.elapsed() < timeout);
-+    // FIXME(#152648): There previously was a timing assertion here.
-+    // This was removed, because under load there's no guarantee that the main thread is
-+    // scheduled and run before `timeout` expires
- }
- 
- #[test]
-@@ -127,6 +127,7 @@ fn recv_before_send() {
- }
- 
- #[test]
-+#[ignore = "Inherently flaky and has caused several CI failures"]
- fn recv_timeout_before_send() {
-     let (sender, receiver) = oneshot::channel();
- 
-@@ -135,6 +136,8 @@ fn recv_timeout_before_send() {
-         sender.send(99u128).unwrap();
-     });
- 
-+    // FIXME(#152145): Under load, there's no guarantee that thread `t` has
-+    // ever been scheduled and run before this timeout expires.
-     match receiver.recv_timeout(Duration::from_secs(1)) {
-         Ok(99) => {}
-         _ => panic!("expected Ok(99)"),
-@@ -240,7 +243,9 @@ fn recv_deadline_passed() {
-     }
- 
-     assert!(start.elapsed() >= timeout);
--    assert!(start.elapsed() < timeout * 3);
-+    // FIXME(#152878): An upper-bound assertion on the elapsed time was removed,
-+    // because CI runners can starve individual threads for a surprisingly long
-+    // time, leading to flaky failures.
- }
- 
- #[test]
-@@ -253,8 +258,11 @@ fn recv_time_passed() {
-         Err(RecvTimeoutError::Timeout(_)) => {}
-         _ => panic!("expected timeout error"),
-     }
-+
-     assert!(start.elapsed() >= timeout);
--    assert!(start.elapsed() < timeout * 3);
-+    // FIXME(#152878): An upper-bound assertion on the elapsed time was removed,
-+    // because CI runners can starve individual threads for a surprisingly long
-+    // time, leading to flaky failures.
- }
- 
- #[test]
diff --git a/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch b/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch
deleted file mode 100644
index 1c09cd8..0000000
--- a/recipes-devtools/rust/files/0001-Update-amdgpu-data-layout.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From bf3ac98d6930ba4e258cf33240c2fe7c99d19eae Mon Sep 17 00:00:00 2001
-From: Nikita Popov <npopov@redhat.com>
-Date: Tue, 6 Jan 2026 11:51:33 +0100
-Subject: [PATCH] Update amdgpu data layout
-
-This changed in:
-https://github.com/llvm/llvm-project/commit/853760bca6aa7a960b154cef8c61f87271870b8a
-
-Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/bf3ac98d6930ba4e258cf33240c2fe7c99d19eae]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- compiler/rustc_codegen_llvm/src/context.rs                  | 5 +++++
- compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs | 2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
-index 4b2544b7efd..4328b15c73f 100644
---- a/compiler/rustc_codegen_llvm/src/context.rs
-+++ b/compiler/rustc_codegen_llvm/src/context.rs
-@@ -215,6 +215,11 @@ pub(crate) unsafe fn create_module<'ll>(
-             // LLVM 22 updated the ABI alignment for double on AIX: https://github.com/llvm/llvm-project/pull/144673
-             target_data_layout = target_data_layout.replace("-f64:32:64", "");
-         }
-+        if sess.target.arch == Arch::AmdGpu {
-+            // LLVM 22 specified ELF mangling in the amdgpu data layout:
-+            // https://github.com/llvm/llvm-project/pull/163011
-+            target_data_layout = target_data_layout.replace("-m:e", "");
-+        }
-     }
-
-     // Ensure the data-layout values hardcoded remain the defaults.
-diff --git a/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs b/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
-index 828d853ac65..d6a2cfc2aab 100644
---- a/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
-+++ b/compiler/rustc_target/src/spec/targets/amdgcn_amd_amdhsa.rs
-@@ -5,7 +5,7 @@
- pub(crate) fn target() -> Target {
-     Target {
-         arch: Arch::AmdGpu,
--        data_layout: "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9".into(),
-+        data_layout: "e-m:e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9".into(),
-         llvm_target: "amdgcn-amd-amdhsa".into(),
-         metadata: TargetMetadata {
-             description: Some("AMD GPU".into()),
diff --git a/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch b/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
index a8232b9..35ebf3b 100644
--- a/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
+++ b/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
@@ -42,7 +42,7 @@ index 087df2f8a..00790affb 100644
  use crate::utils::exec::{BootstrapCommand, command};
  use crate::utils::helpers::{add_dylib_path, exe, t};
  use crate::{Compiler, FileType, Kind, Mode};
-@@ -121,22 +119,7 @@ impl Step for ToolBuild {
+@@ -121,22 +121,7 @@ impl Step for ToolBuild {
              cargo.env("RUSTC_WRAPPER", ccache);
          }
 
@@ -58,7 +58,7 @@ index 087df2f8a..00790affb 100644
 -                RustcLto::ThinLocal => None,
 -            };
 -            if let Some(lto) = lto {
--                cargo.env(cargo_profile_var("LTO", &builder.config), lto);
+-                cargo.env(cargo_profile_var("LTO", &builder.config, self.mode), lto);
 -            }
 -        }
 -
diff --git a/recipes-devtools/rust/files/0002-Fix-rust-build-failure-with-unstable-options.patch b/recipes-devtools/rust/files/0002-Fix-rust-build-failure-with-unstable-options.patch
new file mode 100644
index 0000000..24a22f6
--- /dev/null
+++ b/recipes-devtools/rust/files/0002-Fix-rust-build-failure-with-unstable-options.patch
@@ -0,0 +1,63 @@
+Fix build issues seen with Rust-1.95.0
+
+Remove the check that errors out when -Zunstable-options is not provided for custom targets.
+
+The original upstream change (and its follow-up) mainly ensured GitHub workflows and tests
+work correctly by explicitly passing -Zunstable-options, along with related testcase updates.
+Reverting the entire commit would also undo those unrelated workflow and test adjustments, so
+this patch only targets the specific enforcement logic without affecting the rest of the changes.
+
+Upstream-Status: Inappropriate [Reported at https://github.com/rust-lang/rust/issues/155963]
+Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+---
+diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
+index b1a9c4b3cde..25a26a9fb12 100644
+--- a/compiler/rustc_target/src/spec/mod.rs
++++ b/compiler/rustc_target/src/spec/mod.rs
+@@ -3707,7 +3707,7 @@ impl Target {
+     pub fn search(
+         target_tuple: &TargetTuple,
+         sysroot: &Path,
+-        unstable_options: bool,
++        _unstable_options: bool,
+     ) -> Result<(Target, TargetWarnings), String> {
+         use std::{env, fs};
+
+@@ -3715,12 +3715,6 @@ fn load_file(
+             path: &Path,
+-            unstable_options: bool,
+         ) -> Result<(Target, TargetWarnings), String> {
+-            if !unstable_options {
+-                return Err(
+-                    "custom targets are unstable and require `-Zunstable-options`".to_string()
+-                );
+-            }
+             let contents = fs::read_to_string(path).map_err(|e| e.to_string())?;
+             Target::from_json(&contents)
+         }
+
+@@ -3737,7 +3737,7 @@ impl Target {
+                 for dir in env::split_paths(&target_path) {
+                     let p = dir.join(&path);
+                     if p.is_file() {
+-                        return load_file(&p, unstable_options);
++                        return load_file(&p);
+                     }
+                 }
+
+@@ -3750,14 +3750,11 @@ impl Target {
+                     Path::new("target.json"),
+                 ]);
+                 if p.is_file() {
+-                    return load_file(&p, unstable_options);
++                    return load_file(&p);
+                 }
+
+                 Err(format!("could not find specification for target {target_tuple:?}"))
+             }
+-            TargetTuple::TargetJson { ref contents, .. } if !unstable_options => {
+-                Err("custom targets are unstable and require `-Zunstable-options`".to_string())
+-            }
+             TargetTuple::TargetJson { ref contents, .. } => Target::from_json(contents),
+         }
+     }
diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch
index 9cbfc62..0ecfc7c 100644
--- a/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -22,7 +22,7 @@ diff --git a/compiler/rustc_errors/src/markdown/tests/term.rs b/compiler/rustc_e
 diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
 --- a/compiler/rustc_interface/src/tests.rs
 +++ b/compiler/rustc_interface/src/tests.rs
-@@ -147,6 +147,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) {
+@@ -144,6 +144,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) {
 
  // When the user supplies --test we should implicitly supply --cfg test
  #[test]
@@ -30,7 +30,7 @@ diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/sr
  fn test_switch_implies_cfg_test() {
      sess_and_cfg(&["--test"], |_sess, cfg| {
          assert!(cfg.contains(&(sym::test, None)));
-@@ -155,6 +156,7 @@ fn test_switch_implies_cfg_test() {
+@@ -152,6 +153,7 @@ fn test_switch_implies_cfg_test() {
 
  // When the user supplies --test and --cfg test, don't implicitly add another --cfg test
  #[test]
@@ -38,7 +38,7 @@ diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/sr
  fn test_switch_implies_cfg_test_unless_cfg_test() {
      sess_and_cfg(&["--test", "--cfg=test"], |_sess, cfg| {
          let mut test_items = cfg.iter().filter(|&&(name, _)| name == sym::test);
-@@ -164,6 +166,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
+@@ -161,6 +163,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
  }
 
  #[test]
@@ -128,7 +128,7 @@ diff --git a/library/std/tests/sync/mutex.rs b/library/std/tests/sync/mutex.rs
  fn test_mutex_arc_poison_mapped() {
      let arc = Arc::new(Mutex::new(1));
      assert!(!arc.is_poisoned());
-@@ -457,6 +458,7 @@
+@@ -456,6 +457,7 @@
  
  #[test]
  #[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
@@ -176,7 +176,7 @@ diff --git a/library/alloctests/tests/sort/tests.rs b/library/alloctests/tests/s
 index 14e6013f96..b670f27ab4 100644
 --- a/library/alloctests/tests/sort/tests.rs
 +++ b/library/alloctests/tests/sort/tests.rs
-@@ -922,12 +922,14 @@ gen_sort_test_fns_with_default_patterns_3_ty!(
+@@ -929,12 +929,14 @@ gen_sort_test_fns_with_default_patterns_3_ty!(
  macro_rules! instantiate_sort_test_inner {
      ($sort_impl:ty, miri_yes, $test_fn_name:ident) => {
          #[test]
@@ -271,11 +271,19 @@ diff --git a/compiler/rustc/src/main.rs b/compiler/rustc/src/main.rs
 index 89c61cd..144ea0e 100644
 --- a/compiler/rustc/src/main.rs
 +++ b/compiler/rustc/src/main.rs
+@@ -3,6 +3,7 @@
+ // Several crates are depended upon but unused so that they are present in the sysroot
+ #![expect(unused_crate_dependencies)]
+
++#[allow(unused_imports)]
+ use std::process::ExitCode;
+
+ // A note about jemalloc: rustc uses jemalloc when built for CI and
 @@ -38,6 +38,7 @@
  #[cfg(feature = "jemalloc")]
  use tikv_jemalloc_sys as _;
 
 +#[cfg(not(test))]
- fn main() {
+ fn main() -> ExitCode {
      rustc_driver::main()
  }
diff --git a/recipes-devtools/rust/libstd-rs_1.94.1.bb b/recipes-devtools/rust/libstd-rs_1.95.0.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.94.1.bb
rename to recipes-devtools/rust/libstd-rs_1.95.0.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.94.1.bb b/recipes-devtools/rust/rust-cross-canadian_1.95.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.94.1.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.95.0.bb
diff --git a/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch b/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
index 9be2667..5a51efa 100644
--- a/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
+++ b/recipes-devtools/rust/rust-llvm/0002-llvm-allow-env-override-of-exe-path.patch
@@ -11,16 +11,18 @@ llvm-config from a target sysroot.
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Martin Kelly <mkelly@xevo.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+(updated for Rust 1.95.0)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 ---
  llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
  1 file changed, 7 insertions(+)
 
 --- a/llvm/tools/llvm-config/llvm-config.cpp
 +++ b/llvm/tools/llvm-config/llvm-config.cpp
-@@ -226,6 +226,13 @@ Typical components:\n\
+@@ -248,6 +248,13 @@
  
  /// Compute the path to the main executable.
- std::string GetExecutablePath(const char *Argv0) {
+ static std::string getExecutablePath(const char *Argv0) {
 +  // Hack for Yocto: we need to override the root path when we are using
 +  // llvm-config from within a target sysroot.
 +  const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
@@ -30,4 +32,4 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
 +
    // This just needs to be some symbol in the binary; C++ doesn't
    // allow taking the address of ::main however.
-   void *P = (void *)(intptr_t)GetExecutablePath;
+   void *P = (void *)(intptr_t)getExecutablePath;
diff --git a/recipes-devtools/rust/rust-llvm_1.94.1.bb b/recipes-devtools/rust/rust-llvm_1.95.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.94.1.bb
rename to recipes-devtools/rust/rust-llvm_1.95.0.bb
diff --git a/recipes-devtools/rust/rust-snapshot.inc b/recipes-devtools/rust/rust-snapshot.inc
index cd4cce3..d914cfd 100644
--- a/recipes-devtools/rust/rust-snapshot.inc
+++ b/recipes-devtools/rust/rust-snapshot.inc
@@ -4,58 +4,58 @@
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.93.0"
-
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "1a9045695892ec08d8e9751bf7cf7db71fe27a6202dd12ce13aca48d0602dbde"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "84e82ff52c39c64dfd0e1c2d58fd3d5309d1d2502378131544c0d486b44af20a"
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "5998940b8b97286bb67facb1a85535eeb3d4d7a61e36a85e386e5c0c5cfe5266"
-SRC_URI[clippy-snapshot-aarch64.sha256sum] = "872ae6d68d625946d281b91d928332e6b74f6ab269b6af842338df4338805a60"
-
-SRC_URI[rustc-snapshot-i686.sha256sum] = "72038681a14fe632e2b550392b83dadf40325c472dabecfff40a9efdc2d8e201"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "b8b7020a61418b95c1ea26badaf8db6979778e28dbadddc81fb5010fe27c935b"
-SRC_URI[cargo-snapshot-i686.sha256sum] = "2c6fb5893b4abcdf6af9dc3c4f60abc072318b0cb13f2bd969585910b7ba048b"
-SRC_URI[clippy-snapshot-i686.sha256sum] = "e8f6b16356548e2dbad3d380c07cd7b3654b49c513a15a2ceb9d17a49ac0aa04"
-
-SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "d5762adb6e1dec7e6af4a7347cde45c12fec3f0ceba8a05aff6ef00390105739"
-SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "4c5e2e8fcc43aced123283e3c8c99771c99750b5c7ecdf95a45258f5e26618b2"
-SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "cf1af58dad1098c1f56d3df11f884b8d87b0db30ef038d1527872b7cdd7c9785"
-SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "41f588aefa9e8bcdb4969afc14d18b19b4bd524defc026aca8c0275c19d183ac"
-
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "b31f5408c198756b57f0491961cf6dc84bfd96ff1c73627798015f27ecea6ef5"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "e851c0fa3e726ce3f7139c5803198a1aa9723594394734ac9e373c93d92e5ea3"
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "f8472c773385820a9c8fe375f766b6918bb659eb2d517db72eff86a44c59546d"
-SRC_URI[clippy-snapshot-powerpc.sha256sum] = "9f48807b761998db304ade11573742f52dcd61bf62f3e339eb9975ec33feab65"
-
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "b483c5324966b7138fb3f6180f7e4a2e9a5162179a83e58bb52d1ee5036009ee"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "f729bb7d95705e12a92eb072e494b93d8822ca40aa4802ca780b0cf33b56d401"
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "662a9d454073c178c052bbb001f7440ded82134185c7c656ba8fc37468799383"
-SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "2242d23c8472b4d7efe6e2e538157f0b25d9ac99f6362b2cd534ba5030b2a71f"
-
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "fa0705079ee9eeaeee2e4f12a3ffb35ccc3d4334cccd3eb3106a3f59b96e88aa"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "d209ac698a69ca9b9035adb97a0ed8e60a08db52960198c3e03b9ee714c1a46b"
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "a587e9dab9385ea0651dd45a6cb6101d6028ccf578a3e1140ce083fe9419921a"
-SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "283b76a665927a7737dbf422d3a3459eb85e873a49f6a2de8cc0ab5a5c3a8350"
-
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "804b19ccf61e8aec4c0c6d3f115961982b155d96925eb34b651aa7f6493a2e8b"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "b769fb6c9f3e0419a6bd0b7b79f9191bbd7a48a9f243b23eb7d135711aa6de1b"
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "1f0fc840db26c426b26ce8a943b887756e9552974a39248ad0166960fa169f62"
-SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "1c8bbbd36200f525949a2a3b1446ddc863b99bdc2552b818919fd64cc27b64d2"
-
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "756c25d32d6539a7485a278216f3058c1571fd503c638e1179b74a68611dd1a4"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "41a65db45a288eb3eedb187b366f132d5b3615767de7ce994b123b342ac7a848"
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "7d0281d26142bf124c0393a99e73b7b8ae6cb579cb7ebe50f696da6922d2129a"
-SRC_URI[clippy-snapshot-s390x.sha256sum] = "1cf85452916d4f5696d93e45849a99aba23884a3bd3d886d0179a1b2cf7d2858"
-
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "00c6e6740ea6a795e33568cd7514855d58408a1180cd820284a7bbf7c46af715"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "a849a418d0f27e69573e41763c395e924a0b98c16fcdc55599c1c79c27c1c777"
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "c23de3ae709ff33eed5e4ae59d1f9bcd75fa4dbaa9fb92f7b06bfb534b8db880"
-SRC_URI[clippy-snapshot-x86_64.sha256sum] = "793108977514b15c0f45ade28ae35c58b05370cb0f22e89bd98fdfa61eabf55d"
-
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "03534ebbd698f7580cfb08798a7451e86bd9ec46327f4b41ccf2c2f8f1998438"
-
-SRC_URI[rust-std-snapshot-riscv64a23.sha256sum] = "2a625e37c5b943c6c63dad7f52187572d1a65854e3950a8fa26e593f8231d711"
-
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "360f0a4eb41c3cd3792dbe756c0c5b5a36a5b41e3771b8a12d5bbc97bf51fdd3"
+SNAPSHOT_VERSION = "1.94.0"
+
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "7261b2fcdb88aef8b21f4b9f915d9a75c959674193f5b38e13fab4569684fc5b"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "c781b3ef4fefa5508fbe05820eddc95e46351d905a30921cc020febd9c596a2e"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "d57ab7b23b52cba46e58c78327904d0c7db19892988677b0d59495c8af4bb790"
+SRC_URI[clippy-snapshot-aarch64.sha256sum] = "f7450c414e394450b53be602d37c374e2a2c5a2f51be2b54faf3d1e3272160b1"
+
+SRC_URI[rustc-snapshot-i686.sha256sum] = "4d399ca0126adf0225340dc291623a47256b39be1d2567ad76dcd8990c2d6935"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "528c1dda491b25bb855426f48757773f4740c75d3c7271efffe7412c2fd5730d"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "8699cfc772af3f651bf61e84a5b292e2ea62de9e1ab12d70e1384e57a5e91690"
+SRC_URI[clippy-snapshot-i686.sha256sum] = "54a3219f0541c080bc8e600c3cfe63d60963eb361c79fd645dd1b171019c4dac"
+
+SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "5392936010d422d7b8e5b83ba6c314da16f0d2b33fe57fdaf340b1e8a4a3a0fa"
+SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "a42ebd0c280f987f8c604fcb4549886f8954e7d025d54da3e63a5621ed268dd5"
+SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "83bda8ec4b506646eddab2b7b67e67f2fd9fccb74693a2558383868d82b85668"
+SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "98de442bc183acef748ae1f177498045bf8cbcf03ece6e75c2befa98fae8841b"
+
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "443475d3e1ec21d1f34b09f0cd6d1f10551535a736048ce7e21d7fa4faeb63c3"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "23e32cab484d7787b7966a0508c49baf231bcdb4a79a421ee85ca69e81f2a06f"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "3274ccfb125035dc5846649b0bdce855f15c7a1824507360840c6a152599e4cf"
+SRC_URI[clippy-snapshot-powerpc.sha256sum] = "3a38eb50a04557801e50e2ab04e9e5db8f3f8f22dfea53d9a483efe1ea251129"
+
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "89874c3bebc35ace3b0d0dd225154e583a88caafe2c3d04476b21e4a6650f715"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "7713b676a37fbd0a52a711c2e3c205a917f8b05614e17cd9f7f37874a88469a3"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "3c618a93585244a6fd70a857061b781590262f5f430f710f3687d5eaf54940bd"
+SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "209d292768bf89c8fc65f434257f7be39a7155e2b4590d917f3d873ce7f35fd3"
+
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "7fcdb850568508c0737e9079383f2aade49b1ee159620e67e041d0b756bfe4b5"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "094f3955828d6630b70a9c7c71e3165c3ffc7a301929601dde08501def623347"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "6b44ebc7f08464e3a60ff16580729a99e727c7d4c2368a2d4b62d1acf4fd5c11"
+SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "11dc62c3b286dad9e22d9f0005dd75dcbb527da02b44f0729351dba5277f39c8"
+
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "ad0e35e45ceb4e874653444c393bc3b969da78729d92dc3d8852b0fd2eddcec6"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "32e9b7006f1269e48fb65af6298f6e8a222e1a8a2a20b112528bfb3dad2f65a8"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "61795ca964c0b08faef359db32c3409e3348ed2bd7b4cad481b3c8cf8654b5d6"
+SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "c6ca11e8d361fcce46c684239ea2debfc53b97def7db0c2ff7014894de22b220"
+
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "9167f4a85ef250d6e613bdd3993d723fd225df67665fd2dbe61b0c780009c8e3"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "ea69833addbc9521664464418c7468871f7a80b16fd2c385f6213a6c99cedfe9"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "f32f72efff179de4871fb5f5a3e030092d279ca70a71f0a4e49b3c8f69ef7ac4"
+SRC_URI[clippy-snapshot-s390x.sha256sum] = "8195f54d3ade3cbb7beb51df21cdc8ba30b6c72dbb9d9106eee10ea781a15062"
+
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "31a0d3ac9383dfdeb4fce86eeed5ade3230131c635264c0eab7252dbf235f28e"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "dd33653107c36e040082050d9e547e64dac5b456ba74069430d838c00c189a05"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "8e17624f3de39e079845bfb25ed15a042f4b50ceca78e37c56c4b9b15949b9f7"
+SRC_URI[clippy-snapshot-x86_64.sha256sum] = "935529b0b9150084fa9cc1734c6598efe86b6e7d76f31ad3f8d4bb79ebf6031a"
+
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "9347cfdc1383f4d71db1d63960f289977abc93ee575ca84748516995a05fac94"
+
+SRC_URI[rust-std-snapshot-riscv64a23.sha256sum] = "f0b68c16c81b96562e039ff298dbf6a833cab112340c3b4bbd44dd3b45db6a31"
+
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "8f611aa779732057742fa289e7581bde48af1c97014c1f92fd21b5682eff1a16"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 49dd20a..370c1ff 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -7,12 +7,10 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
-            file://0001-Fix-flaky-assertions-in-oneshot-tests.patch;patchdir=${RUSTSRC} \
-            file://0001-Update-amdgpu-data-layout.patch;patchdir=${RUSTSRC} \
-            file://0001-Adjust-loongarch-assembly-test.patch;patchdir=${RUSTSRC} \
             file://0001-Fix-multiple-option-or-permutations-test-for-big-end.patch;patchdir=${RUSTSRC} \
+            file://0002-Fix-rust-build-failure-with-unstable-options.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "174fce10ce012317ca995810296d8af199318838180b03d68a853e0f02d4b571"
+SRC_URI[rust.sha256sum] = "62b67230754da642a264ca0cb9fc08820c54e2ed7b3baba0289876d4cdb48c08"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust_1.94.1.bb b/recipes-devtools/rust/rust_1.95.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.94.1.bb
rename to recipes-devtools/rust/rust_1.95.0.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 23/35] librsvg: remove dependency on liberation-fonts
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (21 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 22/35] rust: Upgrade 1.94.1 -> 1.95.0 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 24/35] librsvg: add PACKAGECONFIGs for avif and gdkpixbuf Scott Murray
                   ` (11 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

librsvg 2.42 onwards[1] from 2018 ship the fonts they need for the test
suite instead of assuming the system has the right fonts, so we don't
need to depend on liberation-fonts for the tests.

[1] librsvg ec3353e89 ("Use a hard-coded font file to render test images,
    for predictable font rendering")

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 8b7c17ea76be679ca3f1ecf7d06ffc3ccaffcee8)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index a7494ac..cf8b1b6 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
 
 SECTION = "x11/utils"
 DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native cargo-native cargo-c-native"
-RDEPENDS:${PN}-ptest += "rsvg liberation-fonts"
+RDEPENDS:${PN}-ptest += "rsvg"
 BBCLASSEXTEND = "native nativesdk"
 
 inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates ptest-cargo
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 24/35] librsvg: add PACKAGECONFIGs for avif and gdkpixbuf
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (22 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 23/35] librsvg: remove dependency on liberation-fonts Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 25/35] librsvg: upgrade 2.61.3 -> 2.62.2 Scott Murray
                   ` (10 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

The existing gdkpixbuf PACKAGECONFIG is actually for the gdk-pixbuf SVG
loader.  Rename this to gdkpixbuf-loader and add another PACKAGECONFIG
that controls whether gdk-pixbuf support is enabled, and enable this by
default to preserve behaviour.

Add a new PACKAGECONFIG to enable support for embedded AVIF[1] files.
This is disabled out of the box as it depends on dav1d, part of meta-oe.

[1] https://en.wikipedia.org/wiki/AVIF

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 9797142b3f80ac93966e16896e92c4ca3bce8101)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg_2.61.3.bb | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.61.3.bb
index cf8b1b6..19ceb69 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.61.3.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
 
 SECTION = "x11/utils"
-DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native cargo-native cargo-c-native"
+DEPENDS = "cairo glib-2.0 libxml2 pango python3-docutils-native cargo-native cargo-c-native"
 RDEPENDS:${PN}-ptest += "rsvg"
 BBCLASSEXTEND = "native nativesdk"
 
@@ -56,11 +56,14 @@ LDFLAGS += " -L${B}/rsvg"
 # needed on ubuntu 20.04/debian 11 to avoid 'undefined reference to `dlsym'' errors
 BUILD_LDFLAGS += " -ldl"
 
-PACKAGECONFIG ??= "gdkpixbuf \
+PACKAGECONFIG ??= "gdkpixbuf gdkpixbuf-loader \
                    ${@bb.utils.contains('PTEST_ENABLED', '1', 'apitest', '', d)} \
                    ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}"
-# The gdk-pixbuf loader
-PACKAGECONFIG[gdkpixbuf] = "-Dpixbuf-loader=enabled,-Dpixbuf-loader=disabled,gdk-pixbuf-native"
+
+PACKAGECONFIG[avif] = "-Davif=enabled,-Davif=disabled,dav1d"
+PACKAGECONFIG[gdkpixbuf] = "-Dpixbuf=enabled,-Dpixbuf=disabled,gdk-pixbuf"
+# The gdk-pixbuf loader (depends on gdkpixbuf)
+PACKAGECONFIG[gdkpixbuf-loader] = "-Dpixbuf-loader=enabled,-Dpixbuf-loader=disabled,gdk-pixbuf-native"
 PACKAGECONFIG[vala] = "-Dvala=enabled,-Dvala=disabled"
 PACKAGECONFIG[apitest] = "-Dtests=true,-Dtests=false"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 25/35] librsvg: upgrade 2.61.3 -> 2.62.2
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (23 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 24/35] librsvg: add PACKAGECONFIGs for avif and gdkpixbuf Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 26/35] cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate Scott Murray
                   ` (9 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

Selected highlights from the release notes:

Version 2.62.2
==============

- #1142: Fix blurry embeded SVG images by rasterizing them at
  device resolution (Dylan Sechet).

- #1229: Fix build when gobject-introspection is enabled but
  gdk-pixbuf is disabled.

Version 2.62.0
==============

- The minimum supported Rust version (MSRV) is 1.92.0.

- #1218: Fix rendering of markers at the end of open subpaths.

- #1216: Small optimization for userLanguage so regexes only get
  compiled if needed (Adetoye Anointing).

Update cross-query-loaders.patch to the final version that was submitted
upstream.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit b3aa1a6419bef653cff710fc3359211daf9f7902)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg-crates.inc      | 490 +++++++++---------
 ...e-care-of-deprecated-assert_cmd-Comm.patch |   8 +-
 .../librsvg/librsvg/cross-query-loaders.patch | 157 +++---
 .../{librsvg_2.61.3.bb => librsvg_2.62.2.bb}  |   2 +-
 4 files changed, 352 insertions(+), 305 deletions(-)
 rename recipes-gnome/librsvg/{librsvg_2.61.3.bb => librsvg_2.62.2.bb} (98%)

diff --git a/recipes-gnome/librsvg/librsvg-crates.inc b/recipes-gnome/librsvg/librsvg-crates.inc
index 2260a6f..dfa96e2 100644
--- a/recipes-gnome/librsvg/librsvg-crates.inc
+++ b/recipes-gnome/librsvg/librsvg-crates.inc
@@ -11,10 +11,10 @@ SRC_URI += " \
     crate://crates.io/anstream/0.6.21 \
     crate://crates.io/anstyle/1.0.13 \
     crate://crates.io/anstyle-parse/0.2.7 \
-    crate://crates.io/anstyle-query/1.1.4 \
-    crate://crates.io/anstyle-wincon/3.0.10 \
+    crate://crates.io/anstyle-query/1.1.5 \
+    crate://crates.io/anstyle-wincon/3.0.11 \
     crate://crates.io/approx/0.5.1 \
-    crate://crates.io/assert_cmd/2.1.1 \
+    crate://crates.io/assert_cmd/2.1.2 \
     crate://crates.io/autocfg/1.5.0 \
     crate://crates.io/av-data/0.4.4 \
     crate://crates.io/bit-set/0.8.0 \
@@ -25,30 +25,30 @@ SRC_URI += " \
     crate://crates.io/block-buffer/0.10.4 \
     crate://crates.io/block-padding/0.3.3 \
     crate://crates.io/bstr/1.12.1 \
-    crate://crates.io/bumpalo/3.19.0 \
+    crate://crates.io/bumpalo/3.19.1 \
     crate://crates.io/byte-slice-cast/1.2.3 \
     crate://crates.io/bytecount/0.6.9 \
     crate://crates.io/bytemuck/1.24.0 \
     crate://crates.io/byteorder/1.5.0 \
     crate://crates.io/byteorder-lite/0.1.0 \
-    crate://crates.io/bytes/1.10.1 \
-    crate://crates.io/cairo-rs/0.21.2 \
-    crate://crates.io/cairo-sys-rs/0.21.2 \
+    crate://crates.io/bytes/1.11.1 \
+    crate://crates.io/cairo-rs/0.22.0 \
+    crate://crates.io/cairo-sys-rs/0.22.0 \
     crate://crates.io/cast/0.3.0 \
     crate://crates.io/cbc/0.1.2 \
-    crate://crates.io/cc/1.2.44 \
-    crate://crates.io/cfg-expr/0.20.4 \
+    crate://crates.io/cc/1.2.54 \
+    crate://crates.io/cfg-expr/0.20.6 \
     crate://crates.io/cfg-if/1.0.4 \
-    crate://crates.io/chrono/0.4.42 \
+    crate://crates.io/chrono/0.4.43 \
     crate://crates.io/ciborium/0.2.2 \
     crate://crates.io/ciborium-io/0.2.2 \
     crate://crates.io/ciborium-ll/0.2.2 \
     crate://crates.io/cipher/0.4.4 \
-    crate://crates.io/clap/4.5.51 \
-    crate://crates.io/clap_builder/4.5.51 \
-    crate://crates.io/clap_complete/4.5.60 \
-    crate://crates.io/clap_derive/4.5.49 \
-    crate://crates.io/clap_lex/0.7.6 \
+    crate://crates.io/clap/4.5.56 \
+    crate://crates.io/clap_builder/4.5.56 \
+    crate://crates.io/clap_complete/4.5.65 \
+    crate://crates.io/clap_derive/4.5.55 \
+    crate://crates.io/clap_lex/0.7.7 \
     crate://crates.io/color_quant/1.1.0 \
     crate://crates.io/colorchoice/1.0.4 \
     crate://crates.io/core-foundation-sys/0.8.7 \
@@ -60,21 +60,22 @@ SRC_URI += " \
     crate://crates.io/crossbeam-epoch/0.9.18 \
     crate://crates.io/crossbeam-utils/0.8.21 \
     crate://crates.io/crunchy/0.2.4 \
-    crate://crates.io/crypto-common/0.1.6 \
+    crate://crates.io/crypto-common/0.1.7 \
     crate://crates.io/cssparser/0.35.0 \
     crate://crates.io/cssparser-color/0.3.0 \
     crate://crates.io/cssparser-macros/0.6.1 \
     crate://crates.io/data-url/0.3.2 \
-    crate://crates.io/dav1d/0.10.4 \
+    crate://crates.io/dav1d/0.11.1 \
     crate://crates.io/dav1d-sys/0.8.3 \
     crate://crates.io/deranged/0.5.5 \
-    crate://crates.io/derive_more/2.0.1 \
-    crate://crates.io/derive_more-impl/2.0.1 \
+    crate://crates.io/derive_more/2.1.1 \
+    crate://crates.io/derive_more-impl/2.1.1 \
+    crate://crates.io/diff/0.1.13 \
     crate://crates.io/difflib/0.4.0 \
     crate://crates.io/digest/0.10.7 \
     crate://crates.io/displaydoc/0.2.5 \
     crate://crates.io/dlib/0.5.2 \
-    crate://crates.io/dtoa/1.0.10 \
+    crate://crates.io/dtoa/1.0.11 \
     crate://crates.io/dtoa-short/0.3.5 \
     crate://crates.io/ecb/0.1.2 \
     crate://crates.io/either/1.15.0 \
@@ -84,68 +85,88 @@ SRC_URI += " \
     crate://crates.io/fallible_collections/0.4.9 \
     crate://crates.io/fastrand/2.3.0 \
     crate://crates.io/fdeflate/0.3.7 \
-    crate://crates.io/find-msvc-tools/0.1.4 \
-    crate://crates.io/flate2/1.1.5 \
+    crate://crates.io/find-msvc-tools/0.1.8 \
+    crate://crates.io/flate2/1.1.8 \
     crate://crates.io/float-cmp/0.10.0 \
     crate://crates.io/fnv/1.0.7 \
     crate://crates.io/form_urlencoded/1.2.2 \
     crate://crates.io/futf/0.1.5 \
     crate://crates.io/futures-channel/0.3.31 \
-    crate://crates.io/futures-core/0.3.31 \
+    crate://crates.io/futures-core/0.3.32 \
     crate://crates.io/futures-executor/0.3.31 \
     crate://crates.io/futures-io/0.3.31 \
-    crate://crates.io/futures-macro/0.3.31 \
-    crate://crates.io/futures-task/0.3.31 \
-    crate://crates.io/futures-util/0.3.31 \
+    crate://crates.io/futures-macro/0.3.32 \
+    crate://crates.io/futures-task/0.3.32 \
+    crate://crates.io/futures-util/0.3.32 \
     crate://crates.io/fxhash/0.2.1 \
-    crate://crates.io/gdk-pixbuf/0.21.2 \
-    crate://crates.io/gdk-pixbuf-sys/0.21.2 \
-    crate://crates.io/generic-array/0.14.9 \
+    crate://crates.io/gdk-pixbuf/0.22.0 \
+    crate://crates.io/gdk-pixbuf-sys/0.22.0 \
+    crate://crates.io/generic-array/0.14.7 \
     crate://crates.io/getrandom/0.3.4 \
-    crate://crates.io/gif/0.13.3 \
-    crate://crates.io/gio/0.21.4 \
-    crate://crates.io/gio-sys/0.21.2 \
-    crate://crates.io/glib/0.21.4 \
-    crate://crates.io/glib-macros/0.21.4 \
-    crate://crates.io/glib-sys/0.21.2 \
-    crate://crates.io/gobject-sys/0.21.2 \
+    crate://crates.io/gif/0.14.1 \
+    crate://crates.io/gio/0.22.1 \
+    crate://crates.io/gio-sys/0.22.0 \
+    crate://crates.io/gio-unix/0.22.0 \
+    crate://crates.io/gio-unix-sys/0.22.0 \
+    crate://crates.io/gio-win32/0.22.0 \
+    crate://crates.io/gio-win32-sys/0.22.0 \
+    crate://crates.io/glam/0.14.0 \
+    crate://crates.io/glam/0.15.2 \
+    crate://crates.io/glam/0.16.0 \
+    crate://crates.io/glam/0.17.3 \
+    crate://crates.io/glam/0.18.0 \
+    crate://crates.io/glam/0.19.0 \
+    crate://crates.io/glam/0.20.5 \
+    crate://crates.io/glam/0.21.3 \
+    crate://crates.io/glam/0.22.0 \
+    crate://crates.io/glam/0.23.0 \
+    crate://crates.io/glam/0.24.2 \
+    crate://crates.io/glam/0.25.0 \
+    crate://crates.io/glam/0.27.0 \
+    crate://crates.io/glam/0.28.0 \
+    crate://crates.io/glam/0.29.3 \
+    crate://crates.io/glam/0.30.10 \
+    crate://crates.io/glib/0.22.0 \
+    crate://crates.io/glib-macros/0.22.0 \
+    crate://crates.io/glib-sys/0.22.0 \
+    crate://crates.io/gobject-sys/0.22.0 \
     crate://crates.io/half/2.7.1 \
     crate://crates.io/hashbrown/0.13.2 \
-    crate://crates.io/hashbrown/0.16.0 \
+    crate://crates.io/hashbrown/0.16.1 \
     crate://crates.io/heck/0.5.0 \
-    crate://crates.io/iana-time-zone/0.1.64 \
+    crate://crates.io/iana-time-zone/0.1.65 \
     crate://crates.io/iana-time-zone-haiku/0.1.2 \
     crate://crates.io/icu_collections/2.1.1 \
     crate://crates.io/icu_locale_core/2.1.1 \
     crate://crates.io/icu_normalizer/2.1.1 \
     crate://crates.io/icu_normalizer_data/2.1.1 \
-    crate://crates.io/icu_properties/2.1.1 \
-    crate://crates.io/icu_properties_data/2.1.1 \
+    crate://crates.io/icu_properties/2.1.2 \
+    crate://crates.io/icu_properties_data/2.1.2 \
     crate://crates.io/icu_provider/2.1.1 \
     crate://crates.io/idna/1.1.0 \
     crate://crates.io/idna_adapter/1.2.1 \
-    crate://crates.io/image/0.25.8 \
+    crate://crates.io/image/0.25.10 \
     crate://crates.io/image-webp/0.2.4 \
-    crate://crates.io/indexmap/2.12.0 \
+    crate://crates.io/indexmap/2.13.0 \
     crate://crates.io/inout/0.1.4 \
     crate://crates.io/is_terminal_polyfill/1.70.2 \
     crate://crates.io/itertools/0.13.0 \
     crate://crates.io/itertools/0.14.0 \
-    crate://crates.io/itoa/1.0.15 \
-    crate://crates.io/jiff/0.2.15 \
-    crate://crates.io/jiff-static/0.2.15 \
-    crate://crates.io/jiff-tzdb/0.1.4 \
+    crate://crates.io/itoa/1.0.17 \
+    crate://crates.io/jiff/0.2.18 \
+    crate://crates.io/jiff-static/0.2.18 \
+    crate://crates.io/jiff-tzdb/0.1.5 \
     crate://crates.io/jiff-tzdb-platform/0.1.3 \
-    crate://crates.io/js-sys/0.3.82 \
+    crate://crates.io/js-sys/0.3.85 \
     crate://crates.io/language-tags/0.3.2 \
     crate://crates.io/lazy_static/1.5.0 \
-    crate://crates.io/libc/0.2.177 \
+    crate://crates.io/libc/0.2.180 \
     crate://crates.io/libloading/0.8.9 \
     crate://crates.io/linux-raw-sys/0.11.0 \
     crate://crates.io/litemap/0.8.1 \
     crate://crates.io/locale_config/0.3.0 \
     crate://crates.io/lock_api/0.4.14 \
-    crate://crates.io/log/0.4.28 \
+    crate://crates.io/log/0.4.29 \
     crate://crates.io/lopdf/0.38.0 \
     crate://crates.io/mac/0.1.1 \
     crate://crates.io/malloc_buf/0.0.6 \
@@ -153,19 +174,20 @@ SRC_URI += " \
     crate://crates.io/matches/0.1.10 \
     crate://crates.io/matrixmultiply/0.3.10 \
     crate://crates.io/md-5/0.10.6 \
-    crate://crates.io/memchr/2.7.6 \
+    crate://crates.io/memchr/2.8.0 \
     crate://crates.io/miniz_oxide/0.8.9 \
-    crate://crates.io/moxcms/0.7.9 \
+    crate://crates.io/moxcms/0.8.1 \
     crate://crates.io/mp4parse/0.17.0 \
-    crate://crates.io/nalgebra/0.33.2 \
-    crate://crates.io/nalgebra-macros/0.2.2 \
+    crate://crates.io/mutants/0.0.3 \
+    crate://crates.io/nalgebra/0.34.1 \
+    crate://crates.io/nalgebra-macros/0.3.0 \
     crate://crates.io/new_debug_unreachable/1.0.6 \
     crate://crates.io/nom/8.0.0 \
     crate://crates.io/nom_locate/5.0.0 \
     crate://crates.io/normalize-line-endings/0.3.0 \
     crate://crates.io/num-bigint/0.4.6 \
     crate://crates.io/num-complex/0.4.6 \
-    crate://crates.io/num-conv/0.1.0 \
+    crate://crates.io/num-conv/0.2.0 \
     crate://crates.io/num-derive/0.4.2 \
     crate://crates.io/num-integer/0.1.46 \
     crate://crates.io/num-rational/0.4.2 \
@@ -176,10 +198,10 @@ SRC_URI += " \
     crate://crates.io/once_cell/1.21.3 \
     crate://crates.io/once_cell_polyfill/1.70.2 \
     crate://crates.io/oorandom/11.1.5 \
-    crate://crates.io/pango/0.21.3 \
-    crate://crates.io/pango-sys/0.21.2 \
-    crate://crates.io/pangocairo/0.21.2 \
-    crate://crates.io/pangocairo-sys/0.21.2 \
+    crate://crates.io/pango/0.22.0 \
+    crate://crates.io/pango-sys/0.22.0 \
+    crate://crates.io/pangocairo/0.22.0 \
+    crate://crates.io/pangocairo-sys/0.22.0 \
     crate://crates.io/parking_lot/0.12.5 \
     crate://crates.io/parking_lot_core/0.9.12 \
     crate://crates.io/paste/1.0.15 \
@@ -191,13 +213,12 @@ SRC_URI += " \
     crate://crates.io/phf_shared/0.11.3 \
     crate://crates.io/phf_shared/0.13.1 \
     crate://crates.io/pin-project-lite/0.2.16 \
-    crate://crates.io/pin-utils/0.1.0 \
     crate://crates.io/pkg-config/0.3.32 \
     crate://crates.io/plotters/0.3.7 \
     crate://crates.io/plotters-backend/0.3.7 \
     crate://crates.io/plotters-svg/0.3.7 \
-    crate://crates.io/png/0.18.0 \
-    crate://crates.io/portable-atomic/1.11.1 \
+    crate://crates.io/png/0.18.1 \
+    crate://crates.io/portable-atomic/1.13.0 \
     crate://crates.io/portable-atomic-util/0.2.4 \
     crate://crates.io/potential_utf/0.1.4 \
     crate://crates.io/powerfmt/0.2.0 \
@@ -206,21 +227,21 @@ SRC_URI += " \
     crate://crates.io/predicates/3.1.3 \
     crate://crates.io/predicates-core/1.0.9 \
     crate://crates.io/predicates-tree/1.0.12 \
-    crate://crates.io/proc-macro-crate/3.4.0 \
-    crate://crates.io/proc-macro2/1.0.103 \
+    crate://crates.io/pretty_assertions/1.4.1 \
+    crate://crates.io/proc-macro2/1.0.106 \
     crate://crates.io/proptest/1.9.0 \
-    crate://crates.io/pxfm/0.1.25 \
+    crate://crates.io/pxfm/0.1.27 \
     crate://crates.io/quick-error/1.2.3 \
     crate://crates.io/quick-error/2.0.1 \
-    crate://crates.io/quote/1.0.41 \
+    crate://crates.io/quote/1.0.44 \
     crate://crates.io/r-efi/5.3.0 \
     crate://crates.io/rand/0.8.5 \
     crate://crates.io/rand/0.9.2 \
     crate://crates.io/rand_chacha/0.9.0 \
     crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/rand_core/0.9.3 \
+    crate://crates.io/rand_core/0.9.5 \
     crate://crates.io/rand_xorshift/0.4.0 \
-    crate://crates.io/rangemap/1.6.0 \
+    crate://crates.io/rangemap/1.7.1 \
     crate://crates.io/rawpointer/0.2.1 \
     crate://crates.io/rayon/1.11.0 \
     crate://crates.io/rayon-core/1.13.0 \
@@ -230,26 +251,27 @@ SRC_URI += " \
     crate://crates.io/regex-automata/0.4.13 \
     crate://crates.io/regex-syntax/0.8.8 \
     crate://crates.io/rgb/0.8.52 \
-    crate://crates.io/rustix/1.1.2 \
+    crate://crates.io/rustc_version/0.4.1 \
+    crate://crates.io/rustix/1.1.3 \
     crate://crates.io/rustversion/1.0.22 \
     crate://crates.io/rusty-fork/0.3.1 \
-    crate://crates.io/ryu/1.0.20 \
     crate://crates.io/safe_arch/0.7.4 \
     crate://crates.io/same-file/1.0.6 \
     crate://crates.io/scopeguard/1.2.0 \
     crate://crates.io/selectors/0.31.0 \
+    crate://crates.io/semver/1.0.27 \
     crate://crates.io/serde/1.0.228 \
     crate://crates.io/serde_core/1.0.228 \
     crate://crates.io/serde_derive/1.0.228 \
-    crate://crates.io/serde_json/1.0.145 \
-    crate://crates.io/serde_spanned/1.0.3 \
-    crate://crates.io/servo_arc/0.4.1 \
+    crate://crates.io/serde_json/1.0.149 \
+    crate://crates.io/serde_spanned/1.0.4 \
+    crate://crates.io/servo_arc/0.4.3 \
     crate://crates.io/sha2/0.10.9 \
-    crate://crates.io/shell-words/1.1.0 \
+    crate://crates.io/shell-words/1.1.1 \
     crate://crates.io/shlex/1.3.0 \
     crate://crates.io/simba/0.9.1 \
-    crate://crates.io/simd-adler32/0.3.7 \
-    crate://crates.io/siphasher/1.0.1 \
+    crate://crates.io/simd-adler32/0.3.8 \
+    crate://crates.io/siphasher/1.0.2 \
     crate://crates.io/slab/0.4.11 \
     crate://crates.io/smallvec/1.15.1 \
     crate://crates.io/stable_deref_trait/1.2.1 \
@@ -259,27 +281,26 @@ SRC_URI += " \
     crate://crates.io/string_cache_codegen/0.5.4 \
     crate://crates.io/stringprep/0.1.5 \
     crate://crates.io/strsim/0.11.1 \
-    crate://crates.io/syn/2.0.108 \
+    crate://crates.io/syn/2.0.114 \
     crate://crates.io/synstructure/0.13.2 \
     crate://crates.io/system-deps/7.0.7 \
     crate://crates.io/target-lexicon/0.13.3 \
-    crate://crates.io/tempfile/3.23.0 \
+    crate://crates.io/tempfile/3.24.0 \
     crate://crates.io/tendril/0.4.3 \
     crate://crates.io/termtree/0.5.1 \
-    crate://crates.io/thiserror/2.0.17 \
-    crate://crates.io/thiserror-impl/2.0.17 \
-    crate://crates.io/time/0.3.44 \
-    crate://crates.io/time-core/0.1.6 \
-    crate://crates.io/time-macros/0.2.24 \
+    crate://crates.io/thiserror/2.0.18 \
+    crate://crates.io/thiserror-impl/2.0.18 \
+    crate://crates.io/time/0.3.47 \
+    crate://crates.io/time-core/0.1.8 \
+    crate://crates.io/time-macros/0.2.27 \
     crate://crates.io/tinystr/0.8.2 \
     crate://crates.io/tinytemplate/1.2.1 \
     crate://crates.io/tinyvec/1.10.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/toml/0.9.8 \
-    crate://crates.io/toml_datetime/0.7.3 \
-    crate://crates.io/toml_edit/0.23.7 \
-    crate://crates.io/toml_parser/1.0.4 \
-    crate://crates.io/toml_writer/1.0.4 \
+    crate://crates.io/toml/0.9.11+spec-1.1.0 \
+    crate://crates.io/toml_datetime/0.7.5+spec-1.1.0 \
+    crate://crates.io/toml_parser/1.0.6+spec-1.1.0 \
+    crate://crates.io/toml_writer/1.0.6+spec-1.1.0 \
     crate://crates.io/ttf-parser/0.25.1 \
     crate://crates.io/typenum/1.19.0 \
     crate://crates.io/unarray/0.1.4 \
@@ -287,7 +308,7 @@ SRC_URI += " \
     crate://crates.io/unicode-ident/1.0.22 \
     crate://crates.io/unicode-normalization/0.1.25 \
     crate://crates.io/unicode-properties/0.1.4 \
-    crate://crates.io/url/2.5.7 \
+    crate://crates.io/url/2.5.8 \
     crate://crates.io/utf-8/0.7.6 \
     crate://crates.io/utf8_iter/1.0.4 \
     crate://crates.io/utf8parse/0.2.2 \
@@ -295,14 +316,14 @@ SRC_URI += " \
     crate://crates.io/version_check/0.9.5 \
     crate://crates.io/wait-timeout/0.2.1 \
     crate://crates.io/walkdir/2.5.0 \
-    crate://crates.io/wasip2/1.0.1+wasi-0.2.4 \
-    crate://crates.io/wasm-bindgen/0.2.105 \
-    crate://crates.io/wasm-bindgen-macro/0.2.105 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.105 \
-    crate://crates.io/wasm-bindgen-shared/0.2.105 \
-    crate://crates.io/web-sys/0.3.82 \
+    crate://crates.io/wasip2/1.0.2+wasi-0.2.9 \
+    crate://crates.io/wasm-bindgen/0.2.108 \
+    crate://crates.io/wasm-bindgen-macro/0.2.108 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.108 \
+    crate://crates.io/wasm-bindgen-shared/0.2.108 \
+    crate://crates.io/web-sys/0.3.85 \
     crate://crates.io/web_atoms/0.1.3 \
-    crate://crates.io/weezl/0.1.10 \
+    crate://crates.io/weezl/0.1.12 \
     crate://crates.io/wide/0.7.33 \
     crate://crates.io/winapi/0.3.9 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
@@ -314,43 +335,25 @@ SRC_URI += " \
     crate://crates.io/windows-link/0.2.1 \
     crate://crates.io/windows-result/0.4.1 \
     crate://crates.io/windows-strings/0.5.1 \
-    crate://crates.io/windows-sys/0.59.0 \
-    crate://crates.io/windows-sys/0.60.2 \
     crate://crates.io/windows-sys/0.61.2 \
-    crate://crates.io/windows-targets/0.52.6 \
-    crate://crates.io/windows-targets/0.53.5 \
-    crate://crates.io/windows_aarch64_gnullvm/0.52.6 \
-    crate://crates.io/windows_aarch64_gnullvm/0.53.1 \
-    crate://crates.io/windows_aarch64_msvc/0.52.6 \
-    crate://crates.io/windows_aarch64_msvc/0.53.1 \
-    crate://crates.io/windows_i686_gnu/0.52.6 \
-    crate://crates.io/windows_i686_gnu/0.53.1 \
-    crate://crates.io/windows_i686_gnullvm/0.52.6 \
-    crate://crates.io/windows_i686_gnullvm/0.53.1 \
-    crate://crates.io/windows_i686_msvc/0.52.6 \
-    crate://crates.io/windows_i686_msvc/0.53.1 \
-    crate://crates.io/windows_x86_64_gnu/0.52.6 \
-    crate://crates.io/windows_x86_64_gnu/0.53.1 \
-    crate://crates.io/windows_x86_64_gnullvm/0.52.6 \
-    crate://crates.io/windows_x86_64_gnullvm/0.53.1 \
-    crate://crates.io/windows_x86_64_msvc/0.52.6 \
-    crate://crates.io/windows_x86_64_msvc/0.53.1 \
-    crate://crates.io/winnow/0.7.13 \
-    crate://crates.io/wit-bindgen/0.46.0 \
+    crate://crates.io/winnow/0.7.14 \
+    crate://crates.io/wit-bindgen/0.51.0 \
     crate://crates.io/writeable/0.6.2 \
     crate://crates.io/xml5ever/0.35.0 \
+    crate://crates.io/yansi/1.0.1 \
     crate://crates.io/yeslogic-fontconfig-sys/6.0.0 \
     crate://crates.io/yoke/0.8.1 \
     crate://crates.io/yoke-derive/0.8.1 \
-    crate://crates.io/zerocopy/0.8.27 \
-    crate://crates.io/zerocopy-derive/0.8.27 \
+    crate://crates.io/zerocopy/0.8.36 \
+    crate://crates.io/zerocopy-derive/0.8.36 \
     crate://crates.io/zerofrom/0.1.6 \
     crate://crates.io/zerofrom-derive/0.1.6 \
     crate://crates.io/zerotrie/0.2.3 \
     crate://crates.io/zerovec/0.11.5 \
     crate://crates.io/zerovec-derive/0.11.2 \
-    crate://crates.io/zune-core/0.4.12 \
-    crate://crates.io/zune-jpeg/0.4.21 \
+    crate://crates.io/zmij/1.0.17 \
+    crate://crates.io/zune-core/0.5.1 \
+    crate://crates.io/zune-jpeg/0.5.13 \
 "
 
 SRC_URI[adler2-2.0.1.sha256sum] = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
@@ -362,10 +365,10 @@ SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a312
 SRC_URI[anstream-0.6.21.sha256sum] = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a"
 SRC_URI[anstyle-1.0.13.sha256sum] = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
 SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
-SRC_URI[anstyle-query-1.1.4.sha256sum] = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2"
-SRC_URI[anstyle-wincon-3.0.10.sha256sum] = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a"
+SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
+SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
 SRC_URI[approx-0.5.1.sha256sum] = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-SRC_URI[assert_cmd-2.1.1.sha256sum] = "bcbb6924530aa9e0432442af08bbcafdad182db80d2e560da42a6d442535bf85"
+SRC_URI[assert_cmd-2.1.2.sha256sum] = "9c5bcfa8749ac45dd12cb11055aeeb6b27a3895560d60d71e3c23bf979e60514"
 SRC_URI[autocfg-1.5.0.sha256sum] = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
 SRC_URI[av-data-0.4.4.sha256sum] = "fca67ba5d317924c02180c576157afd54babe48a76ebc66ce6d34bb8ba08308e"
 SRC_URI[bit-set-0.8.0.sha256sum] = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
@@ -376,30 +379,30 @@ SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c0840847
 SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 SRC_URI[block-padding-0.3.3.sha256sum] = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 SRC_URI[bstr-1.12.1.sha256sum] = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
-SRC_URI[bumpalo-3.19.0.sha256sum] = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+SRC_URI[bumpalo-3.19.1.sha256sum] = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
 SRC_URI[byte-slice-cast-1.2.3.sha256sum] = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d"
 SRC_URI[bytecount-0.6.9.sha256sum] = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
 SRC_URI[bytemuck-1.24.0.sha256sum] = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
 SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 SRC_URI[byteorder-lite-0.1.0.sha256sum] = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
-SRC_URI[bytes-1.10.1.sha256sum] = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
-SRC_URI[cairo-rs-0.21.2.sha256sum] = "dfe4354df4da648870e363387679081f8f9fc538ec8b55901e3740c6a0ef81b1"
-SRC_URI[cairo-sys-rs-0.21.2.sha256sum] = "47d6c3300c7103eb8e4de07591003511aa25664438f8c6fc317a3a9902c103f8"
+SRC_URI[bytes-1.11.1.sha256sum] = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
+SRC_URI[cairo-rs-0.22.0.sha256sum] = "5cc8d9aa793480744cd9a0524fef1a2e197d9eaa0f739cde19d16aba530dcb95"
+SRC_URI[cairo-sys-rs-0.22.0.sha256sum] = "f8b4985713047f5faee02b8db6a6ef32bbb50269ff53c1aee716d1d195b76d54"
 SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 SRC_URI[cbc-0.1.2.sha256sum] = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
-SRC_URI[cc-1.2.44.sha256sum] = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3"
-SRC_URI[cfg-expr-0.20.4.sha256sum] = "9acd0bdbbf4b2612d09f52ba61da432140cb10930354079d0d53fafc12968726"
+SRC_URI[cc-1.2.54.sha256sum] = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583"
+SRC_URI[cfg-expr-0.20.6.sha256sum] = "78cef5b5a1a6827c7322ae2a636368a573006b27cfa76c7ebd53e834daeaab6a"
 SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
-SRC_URI[chrono-0.4.42.sha256sum] = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
+SRC_URI[chrono-0.4.43.sha256sum] = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
 SRC_URI[ciborium-0.2.2.sha256sum] = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 SRC_URI[ciborium-io-0.2.2.sha256sum] = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 SRC_URI[ciborium-ll-0.2.2.sha256sum] = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 SRC_URI[cipher-0.4.4.sha256sum] = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-SRC_URI[clap-4.5.51.sha256sum] = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
-SRC_URI[clap_builder-4.5.51.sha256sum] = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
-SRC_URI[clap_complete-4.5.60.sha256sum] = "8e602857739c5a4291dfa33b5a298aeac9006185229a700e5810a3ef7272d971"
-SRC_URI[clap_derive-4.5.49.sha256sum] = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
-SRC_URI[clap_lex-0.7.6.sha256sum] = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
+SRC_URI[clap-4.5.56.sha256sum] = "a75ca66430e33a14957acc24c5077b503e7d374151b2b4b3a10c83b4ceb4be0e"
+SRC_URI[clap_builder-4.5.56.sha256sum] = "793207c7fa6300a0608d1080b858e5fdbe713cdc1c8db9fb17777d8a13e63df0"
+SRC_URI[clap_complete-4.5.65.sha256sum] = "430b4dc2b5e3861848de79627b2bedc9f3342c7da5173a14eaa5d0f8dc18ae5d"
+SRC_URI[clap_derive-4.5.55.sha256sum] = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5"
+SRC_URI[clap_lex-0.7.7.sha256sum] = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
 SRC_URI[color_quant-1.1.0.sha256sum] = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
 SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
@@ -411,21 +414,22 @@ SRC_URI[crossbeam-deque-0.8.6.sha256sum] = "9dd111b7b7f7d55b72c0a6ae361660ee5853
 SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 SRC_URI[crossbeam-utils-0.8.21.sha256sum] = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
 SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
-SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
 SRC_URI[cssparser-0.35.0.sha256sum] = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa"
 SRC_URI[cssparser-color-0.3.0.sha256sum] = "6eeef9ae8c0e112edd89eb6406b3156ffa99c7e037b3baef1dbdf4158d35c324"
 SRC_URI[cssparser-macros-0.6.1.sha256sum] = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 SRC_URI[data-url-0.3.2.sha256sum] = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376"
-SRC_URI[dav1d-0.10.4.sha256sum] = "80c3f80814db85397819d464bb553268992c393b4b3b5554b89c1655996d5926"
+SRC_URI[dav1d-0.11.1.sha256sum] = "3ee89cb860616069c67520dcd66cacdb900b57c799f634a0eb6d91f6e2a82b61"
 SRC_URI[dav1d-sys-0.8.3.sha256sum] = "c3c91aea6668645415331133ed6f8ddf0e7f40160cd97a12d59e68716a58704b"
 SRC_URI[deranged-0.5.5.sha256sum] = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
-SRC_URI[derive_more-2.0.1.sha256sum] = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
-SRC_URI[derive_more-impl-2.0.1.sha256sum] = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
+SRC_URI[derive_more-2.1.1.sha256sum] = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
+SRC_URI[derive_more-impl-2.1.1.sha256sum] = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
+SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
 SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 SRC_URI[dlib-0.5.2.sha256sum] = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
-SRC_URI[dtoa-1.0.10.sha256sum] = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04"
+SRC_URI[dtoa-1.0.11.sha256sum] = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590"
 SRC_URI[dtoa-short-0.3.5.sha256sum] = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
 SRC_URI[ecb-0.1.2.sha256sum] = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7"
 SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
@@ -435,68 +439,88 @@ SRC_URI[errno-0.3.14.sha256sum] = "39cab71617ae0d63f51a36d69f866391735b51691dbda
 SRC_URI[fallible_collections-0.4.9.sha256sum] = "a88c69768c0a15262df21899142bc6df9b9b823546d4b4b9a7bc2d6c448ec6fd"
 SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
 SRC_URI[fdeflate-0.3.7.sha256sum] = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
-SRC_URI[find-msvc-tools-0.1.4.sha256sum] = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
-SRC_URI[flate2-1.1.5.sha256sum] = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
+SRC_URI[find-msvc-tools-0.1.8.sha256sum] = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
+SRC_URI[flate2-1.1.8.sha256sum] = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
 SRC_URI[float-cmp-0.10.0.sha256sum] = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8"
 SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 SRC_URI[form_urlencoded-1.2.2.sha256sum] = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
 SRC_URI[futf-0.1.5.sha256sum] = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
 SRC_URI[futures-channel-0.3.31.sha256sum] = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
-SRC_URI[futures-core-0.3.31.sha256sum] = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
+SRC_URI[futures-core-0.3.32.sha256sum] = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
 SRC_URI[futures-executor-0.3.31.sha256sum] = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
 SRC_URI[futures-io-0.3.31.sha256sum] = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
-SRC_URI[futures-macro-0.3.31.sha256sum] = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
-SRC_URI[futures-task-0.3.31.sha256sum] = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
-SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
+SRC_URI[futures-macro-0.3.32.sha256sum] = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
+SRC_URI[futures-task-0.3.32.sha256sum] = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
+SRC_URI[futures-util-0.3.32.sha256sum] = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
 SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-SRC_URI[gdk-pixbuf-0.21.2.sha256sum] = "2a3c64459f569154f37616fc28923bfac490d4aaa134aaf5eca58a2c0c13050f"
-SRC_URI[gdk-pixbuf-sys-0.21.2.sha256sum] = "3854ef7a6a8b8f3b4013a01d5f9cb0d1794ec4e810c6cb4e2cc6d980f1baf724"
-SRC_URI[generic-array-0.14.9.sha256sum] = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
+SRC_URI[gdk-pixbuf-0.22.0.sha256sum] = "25f420376dbee041b2db374ce4573892a36222bb3f6c0c43e24f0d67eae9b646"
+SRC_URI[gdk-pixbuf-sys-0.22.0.sha256sum] = "48f31b37b1fc4b48b54f6b91b7ef04c18e00b4585d98359dd7b998774bbd91fb"
+SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 SRC_URI[getrandom-0.3.4.sha256sum] = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
-SRC_URI[gif-0.13.3.sha256sum] = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b"
-SRC_URI[gio-0.21.4.sha256sum] = "daeff3dd716d1ba91850b976b76a1c2d28f99ef6c1602cd8fdaa8fab8017fd9c"
-SRC_URI[gio-sys-0.21.2.sha256sum] = "171ed2f6dd927abbe108cfd9eebff2052c335013f5879d55bab0dc1dee19b706"
-SRC_URI[glib-0.21.4.sha256sum] = "5b9dbecb1c33e483a98be4acfea2ab369e1c28f517c6eadb674537409c25c4b2"
-SRC_URI[glib-macros-0.21.4.sha256sum] = "880e524e0085f3546cfb38532b2c202c0d64741d9977a6e4aa24704bfc9f19fb"
-SRC_URI[glib-sys-0.21.2.sha256sum] = "d09d3d0fddf7239521674e57b0465dfbd844632fec54f059f7f56112e3f927e1"
-SRC_URI[gobject-sys-0.21.2.sha256sum] = "538e41d8776173ec107e7b0f2aceced60abc368d7e1d81c1f0e2ecd35f59080d"
+SRC_URI[gif-0.14.1.sha256sum] = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e"
+SRC_URI[gio-0.22.1.sha256sum] = "bb018ae3f3967134a833fac8a2568c3e698f4b95c658865360772d73803cc5de"
+SRC_URI[gio-sys-0.22.0.sha256sum] = "64729ba2772c080448f9f966dba8f4456beeb100d8c28a865ef8a0f2ef4987e1"
+SRC_URI[gio-unix-0.22.0.sha256sum] = "69db2f0bb80c9d97c315720c395db76d4649969bce3a130aea6c5c9d757bf80f"
+SRC_URI[gio-unix-sys-0.22.0.sha256sum] = "44bab97ce39112040216e268f074645f50b31caeb53af708ab5d7e4e67f0dbfd"
+SRC_URI[gio-win32-0.22.0.sha256sum] = "bcbc408e97739d418bed9200f4af709a47ccfbf7efb9adf02882ba2cdb02304f"
+SRC_URI[gio-win32-sys-0.22.0.sha256sum] = "d673cd130fa7b598cf3fa776265a8e4c02634f3283433d441b8fc6f9fe07f327"
+SRC_URI[glam-0.14.0.sha256sum] = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da"
+SRC_URI[glam-0.15.2.sha256sum] = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b"
+SRC_URI[glam-0.16.0.sha256sum] = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16"
+SRC_URI[glam-0.17.3.sha256sum] = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776"
+SRC_URI[glam-0.18.0.sha256sum] = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34"
+SRC_URI[glam-0.19.0.sha256sum] = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca"
+SRC_URI[glam-0.20.5.sha256sum] = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f"
+SRC_URI[glam-0.21.3.sha256sum] = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815"
+SRC_URI[glam-0.22.0.sha256sum] = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774"
+SRC_URI[glam-0.23.0.sha256sum] = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c"
+SRC_URI[glam-0.24.2.sha256sum] = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
+SRC_URI[glam-0.25.0.sha256sum] = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
+SRC_URI[glam-0.27.0.sha256sum] = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9"
+SRC_URI[glam-0.28.0.sha256sum] = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94"
+SRC_URI[glam-0.29.3.sha256sum] = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee"
+SRC_URI[glam-0.30.10.sha256sum] = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9"
+SRC_URI[glib-0.22.0.sha256sum] = "9a3b79a62980e85d61aae88988e5bcca6a35f05b0008e1333aa43bd61ef9bf35"
+SRC_URI[glib-macros-0.22.0.sha256sum] = "8b48a968528354e04603ae96205f00cf7e77347ffde0fc943a2159948d7d6d80"
+SRC_URI[glib-sys-0.22.0.sha256sum] = "48073e3b228419faa80b9b7f7122759d4ab2f44cd52a065fde7ca08f34c03147"
+SRC_URI[gobject-sys-0.22.0.sha256sum] = "18eda93f09d3778f38255b231b17ef67195013a592c91624a4daf8bead875565"
 SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
 SRC_URI[hashbrown-0.13.2.sha256sum] = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-SRC_URI[hashbrown-0.16.0.sha256sum] = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
+SRC_URI[hashbrown-0.16.1.sha256sum] = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
 SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-SRC_URI[iana-time-zone-0.1.64.sha256sum] = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
+SRC_URI[iana-time-zone-0.1.65.sha256sum] = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
 SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 SRC_URI[icu_collections-2.1.1.sha256sum] = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
 SRC_URI[icu_locale_core-2.1.1.sha256sum] = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
 SRC_URI[icu_normalizer-2.1.1.sha256sum] = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
 SRC_URI[icu_normalizer_data-2.1.1.sha256sum] = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
-SRC_URI[icu_properties-2.1.1.sha256sum] = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99"
-SRC_URI[icu_properties_data-2.1.1.sha256sum] = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899"
+SRC_URI[icu_properties-2.1.2.sha256sum] = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
+SRC_URI[icu_properties_data-2.1.2.sha256sum] = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
 SRC_URI[icu_provider-2.1.1.sha256sum] = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
 SRC_URI[idna-1.1.0.sha256sum] = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
 SRC_URI[idna_adapter-1.2.1.sha256sum] = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
-SRC_URI[image-0.25.8.sha256sum] = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7"
+SRC_URI[image-0.25.10.sha256sum] = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
 SRC_URI[image-webp-0.2.4.sha256sum] = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
-SRC_URI[indexmap-2.12.0.sha256sum] = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
+SRC_URI[indexmap-2.13.0.sha256sum] = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
 SRC_URI[inout-0.1.4.sha256sum] = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
 SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
 SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
 SRC_URI[itertools-0.14.0.sha256sum] = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
-SRC_URI[itoa-1.0.15.sha256sum] = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
-SRC_URI[jiff-0.2.15.sha256sum] = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49"
-SRC_URI[jiff-static-0.2.15.sha256sum] = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4"
-SRC_URI[jiff-tzdb-0.1.4.sha256sum] = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524"
+SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
+SRC_URI[jiff-0.2.18.sha256sum] = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50"
+SRC_URI[jiff-static-0.2.18.sha256sum] = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78"
+SRC_URI[jiff-tzdb-0.1.5.sha256sum] = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2"
 SRC_URI[jiff-tzdb-platform-0.1.3.sha256sum] = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
-SRC_URI[js-sys-0.3.82.sha256sum] = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
+SRC_URI[js-sys-0.3.85.sha256sum] = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
 SRC_URI[language-tags-0.3.2.sha256sum] = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
 SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-SRC_URI[libc-0.2.177.sha256sum] = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
+SRC_URI[libc-0.2.180.sha256sum] = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
 SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
 SRC_URI[linux-raw-sys-0.11.0.sha256sum] = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
 SRC_URI[litemap-0.8.1.sha256sum] = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
 SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
 SRC_URI[lock_api-0.4.14.sha256sum] = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
-SRC_URI[log-0.4.28.sha256sum] = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
+SRC_URI[log-0.4.29.sha256sum] = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
 SRC_URI[lopdf-0.38.0.sha256sum] = "c7184fdea2bc3cd272a1acec4030c321a8f9875e877b3f92a53f2f6033fdc289"
 SRC_URI[mac-0.1.1.sha256sum] = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
@@ -504,19 +528,20 @@ SRC_URI[markup5ever-0.35.0.sha256sum] = "311fe69c934650f8f19652b3946075f0fc41ad8
 SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 SRC_URI[matrixmultiply-0.3.10.sha256sum] = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
 SRC_URI[md-5-0.10.6.sha256sum] = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
-SRC_URI[memchr-2.7.6.sha256sum] = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
+SRC_URI[memchr-2.8.0.sha256sum] = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
 SRC_URI[miniz_oxide-0.8.9.sha256sum] = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
-SRC_URI[moxcms-0.7.9.sha256sum] = "0fbdd3d7436f8b5e892b8b7ea114271ff0fa00bc5acae845d53b07d498616ef6"
+SRC_URI[moxcms-0.8.1.sha256sum] = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
 SRC_URI[mp4parse-0.17.0.sha256sum] = "63a35203d3c6ce92d5251c77520acb2e57108c88728695aa883f70023624c570"
-SRC_URI[nalgebra-0.33.2.sha256sum] = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b"
-SRC_URI[nalgebra-macros-0.2.2.sha256sum] = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc"
+SRC_URI[mutants-0.0.3.sha256sum] = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126"
+SRC_URI[nalgebra-0.34.1.sha256sum] = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f"
+SRC_URI[nalgebra-macros-0.3.0.sha256sum] = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889"
 SRC_URI[new_debug_unreachable-1.0.6.sha256sum] = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
 SRC_URI[nom-8.0.0.sha256sum] = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
 SRC_URI[nom_locate-5.0.0.sha256sum] = "0b577e2d69827c4740cba2b52efaad1c4cc7c73042860b199710b3575c68438d"
 SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 SRC_URI[num-bigint-0.4.6.sha256sum] = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
 SRC_URI[num-complex-0.4.6.sha256sum] = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
-SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+SRC_URI[num-conv-0.2.0.sha256sum] = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
 SRC_URI[num-derive-0.4.2.sha256sum] = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 SRC_URI[num-rational-0.4.2.sha256sum] = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
@@ -527,10 +552,10 @@ SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849
 SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
 SRC_URI[once_cell_polyfill-1.70.2.sha256sum] = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
 SRC_URI[oorandom-11.1.5.sha256sum] = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
-SRC_URI[pango-0.21.3.sha256sum] = "e37b7a678e18c2e9f2485f7e39b7b2dac99590d5ddef08a7f56eae38a145402e"
-SRC_URI[pango-sys-0.21.2.sha256sum] = "f4f5daf21da43fba9f2a0092da0eebeb77637c23552bccaf58f791c518009c94"
-SRC_URI[pangocairo-0.21.2.sha256sum] = "7fe686297711b9c0499d0e292e86d343d90b4832d19ebff3d50ce3f627b64e17"
-SRC_URI[pangocairo-sys-0.21.2.sha256sum] = "e6263d7d919c8f3ccd31874774b5f7924e88f5b82ddee3163b3ef49197786a00"
+SRC_URI[pango-0.22.0.sha256sum] = "25d8f224eddef627b896d2f7b05725b3faedbd140e0e8343446f0d34f34238ee"
+SRC_URI[pango-sys-0.22.0.sha256sum] = "bbd111a20ca90fedf03e09c59783c679c00900f1d8491cca5399f5e33609d5d6"
+SRC_URI[pangocairo-0.22.0.sha256sum] = "d9f15369c787b1cc59a5b86eff6afffd5a9716c5beb4969d20b307cebfe7e407"
+SRC_URI[pangocairo-sys-0.22.0.sha256sum] = "d95cb73468373b9e568abb1afbaf5b42fe6ab9128fc41b5f2adbf69451c3c77f"
 SRC_URI[parking_lot-0.12.5.sha256sum] = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
 SRC_URI[parking_lot_core-0.9.12.sha256sum] = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
 SRC_URI[paste-1.0.15.sha256sum] = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
@@ -542,13 +567,12 @@ SRC_URI[phf_macros-0.11.3.sha256sum] = "f84ac04429c13a7ff43785d75ad27569f2951ce0
 SRC_URI[phf_shared-0.11.3.sha256sum] = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
 SRC_URI[phf_shared-0.13.1.sha256sum] = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
 SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
-SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
 SRC_URI[plotters-0.3.7.sha256sum] = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
 SRC_URI[plotters-backend-0.3.7.sha256sum] = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
 SRC_URI[plotters-svg-0.3.7.sha256sum] = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
-SRC_URI[png-0.18.0.sha256sum] = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0"
-SRC_URI[portable-atomic-1.11.1.sha256sum] = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+SRC_URI[png-0.18.1.sha256sum] = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
+SRC_URI[portable-atomic-1.13.0.sha256sum] = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
 SRC_URI[portable-atomic-util-0.2.4.sha256sum] = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
 SRC_URI[potential_utf-0.1.4.sha256sum] = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
 SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
@@ -557,21 +581,21 @@ SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a4
 SRC_URI[predicates-3.1.3.sha256sum] = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573"
 SRC_URI[predicates-core-1.0.9.sha256sum] = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa"
 SRC_URI[predicates-tree-1.0.12.sha256sum] = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c"
-SRC_URI[proc-macro-crate-3.4.0.sha256sum] = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
-SRC_URI[proc-macro2-1.0.103.sha256sum] = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
+SRC_URI[pretty_assertions-1.4.1.sha256sum] = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d"
+SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
 SRC_URI[proptest-1.9.0.sha256sum] = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40"
-SRC_URI[pxfm-0.1.25.sha256sum] = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84"
+SRC_URI[pxfm-0.1.27.sha256sum] = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8"
 SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
-SRC_URI[quote-1.0.41.sha256sum] = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
+SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
 SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
 SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
 SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[rand_core-0.9.3.sha256sum] = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
+SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
 SRC_URI[rand_xorshift-0.4.0.sha256sum] = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a"
-SRC_URI[rangemap-1.6.0.sha256sum] = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223"
+SRC_URI[rangemap-1.7.1.sha256sum] = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68"
 SRC_URI[rawpointer-0.2.1.sha256sum] = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 SRC_URI[rayon-1.11.0.sha256sum] = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f"
 SRC_URI[rayon-core-1.13.0.sha256sum] = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
@@ -581,26 +605,27 @@ SRC_URI[regex-1.12.2.sha256sum] = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa
 SRC_URI[regex-automata-0.4.13.sha256sum] = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
 SRC_URI[regex-syntax-0.8.8.sha256sum] = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
 SRC_URI[rgb-0.8.52.sha256sum] = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce"
-SRC_URI[rustix-1.1.2.sha256sum] = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+SRC_URI[rustc_version-0.4.1.sha256sum] = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+SRC_URI[rustix-1.1.3.sha256sum] = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
 SRC_URI[rustversion-1.0.22.sha256sum] = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
 SRC_URI[rusty-fork-0.3.1.sha256sum] = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2"
-SRC_URI[ryu-1.0.20.sha256sum] = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
 SRC_URI[safe_arch-0.7.4.sha256sum] = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 SRC_URI[selectors-0.31.0.sha256sum] = "5685b6ae43bfcf7d2e7dfcfb5d8e8f61b46442c902531e41a32a9a8bf0ee0fb6"
+SRC_URI[semver-1.0.27.sha256sum] = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
 SRC_URI[serde-1.0.228.sha256sum] = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
 SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
 SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
-SRC_URI[serde_json-1.0.145.sha256sum] = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
-SRC_URI[serde_spanned-1.0.3.sha256sum] = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
-SRC_URI[servo_arc-0.4.1.sha256sum] = "204ea332803bd95a0b60388590d59cf6468ec9becf626e2451f1d26a1d972de4"
+SRC_URI[serde_json-1.0.149.sha256sum] = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+SRC_URI[serde_spanned-1.0.4.sha256sum] = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
+SRC_URI[servo_arc-0.4.3.sha256sum] = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930"
 SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
-SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+SRC_URI[shell-words-1.1.1.sha256sum] = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77"
 SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 SRC_URI[simba-0.9.1.sha256sum] = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95"
-SRC_URI[simd-adler32-0.3.7.sha256sum] = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-SRC_URI[siphasher-1.0.1.sha256sum] = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
+SRC_URI[simd-adler32-0.3.8.sha256sum] = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
+SRC_URI[siphasher-1.0.2.sha256sum] = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
 SRC_URI[slab-0.4.11.sha256sum] = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
 SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
 SRC_URI[stable_deref_trait-1.2.1.sha256sum] = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
@@ -610,27 +635,26 @@ SRC_URI[string_cache-0.9.0.sha256sum] = "a18596f8c785a729f2819c0f6a7eae6ebeebdff
 SRC_URI[string_cache_codegen-0.5.4.sha256sum] = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
 SRC_URI[stringprep-0.1.5.sha256sum] = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1"
 SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
-SRC_URI[syn-2.0.108.sha256sum] = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917"
+SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
 SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
 SRC_URI[system-deps-7.0.7.sha256sum] = "48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f"
 SRC_URI[target-lexicon-0.13.3.sha256sum] = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c"
-SRC_URI[tempfile-3.23.0.sha256sum] = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
+SRC_URI[tempfile-3.24.0.sha256sum] = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
 SRC_URI[tendril-0.4.3.sha256sum] = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
 SRC_URI[termtree-0.5.1.sha256sum] = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
-SRC_URI[thiserror-2.0.17.sha256sum] = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
-SRC_URI[thiserror-impl-2.0.17.sha256sum] = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
-SRC_URI[time-0.3.44.sha256sum] = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
-SRC_URI[time-core-0.1.6.sha256sum] = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
-SRC_URI[time-macros-0.2.24.sha256sum] = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
+SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
+SRC_URI[thiserror-impl-2.0.18.sha256sum] = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
+SRC_URI[time-0.3.47.sha256sum] = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
+SRC_URI[time-core-0.1.8.sha256sum] = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
+SRC_URI[time-macros-0.2.27.sha256sum] = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
 SRC_URI[tinystr-0.8.2.sha256sum] = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
 SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
 SRC_URI[tinyvec-1.10.0.sha256sum] = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[toml-0.9.8.sha256sum] = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
-SRC_URI[toml_datetime-0.7.3.sha256sum] = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
-SRC_URI[toml_edit-0.23.7.sha256sum] = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
-SRC_URI[toml_parser-1.0.4.sha256sum] = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
-SRC_URI[toml_writer-1.0.4.sha256sum] = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
+SRC_URI[toml-0.9.11+spec-1.1.0.sha256sum] = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46"
+SRC_URI[toml_datetime-0.7.5+spec-1.1.0.sha256sum] = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
+SRC_URI[toml_parser-1.0.6+spec-1.1.0.sha256sum] = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
+SRC_URI[toml_writer-1.0.6+spec-1.1.0.sha256sum] = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
 SRC_URI[ttf-parser-0.25.1.sha256sum] = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
 SRC_URI[typenum-1.19.0.sha256sum] = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
 SRC_URI[unarray-0.1.4.sha256sum] = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
@@ -638,7 +662,7 @@ SRC_URI[unicode-bidi-0.3.18.sha256sum] = "5c1cb5db39152898a79168971543b1cb5020df
 SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
 SRC_URI[unicode-normalization-0.1.25.sha256sum] = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
 SRC_URI[unicode-properties-0.1.4.sha256sum] = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d"
-SRC_URI[url-2.5.7.sha256sum] = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+SRC_URI[url-2.5.8.sha256sum] = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
 SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 SRC_URI[utf8_iter-1.0.4.sha256sum] = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
 SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
@@ -646,14 +670,14 @@ SRC_URI[version-compare-0.2.1.sha256sum] = "03c2856837ef78f57382f06b2b8563a2f512
 SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
 SRC_URI[wait-timeout-0.2.1.sha256sum] = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11"
 SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
-SRC_URI[wasip2-1.0.1+wasi-0.2.4.sha256sum] = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
-SRC_URI[wasm-bindgen-0.2.105.sha256sum] = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
-SRC_URI[wasm-bindgen-macro-0.2.105.sha256sum] = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
-SRC_URI[wasm-bindgen-macro-support-0.2.105.sha256sum] = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
-SRC_URI[wasm-bindgen-shared-0.2.105.sha256sum] = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
-SRC_URI[web-sys-0.3.82.sha256sum] = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1"
+SRC_URI[wasip2-1.0.2+wasi-0.2.9.sha256sum] = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
+SRC_URI[wasm-bindgen-0.2.108.sha256sum] = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
+SRC_URI[wasm-bindgen-macro-0.2.108.sha256sum] = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
+SRC_URI[wasm-bindgen-macro-support-0.2.108.sha256sum] = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
+SRC_URI[wasm-bindgen-shared-0.2.108.sha256sum] = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
+SRC_URI[web-sys-0.3.85.sha256sum] = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
 SRC_URI[web_atoms-0.1.3.sha256sum] = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414"
-SRC_URI[weezl-0.1.10.sha256sum] = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3"
+SRC_URI[weezl-0.1.12.sha256sum] = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
 SRC_URI[wide-0.7.33.sha256sum] = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03"
 SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
@@ -665,40 +689,22 @@ SRC_URI[windows-interface-0.59.3.sha256sum] = "3f316c4a2570ba26bbec722032c4099d8
 SRC_URI[windows-link-0.2.1.sha256sum] = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
 SRC_URI[windows-result-0.4.1.sha256sum] = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
 SRC_URI[windows-strings-0.5.1.sha256sum] = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
-SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
-SRC_URI[windows-sys-0.60.2.sha256sum] = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
 SRC_URI[windows-sys-0.61.2.sha256sum] = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
-SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
-SRC_URI[windows-targets-0.53.5.sha256sum] = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
-SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
-SRC_URI[windows_aarch64_gnullvm-0.53.1.sha256sum] = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
-SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-SRC_URI[windows_aarch64_msvc-0.53.1.sha256sum] = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
-SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
-SRC_URI[windows_i686_gnu-0.53.1.sha256sum] = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
-SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-SRC_URI[windows_i686_gnullvm-0.53.1.sha256sum] = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
-SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-SRC_URI[windows_i686_msvc-0.53.1.sha256sum] = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
-SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
-SRC_URI[windows_x86_64_gnu-0.53.1.sha256sum] = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
-SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
-SRC_URI[windows_x86_64_gnullvm-0.53.1.sha256sum] = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
-SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
-SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
-SRC_URI[winnow-0.7.13.sha256sum] = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
-SRC_URI[wit-bindgen-0.46.0.sha256sum] = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
+SRC_URI[winnow-0.7.14.sha256sum] = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
+SRC_URI[wit-bindgen-0.51.0.sha256sum] = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
 SRC_URI[writeable-0.6.2.sha256sum] = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
 SRC_URI[xml5ever-0.35.0.sha256sum] = "ee3f1e41afb31a75aef076563b0ad3ecc24f5bd9d12a72b132222664eb76b494"
+SRC_URI[yansi-1.0.1.sha256sum] = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
 SRC_URI[yeslogic-fontconfig-sys-6.0.0.sha256sum] = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd"
 SRC_URI[yoke-0.8.1.sha256sum] = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
 SRC_URI[yoke-derive-0.8.1.sha256sum] = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
-SRC_URI[zerocopy-0.8.27.sha256sum] = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
-SRC_URI[zerocopy-derive-0.8.27.sha256sum] = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+SRC_URI[zerocopy-0.8.36.sha256sum] = "dafd85c832c1b68bbb4ec0c72c7f6f4fc5179627d2bc7c26b30e4c0cc11e76cc"
+SRC_URI[zerocopy-derive-0.8.36.sha256sum] = "7cb7e4e8436d9db52fbd6625dbf2f45243ab84994a72882ec8227b99e72b439a"
 SRC_URI[zerofrom-0.1.6.sha256sum] = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
 SRC_URI[zerofrom-derive-0.1.6.sha256sum] = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
 SRC_URI[zerotrie-0.2.3.sha256sum] = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
 SRC_URI[zerovec-0.11.5.sha256sum] = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
 SRC_URI[zerovec-derive-0.11.2.sha256sum] = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
-SRC_URI[zune-core-0.4.12.sha256sum] = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
-SRC_URI[zune-jpeg-0.4.21.sha256sum] = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
+SRC_URI[zmij-1.0.17.sha256sum] = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
+SRC_URI[zune-core-0.5.1.sha256sum] = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9"
+SRC_URI[zune-jpeg-0.5.13.sha256sum] = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c"
diff --git a/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch b/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
index f893d81..85ae52c 100644
--- a/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
+++ b/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
@@ -20,17 +20,17 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/rsvg_convert/tests/rsvg_convert.rs b/rsvg_convert/tests/rsvg_convert.rs
-index 3d0a340..90a4c2f 100644
+index dbf6dd7..2dbc8f6 100644
 --- a/rsvg_convert/tests/rsvg_convert.rs
 +++ b/rsvg_convert/tests/rsvg_convert.rs
-@@ -3,7 +3,6 @@ mod internal_predicates;
- use internal_predicates::file;
+@@ -4,7 +4,6 @@ use internal_predicates::file;
  
+ use assert_cmd::Command;
  use assert_cmd::assert::IntoOutputPredicate;
 -use assert_cmd::cargo::cargo_bin_cmd;
- use assert_cmd::Command;
  #[cfg(system_deps_have_cairo_pdf)]
  use chrono::{TimeZone, Utc};
+ use predicates::boolean::*;
 @@ -50,7 +49,7 @@ impl RsvgConvert {
          let path_str = config_file_path.to_str().unwrap();
          eprintln!("FONTCONFIG_FILE={path_str}");
diff --git a/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch b/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
index ab0ca2b..dff36aa 100644
--- a/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
+++ b/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
@@ -1,4 +1,8 @@
-gdk-pixbuf-loader/meson_install: improve argument parsing and logic
+From e46317a80e9d37d7b9c4cbf43ff1d60c3ac21fff Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 11 May 2026 12:34:53 +0100
+Subject: [PATCH 1/2] gdk-pixbuf-loader/meson_install: improve argument parsing
+ and logic
 
 Make the arguments more explicit by changing the path arguments to be
 specified with options, such as --queryloaders <path>. Previously one of
@@ -13,8 +17,83 @@ parser another Path instance does not need to be created.
 None of this changes the underlying logic, just makes it more consistent
 and explicit.
 
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/1194]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ gdk-pixbuf-loader/meson.build      |  4 +++-
+ gdk-pixbuf-loader/meson_install.py | 23 +++++++++++------------
+ 2 files changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build
+index 951d2d1c9..c7c017978 100644
+--- a/gdk-pixbuf-loader/meson.build
++++ b/gdk-pixbuf-loader/meson.build
+@@ -43,9 +43,11 @@ else
+ endif
+ 
+ pixbufloader_svg_install_args = [
+-  '--gdk-pixbuf-moduledir',
++  '--moduledir',
+   pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
++  '--queryloaders',
+   gdk_pixbuf_query_loaders,
++  '--cache-file',
+   pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
+ ]
+ 
+diff --git a/gdk-pixbuf-loader/meson_install.py b/gdk-pixbuf-loader/meson_install.py
+index ff003350f..d9bbbe433 100644
+--- a/gdk-pixbuf-loader/meson_install.py
++++ b/gdk-pixbuf-loader/meson_install.py
+@@ -6,29 +6,28 @@ import os
+ import subprocess
+ import sys
+ 
+-argparse = ArgumentParser('Deploy loaders.cache')
+-
+-argparse.add_argument('--gdk-pixbuf-moduledir', type=Path)
+-argparse.add_argument('gdk_pixbuf_queryloaders', type=Path)
+-argparse.add_argument('gdk_pixbuf_cache_file', type=Path)
+-argparse.add_argument('--show-cross-message', action='store_true')
+-
+ if __name__ == '__main__':
++    argparse = ArgumentParser(description='Deploy loaders.cache. Pass required paths, or --show-cross-message.')
++    argparse.add_argument('--queryloaders', type=Path, metavar="PATH", help="gdk-pixbuf-queryloaders to run")
++    argparse.add_argument('--moduledir', type=Path, metavar="PATH", help="installed gdk-pixbuf module directory")
++    argparse.add_argument('--cache-file', type=Path, metavar="PATH", help="module cache file to write")
++    argparse.add_argument('--show-cross-message', action='store_true', help="tell the user to run query-loaders manually")
+     args = argparse.parse_args()
+ 
+-    cache_file: Path = args.gdk_pixbuf_cache_file
++    if not(args.show_cross_message or (args.queryloaders and args.moduledir and args.cache_file)):
++        argparse.print_help()
++        sys.exit(1)
+ 
+     if args.show_cross_message or os.environ.get("DESTDIR"):
+         print('*** Note: Please run gdk-pixbuf-queryloaders manually ' +
+               'against the newly-built gdkpixbuf-svg loader', file=sys.stderr)
+     else:
+         env = os.environ.copy()
+-        env['GDK_PIXBUF_MODULEDIR'] = Path(args.gdk_pixbuf_moduledir).as_posix()
+-        with cache_file.open('w', encoding='utf-8') as f:
++        env['GDK_PIXBUF_MODULEDIR'] = args.moduledir.as_posix()
++        with args.cache_file.open('w', encoding='utf-8') as f:
+             subprocess.run(
+-                [Path(args.gdk_pixbuf_queryloaders).as_posix()],
++                [args.queryloaders.as_posix()],
+                 env=env,
+                 stdout=f,
+                 check=True
+             )
+-
+-- 
+2.43.0
 
-gdk-pixbuf-loader: fix install logic in cross builds
+
+From 85e11b2c1c6b2a27949a0e3e883c01e4b48060e0 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 11 May 2026 12:46:08 +0100
+Subject: [PATCH 2/2] gdk-pixbuf-loader: fix install logic in cross builds
 
 The logic in this install rule was getting complicated, but it should be
 quite simple really:
@@ -40,26 +119,30 @@ depending on whether query-loaders was found or not.
 
 This fixes the case where Meson can run host executables, but the target
 sysroot does not actually contain gdk-pixbuf-query-loaders.
+---
+ gdk-pixbuf-loader/meson.build | 28 +++++++++++++---------------
+ 1 file changed, 13 insertions(+), 15 deletions(-)
 
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git i/gdk-pixbuf-loader/meson.build w/gdk-pixbuf-loader/meson.build
-index 6fa10a68b..4f88ba037 100644
---- i/gdk-pixbuf-loader/meson.build
-+++ w/gdk-pixbuf-loader/meson.build
-@@ -37,19 +37,21 @@ pixbuf_thumbnailer = configure_file(
+diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build
+index c7c017978..4f88ba037 100644
+--- a/gdk-pixbuf-loader/meson.build
++++ b/gdk-pixbuf-loader/meson.build
+@@ -37,23 +37,21 @@ pixbuf_thumbnailer = configure_file(
  )
  
  if meson.can_run_host_binaries()
--  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'))
+-  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders')).path()
+-else
+-  gdk_pixbuf_query_loaders = pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', pkgconfig_define: ['prefix', prefix])
 +  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'), required: not meson.is_cross_build())
  endif
  
 -pixbufloader_svg_install_args = [
--  '--gdk-pixbuf-moduledir',
+-  '--moduledir',
 -  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
--  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', pkgconfig_define: ['prefix', prefix]),
+-  '--queryloaders',
+-  gdk_pixbuf_query_loaders,
+-  '--cache-file',
 -  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
 -]
 -
@@ -81,48 +164,6 @@ index 6fa10a68b..4f88ba037 100644
  endif
  
  meson.add_install_script(
-diff --git i/gdk-pixbuf-loader/meson_install.py w/gdk-pixbuf-loader/meson_install.py
-index ff003350f..d9bbbe433 100644
---- i/gdk-pixbuf-loader/meson_install.py
-+++ w/gdk-pixbuf-loader/meson_install.py
-@@ -6,29 +6,28 @@ import os
- import subprocess
- import sys
- 
--argparse = ArgumentParser('Deploy loaders.cache')
--
--argparse.add_argument('--gdk-pixbuf-moduledir', type=Path)
--argparse.add_argument('gdk_pixbuf_queryloaders', type=Path)
--argparse.add_argument('gdk_pixbuf_cache_file', type=Path)
--argparse.add_argument('--show-cross-message', action='store_true')
--
- if __name__ == '__main__':
-+    argparse = ArgumentParser(description='Deploy loaders.cache. Pass required paths, or --show-cross-message.')
-+    argparse.add_argument('--queryloaders', type=Path, metavar="PATH", help="gdk-pixbuf-queryloaders to run")
-+    argparse.add_argument('--moduledir', type=Path, metavar="PATH", help="installed gdk-pixbuf module directory")
-+    argparse.add_argument('--cache-file', type=Path, metavar="PATH", help="module cache file to write")
-+    argparse.add_argument('--show-cross-message', action='store_true', help="tell the user to run query-loaders manually")
-     args = argparse.parse_args()
- 
--    cache_file: Path = args.gdk_pixbuf_cache_file
-+    if not(args.show_cross_message or (args.queryloaders and args.moduledir and args.cache_file)):
-+        argparse.print_help()
-+        sys.exit(1)
- 
-     if args.show_cross_message or os.environ.get("DESTDIR"):
-         print('*** Note: Please run gdk-pixbuf-queryloaders manually ' +
-               'against the newly-built gdkpixbuf-svg loader', file=sys.stderr)
-     else:
-         env = os.environ.copy()
--        env['GDK_PIXBUF_MODULEDIR'] = Path(args.gdk_pixbuf_moduledir).as_posix()
--        with cache_file.open('w', encoding='utf-8') as f:
-+        env['GDK_PIXBUF_MODULEDIR'] = args.moduledir.as_posix()
-+        with args.cache_file.open('w', encoding='utf-8') as f:
-             subprocess.run(
--                [Path(args.gdk_pixbuf_queryloaders).as_posix()],
-+                [args.queryloaders.as_posix()],
-                 env=env,
-                 stdout=f,
-                 check=True
-             )
--
+-- 
+2.43.0
+
diff --git a/recipes-gnome/librsvg/librsvg_2.61.3.bb b/recipes-gnome/librsvg/librsvg_2.62.2.bb
similarity index 98%
rename from recipes-gnome/librsvg/librsvg_2.61.3.bb
rename to recipes-gnome/librsvg/librsvg_2.62.2.bb
index 19ceb69..c9bba2b 100644
--- a/recipes-gnome/librsvg/librsvg_2.61.3.bb
+++ b/recipes-gnome/librsvg/librsvg_2.62.2.bb
@@ -27,7 +27,7 @@ SRC_URI += "file://0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch \
             file://0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch \
             file://cross-query-loaders.patch \
             file://run-ptest"
-SRC_URI[archive.sha256sum] = "a56d2c80d744ad2f2718f85df466fe71d24ff1f9bc3e5ef588bde4d7e87815f2"
+SRC_URI[archive.sha256sum] = "c0c1367e381e1ae4842a78f1b57c656ff19b25637e3a6527cb44ae5a1cc68d65"
 
 UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 26/35] cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (24 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 25/35] librsvg: upgrade 2.61.3 -> 2.62.2 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 27/35] rust: export CARGO_BUILD_TARGET Scott Murray
                   ` (8 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: George Refseth <george.refseth@remarkable.no>

When git referenced crate dependency dependens on (root) workspace virtual
manifest, when patching path the path to the folder containing the crate
within the referenced repo need to be added to the patching process.
A subdir argument is added to address this need.

Example usage when repo contains an api crate defining the api for org/repo:
SRC_URI:append = "git://git@github.com/<org>/<repo>.git;name=api;destsuffix=repo-api;subdir=crates/api;type=git-dependency"

Cc: Erik Wierich <erik@riscstar.com>
Signed-off-by: George Refseth <george.refseth@remarkable.no>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit e955099a2eeff111709de180b127db866b217600)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/cargo_common.bbclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/classes-recipe/cargo_common.bbclass b/classes-recipe/cargo_common.bbclass
index db050ca..34fd1e7 100644
--- a/classes-recipe/cargo_common.bbclass
+++ b/classes-recipe/cargo_common.bbclass
@@ -154,6 +154,9 @@ python cargo_common_do_patch_paths() {
                     repo = '%s://%s@%s%s' % (ud.proto, ud.user, ud.host, ud.path)
                 else:
                     repo = '%s://%s%s' % (ud.proto, ud.host, ud.path)
+                subdir = ud.parm.get('subdir')
+                if subdir is not None:
+                    destsuffix = os.path.join(destsuffix, subdir)
                 path = '%s = { path = "%s" }' % (name, os.path.join(workdir, destsuffix))
                 patches.setdefault(repo, []).append(path)
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 27/35] rust: export CARGO_BUILD_TARGET
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (25 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 26/35] cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 28/35] rust: Upgrade 1.95.0 -> 1.96.0 Scott Murray
                   ` (7 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Jesse Van Gavere <jesse.vangavere@teledyne.com>

To cross compile a rust project with the SDK one currently has to know
the associated target sys and run cargo build with it, by setting
CARGO_BUILD_TARGET to the rust target sys, running cargo build after
sourcing the SDK will immediately have the correct target.
See https://doc.rust-lang.org/cargo/reference/config.html#buildtarget

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Jesse Van Gavere <jesse.vangavere@teledyne.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
(adapted from oe-core commit dc1a3a439c57c59578abbc474d10779de4d42c5a)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-devtools/rust/rust-cross-canadian.inc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/recipes-devtools/rust/rust-cross-canadian.inc b/recipes-devtools/rust/rust-cross-canadian.inc
index 4478a7e..5a152bd 100644
--- a/recipes-devtools/rust/rust-cross-canadian.inc
+++ b/recipes-devtools/rust/rust-cross-canadian.inc
@@ -59,6 +59,7 @@ do_install () {
 
     cat <<- EOF > "${RUST_ENV_SETUP_SH}"
 	export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT"
+	export CARGO_BUILD_TARGET="${RUST_TARGET_SYS}"
 	export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
 	EOF
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 28/35] rust: Upgrade 1.95.0 -> 1.96.0
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (26 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 27/35] rust: export CARGO_BUILD_TARGET Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 29/35] librsvg: upgrade: 2.62.2 -> 2.62.3 Scott Murray
                   ` (6 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>

Rust Changes:
https://github.com/rust-lang/rust/releases/tag/1.96.0

Cargo Changes:
https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-196-2026-05-28

rust-target-config:
limit llvm-floatabi to ARM targets

Generate `llvm-floatabi` only for ARM/ARMv7 targets and set the
corresponding Rust target ABI (`eabi` or `eabihf`) according to
`TARGET_FPU`.

`llvm-floatabi` is an ARM-specific LLVM setting (Rust currently
uses it only for ARM targets) and should not be emitted for
other architectures.
https://github.com/rust-lang/rust/blob/main/compiler/rustc_target/src/spec/mod.rs#L2619

Following upstream Rust changes that tightened validation of
target ABI fields, ARM targets must provide an explicit ABI in
addition to the float ABI configuration. Match the ABI settings
used by Rust's built-in ARM target specifications when
generating target JSON files.

Upstream-Reference:
https://github.com/rust-lang/rust/commit/40ebcc031da647d6a76deaf05c471b7a1d4aa228
("Rename target.abi to target.cfg_abi and enum-ify llvm_abiname")

Drop merged patches:
0001-Update-call-llvm-intrinsics-test.patch
0001-Fix-multiple-option-or-permutations-test-for-big-end.patch

Updated patch:
rust-oe-selftest.patch

New patch:
0003-explicit-tail-calls-disable-two-tests.patch
Backport two commits that disable two failing tests on LoongArch.

Selftest Changes:

Ignore one failing test for arm
tests/ui/c-variadic/same-program-multiple-abis-arm.rs
The test is marked ignore-thumb and contains ARM-mode assembly (stmib sp, {r2, r3}).
Our target enables +thumb-mode by default, causing LLVM to assemble the naked_asm!
block in Thumb state, where the instruction is invalid. The resulting failure is due
to ARM-vs-Thumb assembly mode, not the c-variadic ABI behavior being tested. Therefore
the test is not applicable to our target configuration.

Ignore one failing test for riscv64
tests/assembly-llvm/riscv-redundant-memory-stores.rs
https://github.com/rust-lang/rust/issues/157074

Excluded tests:
+--------+----------+---------+
| Before  |  After  | Skipped |
+---------+---------+---------+
|   39    |   41    |   +2    |
+--------+----------+---------+

Test results:

rust v1.96.0
+-------------+---------+---------+
| Machine     | Passed  | Skipped |
+-------------+---------+---------+
| qemux86-64  |  22436  |   732   |
| qemux86     |  22190  |   978   |
| qemuarm64   |  22262  |   906   |
| qemuarm     |  22172  |   996   |
| qemuriscv64 |  22216  |   952   |
+-------------+---------+---------+

Test results difference (1.96.0 - 1.95.0):

+-------------+--------+---------+
| Machine     | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64  |  +249  |   +43   |
| qemux86     |  +261  |   +31   |
| qemuarm64   |  +268  |   +24   |
| qemuarm     |  +262  |   +30   |
| qemuriscv64 |  +261  |   +31   |
+-------------+--------+---------+

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit b23ee2d0c1a41fee92e42f294af5088c5aa728c2)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/rust-target-config.bbclass     |  11 +-
 conf/layer.conf                               |   2 +-
 .../rust/{cargo_1.95.0.bb => cargo_1.96.0.bb} |   0
 ...ion-or-permutations-test-for-big-end.patch | 121 ------------------
 ...001-Update-call-llvm-intrinsics-test.patch |  86 -------------
 ...xplicit-tail-calls-disable-two-tests.patch |  39 ++++++
 .../rust/files/rust-oe-selftest.patch         |  32 ++++-
 ...ibstd-rs_1.95.0.bb => libstd-rs_1.96.0.bb} |   0
 ....95.0.bb => rust-cross-canadian_1.96.0.bb} |   0
 ...ust-llvm_1.95.0.bb => rust-llvm_1.96.0.bb} |   0
 recipes-devtools/rust/rust-snapshot.inc       | 104 +++++++--------
 recipes-devtools/rust/rust-source.inc         |   5 +-
 .../rust/{rust_1.95.0.bb => rust_1.96.0.bb}   |   0
 13 files changed, 129 insertions(+), 271 deletions(-)
 rename recipes-devtools/rust/{cargo_1.95.0.bb => cargo_1.96.0.bb} (100%)
 delete mode 100644 recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch
 delete mode 100644 recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
 create mode 100644 recipes-devtools/rust/files/0003-explicit-tail-calls-disable-two-tests.patch
 rename recipes-devtools/rust/{libstd-rs_1.95.0.bb => libstd-rs_1.96.0.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.95.0.bb => rust-cross-canadian_1.96.0.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.95.0.bb => rust-llvm_1.96.0.bb} (100%)
 rename recipes-devtools/rust/{rust_1.95.0.bb => rust_1.96.0.bb} (100%)

diff --git a/classes-recipe/rust-target-config.bbclass b/classes-recipe/rust-target-config.bbclass
index 8fda878..f10e8b6 100644
--- a/classes-recipe/rust-target-config.bbclass
+++ b/classes-recipe/rust-target-config.bbclass
@@ -399,10 +399,13 @@ def rust_gen_target(d, thing, wd, arch):
     if features != "":
         tspec['features'] = features
     fpu = d.getVar('TARGET_FPU')
-    if fpu in ["soft", "softfp"]:
-        tspec['llvm-floatabi'] = "soft"
-    elif fpu == "hard":
-        tspec['llvm-floatabi'] = "hard"
+    if arch in ["arm", "armv7"]:
+        if fpu in ["soft", "softfp"]:
+            tspec['abi'] = "eabi"
+            tspec['llvm-floatabi'] = "soft"
+        elif fpu == "hard":
+            tspec['abi'] = "eabihf"
+            tspec['llvm-floatabi'] = "hard"
     tspec['default-uwtable'] = True
     tspec['dynamic-linking'] = True
     tspec['executables'] = True
diff --git a/conf/layer.conf b/conf/layer.conf
index c3688f5..36d14f4 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.95.0%"
+RUSTVERSION ?= "1.96.0%"
diff --git a/recipes-devtools/rust/cargo_1.95.0.bb b/recipes-devtools/rust/cargo_1.96.0.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.95.0.bb
rename to recipes-devtools/rust/cargo_1.96.0.bb
diff --git a/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch b/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch
deleted file mode 100644
index a36089c..0000000
--- a/recipes-devtools/rust/files/0001-Fix-multiple-option-or-permutations-test-for-big-end.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ryan Ward <rwardd@users.noreply.github.com>
-Date: Tue, 28 Jan 2026 12:21:35 +0000
-Subject: [PATCH] Fix multiple-option-or-permutations test for big-endian
- targets
-
-The FileCheck tests for Option::or on slices assumed little-endian
-layout. On big-endian targets (e.g. powerpc), the Option discriminant
-resides in the high byte, so LLVM emits an lshr before the trunc.
-
-Add only-endian-big directive support and use BIG/LITTLE revisions to
-cover both cases.
-
-Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/151780]
-Signed-off-by: Ryan Ward <rwardd@users.noreply.github.com>
-Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
----
- .../compiletest/src/directives/directive_names.rs     |  1 +
- .../issues/multiple-option-or-permutations.rs         | 47 ++++++++++++++++--
- 2 files changed, 44 insertions(+), 4 deletions(-)
-
-diff --git a/src/tools/compiletest/src/directives/directive_names.rs b/src/tools/compiletest/src/directives/directive_names.rs
-index 9813ac7ff500d..334b2dda343a5 100644
---- a/src/tools/compiletest/src/directives/directive_names.rs
-+++ b/src/tools/compiletest/src/directives/directive_names.rs
-@@ -218,6 +218,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
-     "only-eabihf",
-     "only-elf",
-     "only-emscripten",
-+    "only-endian-big",
-     "only-gnu",
-     "only-i686-pc-windows-gnu",
-     "only-i686-pc-windows-msvc",
-diff --git a/tests/codegen-llvm/issues/multiple-option-or-permutations.rs b/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
-index 9ec4ec8eeb159..8756d45eaa03e 100644
---- a/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
-+++ b/tests/codegen-llvm/issues/multiple-option-or-permutations.rs
-@@ -1,4 +1,7 @@
- // Tests output of multiple permutations of `Option::or`
-+//@ revisions: LITTLE BIG
-+//@ [BIG] only-endian-big
-+//@ [LITTLE] ignore-endian-big
- //@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled
- 
- #![crate_type = "lib"]
-@@ -70,8 +73,16 @@ pub fn if_some_u8(opta: Option<u8>, optb: Option<u8>) -> Option<u8> {
- #[no_mangle]
- pub fn or_match_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
-     // CHECK: start:
--    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
--    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
-+    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
-+    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
-+    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
-+    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
-+    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
-+    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
-+    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
-     // CHECK: ret i16 [[R]]
-     match opta {
-         Some(x) => Some(x),
-@@ -84,8 +95,16 @@ pub fn or_match_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
- #[no_mangle]
- pub fn or_match_slice_alt_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
-     // CHECK: start:
--    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
--    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
-+    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
-+    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
-+    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
-+    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
-+    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
-+    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
-+    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
-     // CHECK: ret i16 [[R]]
-     match opta {
-         Some(_) => opta,
-@@ -98,8 +117,16 @@ pub fn or_match_slice_alt_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
- #[no_mangle]
- pub fn option_or_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
-     // CHECK: start:
--    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
--    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
-+    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
-+    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
-+    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
-+    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
-+    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
-+    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
-+    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
-     // CHECK: ret i16 [[R]]
-     opta.or(optb)
- }
-@@ -109,8 +136,16 @@ pub fn option_or_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
- #[no_mangle]
- pub fn if_some_slice_u8(opta: Option<[u8; 1]>, optb: Option<[u8; 1]>) -> Option<[u8; 1]> {
-     // CHECK: start:
--    // CHECK-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
--    // CHECK-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // LITTLE-NEXT: [[SOME_A:%.+]] = trunc i16 %0 to i1
-+    // LITTLE-NEXT: [[R:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[OPT_A:%.+]] = lshr i16 %0, 8
-+    // BIG-NEXT: [[SOME_A:%.+]] = trunc i16 [[OPT_A]] to i1
-+    // BIG-NEXT: [[OPT_B:%.+]] = lshr i16 %1, 8
-+    // BIG-NEXT: [[A_OR_B:%.+]] = select i1 [[SOME_A]], i16 [[OPT_A]], i16 [[OPT_B]]
-+    // BIG-NEXT: [[AGGREGATE:%.+]] = select i1 [[SOME_A]], i16 %0, i16 %1
-+    // BIG-NEXT: [[R_LOWER:%.+]] = and i16 [[AGGREGATE]], 255
-+    // BIG-NEXT: [[R_UPPER:%.+]] = shl nuw i16 [[A_OR_B]], 8
-+    // BIG-NEXT: [[R:%.+]] = or disjoint i16 [[R_UPPER]], [[R_LOWER]]
-     // CHECK: ret i16 [[R]]
-     if opta.is_some() { opta } else { optb }
- }
diff --git a/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch b/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
deleted file mode 100644
index 9fa91c0..0000000
--- a/recipes-devtools/rust/files/0001-Update-call-llvm-intrinsics-test.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 1d678f6b0859ea25c2abc22eb4104a025a5737e4 Mon Sep 17 00:00:00 2001
-From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
-Date: Mon, 2 Mar 2026 04:22:23 -0800
-Subject: [PATCH] Update call-llvm-intrinsics test for Rust 1.94.0 IR and
- multi-target CI
-
-Rust 1.94 now passes constants directly to llvm.sqrt.f32 instead of
-storing/loading via the stack.
-
-- Updated the FileCheck pattern to match the new IR:
-    // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
-  The test intent is unchanged: it still ensures the intrinsic is
-  emitted as a 'call' (not 'invoke').
-
-- Removed unnecessary local variables and Drop usage to work in
-  `#![no_core]` mode with minicore.
-
-- Added required crate attributes:
-    #![feature(no_core, lang_items)]
-    #![no_std]
-    #![no_core]
-
-- Replaced `//@ only-riscv64` (host-based execution) with explicit
-  revisions for:
-      riscv32gc-unknown-linux-gnu
-      riscv64gc-unknown-linux-gnu
-  This ensures deterministic multi-target coverage in CI without
-  relying on the host architecture.
-
-- Added `//@ needs-llvm-components: riscv` and
-  `//@ min-llvm-version: 21` for CI compatibility.
-
-Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/153285]
-Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
----
- .../riscv-abi/call-llvm-intrinsics.rs         | 26 +++++++++----------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs b/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
-index e72a649a530..fb520d38df3 100644
---- a/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
-+++ b/tests/codegen-llvm/riscv-abi/call-llvm-intrinsics.rs
-@@ -1,17 +1,20 @@
-+//@ add-minicore
- //@ compile-flags: -C no-prepopulate-passes
--
--//@ only-riscv64
-+//@ revisions: riscv32gc riscv64gc
-+//@ [riscv32gc] compile-flags: --target riscv32gc-unknown-linux-gnu
-+//@ [riscv32gc] needs-llvm-components: riscv
-+//@ [riscv64gc] compile-flags: --target riscv64gc-unknown-linux-gnu
-+//@ [riscv64gc] needs-llvm-components: riscv
-+//@ min-llvm-version: 21
-
- #![feature(link_llvm_intrinsics)]
-+#![feature(no_core, lang_items)]
-+#![no_std]
-+#![no_core]
- #![crate_type = "lib"]
-
--struct A;
--
--impl Drop for A {
--    fn drop(&mut self) {
--        println!("A");
--    }
--}
-+extern crate minicore;
-+use minicore::*;
-
- extern "C" {
-     #[link_name = "llvm.sqrt.f32"]
-@@ -19,12 +22,9 @@ fn drop(&mut self) {
- }
-
- pub fn do_call() {
--    let _a = A;
--
-     unsafe {
-         // Ensure that we `call` LLVM intrinsics instead of trying to `invoke` them
--        // CHECK: store float 4.000000e+00, ptr %{{.}}, align 4
--        // CHECK: call float @llvm.sqrt.f32(float %{{.}}
-+        // CHECK: call float @llvm.sqrt.f32(float 4.000000e+00)
-         sqrt(4.0);
-     }
- }
diff --git a/recipes-devtools/rust/files/0003-explicit-tail-calls-disable-two-tests.patch b/recipes-devtools/rust/files/0003-explicit-tail-calls-disable-two-tests.patch
new file mode 100644
index 0000000..7df6800
--- /dev/null
+++ b/recipes-devtools/rust/files/0003-explicit-tail-calls-disable-two-tests.patch
@@ -0,0 +1,39 @@
+Backport two commits that disable two failing tests on LoongArch.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/fb9e970c1f9377fa6c093f18aabab76204a18ea4]
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/250beb317422dad63d9bdefee9d82c55a732ba60]
+
+Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
+
+diff --git a/tests/ui/explicit-tail-calls/support/bystack.rs b/tests/ui/explicit-tail-calls/support/bystack.rs
+index ad1e082..b0ac29e 100644
+--- a/tests/ui/explicit-tail-calls/support/bystack.rs
++++ b/tests/ui/explicit-tail-calls/support/bystack.rs
+@@ -36,9 +36,11 @@
+ //@ revisions: loongarch32
+ //@[loongarch32] compile-flags: --target loongarch32-unknown-none
+ //@[loongarch32] needs-llvm-components: loongarch
++//@[loongarch32] ignore-llvm-version: 22 - 23
+ //@ revisions: loongarch64
+ //@[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu
+ //@[loongarch64] needs-llvm-components: loongarch
++//@[loongarch64] ignore-llvm-version: 22 - 23
+ //@ revisions: bpf
+ //@[bpf] compile-flags: --target bpfeb-unknown-none
+ //@[bpf] needs-llvm-components: bpf
+diff --git a/tests/ui/explicit-tail-calls/support/byval.rs b/tests/ui/explicit-tail-calls/support/byval.rs
+index 965c63c..d29d0d8 100644
+--- a/tests/ui/explicit-tail-calls/support/byval.rs
++++ b/tests/ui/explicit-tail-calls/support/byval.rs
+@@ -36,9 +36,11 @@
+ //@ revisions: loongarch32
+ //@[loongarch32] compile-flags: --target loongarch32-unknown-none
+ //@[loongarch32] needs-llvm-components: loongarch
++//@[loongarch32] ignore-llvm-version: 22 - 23
+ //@ revisions: loongarch64
+ //@[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu
+ //@[loongarch64] needs-llvm-components: loongarch
++//@[loongarch64] ignore-llvm-version: 22 - 23
+ //@ revisions: bpf
+ //@[bpf] compile-flags: --target bpfeb-unknown-none
+ //@[bpf] needs-llvm-components: bpf
diff --git a/recipes-devtools/rust/files/rust-oe-selftest.patch b/recipes-devtools/rust/files/rust-oe-selftest.patch
index 0ecfc7c..58c7644 100644
--- a/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ b/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -152,7 +152,7 @@ diff --git a/compiler/rustc_data_structures/src/tagged_ptr/tests.rs b/compiler/r
 index 160af8a65d..686f4607bb 100644
 --- a/compiler/rustc_data_structures/src/tagged_ptr/tests.rs
 +++ b/compiler/rustc_data_structures/src/tagged_ptr/tests.rs
-@@ -39,6 +39,7 @@ use crate::stable_hasher::{HashStable, StableHasher};
+@@ -43,6 +43,7 @@ use crate::stable_hasher::{HashStable, StableHasher};
  }
 
  #[test]
@@ -195,7 +195,7 @@ diff --git a/compiler/rustc_data_structures/src/vec_cache/tests.rs b/compiler/ru
 index a05f274136..0e69b4cb98 100644
 --- a/compiler/rustc_data_structures/src/vec_cache/tests.rs
 +++ b/compiler/rustc_data_structures/src/vec_cache/tests.rs
-@@ -17,6 +17,7 @@ fn vec_cache_insert_and_check() {
+@@ -53,6 +53,7 @@ fn vec_cache_insert_and_check() {
  }
 
  #[test]
@@ -219,9 +219,10 @@ diff --git a/tests/ui/linking/executable-no-mangle-strip.rs b/tests/ui/linking/e
 index cc283dc53..73cbab9c0 100644
 --- a/tests/ui/linking/executable-no-mangle-strip.rs
 +++ b/tests/ui/linking/executable-no-mangle-strip.rs
-@@ -1,5 +1,7 @@
+@@ -1,6 +1,8 @@
  //@ run-pass
  //@ ignore-windows-gnu: only statics marked with used can be GC-ed on windows-gnu
+ //@ ignore-wasm: wasm, for better or worse, exports all #[no_mangle]
 +//@ ignore-powerpc: this test is not working on powerpc
 +//  bug report: https://github.com/rust-lang/rust/issues/144777
  
@@ -279,7 +280,7 @@ index 89c61cd..144ea0e 100644
  use std::process::ExitCode;
 
  // A note about jemalloc: rustc uses jemalloc when built for CI and
-@@ -38,6 +38,7 @@
+@@ -41,6 +41,7 @@
  #[cfg(feature = "jemalloc")]
  use tikv_jemalloc_sys as _;
 
@@ -287,3 +288,26 @@ index 89c61cd..144ea0e 100644
  fn main() -> ExitCode {
      rustc_driver::main()
  }
+diff --git a/tests/assembly-llvm/riscv-redundant-memory-stores.rs b/tests/assembly-llvm/riscv-redundant-memory-stores.rs
+index acdb69d..2220e6d 100644
+--- a/tests/assembly-llvm/riscv-redundant-memory-stores.rs
++++ b/tests/assembly-llvm/riscv-redundant-memory-stores.rs
+@@ -4,6 +4,7 @@
+ //@ compile-flags: -Copt-level=3 --target riscv64gc-unknown-linux-gnu
+ //@ needs-llvm-components: riscv
+ //@ only-riscv64
++//@ ignore-riscv64
+
+ pub struct SomeComplexType {
+     a: u64,
+diff --git a/tests/ui/c-variadic/same-program-multiple-abis-arm.rs b/tests/ui/c-variadic/same-program-multiple-abis-arm.rs
+index fbc5573..f259529 100644
+--- a/tests/ui/c-variadic/same-program-multiple-abis-arm.rs
++++ b/tests/ui/c-variadic/same-program-multiple-abis-arm.rs
+@@ -1,5 +1,6 @@
+ //@ run-pass
+ //@ only-arm
++//@ ignore-arm
+ //@ ignore-thumb (this test uses arm assembly)
+ //@ only-eabihf (the assembly below requires float hardware support)
+ #![feature(c_variadic, c_variadic_naked_functions)]
diff --git a/recipes-devtools/rust/libstd-rs_1.95.0.bb b/recipes-devtools/rust/libstd-rs_1.96.0.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.95.0.bb
rename to recipes-devtools/rust/libstd-rs_1.96.0.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.95.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.96.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.95.0.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.96.0.bb
diff --git a/recipes-devtools/rust/rust-llvm_1.95.0.bb b/recipes-devtools/rust/rust-llvm_1.96.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.95.0.bb
rename to recipes-devtools/rust/rust-llvm_1.96.0.bb
diff --git a/recipes-devtools/rust/rust-snapshot.inc b/recipes-devtools/rust/rust-snapshot.inc
index d914cfd..dd28f91 100644
--- a/recipes-devtools/rust/rust-snapshot.inc
+++ b/recipes-devtools/rust/rust-snapshot.inc
@@ -4,58 +4,58 @@
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.94.0"
-
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "7261b2fcdb88aef8b21f4b9f915d9a75c959674193f5b38e13fab4569684fc5b"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "c781b3ef4fefa5508fbe05820eddc95e46351d905a30921cc020febd9c596a2e"
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "d57ab7b23b52cba46e58c78327904d0c7db19892988677b0d59495c8af4bb790"
-SRC_URI[clippy-snapshot-aarch64.sha256sum] = "f7450c414e394450b53be602d37c374e2a2c5a2f51be2b54faf3d1e3272160b1"
-
-SRC_URI[rustc-snapshot-i686.sha256sum] = "4d399ca0126adf0225340dc291623a47256b39be1d2567ad76dcd8990c2d6935"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "528c1dda491b25bb855426f48757773f4740c75d3c7271efffe7412c2fd5730d"
-SRC_URI[cargo-snapshot-i686.sha256sum] = "8699cfc772af3f651bf61e84a5b292e2ea62de9e1ab12d70e1384e57a5e91690"
-SRC_URI[clippy-snapshot-i686.sha256sum] = "54a3219f0541c080bc8e600c3cfe63d60963eb361c79fd645dd1b171019c4dac"
-
-SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "5392936010d422d7b8e5b83ba6c314da16f0d2b33fe57fdaf340b1e8a4a3a0fa"
-SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "a42ebd0c280f987f8c604fcb4549886f8954e7d025d54da3e63a5621ed268dd5"
-SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "83bda8ec4b506646eddab2b7b67e67f2fd9fccb74693a2558383868d82b85668"
-SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "98de442bc183acef748ae1f177498045bf8cbcf03ece6e75c2befa98fae8841b"
-
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "443475d3e1ec21d1f34b09f0cd6d1f10551535a736048ce7e21d7fa4faeb63c3"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "23e32cab484d7787b7966a0508c49baf231bcdb4a79a421ee85ca69e81f2a06f"
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "3274ccfb125035dc5846649b0bdce855f15c7a1824507360840c6a152599e4cf"
-SRC_URI[clippy-snapshot-powerpc.sha256sum] = "3a38eb50a04557801e50e2ab04e9e5db8f3f8f22dfea53d9a483efe1ea251129"
-
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "89874c3bebc35ace3b0d0dd225154e583a88caafe2c3d04476b21e4a6650f715"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "7713b676a37fbd0a52a711c2e3c205a917f8b05614e17cd9f7f37874a88469a3"
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "3c618a93585244a6fd70a857061b781590262f5f430f710f3687d5eaf54940bd"
-SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "209d292768bf89c8fc65f434257f7be39a7155e2b4590d917f3d873ce7f35fd3"
-
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "7fcdb850568508c0737e9079383f2aade49b1ee159620e67e041d0b756bfe4b5"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "094f3955828d6630b70a9c7c71e3165c3ffc7a301929601dde08501def623347"
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "6b44ebc7f08464e3a60ff16580729a99e727c7d4c2368a2d4b62d1acf4fd5c11"
-SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "11dc62c3b286dad9e22d9f0005dd75dcbb527da02b44f0729351dba5277f39c8"
-
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "ad0e35e45ceb4e874653444c393bc3b969da78729d92dc3d8852b0fd2eddcec6"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "32e9b7006f1269e48fb65af6298f6e8a222e1a8a2a20b112528bfb3dad2f65a8"
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "61795ca964c0b08faef359db32c3409e3348ed2bd7b4cad481b3c8cf8654b5d6"
-SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "c6ca11e8d361fcce46c684239ea2debfc53b97def7db0c2ff7014894de22b220"
-
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "9167f4a85ef250d6e613bdd3993d723fd225df67665fd2dbe61b0c780009c8e3"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "ea69833addbc9521664464418c7468871f7a80b16fd2c385f6213a6c99cedfe9"
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "f32f72efff179de4871fb5f5a3e030092d279ca70a71f0a4e49b3c8f69ef7ac4"
-SRC_URI[clippy-snapshot-s390x.sha256sum] = "8195f54d3ade3cbb7beb51df21cdc8ba30b6c72dbb9d9106eee10ea781a15062"
-
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "31a0d3ac9383dfdeb4fce86eeed5ade3230131c635264c0eab7252dbf235f28e"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "dd33653107c36e040082050d9e547e64dac5b456ba74069430d838c00c189a05"
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "8e17624f3de39e079845bfb25ed15a042f4b50ceca78e37c56c4b9b15949b9f7"
-SRC_URI[clippy-snapshot-x86_64.sha256sum] = "935529b0b9150084fa9cc1734c6598efe86b6e7d76f31ad3f8d4bb79ebf6031a"
-
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "9347cfdc1383f4d71db1d63960f289977abc93ee575ca84748516995a05fac94"
-
-SRC_URI[rust-std-snapshot-riscv64a23.sha256sum] = "f0b68c16c81b96562e039ff298dbf6a833cab112340c3b4bbd44dd3b45db6a31"
-
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "8f611aa779732057742fa289e7581bde48af1c97014c1f92fd21b5682eff1a16"
+SNAPSHOT_VERSION = "1.95.0"
+
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "0fe3689eeaed603e5ef24572d11597d3edadaefd2cb181674ad621260f2501d2"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "3a21b271b1ff973b94d69b25e7a39992f9fbcae1ab6d9475844a23e6ad3908ac"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "7c070aeba9bbf12073646995a03f36c346bb5f541d0078ba6d9dc2a7adaaf6af"
+SRC_URI[clippy-snapshot-aarch64.sha256sum] = "fb021e0c0fc2238be9266d7614f4a26bc372544c4cba3528d729ab24ad229fc9"
+
+SRC_URI[rustc-snapshot-i686.sha256sum] = "420f8fe21a8f668112d452b9d9533591c7dbb534fb13bcde9d5c8e56131b4456"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "527c5d5249a7f77b48d3c9da3ac512d27b47f43d08dbe3c6f82a3d5b35d8aa27"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "5292abf16427edd5e759f15177a3275ad21826e7a19fec58bf2ed6fd0b301f20"
+SRC_URI[clippy-snapshot-i686.sha256sum] = "8a6484dd4dee723a043006b9bdfc7b8440f83cff8662321ff28fa941d6f45b1e"
+
+SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "b1d248bcccbaf5a53a335c8882022af4f40879ac11ea85c1bac0500ed010fe33"
+SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "eaf2c37c3293eea742e7ab20f25718ab19c93bd381df8823113fce70460c19c3"
+SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "7203c690167b73dbe4c7cce03d302b437c1c422b6c3258a7c46d7fc1515820f8"
+SRC_URI[clippy-snapshot-loongarch64.sha256sum] = "fa0e8be99ddf2aca72aa7a911ecf43da80243a9a400d8c9d9c9c3ea994848bdb"
+
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "a0c42a1dc1aa7e06db4f17cdcce6a150c803e99118923ccddf88d66677acf48e"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "59e0abbaa246502521e37c55b8d6cf88d5b8a697b0c70c61ec189937308f7246"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "71ef5259df76102d0380c2a912384ac61ea280211fc4e2087744c476f2c8694b"
+SRC_URI[clippy-snapshot-powerpc.sha256sum] = "b12ffc360997ed6ee4b93c1e3bfccea84ab034d657f4411bd34ae4494b685c51"
+
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "946a84e6e9d6e13df5d6361578d9202714c08c2ebd3e09734df7cf4afaec60fd"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "cc7fb9aa289ff1756502ae16a05e2885289165f01ed94a7c2db6576b3dae74a6"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "e9909e9dd0c33e833dbd9c6b677aca49eb4ed2c09a30f1577c91aae70690674f"
+SRC_URI[clippy-snapshot-powerpc64.sha256sum] = "4e7c7d14165c2aef1275aac109092c2cd85396a483756b8084a5ab729b4580e0"
+
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "5333b31e79482c71337cae23074483cb392e708528e383d587a9cd160bfb63fa"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "2370d9266051a0b23346d42e43a00f91b2daff22a963fb03e28ae50cb0b76c50"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "a7744cab4bf40d78ff8344d320bb7a41fee4af1f2fbb6eb67aebcc13b30a49e0"
+SRC_URI[clippy-snapshot-powerpc64le.sha256sum] = "2d29ef33a42d2f2291fa0107e48ffc35b7be0d318ad6bfe231fb1b751a0fe214"
+
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "04752f3ad26bf07ddbe70b1dc759aafde75226dabd4fc6cff3d0b016e293b990"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "50fe7869e166bb4c990a0e1664366b1ffdbe669664b7663cd03c079bd0efdcac"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "240d7ff48881232b78ea31648621832b36a401872499d0a3a1419e4a9da5c43b"
+SRC_URI[clippy-snapshot-riscv64gc.sha256sum] = "e72e423ab27da0f0f38b71ff622b357028206d551d10b62cabf6845111805701"
+
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "4f3812e0371d8eea904b0fbb08b94043d2ba7227632239e94ce7b35ef5285c2e"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "31978c1286afff9a0bb7f01c2ae4a39f40727b6100a82b6d934f146b06cde510"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "01f2854ed29843949fb5baab852316c36382e9df6d39166508006c1dad830f08"
+SRC_URI[clippy-snapshot-s390x.sha256sum] = "39ca2e54ba9945ca94ffa4ab9a276f192d993be331ed25a53ab0e1039dd60528"
+
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "8426a3d170a5879f5682f5fbdd024a1779b3951e7baba685af2d6dc32a6dfc15"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "047ea7098803d3500fa1072e9cee5392697e21525559e4458128a2bf874aa382"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "e74edd2cf7d0f1f1383b4f00eb90c843750bc489e2ccf7214e6476678a907425"
+SRC_URI[clippy-snapshot-x86_64.sha256sum] = "ac779bc9839dd47180806b133e4e2563c4a34716284cd5b8fede8ef289f452ca"
+
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "dc5187f4062d617561e0d7885ecd4d4d3f995435b38d8c53d6451b56808946b8"
+
+SRC_URI[rust-std-snapshot-riscv64a23.sha256sum] = "87f3cee68f0522e0c2b755d3f9683473a3f51064e58d9b02f21350d5fa7af9cf"
+
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "88619b2413d218c119a2060e583a9e835fa5f9cf6ac038070eec10b02c191056"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 370c1ff..bb41dda 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -6,11 +6,10 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://repro-issue-fix-with-cc-crate-hashmap.patch;patchdir=${RUSTSRC} \
             file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
-            file://0001-Update-call-llvm-intrinsics-test.patch;patchdir=${RUSTSRC} \
-            file://0001-Fix-multiple-option-or-permutations-test-for-big-end.patch;patchdir=${RUSTSRC} \
             file://0002-Fix-rust-build-failure-with-unstable-options.patch;patchdir=${RUSTSRC} \
+            file://0003-explicit-tail-calls-disable-two-tests.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "62b67230754da642a264ca0cb9fc08820c54e2ed7b3baba0289876d4cdb48c08"
+SRC_URI[rust.sha256sum] = "b99ce16cdf0ecfc761b585ac84d131b46733465a02f8ecd0ff2de9713c62ee09"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust_1.95.0.bb b/recipes-devtools/rust/rust_1.96.0.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.95.0.bb
rename to recipes-devtools/rust/rust_1.96.0.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 29/35] librsvg: upgrade: 2.62.2 -> 2.62.3
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (27 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 28/35] rust: Upgrade 1.95.0 -> 1.96.0 Scott Murray
@ 2026-07-31 11:32 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 30/35] rust: backport explicit-tail-calls test skips for unsupported LLVM targets Scott Murray
                   ` (5 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:32 UTC (permalink / raw)
  To: yocto-patches

From: Alexander Kanavin <alex@linutronix.de>

Drop patch merged upstream.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit c481df5fdbdeade3f510a217afd6c9fb8538ff24)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 recipes-gnome/librsvg/librsvg-crates.inc      |   8 +-
 ...append-RUSTFLAGS-to-rustc-executable.patch |   2 +-
 ...e-care-of-deprecated-assert_cmd-Comm.patch |   2 +-
 .../librsvg/librsvg/cross-query-loaders.patch | 169 ------------------
 .../{librsvg_2.62.2.bb => librsvg_2.62.3.bb}  |   3 +-
 5 files changed, 7 insertions(+), 177 deletions(-)
 delete mode 100644 recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
 rename recipes-gnome/librsvg/{librsvg_2.62.2.bb => librsvg_2.62.3.bb} (97%)

diff --git a/recipes-gnome/librsvg/librsvg-crates.inc b/recipes-gnome/librsvg/librsvg-crates.inc
index dfa96e2..c6db9dc 100644
--- a/recipes-gnome/librsvg/librsvg-crates.inc
+++ b/recipes-gnome/librsvg/librsvg-crates.inc
@@ -235,8 +235,8 @@ SRC_URI += " \
     crate://crates.io/quick-error/2.0.1 \
     crate://crates.io/quote/1.0.44 \
     crate://crates.io/r-efi/5.3.0 \
-    crate://crates.io/rand/0.8.5 \
-    crate://crates.io/rand/0.9.2 \
+    crate://crates.io/rand/0.8.6 \
+    crate://crates.io/rand/0.9.4 \
     crate://crates.io/rand_chacha/0.9.0 \
     crate://crates.io/rand_core/0.6.4 \
     crate://crates.io/rand_core/0.9.5 \
@@ -589,8 +589,8 @@ SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78
 SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
 SRC_URI[quote-1.0.44.sha256sum] = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
 SRC_URI[r-efi-5.3.0.sha256sum] = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
-SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-SRC_URI[rand-0.9.2.sha256sum] = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
+SRC_URI[rand-0.8.6.sha256sum] = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
+SRC_URI[rand-0.9.4.sha256sum] = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
 SRC_URI[rand_chacha-0.9.0.sha256sum] = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 SRC_URI[rand_core-0.9.5.sha256sum] = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
diff --git a/recipes-gnome/librsvg/librsvg/0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch b/recipes-gnome/librsvg/librsvg/0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch
index a3596fc..1c02eda 100644
--- a/recipes-gnome/librsvg/librsvg/0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch
+++ b/recipes-gnome/librsvg/librsvg/0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch
@@ -1,4 +1,4 @@
-From e89982e61e50c7d25d563f2fa0481f9bba481f04 Mon Sep 17 00:00:00 2001
+From 2becfbb5964754f7c3f1ff90f9447d84093ba986 Mon Sep 17 00:00:00 2001
 From: Gyorgy Sarvari <skandigraun@gmail.com>
 Date: Sat, 2 Aug 2025 20:57:49 +0200
 Subject: [PATCH] query-rustc: append RUSTFLAGS to rustc executable
diff --git a/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch b/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
index 85ae52c..05e0e0f 100644
--- a/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
+++ b/recipes-gnome/librsvg/librsvg/0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch
@@ -1,4 +1,4 @@
-From bc089af8ce38ad268bc4283040ec28241c5064a6 Mon Sep 17 00:00:00 2001
+From 095e3c67c5e6b410098eb8d86878ec411d00fa0b Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Thu, 18 Dec 2025 18:43:20 +0100
 Subject: [PATCH] tests: revert 'Take care of deprecated
diff --git a/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch b/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
deleted file mode 100644
index dff36aa..0000000
--- a/recipes-gnome/librsvg/librsvg/cross-query-loaders.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From e46317a80e9d37d7b9c4cbf43ff1d60c3ac21fff Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Mon, 11 May 2026 12:34:53 +0100
-Subject: [PATCH 1/2] gdk-pixbuf-loader/meson_install: improve argument parsing
- and logic
-
-Make the arguments more explicit by changing the path arguments to be
-specified with options, such as --queryloaders <path>. Previously one of
-the paths had an option, but the others were order-based.
-
-Check that either all of the paths have been set or --show-cross-message
-has been passed. If this is not the case, print the usage and exit.
-
-Clean up Path usage, as the options are using pathlib.Path types in the
-parser another Path instance does not need to be created.
-
-None of this changes the underlying logic, just makes it more consistent
-and explicit.
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/1194]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- gdk-pixbuf-loader/meson.build      |  4 +++-
- gdk-pixbuf-loader/meson_install.py | 23 +++++++++++------------
- 2 files changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build
-index 951d2d1c9..c7c017978 100644
---- a/gdk-pixbuf-loader/meson.build
-+++ b/gdk-pixbuf-loader/meson.build
-@@ -43,9 +43,11 @@ else
- endif
- 
- pixbufloader_svg_install_args = [
--  '--gdk-pixbuf-moduledir',
-+  '--moduledir',
-   pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
-+  '--queryloaders',
-   gdk_pixbuf_query_loaders,
-+  '--cache-file',
-   pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
- ]
- 
-diff --git a/gdk-pixbuf-loader/meson_install.py b/gdk-pixbuf-loader/meson_install.py
-index ff003350f..d9bbbe433 100644
---- a/gdk-pixbuf-loader/meson_install.py
-+++ b/gdk-pixbuf-loader/meson_install.py
-@@ -6,29 +6,28 @@ import os
- import subprocess
- import sys
- 
--argparse = ArgumentParser('Deploy loaders.cache')
--
--argparse.add_argument('--gdk-pixbuf-moduledir', type=Path)
--argparse.add_argument('gdk_pixbuf_queryloaders', type=Path)
--argparse.add_argument('gdk_pixbuf_cache_file', type=Path)
--argparse.add_argument('--show-cross-message', action='store_true')
--
- if __name__ == '__main__':
-+    argparse = ArgumentParser(description='Deploy loaders.cache. Pass required paths, or --show-cross-message.')
-+    argparse.add_argument('--queryloaders', type=Path, metavar="PATH", help="gdk-pixbuf-queryloaders to run")
-+    argparse.add_argument('--moduledir', type=Path, metavar="PATH", help="installed gdk-pixbuf module directory")
-+    argparse.add_argument('--cache-file', type=Path, metavar="PATH", help="module cache file to write")
-+    argparse.add_argument('--show-cross-message', action='store_true', help="tell the user to run query-loaders manually")
-     args = argparse.parse_args()
- 
--    cache_file: Path = args.gdk_pixbuf_cache_file
-+    if not(args.show_cross_message or (args.queryloaders and args.moduledir and args.cache_file)):
-+        argparse.print_help()
-+        sys.exit(1)
- 
-     if args.show_cross_message or os.environ.get("DESTDIR"):
-         print('*** Note: Please run gdk-pixbuf-queryloaders manually ' +
-               'against the newly-built gdkpixbuf-svg loader', file=sys.stderr)
-     else:
-         env = os.environ.copy()
--        env['GDK_PIXBUF_MODULEDIR'] = Path(args.gdk_pixbuf_moduledir).as_posix()
--        with cache_file.open('w', encoding='utf-8') as f:
-+        env['GDK_PIXBUF_MODULEDIR'] = args.moduledir.as_posix()
-+        with args.cache_file.open('w', encoding='utf-8') as f:
-             subprocess.run(
--                [Path(args.gdk_pixbuf_queryloaders).as_posix()],
-+                [args.queryloaders.as_posix()],
-                 env=env,
-                 stdout=f,
-                 check=True
-             )
--
--- 
-2.43.0
-
-
-From 85e11b2c1c6b2a27949a0e3e883c01e4b48060e0 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Mon, 11 May 2026 12:46:08 +0100
-Subject: [PATCH 2/2] gdk-pixbuf-loader: fix install logic in cross builds
-
-The logic in this install rule was getting complicated, but it should be
-quite simple really:
-
-- In native builds we can run host binaries.  Look for the
-  gdk-pixbuf-query-loaders tool and run it when installing.
-- In cross builds we might be able to run host binaries, if an executable
-  wrapper has been set _and_ if the target sysroot contains executables.
-
-The presence of target executables isn't a given, as some systems (such
-as OpenEmbedded) strip the target sysroot down to headers are libraries.
-
-So the logic should be:
-
-- In native builds, look for query-loaders and fail if not found.
-- In cross builds where you can run host binaries, look for query-loaders
-  but allow it to be missing.
-- In cross builds where you cannot run host binaries, there's no use in
-  looking for query-loaders.
-
-Then either pass the paths or --show-cross-message to meson_install.py,
-depending on whether query-loaders was found or not.
-
-This fixes the case where Meson can run host executables, but the target
-sysroot does not actually contain gdk-pixbuf-query-loaders.
----
- gdk-pixbuf-loader/meson.build | 28 +++++++++++++---------------
- 1 file changed, 13 insertions(+), 15 deletions(-)
-
-diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build
-index c7c017978..4f88ba037 100644
---- a/gdk-pixbuf-loader/meson.build
-+++ b/gdk-pixbuf-loader/meson.build
-@@ -37,23 +37,21 @@ pixbuf_thumbnailer = configure_file(
- )
- 
- if meson.can_run_host_binaries()
--  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders')).path()
--else
--  gdk_pixbuf_query_loaders = pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', pkgconfig_define: ['prefix', prefix])
-+  gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders'), required: not meson.is_cross_build())
- endif
- 
--pixbufloader_svg_install_args = [
--  '--moduledir',
--  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
--  '--queryloaders',
--  gdk_pixbuf_query_loaders,
--  '--cache-file',
--  pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
--]
--
--# Tell people to run gdk-pixbuf-query-loaders manually for cross builds
--if not meson.can_run_host_binaries()
--  pixbufloader_svg_install_args += '--show-cross-message'
-+if meson.can_run_host_binaries() and gdk_pixbuf_query_loaders.found()
-+  pixbufloader_svg_install_args = [
-+    '--moduledir',
-+    pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]),
-+    '--queryloaders',
-+    gdk_pixbuf_query_loaders.full_path(),
-+    '--cache-file',
-+    pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix])
-+  ]
-+else
-+  # Tell people to run gdk-pixbuf-query-loaders manually for cross builds
-+  pixbufloader_svg_install_args = ['--show-cross-message']
- endif
- 
- meson.add_install_script(
--- 
-2.43.0
-
diff --git a/recipes-gnome/librsvg/librsvg_2.62.2.bb b/recipes-gnome/librsvg/librsvg_2.62.3.bb
similarity index 97%
rename from recipes-gnome/librsvg/librsvg_2.62.2.bb
rename to recipes-gnome/librsvg/librsvg_2.62.3.bb
index c9bba2b..988d675 100644
--- a/recipes-gnome/librsvg/librsvg_2.62.2.bb
+++ b/recipes-gnome/librsvg/librsvg_2.62.3.bb
@@ -25,9 +25,8 @@ require ${BPN}-crates.inc
 
 SRC_URI += "file://0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch \
             file://0001-tests-revert-Take-care-of-deprecated-assert_cmd-Comm.patch \
-            file://cross-query-loaders.patch \
             file://run-ptest"
-SRC_URI[archive.sha256sum] = "c0c1367e381e1ae4842a78f1b57c656ff19b25637e3a6527cb44ae5a1cc68d65"
+SRC_URI[archive.sha256sum] = "7eb449b2722a768021356f66dfee3202c229b54ed4e6a70ce40c090e97ff16f2"
 
 UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 30/35] rust: backport explicit-tail-calls test skips for unsupported LLVM targets
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (28 preceding siblings ...)
  2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 29/35] librsvg: upgrade: 2.62.2 -> 2.62.3 Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 31/35] rust-target-config: armv8a AArch32 Thumb build fixes Scott Murray
                   ` (4 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Peter Tatrai <peter.tatrai.ext@siemens.com>

oe-selftest for rust fails on powerpc and other architectures where LLVM
does not fully support musttail lowering, causing:

  LLVM ERROR: failed to perform tail call elimination on musttail marked calls

Add an upstream backport patch that marks the affected explicit-tail-calls
tests as ignored on unsupported LLVM targets.

Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 333595718daad21e0366cbdd3550c9a984436bb3)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 ...lls-ignore-tests-on-unsupported-llvm.patch | 96 +++++++++++++++++++
 recipes-devtools/rust/rust-source.inc         |  1 +
 2 files changed, 97 insertions(+)
 create mode 100644 recipes-devtools/rust/files/0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch

diff --git a/recipes-devtools/rust/files/0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch b/recipes-devtools/rust/files/0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch
new file mode 100644
index 0000000..a6b73cf
--- /dev/null
+++ b/recipes-devtools/rust/files/0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch
@@ -0,0 +1,96 @@
+Backport commits that disable failing tests on unsupported LLVM targets.
+
+Fixes LLVM ERROR: failed to perform tail call elimination on musttail marked calls.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/ded0aaba6ce257adf0b7e1fb6b702cad12328faf]
+
+Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
+
+---
+ src/tools/compiletest/src/directives/directive_names.rs |  3 ++
+ tests/ui/explicit-tail-calls/become-indirect-return.rs  | 21 +++++++++++++++++
+ tests/ui/explicit-tail-calls/indirect.rs               | 19 ++++++++++++++++
+ 3 files changed, 43 insertions(+)
+diff --git a/src/tools/compiletest/src/directives/directive_names.rs b/src/tools/compiletest/src/directives/directive_names.rs
+index 1234567..abcdefg 100644
+--- a/src/tools/compiletest/src/directives/directive_names.rs
++++ b/src/tools/compiletest/src/directives/directive_names.rs
+@@ -67,6 +67,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
+     "ignore-coverage-map",
+     "ignore-coverage-run",
+     "ignore-cross-compile",
++    "ignore-csky",
+     "ignore-eabi",
+     "ignore-elf",
+     "ignore-emscripten",
+@@ -91,6 +92,8 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
+     "ignore-loongarch64",
+     "ignore-macabi",
+     "ignore-macos",
++    "ignore-mips",
++    "ignore-mips64",
+     "ignore-msp430",
+     "ignore-msvc",
+     "ignore-musl",
+diff --git a/tests/ui/explicit-tail-calls/become-indirect-return.rs b/tests/ui/explicit-tail-calls/become-indirect-return.rs
+index 1234567..abcdefg 100644
+--- a/tests/ui/explicit-tail-calls/become-indirect-return.rs
++++ b/tests/ui/explicit-tail-calls/become-indirect-return.rs
+@@ -2,6 +2,27 @@
+ //@ ignore-backends: gcc
+ //@ ignore-wasm 'tail-call' feature not enabled in target wasm32-wasip1
+ //@ ignore-cross-compile
++//
++// LLVM musttail support is incomplete for these targets.
++// See https://github.com/rust-lang/rust/issues/148748 for the target test matrix.
++// See https://github.com/llvm/llvm-project/issues/63214 for AIX and PowerPC.
++// See https://github.com/llvm/llvm-project/issues/57795 for MIPS and MIPS64.
++//@ ignore-aix
++//@ ignore-csky
++//@ ignore-mips
++//@ ignore-mips64
++//@ ignore-powerpc
++//@ ignore-powerpc64
++//
++// LLVM musttail support is lacking for sret lowering on these targets.
++// Returning `[u8; 24]` uses sret lowering here.
++// See https://github.com/llvm/llvm-project/issues/157814 for RISC-V.
++// See https://github.com/llvm/llvm-project/issues/168152 for LoongArch.
++// RISC-V fix: https://github.com/llvm/llvm-project/pull/185094, should be in LLVM 23.
++// LoongArch will likely be fixed with similar changes.
++//@ ignore-riscv64
++//@ ignore-loongarch32
++//@ ignore-loongarch64
+ #![expect(incomplete_features)]
+ #![feature(explicit_tail_calls)]
+ 
+diff --git a/tests/ui/explicit-tail-calls/indirect.rs b/tests/ui/explicit-tail-calls/indirect.rs
+index 1234567..abcdefg 100644
+--- a/tests/ui/explicit-tail-calls/indirect.rs
++++ b/tests/ui/explicit-tail-calls/indirect.rs
+@@ -2,7 +2,26 @@
+ //@ ignore-backends: gcc
+ //
+ //@ ignore-wasm
++//
++// LLVM musttail support is incomplete for these targets.
++// See https://github.com/rust-lang/rust/issues/148748 for the target test matrix.
++// See https://github.com/llvm/llvm-project/issues/63214 for AIX and PowerPC.
++// See https://github.com/llvm/llvm-project/issues/57795 for MIPS and MIPS64.
++//@ ignore-aix
++//@ ignore-csky
++//@ ignore-mips
++//@ ignore-mips64
++//@ ignore-powerpc
++//@ ignore-powerpc64
++//
++// LLVM musttail support is lacking for indirect arguments that do not fit in registers.
++// See https://github.com/llvm/llvm-project/issues/157814 for RISC-V.
++// See https://github.com/llvm/llvm-project/issues/168152 for LoongArch.
++// RISC-V fix: https://github.com/llvm/llvm-project/pull/185094, should be in LLVM 23.
++// LoongArch will likely be fixed with similar changes.
+ //@ ignore-riscv64
++//@ ignore-loongarch32
++//@ ignore-loongarch64
+ #![feature(explicit_tail_calls)]
+ #![expect(incomplete_features)]
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index bb41dda..3aa3fe6 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -8,6 +8,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
             file://0002-Fix-rust-build-failure-with-unstable-options.patch;patchdir=${RUSTSRC} \
             file://0003-explicit-tail-calls-disable-two-tests.patch;patchdir=${RUSTSRC} \
+            file://0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "b99ce16cdf0ecfc761b585ac84d131b46733465a02f8ecd0ff2de9713c62ee09"
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 31/35] rust-target-config: armv8a AArch32 Thumb build fixes
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (29 preceding siblings ...)
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 30/35] rust: backport explicit-tail-calls test skips for unsupported LLVM targets Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 32/35] rust: Upgrade 1.96.0 -> 1.96.1 Scott Murray
                   ` (3 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Alex Kiernan <alexk@a-squared-projects.uk>

llvm_features_from_tune() calls target_is_armv7() to gate both the +v7
LLVM feature and the +thumb2 feature. target_is_armv7() (in
rust-common.bbclass) only recognises armv7a/armv7r/armv7m/armv7ve -- it
returns False for armv8a.  As a result an ARMv8-A AArch32 Thumb build
gets "+neon,+thumb-mode" in the target JSON but neither "+v8" nor
"+thumb2".

LLVM's ParseARMTriple() returns "" for "arm-..." triples
(ARM::parseArch("arm") = INVALID), leaving HasV4TOps unset in the
MCSubtargetInfo used for module-level inline asm parsing.  The ARM ASM
parser's hasThumb() then returns false and ".thumb" directives in
compiler_builtins naked-function trampolines (__aeabi_uldivmod etc.)
are rejected.

This produces two failures when building libstd-rs / compiler_builtins:

  1. core: "LLVM ERROR: Cannot select: br" in core::fmt::num -- LLVM ARM
     ISel patterns for Thumb-2 unconditional branches (t2B) are gated on
     HasV8Ops as well as IsThumb2; without +v8 the pattern never fires.

  2. compiler_builtins: "target does not support Thumb mode" on .thumb
     directives in naked-function trampolines (__aeabi_uldivmod etc.) --
     two separate paths both require +thumb2: HasV4TOps in the
     MCSubtargetInfo (set transitively via ParseARMTriple) and
     FeatureThumb2 in the code-gen ARMSubtarget.

The natural fix would be to change RUST_TARGET_SYS to "armv8a-...", but
"armv8a" is not a recognised Rust target architecture so the triple is
not valid there.  Instead rust_sys_to_llvm_target() rewrites only the
JSON llvm-target field, leaving RUST_TARGET_SYS and rust-common.bbclass
unchanged.

- Add +v8 to llvm_features_from_tune for armv8a AArch32.

- Add +thumb2 to llvm_features_from_tune for armv8a AArch32 Thumb.

- Extend rust_sys_to_llvm_target() to accept the datastore and rewrite
  the "arm-..." triple to "armv8a-..." for armv8a AArch32 targets, so
  the JSON llvm-target field uses "armv8a-..." while RUST_TARGET_SYS
  keeps "arm-...".  ParseARMTriple then adds "+armv8-a" to the
  MCSubtargetInfo, transitively setting HasV4TOps and making hasThumb()
  return true.

The TARGET_ARCH == 'arm' guard is required because AArch64 tunes also
carry armv8a in TUNE_FEATURES (via arch-armv8a.inc) but must not be
affected.

AI-Generated: Claude Code (Claude Opus 4.8)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alex Kiernan <alexk@a-squared-projects.uk>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 1808270d6cbfc7b21e911c9dc1fda3e78379701b)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/rust-target-config.bbclass | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/classes-recipe/rust-target-config.bbclass b/classes-recipe/rust-target-config.bbclass
index f10e8b6..33280ed 100644
--- a/classes-recipe/rust-target-config.bbclass
+++ b/classes-recipe/rust-target-config.bbclass
@@ -19,6 +19,8 @@ def llvm_features_from_tune(d):
     mach_overrides = d.getVar('MACHINEOVERRIDES')
     mach_overrides = frozenset(mach_overrides.split(':'))
 
+    target_arch = d.getVar('TARGET_ARCH')
+
     if 'vfpv4' in feat:
         f.append("+vfp4")
     elif 'vfpv4d16' in feat:
@@ -46,6 +48,9 @@ def llvm_features_from_tune(d):
     if target_is_armv7(d):
         f.append('+v7')
 
+    if 'armv8a' in feat and target_arch == 'arm':
+        f.append('+v8')
+
     if ('armv6' in mach_overrides) or ('armv6' in feat):
         f.append("+v6")
     if 'armv5te' in feat:
@@ -63,7 +68,8 @@ def llvm_features_from_tune(d):
 
     if 'thumb' in feat:
         if d.getVar('ARM_THUMB_OPT') == "thumb":
-            if target_is_armv7(d):
+            if target_is_armv7(d) or \
+                    ('armv8a' in feat and target_arch == 'arm'):
                 f.append('+thumb2')
             f.append("+thumb-mode")
 
@@ -281,7 +287,16 @@ def arch_to_rust_target_arch(arch):
         return arch
 
 # Convert a rust target string to a llvm-compatible triplet
-def rust_sys_to_llvm_target(sys):
+def rust_sys_to_llvm_target(sys, d):
+    # For AArch32 ARMv8-A, RUST_TARGET_SYS stays "arm-..." because "armv8a" is not a
+    # valid Rust target architecture. Rewrite llvm-target to "armv8a-..." here so
+    # ParseARMTriple adds "+armv8-a" and transitively sets HasV4TOps in the
+    # MCSubtargetInfo used for module-level inline asm parsing, making hasThumb()
+    # return true for .thumb directives.
+    if sys.startswith('arm-') and \
+            'armv8a' in (d.getVar('TUNE_FEATURES') or '').split() and \
+            d.getVar('TARGET_ARCH') == 'arm':
+        return 'armv8a-' + sys[4:]
     if sys.startswith('riscv32gc-'):
         return sys.replace('riscv32gc-', 'riscv32-', 1)
     if sys.startswith('riscv64gc-'):
@@ -365,7 +380,7 @@ def rust_gen_target(d, thing, wd, arch):
 
     # build tspec
     tspec = {}
-    tspec['llvm-target'] = rust_sys_to_llvm_target(rustsys)
+    tspec['llvm-target'] = rust_sys_to_llvm_target(rustsys, d)
     tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi)
     if tspec['data-layout'] is None:
         bb.fatal("No rust target defined for %s" % arch_abi)
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 32/35] rust: Upgrade 1.96.0 -> 1.96.1
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (30 preceding siblings ...)
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 31/35] rust-target-config: armv8a AArch32 Thumb build fixes Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 33/35] cargo_c.bbclass: pass --libdir to cargo cinstall Scott Murray
                   ` (2 subsequent siblings)
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>

https://blog.rust-lang.org/2026/06/30/Rust-1.96.1/

Rust 1.96.1 fixes:
- Missing retries / timeouts in Cargo's HTTP client
- Miscompilation in a MIR optimization
- Cargo CVEs:: CVE-2025-15661, CVE-2026-55199, CVE-2026-55200

Test results:
No changes

Assisted-by: Kiro
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 94749b6f915e18141e62f4f7b4bbec53687b897e)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 conf/layer.conf                                                 | 2 +-
 recipes-devtools/rust/{cargo_1.96.0.bb => cargo_1.96.1.bb}      | 0
 .../rust/{libstd-rs_1.96.0.bb => libstd-rs_1.96.1.bb}           | 0
 ...t-cross-canadian_1.96.0.bb => rust-cross-canadian_1.96.1.bb} | 0
 .../rust/{rust-llvm_1.96.0.bb => rust-llvm_1.96.1.bb}           | 0
 recipes-devtools/rust/rust-source.inc                           | 2 +-
 recipes-devtools/rust/{rust_1.96.0.bb => rust_1.96.1.bb}        | 0
 7 files changed, 2 insertions(+), 2 deletions(-)
 rename recipes-devtools/rust/{cargo_1.96.0.bb => cargo_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{libstd-rs_1.96.0.bb => libstd-rs_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust-cross-canadian_1.96.0.bb => rust-cross-canadian_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust-llvm_1.96.0.bb => rust-llvm_1.96.1.bb} (100%)
 rename recipes-devtools/rust/{rust_1.96.0.bb => rust_1.96.1.bb} (100%)

diff --git a/conf/layer.conf b/conf/layer.conf
index 36d14f4..3c5351e 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERDEPENDS_scarthgap-rust-mixin = "core"
 
 LICENSE_PATH += "${LAYERDIR}/files/common-licenses"
 
-RUSTVERSION ?= "1.96.0%"
+RUSTVERSION ?= "1.96.1%"
diff --git a/recipes-devtools/rust/cargo_1.96.0.bb b/recipes-devtools/rust/cargo_1.96.1.bb
similarity index 100%
rename from recipes-devtools/rust/cargo_1.96.0.bb
rename to recipes-devtools/rust/cargo_1.96.1.bb
diff --git a/recipes-devtools/rust/libstd-rs_1.96.0.bb b/recipes-devtools/rust/libstd-rs_1.96.1.bb
similarity index 100%
rename from recipes-devtools/rust/libstd-rs_1.96.0.bb
rename to recipes-devtools/rust/libstd-rs_1.96.1.bb
diff --git a/recipes-devtools/rust/rust-cross-canadian_1.96.0.bb b/recipes-devtools/rust/rust-cross-canadian_1.96.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust-cross-canadian_1.96.0.bb
rename to recipes-devtools/rust/rust-cross-canadian_1.96.1.bb
diff --git a/recipes-devtools/rust/rust-llvm_1.96.0.bb b/recipes-devtools/rust/rust-llvm_1.96.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust-llvm_1.96.0.bb
rename to recipes-devtools/rust/rust-llvm_1.96.1.bb
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 3aa3fe6..cc2de41 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -10,7 +10,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://0003-explicit-tail-calls-disable-two-tests.patch;patchdir=${RUSTSRC} \
             file://0004-explicit-tail-calls-ignore-tests-on-unsupported-llvm.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "b99ce16cdf0ecfc761b585ac84d131b46733465a02f8ecd0ff2de9713c62ee09"
+SRC_URI[rust.sha256sum] = "77a6ff3003a4ad0cb00697b043c879e3e1a15d945b1a1f63818903bfc3fa8b98"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/recipes-devtools/rust/rust_1.96.0.bb b/recipes-devtools/rust/rust_1.96.1.bb
similarity index 100%
rename from recipes-devtools/rust/rust_1.96.0.bb
rename to recipes-devtools/rust/rust_1.96.1.bb
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 33/35] cargo_c.bbclass: pass --libdir to cargo cinstall
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (31 preceding siblings ...)
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 32/35] rust: Upgrade 1.96.0 -> 1.96.1 Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 34/35] classes/cargo: fix indentation Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 35/35] classes/cargo: remove BUILD_MODE, replace with CARGO_PROFILE Scott Murray
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Taruntej Kanakamalla <tarun@centricular.com>

cargo-cinstall defaults its libdir to <prefix>/lib since the class does
not pass --libdir. On configurations where ${libdir} is not
<prefix>/lib (e.g. multilib builds where baselib is lib64), the libraries
and pkg-config files get installed into <prefix>/lib, causing do_package
QA failures (installed-vs-shipped).

Pass --libdir ${libdir} explicitly so cargo-cinstall installs the files
into the correct directory.

Signed-off-by: Taruntej Kanakamalla <tarun@centricular.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit ce8b2340e4a3fd146bb632898e196438505650e9)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/cargo_c.bbclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/classes-recipe/cargo_c.bbclass b/classes-recipe/cargo_c.bbclass
index ef43163..e91ee1d 100644
--- a/classes-recipe/cargo_c.bbclass
+++ b/classes-recipe/cargo_c.bbclass
@@ -35,6 +35,7 @@ cargo_c_do_install() {
     "${CARGO_C_INSTALL}" cinstall ${CARGO_BUILD_FLAGS} \
         --destdir ${D} \
         --prefix ${prefix} \
+        --libdir ${libdir} \
         --library-type cdylib
 }
 
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 34/35] classes/cargo: fix indentation
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (32 preceding siblings ...)
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 33/35] cargo_c.bbclass: pass --libdir to cargo cinstall Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 35/35] classes/cargo: remove BUILD_MODE, replace with CARGO_PROFILE Scott Murray
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

Fix mismatching indentation.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit 0ffe43b82eeeb1c490e04f983c941b71cf11e5ab)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/cargo.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/classes-recipe/cargo.bbclass b/classes-recipe/cargo.bbclass
index 2dd28e9..8e05a82 100644
--- a/classes-recipe/cargo.bbclass
+++ b/classes-recipe/cargo.bbclass
@@ -61,7 +61,7 @@ cargo_do_install () {
 	for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
 		case $tgt in
 		*.so|*.rlib)
-                        if [ -n "${CARGO_INSTALL_LIBRARIES}" ]; then
+			if [ -n "${CARGO_INSTALL_LIBRARIES}" ]; then
 				install -d "${D}${rustlibdir}"
 				install -m755 "$tgt" "${D}${rustlibdir}"
 				have_installed=true
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [meta-lts-mixins][scarthgap/rust][PATCH 35/35] classes/cargo: remove BUILD_MODE, replace with CARGO_PROFILE
  2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
                   ` (33 preceding siblings ...)
  2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 34/35] classes/cargo: fix indentation Scott Murray
@ 2026-07-31 11:33 ` Scott Murray
  34 siblings, 0 replies; 36+ messages in thread
From: Scott Murray @ 2026-07-31 11:33 UTC (permalink / raw)
  To: yocto-patches

From: Ross Burton <ross.burton@arm.com>

The BUILD_MODE variable appears to be a way to select the Cargo build profile
that is used, but it can't be assigned because it and other pieces of
code base their logic on the value of DEBUG_BUILD.

Instead of a BUILD_MODE variable that is "--release" or "" depending on
the value of DEBUG_BUILD, replace it with a clear CARGO_PROFILE variable
that selects the profile to use. The default has the same behaviour as before:
either "release" or "dev" based on DEBUG_BUILD.

This profile is then passed to cargo, and used to construct paths in the
build tree (with the caveat that the "dev" profile puts files in "debug").

[1] https://doc.rust-lang.org/cargo/reference/profiles.html

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit d4de7d0256aca47cdb1df48640c37221deaa09d4)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 classes-recipe/cargo.bbclass | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/classes-recipe/cargo.bbclass b/classes-recipe/cargo.bbclass
index 8e05a82..b34f3ce 100644
--- a/classes-recipe/cargo.bbclass
+++ b/classes-recipe/cargo.bbclass
@@ -31,18 +31,28 @@ B = "${WORKDIR}/build"
 export RUST_BACKTRACE = "1"
 
 RUSTFLAGS ??= ""
-BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
+
+# The cargo profile to use. Defaults to release or dev based on DEBUG_BUILD, but
+# can be set to any valid profile.
+# https://doc.rust-lang.org/cargo/reference/profiles.html
+CARGO_PROFILE ?= "${@oe.utils.vartrue('DEBUG_BUILD', 'dev', 'release', d)}"
+
 # --frozen flag will prevent network access (which is required since only
 # the do_fetch step is authorized to access network)
 # and will require an up to date Cargo.lock file.
 # This force the package being built to already ship a Cargo.lock, in the end
 # this is what we want, at least, for reproducibility of the build.
-CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${BUILD_MODE} --manifest-path=${CARGO_MANIFEST_PATH}"
+CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} --profile=${CARGO_PROFILE} --manifest-path=${CARGO_MANIFEST_PATH}"
+
+# The build directory is named after the profile, apart from the dev profile
+# which uses 'debug'.
+def cargo_build_directory(d):
+    profile = d.getVar("CARGO_PROFILE")
+    return "debug" if profile == "dev" else profile
+BUILD_DIR = "${@cargo_build_directory(d)}"
 
-# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
-# change if CARGO_BUILD_FLAGS changes.
-BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
 CARGO_TARGET_SUBDIR = "${RUST_HOST_SYS}/${BUILD_DIR}"
+
 oe_cargo_build () {
 	export RUSTFLAGS="${RUSTFLAGS}"
 	bbnote "Using rust targets from ${RUST_TARGET_PATH}"
-- 
2.55.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2026-07-31 11:33 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31 11:32 [meta-lts-mixins][scarthgap/rust][PATCH 00/35] Update to 1.96.1 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 01/35] cargo-c: update 0.10.19 -> 0.10.20 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 02/35] cargo-update-recipe-crates: Don't fail for partially empty Cargo.lock Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 03/35] cargo-update-recipe-crates: Properly close target file after writing Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 04/35] rust: Upgrade 1.92.0 -> 1.93.0 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 05/35] rust: Upgrade 1.93.0 -> 1.94.0 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 06/35] cargo-c: Move recipe out of rust directory Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 07/35] rust: Drop revert-link-std-statically-in-rustc_driver-feature.patch Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 08/35] rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 09/35] rust: install Rust library sources for 'make rustavailable' support Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 10/35] librsvg: move symlink file for ptest in package librsvg-ptest Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 11/35] rust: Fix flaky assertions in oneshot tests Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 12/35] rust: Fix build with llvm-22 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 13/35] rust: Fix loongarch unit test " Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 14/35] rust: Upgrade 1.94.0 -> 1.94.1 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 15/35] cargo: set status of CVE-2023-40030 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 16/35] cargo: set CVE_PRODUCT Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 17/35] rust: fix codegen test failure on big-endian targets Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 18/35] librsvg: remove obsolete .la deletion Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 19/35] librsvg: consolidate DEPENDS Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 20/35] librsvg: consolidate PACKAGECONFIG Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 21/35] librsvg: rewrite cross gdk-pixbuf-query-loaders handling Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 22/35] rust: Upgrade 1.94.1 -> 1.95.0 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 23/35] librsvg: remove dependency on liberation-fonts Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 24/35] librsvg: add PACKAGECONFIGs for avif and gdkpixbuf Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 25/35] librsvg: upgrade 2.61.3 -> 2.62.2 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 26/35] cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 27/35] rust: export CARGO_BUILD_TARGET Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 28/35] rust: Upgrade 1.95.0 -> 1.96.0 Scott Murray
2026-07-31 11:32 ` [meta-lts-mixins][scarthgap/rust][PATCH 29/35] librsvg: upgrade: 2.62.2 -> 2.62.3 Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 30/35] rust: backport explicit-tail-calls test skips for unsupported LLVM targets Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 31/35] rust-target-config: armv8a AArch32 Thumb build fixes Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 32/35] rust: Upgrade 1.96.0 -> 1.96.1 Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 33/35] cargo_c.bbclass: pass --libdir to cargo cinstall Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 34/35] classes/cargo: fix indentation Scott Murray
2026-07-31 11:33 ` [meta-lts-mixins][scarthgap/rust][PATCH 35/35] classes/cargo: remove BUILD_MODE, replace with CARGO_PROFILE Scott Murray

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.