From f2c6c398d78c7a1c5633e6e87828b998997b913c Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 4 Jun 2026 14:01:38 -0700 Subject: [PATCH] Update to Rust 1.96.0 Resolves: RHEL-141247 --- .gitignore | 2 ++ 0001-Use-lld-provided-by-system.patch | 20 +++++------ plans/ci.fmf | 6 ++++ rpminspect.yaml | 9 +++-- rust.spec | 33 +++++++++---------- rustc-1.95.0-unbundle-sqlite.patch | 23 ------------- ...atch => rustc-1.96.0-disable-libssh2.patch | 32 +++++++++--------- rustc-1.96.0-unbundle-sqlite.patch | 23 +++++++++++++ sources | 4 +-- 9 files changed, 81 insertions(+), 71 deletions(-) delete mode 100644 rustc-1.95.0-unbundle-sqlite.patch rename rustc-1.95.0-disable-libssh2.patch => rustc-1.96.0-disable-libssh2.patch (55%) create mode 100644 rustc-1.96.0-unbundle-sqlite.patch diff --git a/.gitignore b/.gitignore index 0aaa44d..61471ab 100644 --- a/.gitignore +++ b/.gitignore @@ -467,3 +467,5 @@ /rustc-1.95.0-src.tar.xz /rustc-1.95.0-src.tar.xz.asc /wasi-libc-wasi-sdk-32.tar.gz +/rustc-1.96.0-src.tar.xz +/rustc-1.96.0-src.tar.xz.asc diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch index c3c36a4..bbcf631 100644 --- a/0001-Use-lld-provided-by-system.patch +++ b/0001-Use-lld-provided-by-system.patch @@ -1,4 +1,4 @@ -From d8b00ced0429722016cd35c2c5f392cd2b19d440 Mon Sep 17 00:00:00 2001 +From 2f68bbbaa31cef21b912ec4856e3187528ed9679 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 16 Aug 2024 10:12:58 -0700 Subject: [PATCH] Use lld provided by system @@ -12,10 +12,10 @@ Subject: [PATCH] Use lld provided by system 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs -index 7ede45766ea..b22362227bb 100644 +index 1f0f564a7790..9173337a1a69 100644 --- a/compiler/rustc_target/src/spec/base/wasm.rs +++ b/compiler/rustc_target/src/spec/base/wasm.rs -@@ -81,8 +81,7 @@ macro_rules! args { +@@ -71,8 +71,7 @@ macro_rules! args { // threaded model which will legalize atomics to normal operations. singlethread: true, @@ -26,19 +26,19 @@ index 7ede45766ea..b22362227bb 100644 pre_link_args, diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs -index ad444c139bf..f5f8f18f8b8 100644 +index 05876891ebd7..9f389f9abec7 100644 --- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs +++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs -@@ -15,7 +15,6 @@ pub(crate) fn target() -> Target { - let opts = TargetOptions { - abi: Abi::SoftFloat, +@@ -16,7 +16,6 @@ pub(crate) fn target() -> Target { + cfg_abi: CfgAbi::SoftFloat, + rustc_abi: Some(RustcAbi::Softfloat), linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), - linker: Some("rust-lld".into()), features: "+v8a,+strict-align,-neon".into(), relocation_model: RelocModel::Static, disable_redzone: true, diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs -index e2c1888e408..4869f85d1e6 100644 +index e2c1888e4084..4869f85d1e6e 100644 --- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs @@ -9,6 +9,7 @@ pub(crate) fn target() -> Target { @@ -50,7 +50,7 @@ index e2c1888e408..4869f85d1e6 100644 Target { llvm_target: "aarch64-unknown-windows".into(), diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs -index 0afe7a0b68b..4671032a437 100644 +index 0afe7a0b68b0..4671032a437c 100644 --- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs @@ -19,7 +19,7 @@ pub(crate) fn target() -> Target { @@ -63,7 +63,7 @@ index 0afe7a0b68b..4671032a437 100644 features: "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,+soft-float".into(), supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS, diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs -index 333e20bd0ac..16bea38887b 100644 +index 333e20bd0ac1..16bea38887be 100644 --- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs @@ -15,6 +15,7 @@ pub(crate) fn target() -> Target { diff --git a/plans/ci.fmf b/plans/ci.fmf index 3fd3ab7..3761b3e 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -3,3 +3,9 @@ discover: how: fmf execute: how: tmt +# Some tests like rpm-build/stratisd needs more memory or they OOM/timeout +provision: + hardware: + memory: ">= 8 GiB" + disk: + - size: ">= 40GiB" diff --git a/rpminspect.yaml b/rpminspect.yaml index c98951c..7c22c05 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -1,10 +1,12 @@ --- debuginfo: ignore: - # i686 has limited debuginfo. From rust.spec - # full debuginfo is exhausting memory; just do libstd for now + # i686 has debuginfo only for libstd. We build the rest with reduced + # debuginfo and these will likely fail the inspection. + # Ignore all i686 debuginfo from bin and libexec paths. # https://github.com/rust-lang/rust/issues/45854 - - /usr/lib/debug/usr/bin/rustc-*.i386.debug + - /usr/lib/debug/usr/bin/*.i386.debug + - /usr/lib/debug/usr/libexec/*.i386.debug unicode: ignore: @@ -12,6 +14,7 @@ unicode: # they are tests for those. - rustc-*-src/tests/ui/lint/issue-90614-accept-allow-text-direction-codepoint-in-comment-lint.rs - rustc-*-src/tests/ui/parser/unicode-control-codepoints.rs + - rustc-*-src/tests/ui/parser/unicode-control-doc-comment-issue-153096.rs - rustc-*-src/compiler/rustc_lint/src/hidden_unicode_codepoints.rs - rustc-*-src/compiler/rustc_lint_defs/src/builtin.rs - rustc-*-src/vendor/idna/tests/IdnaTestV2.txt diff --git a/rust.spec b/rust.spec index 1f6bf1a..959a9a4 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.95.0 +Version: 1.96.0 Release: %autorelease Summary: The Rust Programming Language License: (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-3.0) @@ -14,9 +14,9 @@ ExclusiveArch: %{rust_arches} # To bootstrap from scratch, set the channel and date from src/stage0 # e.g. 1.89.0 wants rustc: 1.88.0-2025-06-26 # or nightly wants some beta-YYYY-MM-DD -%global bootstrap_version 1.94.0 -%global bootstrap_channel 1.94.0 -%global bootstrap_date 2026-03-05 +%global bootstrap_version 1.95.0 +%global bootstrap_channel 1.95.0 +%global bootstrap_date 2026-04-16 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -42,12 +42,12 @@ ExclusiveArch: %{rust_arches} %bcond_with llvm_static # We can also choose to just use Rust's bundled LLVM, in case the system LLVM -# is insufficient. Rust currently requires LLVM 19.0+. +# is insufficient. Rust currently requires LLVM 21.0+. # See src/bootstrap/src/core/build_steps/llvm.rs, fn check_llvm_version # See src/llvm-project/cmake/Modules/LLVMVersion.cmake for bundled version. -%global min_llvm_version 20.0.0 -%global bundled_llvm_version 21.1.8 -#global llvm_compat_version 19 +%global min_llvm_version 21.0.0 +%global bundled_llvm_version 22.1.2 +#global llvm_compat_version 21 %global llvm llvm%{?llvm_compat_version} %bcond_with bundled_llvm @@ -64,7 +64,7 @@ ExclusiveArch: %{rust_arches} # Cargo uses UPSERTs with omitted conflict targets %global min_sqlite3_version 3.35 -%global bundled_sqlite3_version 3.51.1 +%global bundled_sqlite3_version 3.51.3 %if 0%{?rhel} && 0%{?rhel} < 10 %bcond_without bundled_sqlite3 %else @@ -134,7 +134,7 @@ Patch4: 0001-bootstrap-allow-disabling-target-self-contained.patch Patch5: 0002-set-an-external-library-path-for-wasm32-wasi.patch # We don't want to use the bundled library in libsqlite3-sys -Patch6: rustc-1.95.0-unbundle-sqlite.patch +Patch6: rustc-1.96.0-unbundle-sqlite.patch # stage0 tries to copy all of /usr/lib, sometimes unsuccessfully, see #143735 Patch7: 0001-only-copy-rustlib-into-stage0-sysroot.patch @@ -148,7 +148,7 @@ Source102: cargo_vendor.attr Source103: cargo_vendor.prov # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.95.0-disable-libssh2.patch +Patch100: rustc-1.96.0-disable-libssh2.patch # Get the Rust triple for any architecture and ABI. %{lua: function rust_triple(arch, abi) @@ -698,6 +698,10 @@ truncate --no-create --size=0 %{wasi_libc_dir}/dlmalloc/src/*.c %setup -q -n %{rustc_package} +# Sanity check that the source version is what we expect, +# especially for betas where the tarball is unversioned. +test "$(cut -d' ' -f1 ./version)" = "%{lua: print((rpm.expand('%version'):gsub('~', '-'))) }" + %patch -P1 -p1 %patch -P2 -p1 %patch -P3 -p1 @@ -872,14 +876,8 @@ env -u CFLAGS %__cmake \ %define profiler %{clang_lib}/%{_arch}-redhat-linux-gnu/libclang_rt.profile.a test -r "%{profiler}" -# llvm < 21 does not provide a builtins library for s390x. -%if "%{_arch}" != "s390x" || 0%{?clang_major_version} >= 21 %define optimized_builtins %{clang_lib}/%{_arch}-redhat-linux-gnu/libclang_rt.builtins.a test -r "%{optimized_builtins}" -%else -%define optimized_builtins false -%endif - %configure --disable-option-checking \ --docdir=%{_pkgdocdir} \ @@ -913,6 +911,7 @@ test -r "%{optimized_builtins}" --set build.optimized-compiler-builtins=false \ --set rust.llvm-tools=false \ --set rust.verify-llvm-ir=true \ + --set rust.remap-debuginfo=false \ --enable-extended \ --tools=cargo,clippy,rust-analyzer,rustdoc,rustfmt,src \ --enable-vendor \ diff --git a/rustc-1.95.0-unbundle-sqlite.patch b/rustc-1.95.0-unbundle-sqlite.patch deleted file mode 100644 index 53750f4..0000000 --- a/rustc-1.95.0-unbundle-sqlite.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2026-03-25 08:58:07.789728719 -0500 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2026-03-24 17:34:11.025842497 -0500 -@@ -2824,7 +2824,6 @@ version = "0.36.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "95b4103cffefa72eb8428cb6b47d6627161e51c2739fc5e3b734584157bc642a" - dependencies = [ -- "cc", - "pkg-config", - "vcpkg", - ] -diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2026-03-25 08:54:36.103702972 -0500 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2026-03-25 08:56:07.916420965 -0500 -@@ -83,7 +83,7 @@ proptest = "1.9.0" - pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] } - rand = "0.9.2" - regex = "1.12.2" --rusqlite = { version = "0.38.0", features = ["bundled"] } -+rusqlite = { version = "0.38.0", features = [] } - rustc-hash = "2.1.1" - rustc-stable-hash = "0.1.2" - rustfix = { version = "0.9.5", path = "crates/rustfix" } diff --git a/rustc-1.95.0-disable-libssh2.patch b/rustc-1.96.0-disable-libssh2.patch similarity index 55% rename from rustc-1.95.0-disable-libssh2.patch rename to rustc-1.96.0-disable-libssh2.patch index 2c9d1c4..32e13bd 100644 --- a/rustc-1.95.0-disable-libssh2.patch +++ b/rustc-1.96.0-disable-libssh2.patch @@ -1,7 +1,7 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2026-01-27 13:27:00.716308204 -0800 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2026-01-27 13:27:00.718429578 -0800 -@@ -2764,7 +2764,6 @@ checksum = "c9b3acc4b91781bb0b3386669d32 +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2026-04-23 13:22:07.239952036 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2026-04-23 13:23:43.576653041 -0700 +@@ -3108,7 +3108,6 @@ checksum = "c9b3acc4b91781bb0b3386669d32 dependencies = [ "cc", "libc", @@ -9,10 +9,12 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "libz-sys", "openssl-sys", "pkg-config", -@@ -2828,20 +2828,6 @@ dependencies = [ +@@ -3155,20 +3154,6 @@ dependencies = [ + "pkg-config", + "vcpkg", ] - - [[package]] +- +-[[package]] -name = "libssh2-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" @@ -25,20 +27,18 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools - "pkg-config", - "vcpkg", -] -- --[[package]] + + [[package]] name = "libz-sys" - version = "1.1.23" - source = "registry+https://github.com/rust-lang/crates.io-index" diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2026-01-27 13:27:00.716725971 -0800 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2026-01-27 13:29:24.709692974 -0800 -@@ -48,7 +48,7 @@ curl = "0.4.49" - curl-sys = "=0.4.83" - filetime = "0.2.26" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2026-04-23 13:22:07.240372063 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2026-04-23 13:23:37.142696088 -0700 +@@ -51,7 +51,7 @@ filetime = "0.2.27" flate2 = { version = "1.1.9", default-features = false, features = ["zlib-rs"] } + futures = { version = "0.3.32", default-features = false, features = ["std", "executor"]} + futures-timer = "3.0.3" -git2 = "0.20.4" +git2 = { version = "0.20.4", default-features = false, features = ["https"] } git2-curl = "0.21.0" # When updating this, also see if `gix-transport` further down needs updating or some auth-related tests will fail. - gix = { version = "0.79.0", default-features = false, features = ["progress-tree", "parallel", "dirwalk", "status"] } + gix = { version = "0.81.0", default-features = false, features = ["sha1", "progress-tree", "parallel", "dirwalk", "status"] } diff --git a/rustc-1.96.0-unbundle-sqlite.patch b/rustc-1.96.0-unbundle-sqlite.patch new file mode 100644 index 0000000..27c4129 --- /dev/null +++ b/rustc-1.96.0-unbundle-sqlite.patch @@ -0,0 +1,23 @@ +diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2026-04-19 23:11:26.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2026-04-23 13:19:24.942383499 -0700 +@@ -3152,7 +3152,6 @@ version = "0.37.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "b1f111c8c41e7c61a49cd34e44c7619462967221a6443b0ec299e0ac30cfb9b1" + dependencies = [ +- "cc", + "pkg-config", + "vcpkg", + ] +diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2026-04-19 23:11:26.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2026-04-23 13:19:13.141462455 -0700 +@@ -89,7 +89,7 @@ proptest = "1.11.0" + pulldown-cmark = { version = "0.13.3", default-features = false, features = ["html"] } + rand = "0.10.0" + regex = "1.12.3" +-rusqlite = { version = "0.39.0", features = ["bundled"] } ++rusqlite = { version = "0.39.0", features = [] } + rustc-hash = "2.1.2" + rustc-stable-hash = "0.1.2" + rustfix = { version = "0.9.6", path = "crates/rustfix" } diff --git a/sources b/sources index b4b6a68..faa93ce 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (rustc-1.95.0-src.tar.xz) = 685912ffff97063e55c85b2d15d06ba734980cef4b6e104caae1ea433958b12a8d651b757eef7b9f5b06dad3c246d819a5ee5574a26e05007ecdd378f0f041d0 -SHA512 (rustc-1.95.0-src.tar.xz.asc) = f70ed8071eff3470d4c288b83951e05f2ced52052a2f796113eb18db2c1f4bf81796f61434c322772dda879146d63569fd545d94d17e478a9588a333159c389c +SHA512 (rustc-1.96.0-src.tar.xz) = 4f93df2c8ab5f4c7eb374b96a2dc4be4b134fbe8cf3db777118bd1aad12d3bb0b382c26864fa5d7d7959384701259edc7794a885d710565a91491bbaa337f789 +SHA512 (rustc-1.96.0-src.tar.xz.asc) = dc655238ea83bcf7c390c398dfce3925b0d13febbbe6a9a15f5f55ba51cbcb22c0e390fc63aadd9173930b9eaee94d2bb607c19f472efdf07b58cafe63376419 SHA512 (wasi-libc-wasi-sdk-32.tar.gz) = 5a07d2d21789c7ad8669d87a33bd0d397b2c64ebb11de81ee3c1c027754a9a88e06c524526b4b7170fa4dfd7e1bfec0a5f58757103a6fe1a8ab136abc7e8a190