From 6af11cd978caf330c7b49dcf07d652814db7ae11 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 4 Feb 2025 15:44:11 -0800 Subject: [PATCH] Update to Rust 1.84.1 Resolves: RHEL-61964 Resolves: RHEL-77257 --- .gitignore | 1 + ...vm-objcopy-if-llvm-tools-are-enabled.patch | 25 --------- rust.spec | 51 ++++++++++++++----- sources | 2 +- 4 files changed, 39 insertions(+), 40 deletions(-) delete mode 100644 0001-Only-dist-llvm-objcopy-if-llvm-tools-are-enabled.patch diff --git a/.gitignore b/.gitignore index 3e5ef99..46d7753 100644 --- a/.gitignore +++ b/.gitignore @@ -428,3 +428,4 @@ /rustc-1.83.0-src.tar.xz /rustc-1.84.0-src.tar.xz /wasi-libc-wasi-sdk-25.tar.gz +/rustc-1.84.1-src.tar.xz diff --git a/0001-Only-dist-llvm-objcopy-if-llvm-tools-are-enabled.patch b/0001-Only-dist-llvm-objcopy-if-llvm-tools-are-enabled.patch deleted file mode 100644 index ff57217..0000000 --- a/0001-Only-dist-llvm-objcopy-if-llvm-tools-are-enabled.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4c6d793c66993a0f5455f35e73a1549d232c3ae5 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Thu, 12 Dec 2024 17:06:03 -0800 -Subject: [PATCH] Only dist `llvm-objcopy` if llvm tools are enabled - ---- - src/bootstrap/src/core/build_steps/dist.rs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs -index 0c739115165e..89b2d73f74a8 100644 ---- a/src/bootstrap/src/core/build_steps/dist.rs -+++ b/src/bootstrap/src/core/build_steps/dist.rs -@@ -471,7 +471,7 @@ fn prepare_image(builder: &Builder<'_>, compiler: Compiler, image: &Path) { - } - } - -- { -+ if builder.config.llvm_enabled(compiler.host) && builder.config.llvm_tools_enabled { - let src_dir = builder.sysroot_target_bindir(compiler, host); - let llvm_objcopy = exe("llvm-objcopy", compiler.host); - let rust_objcopy = exe("rust-objcopy", compiler.host); --- -2.47.1 - diff --git a/rust.spec b/rust.spec index 266d11e..91fc381 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.84.0 +Version: 1.84.1 Release: 1%{?dist} 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-DFS-2016) @@ -60,6 +60,15 @@ ExclusiveArch: %{rust_arches} %bcond_without bundled_libgit2 %endif +# Try to use system oniguruma (only used at build time for rust-docs) +# src/tools/rustbook -> ... -> onig_sys v69.8.1 needs at least 6.9.3 +%global min_oniguruma_version 6.9.3 +%if 0%{?rhel} && 0%{?rhel} < 9 +%bcond_without bundled_oniguruma +%else +%bcond_with bundled_oniguruma +%endif + # Cargo uses UPSERTs with omitted conflict targets %global min_sqlite3_version 3.35 %global bundled_sqlite3_version 3.46.0 @@ -130,11 +139,8 @@ 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.84.0-unbundle-sqlite.patch -# https://github.com/rust-lang/rust/pull/134240 -Patch7: 0001-Only-dist-llvm-objcopy-if-llvm-tools-are-enabled.patch - # https://github.com/rust-lang/cc-rs/issues/1354 -Patch8: 0001-Only-translate-profile-flags-for-Clang.patch +Patch7: 0001-Only-translate-profile-flags-for-Clang.patch ### RHEL-specific patches below ### @@ -249,6 +255,10 @@ BuildRequires: pkgconfig(zlib) BuildRequires: (pkgconfig(libgit2) >= %{min_libgit2_version} with pkgconfig(libgit2) < %{next_libgit2_version}) %endif +%if %{without bundled_oniguruma} +BuildRequires: pkgconfig(oniguruma) >= %{min_oniguruma_version} +%endif + %if %{without bundled_sqlite3} BuildRequires: pkgconfig(sqlite3) >= %{min_sqlite3_version} %endif @@ -646,8 +656,7 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %if %without bundled_sqlite3 %patch -P6 -p1 %endif -%patch -P7 -p1 -%patch -P8 -p1 -d vendor/cc-1.2.5 +%patch -P7 -p1 -d vendor/cc-1.2.5 %if %with disabled_libssh2 %patch -P100 -p1 @@ -686,6 +695,10 @@ rm -rf src/tools/rustc-perf %clear_dir vendor/libgit2-sys*/libgit2/ %endif +%if %without bundled_oniguruma +%clear_dir vendor/onig_sys*/oniguruma/ +%endif + %if %without bundled_sqlite3 %clear_dir vendor/libsqlite3-sys*/sqlite3/ %endif @@ -738,6 +751,7 @@ end} %global rust_env %{shrink: %{?rustflags:RUSTFLAGS="%{rustflags}"} %{rustc_target_cpus} + %{!?with_bundled_oniguruma:RUSTONIG_SYSTEM_LIBONIG=1} %{!?with_bundled_sqlite3:LIBSQLITE3_SYS_USE_PKG_CONFIG=1} %{!?with_disabled_libssh2:LIBSSH2_SYS_USE_PKG_CONFIG=1} } @@ -892,12 +906,6 @@ rm -rf ./build/dist/ ./build/tmp/ # Some of the components duplicate-install binaries, leaving backups we don't want rm -f %{buildroot}%{_bindir}/*.old -# We don't want to ship the shared standard library, because it has no stable ABI. -# (and if we merely %%exclude these, then rpmbuild still packages build-id links) -find %{buildroot}%{rustlibdir} -type f \ - '(' -name '*.so' -o -name '*.dll' -o -name '*.dll.a' ')' \ - -exec rm -v '{}' '+' - # Make sure the compiler's shared libraries are in the proper libdir %if "%{_libdir}" != "%{common_libdir}" mkdir -p %{buildroot}%{_libdir} @@ -909,6 +917,13 @@ find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ -exec chmod -v +x '{}' '+' +# The shared standard library is excluded from Provides, because it has no +# stable ABI. However, we still ship it alongside the static target libraries +# to enable some niche local use-cases, like the `evcxr` REPL. +# Make sure those libraries are also executable for debuginfo extraction. +find %{buildroot}%{rustlibdir} -type f -name '*.so' \ + -exec chmod -v +x '{}' '+' + # Remove installer artifacts (manifests, uninstall scripts, etc.) find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' @@ -1010,7 +1025,7 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %doc README.md %{_bindir}/rustc %{_bindir}/rustdoc -%{_libdir}/*.so +%{_libdir}/librustc_driver-*.so %{_libexecdir}/rust-analyzer-proc-macro-srv %{_mandir}/man1/rustc.1* %{_mandir}/man1/rustdoc.1* @@ -1021,6 +1036,7 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.rlib +%{rustlibdir}/%{rust_triple}/lib/*.so %global target_files() \ %files std-static-%1 \ @@ -1032,11 +1048,15 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %if %target_enabled i686-pc-windows-gnu %target_files i686-pc-windows-gnu %{rustlibdir}/i686-pc-windows-gnu/lib/rs*.o +%exclude %{rustlibdir}/i686-pc-windows-gnu/lib/*.dll +%exclude %{rustlibdir}/i686-pc-windows-gnu/lib/*.dll.a %endif %if %target_enabled x86_64-pc-windows-gnu %target_files x86_64-pc-windows-gnu %{rustlibdir}/x86_64-pc-windows-gnu/lib/rs*.o +%exclude %{rustlibdir}/x86_64-pc-windows-gnu/lib/*.dll +%exclude %{rustlibdir}/x86_64-pc-windows-gnu/lib/*.dll.a %endif %if %target_enabled wasm32-unknown-unknown @@ -1142,6 +1162,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog +* Tue Feb 04 2025 Josh Stone - 1.84.1-1 +- Update to 1.84.1 + * Wed Jan 15 2025 Josh Stone - 1.84.0-1 - Update to 1.84.0 diff --git a/sources b/sources index 5215bc2..24d06bc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.84.0-src.tar.xz) = 9e964c1b964e74083a9002fa04b072fa8fe7a520b24ad55e88a89bb2a2a2cd5727c5438d6db425b824ae7502ab215c2dd3f49777efd65f76bae09965df2e070a +SHA512 (rustc-1.84.1-src.tar.xz) = f1cc4765736551508408126e44086988e8ddc30c1a929bf7b61c6be85ad0d65928dd5fb1041cfaeee8eb37d2208f2c1917e276aef2bc9a8e40e34f6713b349e1 SHA512 (wasi-libc-wasi-sdk-25.tar.gz) = 580716fbc152be19e2e9724f3483a0a580a168be0cd6d105d37b0ebd0d11bd36d7d9db63984eb2cc7b3aaff2fc9446d9558d1469b538a79b7de465a1113560ea