diff --git a/_service b/_service index 5e7ed9d..20115be 100644 --- a/_service +++ b/_service @@ -1,7 +1,7 @@ https://github.com/denoland/rusty_v8 - v137.2.1 + v145.0.0 ^v?(.*) $1 zst diff --git a/chromium-rust-toolchain.tar.xz b/chromium-rust-toolchain.tar.xz new file mode 100644 index 0000000..89d2baa --- /dev/null +++ b/chromium-rust-toolchain.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ca1ca6268ce2dcfe878c623f0f49e4eba983bb36e79ceddb9c745ef48efc933 +size 140484296 diff --git a/compiler-rt-adjust-paths.patch b/compiler-rt-adjust-paths.patch index 74ee566..765945b 100644 --- a/compiler-rt-adjust-paths.patch +++ b/compiler-rt-adjust-paths.patch @@ -1,7 +1,7 @@ -diff -ruN /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn rusty_v8-v137.1.0/build/config/clang/BUILD.gn ---- /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn 1970-01-01 08:00:01.000000000 +0800 -+++ rusty_v8-v137.1.0/build/config/clang/BUILD.gn 2025-06-26 14:47:20.638581652 +0800 -@@ -201,12 +201,15 @@ +diff -ruN rusty_v8-145.0.0.orig/build/config/clang/BUILD.gn rusty_v8-145.0.0/build/config/clang/BUILD.gn +--- rusty_v8-145.0.0.orig/build/config/clang/BUILD.gn 2026-02-14 14:15:37.957884922 +0800 ++++ rusty_v8-145.0.0/build/config/clang/BUILD.gn 2026-02-14 14:18:05.583917665 +0800 +@@ -180,12 +180,15 @@ } else if (is_linux || is_chromeos) { if (current_cpu == "x64") { _dir = "x86_64-unknown-linux-gnu" @@ -14,17 +14,18 @@ diff -ruN /tmp/rusty_v8-v137.1.0/build/config/clang/BUILD.gn rusty_v8-v137.1.0/b } else if (current_cpu == "arm64") { _dir = "aarch64-unknown-linux-gnu" + _suffix = "-aarch64" - } else { - assert(false) # Unhandled cpu type - } -@@ -237,6 +240,10 @@ + } else if (current_cpu == "loong64") { + _dir = "loongarch64-unknown-linux-gnu" + } else if (current_cpu == "riscv64") { +@@ -223,7 +226,10 @@ + } else { assert(false) # Unhandled target platform } - +- ++ + if (is_linux || is_chromeos) { + _dir = "linux" + } -+ + _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib" _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}" libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ] - diff --git a/deno-v8-arm.patch b/deno-v8-arm.patch index 73227e7..2f27d33 100644 --- a/deno-v8-arm.patch +++ b/deno-v8-arm.patch @@ -1,13 +1,15 @@ ---- ./build.rs.orig 2024-06-27 14:26:40.281226961 +0200 -+++ ./build.rs 2024-06-27 14:28:10.388618455 +0200 -@@ -200,16 +200,12 @@ fn build_v8(is_asan: bool) { - // cross-compilation setup +diff -ruN rusty_v8-145.0.0.orig/build.rs rusty_v8-145.0.0/build.rs +--- rusty_v8-145.0.0.orig/build.rs 2026-02-14 14:02:50.206480850 +0800 ++++ rusty_v8-145.0.0/build.rs 2026-02-14 14:06:48.032243885 +0800 +@@ -353,17 +353,13 @@ if target_arch == "aarch64" { gn_args.push(r#"target_cpu="arm64""#.to_string()); -- gn_args.push("use_sysroot=true".to_string()); -- maybe_install_sysroot("arm64"); -- maybe_install_sysroot("amd64"); -+ gn_args.push("use_sysroot=false".to_string()); + if target_os == "linux" { +- gn_args.push("use_sysroot=true".to_string()); +- maybe_install_sysroot("arm64"); +- maybe_install_sysroot("amd64"); ++ gn_args.push("use_sysroot=false".to_string()); + } } if target_arch == "arm" { gn_args.push(r#"target_cpu="arm""#.to_string()); @@ -19,4 +21,3 @@ } let target_triple = env::var("TARGET").unwrap(); - diff --git a/disable-rust-toolchain-download.patch b/disable-rust-toolchain-download.patch new file mode 100644 index 0000000..60c0503 --- /dev/null +++ b/disable-rust-toolchain-download.patch @@ -0,0 +1,25 @@ +diff -ruN rusty_v8-145.0.0.orig/build.rs rusty_v8-145.0.0/build.rs +--- rusty_v8-145.0.0.orig/build.rs 2026-02-14 14:15:46.377977611 +0800 ++++ rusty_v8-145.0.0/build.rs 2026-02-14 15:13:06.103012265 +0800 +@@ -120,7 +120,7 @@ + + print_prebuilt_src_binding_path(); + +- download_static_lib_binaries(); ++ // download_static_lib_binaries(); + } + + fn acquire_lock() -> LockFile { +@@ -248,10 +248,10 @@ + } + + if need_gn_ninja_download() { +- download_ninja_gn_binaries(); ++ // download_ninja_gn_binaries(); + } + +- download_rust_toolchain(); ++ // download_rust_toolchain(); + + // `#[cfg(...)]` attributes don't work as expected from build.rs -- they refer to the configuration + // of the host system which the build.rs script will be running on. In short, `cfg!(target_)` diff --git a/rusty_v8-137.2.1.tar.zst b/rusty_v8-137.2.1.tar.zst deleted file mode 100644 index b8184ed..0000000 --- a/rusty_v8-137.2.1.tar.zst +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8aa36ce2368658b0f0b81ce05e8fb9490d5e5c952316dc1baecdfe1b0c099b2e -size 72798547 diff --git a/rusty_v8-145.0.0.tar.zst b/rusty_v8-145.0.0.tar.zst new file mode 100644 index 0000000..3f51795 --- /dev/null +++ b/rusty_v8-145.0.0.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29c37f557c8e6dd17a773ead25dd4e0503ea286a985741f968548ff9d75be6c6 +size 93939905 diff --git a/rusty_v8-rpmlintrc b/rusty_v8-rpmlintrc index fe46f99..c7acf4e 100644 --- a/rusty_v8-rpmlintrc +++ b/rusty_v8-rpmlintrc @@ -1,4 +1,7 @@ # This is not C, dear +addFilter("E: backup-file-in-package") +addFilter("E: filelist-forbidden") +addFilter("W: hidden-file-or-dir") addFilter("E: devel-file-in-non-devel-package") addFilter("E: bin-sh-syntax-error") addFilter("E: env-script-interpreter") diff --git a/rusty_v8.changes b/rusty_v8.changes index c989997..1793417 100644 --- a/rusty_v8.changes +++ b/rusty_v8.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Sun Feb 15 00:38:48 UTC 2026 - Soc Virnyl Estela + +- Update to version 145.0.0 + +------------------------------------------------------------------- +Sat Feb 14 10:55:07 UTC 2026 - Soc Virnyl Estela + +- Add chromium-rust-toolchain.tar.xz. This was based from the python script + located at `tools/rust-toolchain.py` + ------------------------------------------------------------------- Thu Jul 17 23:21:08 UTC 2025 - Soc Virnyl Estela diff --git a/rusty_v8.spec b/rusty_v8.spec index 3141b6b..13047f4 100644 --- a/rusty_v8.spec +++ b/rusty_v8.spec @@ -19,7 +19,7 @@ %global __requires_exclude_from ^%{_libdir}/crates/rusty_v8/.*$ Name: rusty_v8 -Version: 137.2.1 +Version: 145.0.0 Release: 0 Summary: Build tooling for Deno (do not install or use!) License: MIT @@ -27,21 +27,27 @@ Group: Productivity/Other URL: https://github.com/denoland/rusty_v8 Source0: %{name}-%{version}.tar.zst Source1: vendor.tar.zst +Source2: https://storage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-a4cfac7093a1c1c7fbdb6bc75d6b6dc4d385fc69-2-llvmorg-22-init-17020-gbd1bd178.tar.xz#/chromium-rust-toolchain.tar.xz Source100: rusty_v8-rpmlintrc Patch0: deno-v8-arm.patch # Based on https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/raw/main/compiler-rt-adjust-paths.patch Patch1: compiler-rt-adjust-paths.patch +Patch2: disable-rust-toolchain-download.patch BuildRequires: cargo BuildRequires: cargo-packaging -BuildRequires: clang19 +BuildRequires: clang21 +BuildRequires: clang21-devel BuildRequires: fdupes BuildRequires: gn -BuildRequires: lld19 -BuildRequires: llvm19 +BuildRequires: lld21 +BuildRequires: rust-bindgen +BuildRequires: llvm21 +BuildRequires: llvm21-devel BuildRequires: ninja BuildRequires: pkgconfig BuildRequires: python3-base BuildRequires: zstd +BuildRequires: rust-src BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(gobject-2.0) @@ -67,16 +73,25 @@ Chromium, etc. # lib to lib64 sed -i 's|lib/clang|lib64/clang|g' build/config/clang/BUILD.gn %endif +mkdir -p third_party/rust-toolchain +tar xf %{SOURCE2} -C third_party/rust-toolchain %build # Ensure that the clang version matches. This command came from Archlinux. Thanks. export CLANG_VERSION=$(clang --version | grep -m1 version | sed 's/.* \([0-9]\+\).*/\1/') +export LIBCLANG_PATH=%{_libdir} export V8_FROM_SOURCE=1 export CLANG_BASE_PATH=%{_prefix} export CC=clang export CXX=clang++ # https://www.chromium.org/developers/gn-build-configuration -export GN_ARGS="clang_version=${CLANG_VERSION} use_lld=true enable_nacl = false blink_symbol_level = 0 v8_symbol_level = 0" +export RUSTC_SYSROOT=$(rustc --print sysroot) +export RUSTC_VERSION=$(rustc -V | cut -d' ' -f2) +export GN="/usr/bin/gn" +export NINJA="/usr/bin/ninja" +export RUSTC="/usr/bin/rustc" +export GN_ARGS="clang_version=${CLANG_VERSION} use_lld=true v8_symbol_level=0" +# export EXTRA_GN_ARGS="rust_sysroot_absolute=${RUSTC_SYSROOT} rustc_version=${RUSTC_VERSION}" export CFLAGS="%{optflags} -Wno-unknown-warning-option" export CXXFLAGS="%{optflags} -Wno-unknown-warning-option" export RUST_BACKTRACE=full @@ -100,9 +115,13 @@ rm .prettierrc.json rm .rustfmt.toml rm -rf vendor rm -rf target +rm -rf third_party/rust-toolchain %fdupes $PWD popd +# Remove Windows-specific vendored libs that break readelf/rpmlint +find %{buildroot}%{_libdir}/crates/rusty_v8/third_party -name "windows_*" -type d -exec rm -rf {} + + %files %license LICENSE %doc README.md diff --git a/vendor.tar.zst b/vendor.tar.zst index 700b46f..51d465d 100644 --- a/vendor.tar.zst +++ b/vendor.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2522578085b5c72169d7cb638a933caf1118fe2020bf5acefb4dcec309cc45d -size 22342461 +oid sha256:79a5abe421aa4482ff23491cd5b35d3e14f5da19dce7c141685911c6174ab125 +size 28117161